:root{font-family:Tajawal,system-ui,-apple-system,sans-serif;--bg-app: #f5f7fa;--bg-surface: #ffffff;--bg-surface-2: #eef2f7;--bg-input: #ffffff;--bg-hover: #f0f4f9;--border: #d8e0ea;--border-soft: #e7edf4;--border-strong: #c2cedd;--text: #0f1b2d;--text-muted: #51637a;--text-faint: #75869b;--brand: #1f7a52;--brand-hover: #19663f;--brand-soft: #e6f3ec;--primary: #1f7a52;--primary-contrast: #ffffff;--success: #1f7a52;--success-soft: #e6f3ec;--success-text: #13593a;--warning: #b5790f;--warning-soft: #fbf0db;--warning-text: #8a5c08;--danger: #c0362c;--danger-soft: #fbe9e7;--danger-text: #992018;--info: #1d6fb8;--info-soft: #e6f0fa;--info-text: #155288;--focus-ring: #1f7a52;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(16, 27, 45, .06);--shadow: 0 2px 8px rgba(16, 27, 45, .08);--muted: var(--text-muted);--ok: var(--success);--off: var(--danger);--bg: var(--bg-app);--card: var(--bg-surface);--primary-hover: var(--brand-hover);--primary-soft: var(--brand-soft);--primary-dark: var(--brand-hover);line-height:1.7}[data-theme=dark]{--bg-app: #0e1620;--bg-surface: #1a2532;--bg-surface-2: #222f3d;--bg-input: #111b26;--bg-hover: #1f2c3a;--border: #35495e;--border-soft: #2a3849;--border-strong: #44596f;--text: #e9eff6;--text-muted: #aebdce;--text-faint: #8fa1b8;--brand: #2fa873;--brand-hover: #268a5e;--brand-soft: #13291f;--primary: #2fa873;--primary-contrast: #06140d;--success: #2fa873;--success-soft: #13291f;--success-text: #6fd6a3;--warning: #d6a13a;--warning-soft: #2a2412;--warning-text: #e8c879;--danger: #e0655a;--danger-soft: #2a1614;--danger-text: #f0a59c;--info: #4e9fe0;--info-soft: #10243a;--info-text: #9cc9ee;--focus-ring: #2fa873;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 10px rgba(0, 0, 0, .45)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background-color:var(--bg-app);color:var(--text);font-size:15px;line-height:1.7;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1{font-size:26px;font-weight:700;line-height:1.4}h2{font-size:19px;font-weight:700;line-height:1.5}h3{font-size:16px;font-weight:600;line-height:1.5}a{color:var(--primary)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--sp-6)}.form-card{max-width:680px;margin-inline:auto}.dash-grid{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);gap:1.5rem;align-items:start}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4)}.kpi{display:flex;flex-direction:column;gap:.55rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--sp-4) var(--sp-5);font-variant-numeric:tabular-nums;transition:border-color .15s ease,box-shadow .15s ease}.kpi:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.kpi-icon{display:inline-flex;color:var(--brand);opacity:.85}.kpi-sub{font-size:.74rem;color:var(--text-faint)}.kpi-num{font-size:32px;font-weight:700;line-height:1.15;color:var(--text)}.kpi-danger{border-inline-start:3px solid var(--danger)}.kpi-label{font-size:.82rem;color:var(--text-muted)}.field{margin-bottom:var(--sp-4);text-align:right}.field label{display:block;font-size:.9rem;color:var(--text-muted);margin-bottom:.35rem}.input{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;color:var(--text);background:var(--bg-input)}.input::placeholder{color:var(--text-faint)}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--brand-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:40px;white-space:nowrap;padding:.5rem 1.1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn:hover{background:var(--bg-hover)}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);font-weight:600}.btn-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-surface),0 0 0 4px var(--focus-ring)}.btn-sm{min-height:34px;padding:.35rem .7rem;font-size:.85rem}.btn-danger{color:var(--danger-text);border-color:var(--danger);background:transparent}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.menu-item{display:flex;align-items:center;width:100%;min-height:38px;text-align:start;background:none;border:none;font:inherit;cursor:pointer;color:var(--text);padding:.5rem .65rem;border-radius:var(--radius-sm)}.menu-item:hover{background:var(--bg-hover)}.menu-item-danger{color:var(--danger-text)}.menu-item-danger:hover{background:var(--danger-soft)}.msg-error{color:var(--danger-text);background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.9rem;margin-bottom:var(--sp-4)}.msg-ok{color:var(--success-text);background:var(--success-soft);border:1px solid var(--success);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.9rem;margin-bottom:var(--sp-4)}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.24rem .62rem;border-radius:999px;font-size:.76rem;font-weight:600;line-height:1.2;white-space:nowrap;vertical-align:middle}.badge:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;flex-shrink:0}.badge-i:before{content:none}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:.85rem;flex-shrink:0}.badge-ok{background:var(--success-soft);color:var(--success-text)}.badge-off{background:var(--danger-soft);color:var(--danger-text)}.badge-neutral,.st-not_started{background:var(--bg-surface-2);color:var(--text-muted)}.st-in_progress{background:var(--info-soft);color:var(--info-text)}.st-under_review{background:var(--warning-soft);color:var(--warning-text)}.st-ready_for_approval{background:var(--brand-soft);color:var(--brand)}.st-approved{background:var(--success-soft);color:var(--success-text)}.progress{background:var(--bg-surface-2);border-radius:999px;height:8px;width:100%;overflow:hidden}.progress-fill{height:100%;border-radius:999px;transition:width .3s ease}.table{width:100%;border-collapse:collapse;text-align:right;font-variant-numeric:tabular-nums}.table th,.table td{padding:.72rem .9rem;border-bottom:1px solid var(--border-soft);font-size:.94rem;vertical-align:middle}.table th{color:var(--text-muted);font-weight:600;font-size:.82rem;background:var(--bg-surface-2);position:sticky;top:60px;z-index:1}.table tbody tr{height:52px;transition:background .12s ease}.table tbody tr:hover{background:var(--bg-hover)}[data-density=compact] .table tbody tr{height:42px}[data-density=compact] .table th,[data-density=compact] .table td{padding-top:.4rem;padding-bottom:.4rem}.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;background:var(--bg-surface);border-bottom:1px solid var(--border);padding:var(--sp-3) var(--sp-6);gap:var(--sp-4);flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:1.15rem;color:var(--brand);white-space:nowrap;letter-spacing:.2px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--brand);color:var(--primary-contrast);font-size:1rem;font-weight:700;flex-shrink:0}.nav{display:flex;gap:var(--sp-1);flex-wrap:wrap}.nav button{display:inline-flex;align-items:center;min-height:40px;background:none;border:none;font:inherit;cursor:pointer;color:var(--text-muted);padding:.45rem .85rem;border-radius:var(--radius-sm);transition:background .12s ease,color .12s ease}.nav button:hover{color:var(--text);background:var(--bg-hover)}.nav button.active{color:var(--brand);background:var(--brand-soft);font-weight:700}.nav button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.container{max-width:1280px;margin:var(--sp-6) auto;padding:0 var(--sp-8)}.shell{display:flex;align-items:stretch;min-height:100vh}.sidebar{position:sticky;top:0;align-self:flex-start;height:100vh;width:248px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4) var(--sp-3);background:var(--bg-surface);border-inline-end:1px solid var(--border)}.sidebar-brand{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-soft)}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-name{font-weight:700;font-size:1.02rem;color:var(--brand);letter-spacing:.2px}.brand-sub{font-size:.72rem;color:var(--text-faint)}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-nav button{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:42px;text-align:start;background:none;border:none;font:inherit;cursor:pointer;color:var(--text-muted);padding:.55rem .7rem;border-radius:var(--radius-sm);transition:background .12s ease,color .12s ease}.sidebar-nav button:hover{background:var(--bg-hover);color:var(--text)}.sidebar-nav button.active{background:var(--brand-soft);color:var(--brand);font-weight:700}.sidebar-nav button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:60px;padding:var(--sp-2) var(--sp-6);background:var(--bg-surface);border-bottom:1px solid var(--border);flex-wrap:nowrap}.topbar-user{font-size:.9rem;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.topbar-title{display:flex;flex-direction:column;min-width:0;line-height:1.25}.topbar-h{font-size:1.45rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-sub{font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:.95rem;flex-shrink:0;margin-inline-start:.25rem}.pw-banner{background:var(--danger-soft);border-bottom:2px solid var(--danger);padding:.6rem 1rem;display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.main .container{max-width:1760px;width:100%;margin-top:var(--sp-5);padding-inline:var(--sp-6)}.main .container>div{grid-template-columns:minmax(0,1fr)}.select-sm,.input-sm{padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:.85rem;color:var(--text);background:var(--bg-input)}.input-sm::placeholder{color:var(--text-faint)}.select-sm:focus,.input-sm:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--brand-soft)}.truncate{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}@keyframes nora-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-surface-2) 25%,var(--bg-hover) 37%,var(--bg-surface-2) 63%);background-size:200% 100%;animation:nora-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{:root,[data-theme=dark]{--bg-app: #ffffff;--bg-surface: #ffffff;--bg-surface-2: #f3f5f8;--bg-input: #ffffff;--border: #cccccc;--border-soft: #e4e4e4;--text: #111418;--text-muted: #444b54;--text-faint: #6b7280}body{background:#fff;color:#111}.appbar,.no-print{display:none!important}.container{max-width:100%;margin:0;padding:0}.card{box-shadow:none;border:1px solid #ddd}.report-page .table{page-break-inside:auto}.report-page .table tr{page-break-inside:avoid}.report-page h2{page-break-after:avoid}}
