/* ── announcements.css — رفد: الإعلانات الداخلية ── */
.ann-nav-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:none;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .18s,color .18s;position:relative}
.ann-nav-btn:hover{background:rgba(23,169,140,.1);color:#17a98c}
.ann-unread-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background:#dc2626;border-radius:50%;border:2px solid #fff;animation:ann-pulse 2s infinite}
@keyframes ann-pulse{0%,100%{opacity:1}50%{opacity:.5}}
.ann-panel{position:fixed;inset:0;z-index:1250;background:#f4f6fb;transform:translateX(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);overflow:hidden;font-family:'Tajawal','Segoe UI',sans-serif;direction:rtl;display:flex;flex-direction:column}
.ann-panel.ann-visible{transform:translateX(0)}
.ann-panel.ann-hidden{transform:translateX(100%)}
.ann-header{display:flex;align-items:center;gap:12px;padding:14px 20px;background:linear-gradient(135deg,#071750 0%,#0d2b8e 100%);color:#fff;flex-shrink:0;box-shadow:0 2px 12px rgba(7,23,80,.3)}
.ann-header-icon{width:38px;height:38px;background:rgba(23,169,140,.25);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ann-header-title{flex:1;font-size:1.05rem;font-weight:700}
.ann-header-sub{font-size:.75rem;opacity:.72}
.ann-close-btn{background:rgba(255,255,255,.1);border:none;color:#fff;width:36px;height:36px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s;flex-shrink:0}
.ann-close-btn:hover{background:rgba(255,255,255,.22)}
.ann-body{display:flex;flex:1;overflow:hidden}
.ann-sidebar{width:220px;background:#fff;border-left:1px solid #e4e8f0;flex-shrink:0;display:flex;flex-direction:column;padding:12px 0;overflow-y:auto}
.ann-sidebar-btn{display:flex;align-items:center;gap:9px;width:100%;padding:9px 16px;border:none;background:none;text-align:right;font:inherit;font-size:.87rem;color:#374151;cursor:pointer;transition:background .15s,color .15s;border-right:3px solid transparent}
.ann-sidebar-btn:hover{background:#f0f4ff;color:#0d2b8e}
.ann-sidebar-btn.active{background:#e8eeff;color:#0d2b8e;font-weight:700;border-right-color:#17a98c}
.ann-content{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}
/* create form */
.ann-create-card{background:#fff;border-radius:14px;border:1px solid #e4e8f0;overflow:hidden}
.ann-create-head{padding:12px 16px;background:#f8faff;border-bottom:1px solid #e4e8f0;font-size:.88rem;font-weight:700;color:#0d2b8e;display:flex;align-items:center;gap:8px}
.ann-form{display:flex;flex-direction:column;gap:14px;padding:16px}
.ann-form label{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:600;color:#374151}
.ann-form input,.ann-form textarea,.ann-form select{padding:9px 12px;border:1.5px solid #d1d5db;border-radius:8px;font:inherit;font-size:.88rem;color:#1f2937;transition:border-color .18s}
.ann-form input:focus,.ann-form textarea:focus,.ann-form select:focus{outline:none;border-color:#17a98c}
.ann-form textarea{resize:vertical;min-height:80px}
.ann-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ann-form-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:6px;border-top:1px solid #f1f5f9}
/* priority badges */
.ann-priority{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:20px;font-size:.74rem;font-weight:700}
.ann-priority.normal{background:#e0e7ff;color:#3730a3}
.ann-priority.high{background:#fef3c7;color:#92400e}
.ann-priority.urgent{background:#fee2e2;color:#991b1b}
/* announcements list */
.ann-list{display:flex;flex-direction:column;gap:12px}
.ann-card{background:#fff;border-radius:12px;border:1px solid #e4e8f0;overflow:hidden;transition:box-shadow .2s}
.ann-card:hover{box-shadow:0 4px 16px rgba(7,23,80,.08)}
.ann-card.unread{border-right:4px solid #17a98c}
.ann-card-head{display:flex;align-items:flex-start;gap:10px;padding:13px 16px 10px;border-bottom:1px solid #f1f5f9}
.ann-card-title{flex:1;font-size:.92rem;font-weight:700;color:#0d2b8e;margin-bottom:3px}
.ann-card-meta{font-size:.75rem;color:#6b7280}
.ann-card-body{padding:12px 16px;font-size:.85rem;color:#374151;line-height:1.65;white-space:pre-wrap}
.ann-card-foot{display:flex;align-items:center;gap:8px;padding:9px 16px;background:#fafbff;border-top:1px solid #f1f5f9;flex-wrap:wrap}
.ann-target-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#e8eeff;color:#0d2b8e;border-radius:6px;font-size:.74rem;font-weight:600}
.ann-expires{font-size:.73rem;color:#9ca3af;margin-right:auto}
.ann-read-btn{background:none;border:none;font:inherit;font-size:.75rem;color:#17a98c;cursor:pointer;padding:3px 8px;border-radius:6px;font-weight:600;transition:background .15s}
.ann-read-btn:hover{background:#f0faf7}
.ann-delete-btn{background:none;border:none;font:inherit;font-size:.75rem;color:#dc2626;cursor:pointer;padding:3px 8px;border-radius:6px;font-weight:600;transition:background .15s}
.ann-delete-btn:hover{background:#fee2e2}
.ann-unread-badge{width:8px;height:8px;background:#17a98c;border-radius:50%;flex-shrink:0;margin-top:4px}
/* empty */
.ann-empty{padding:48px 20px;text-align:center;color:#9ca3af;font-size:.88rem}
.ann-empty svg{opacity:.25;margin-bottom:10px}
/* buttons */
.ann-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:8px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .18s;white-space:nowrap}
.ann-btn.teal{background:#17a98c;color:#fff}.ann-btn.teal:hover{background:#0e8a72}
.ann-btn.navy{background:#0d2b8e;color:#fff}.ann-btn.navy:hover{background:#0a2070}
.ann-btn.ghost{background:transparent;color:#374151;border:1.5px solid #d1d5db}.ann-btn.ghost:hover{background:#f3f4f6}
/* spinner */
.ann-loading{display:flex;align-items:center;justify-content:center;padding:60px;gap:12px;color:#6b7280;font-size:.88rem}
.ann-spinner{width:26px;height:26px;border:3px solid #e4e8f0;border-top-color:#17a98c;border-radius:50%;animation:ann-spin .7s linear infinite}
@keyframes ann-spin{to{transform:rotate(360deg)}}
@media(max-width:640px){.ann-sidebar{display:none}.ann-content{padding:12px}.ann-form-row{grid-template-columns:1fr}}
