/* Inter and Tajawal — SIL Open Font License. Self-hosted so the admin stays on its own origin. */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/inter-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Tajawal";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/tajawal-400-ar.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:"Tajawal";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/tajawal-400-lat.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Tajawal";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/tajawal-500-ar.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:"Tajawal";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/tajawal-500-lat.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Tajawal";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/tajawal-700-ar.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:"Tajawal";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/tajawal-700-lat.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}

:root{
  --bg:#F3F5F4; --surface:#ffffff; --surface-2:#F6F7F6; --border:#E3E6E5; --border-strong:#CBD1D0;
  --text:#14201F; --text-2:#4D5B5A; --muted:#7B8786;
  --accent:#0B8FA3; --accent-deep:#076B7A; --accent-text:#076B7A; --accent-ink:#ffffff; --accent-soft:#E6F6F8;
  --gold:#C7A96B; --gold-ink:#9D7A3F;
  --ok:#1B7A4E; --ok-soft:#E7F5EE; --warn:#9A6200; --warn-soft:#FBF3E4; --bad:#B3261E; --bad-soft:#FBECEA; --info:#076B7A; --info-soft:#E6F6F8;
  --radius:14px; --shadow:0 1px 2px rgba(16,32,31,.04), 0 10px 28px -18px rgba(16,32,31,.18);
  --shadow-lg:0 2px 4px rgba(16,32,31,.04), 0 24px 48px -28px rgba(16,32,31,.28);
  --nav-h:64px; --sub-h:0px;
  --font:"Tajawal","Inter","Segoe UI",Tahoma,sans-serif;
  --ease:cubic-bezier(.2,0,0,1);
  color-scheme:light;
}
html[dir="ltr"]{--font:"Inter","Segoe UI",sans-serif}
html[data-theme="dark"]{
  --bg:#0E1414; --surface:#151C1C; --surface-2:#1A2222; --border:#263131; --border-strong:#364343;
  --text:#ECF1F0; --text-2:#A9B5B4; --muted:#7D8988;
  --accent:#149AAD; --accent-deep:#0B8FA3; --accent-text:#9EDCE4; --accent-ink:#042226; --accent-soft:#12313A;
  --gold:#C7A96B; --gold-ink:#E3C98A;
  --ok:#7DCAA6; --ok-soft:#173026; --warn:#E2B25C; --warn-soft:#33281A; --bad:#F0A29C; --bad-soft:#3A1D1B; --info:#9EDCE4; --info-soft:#12313A;
  --shadow:0 1px 2px rgba(0,0,0,.35); --shadow-lg:0 24px 48px -24px rgba(0,0,0,.55);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--text);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent-text);text-decoration:none}
.num,.ltr{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}
.app{min-height:100vh;display:flex;flex-direction:column}
.app:has(.subnav){--sub-h:52px}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding-inline:28px}

.topnav{background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;height:var(--nav-h)}
.tn-in{display:flex;align-items:center;gap:20px;height:100%}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);font-weight:700;font-size:15.5px;letter-spacing:0;white-space:nowrap}
.brand:hover{color:var(--text)}
.brand .mark{width:30px;height:30px;display:block}
.tn{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow:visible}
.tn>a,.dd-t{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:9px;color:var(--text-2);font-weight:500;white-space:nowrap}
.tn>a:hover,.dd-t:hover{background:var(--surface-2);color:var(--text)}
.tn>a.on,.dd.on>.dd-t{background:var(--accent-soft);color:var(--accent-text);font-weight:700}
.dd{position:relative;display:flex;align-items:center}
.dd-t{border:0;background:transparent;cursor:pointer;font:inherit}
.dd-t svg{width:14px;height:14px;transition:transform .15s var(--ease)}
.dd.open>.dd-t svg{transform:rotate(180deg)}
.dd-m{display:none;position:absolute;top:calc(100% + 6px);inset-inline-start:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:30}
.dd.open .dd-m{display:block}
.dd-m a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;padding:6px 10px;border-radius:8px;color:var(--text-2)}
.dd-m a:hover{background:var(--surface-2);color:var(--text)}
.dd-m a.on{background:var(--accent-soft);color:var(--accent-text);font-weight:700}
.pill{font-size:11px;background:var(--bad);color:#fff;border-radius:999px;padding:0 7px;min-width:18px;line-height:18px;text-align:center;font-weight:700}
.tn-end{display:flex;align-items:center;gap:8px;flex:none}
.tn-end .me{font-size:12.5px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tn-drawer{display:contents}
.btn.tn-burger{display:none}
.tn-burger .burger-x{display:none}
.topnav.is-open .tn-burger .burger-ic{display:none}
.topnav.is-open .tn-burger .burger-x{display:grid}

.subnav{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:var(--nav-h);z-index:19}
.sn-in{display:flex;align-items:center;gap:8px;min-height:var(--sub-h);overflow-x:auto;scrollbar-width:none}
.sn-in::-webkit-scrollbar{display:none}
.sn-in .app-name{font-weight:700;font-size:13.5px;color:var(--accent-text);white-space:nowrap;margin-inline-end:8px;padding:4px 10px;background:var(--accent-soft);border-radius:999px}
.sn-tabs{display:flex;gap:2px}
.sn-tabs a{display:inline-flex;align-items:center;gap:7px;height:52px;padding:0 12px;color:var(--text-2);border-bottom:2px solid transparent;white-space:nowrap;font-weight:500}
.sn-tabs a:hover{color:var(--text)}
.sn-tabs a.on{color:var(--accent-text);border-bottom-color:var(--accent);font-weight:700}

.main{flex:1;min-width:0}
.main>.wrap{padding-top:28px;padding-bottom:56px}
.crumb{margin-bottom:10px;font-size:13px}
.crumb a{color:var(--accent-text);font-weight:700}
.crumb a:hover{color:var(--accent-deep)}
.top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.title-line{display:flex;align-items:center;gap:10px}
.top h1{font-size:28px;line-height:1.25;margin:0;font-weight:700;letter-spacing:0}
.subline{margin:6px 0 0;color:var(--text-2);font-size:14.5px;max-width:62ch}
.top-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.top .tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.content{animation:rise .22s var(--ease)}

.apps{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.8fr);gap:16px}
.app-card{position:relative;display:flex;flex-direction:column;gap:14px;min-height:250px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px 24px 20px;color:var(--text);box-shadow:var(--shadow);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.app-card::before{content:"";position:absolute;inset-inline-start:0;top:22px;bottom:22px;width:3px;border-radius:3px;background:var(--accent)}
.app-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow-lg);color:var(--text)}
.app-card h2{margin:0;font-size:22px;line-height:1.3}
.app-card p{margin:0;color:var(--text-2)}
.ac-kicker{font-size:12.5px;font-weight:700;color:var(--accent-text)}
.app-card .ac-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid var(--border);padding-top:14px;margin-top:auto}
.app-card .ac-stats span{display:block;color:var(--muted);font-size:12.5px}
.app-card .ac-stats b{display:block;font-size:22px;font-weight:700;margin-top:2px;color:var(--text)}
.app-card .ac-stats b.warn{color:var(--warn)}
.app-card .ac-go{display:inline-flex;align-items:center;gap:6px;color:var(--accent-text);font-weight:700}
.app-card .ac-go svg{width:16px;height:16px}
html[dir="rtl"] .app-card .ac-go svg{transform:scaleX(-1)}
.app-card.soon::before{background:var(--gold)}
.app-card.soon .ac-kicker{color:var(--gold-ink)}
.app-card.soon:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--border-strong);background:var(--surface);border-radius:9px;cursor:pointer;white-space:nowrap;font-weight:600;transition:background .12s var(--ease),border-color .12s var(--ease)}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{background:var(--accent-deep);border-color:var(--accent-deep);filter:none}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--border))}
.btn.danger:hover{background:var(--bad-soft)}
.btn.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}
.btn.ok:hover{background:var(--ok-soft)}
.btn.sm{height:32px;padding:0 11px;font-size:13.5px}
.btn.icon{width:36px;height:36px;padding:0}
.btn.sm.icon{width:32px;height:32px}
.btn.icon svg{width:16px;height:16px}
.theme-ic{display:grid;place-items:center}
.theme-ic svg{grid-area:1 / 1}
html[data-theme="dark"] .ic-moon{display:none}
html:not([data-theme="dark"]) .ic-sun{display:none}
.btn:disabled{opacity:.5;cursor:default}
.btn:focus-visible,.input:focus,.linkish:focus-visible,a:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}
.linkish{background:none;border:0;color:var(--accent-text);cursor:pointer;font-weight:700;padding:8px 0}
.linkish:hover{text-decoration:underline}
.input,select.input,textarea.input{height:40px;padding:0 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);min-width:0;width:100%}
textarea.input{height:auto;padding:8px 12px}
label.f{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text-2)}

.grid{display:grid;gap:16px}
.kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 16px 14px;box-shadow:var(--shadow);overflow:hidden}
.kpi::before{content:"";position:absolute;inset-inline:0;top:0;height:3px;background:var(--accent)}
.kpi.warn::before{background:var(--warn)}
.kpi.alert::before{background:var(--bad)}
.kpi{display:flex;flex-direction:column}
.kpi .l{color:var(--muted);font-size:12.5px;font-weight:600;min-height:2.6em}
.kpi .v{font-size:28px;font-weight:700;margin-top:6px;letter-spacing:0;line-height:1.1}
.kpi.alert .v{color:var(--bad)}
.kpi.warn .v{color:var(--warn)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card>.h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}
.card>.h h2{font-size:15px;margin:0;font-weight:700}
.card>.b{padding:16px}
.card>.b.flush{padding:0;overflow:auto}
.card.lic{border-top:3px solid var(--accent)}
.card.lic.ok{border-top-color:var(--ok)}
.card.lic.reminder,.card.lic.limited{border-top-color:var(--warn)}
.card.lic.blocked{border-top-color:var(--bad)}
.two{grid-template-columns:1fr 1fr}
.sec{margin-top:16px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fields .wide{grid-column:1 / -1}
.note{margin:0 0 14px;color:var(--text-2)}
.keybox{display:block;margin:0;padding:10px 12px;background:var(--surface-2);border-radius:8px;word-break:break-all;font-size:12px;line-height:1.6;color:var(--text-2)}
.fee-now{margin:14px 0 0;color:var(--muted);font-size:13px}

table{width:100%;border-collapse:collapse;min-width:680px}
th,td{text-align:start;padding:11px 14px;border-bottom:1px solid var(--border);border-inline-end:1px solid var(--border);vertical-align:middle}
th:last-child,td:last-child{border-inline-end:0}
th{font-size:12px;color:var(--muted);font-weight:700;background:var(--surface-2)}
tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}
tbody tr.click:hover{background:color-mix(in srgb,var(--accent-soft) 65%,var(--surface))}
td .sub{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
td.act{text-align:end;white-space:nowrap}
td.act .btn{margin-inline-start:6px}
td:first-child{font-weight:600}
.empty{padding:36px 20px;text-align:center;color:var(--muted)}
.blank{padding:28px 8px 12px;text-align:center;color:var(--text-2)}

.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--surface-2);color:var(--text-2);white-space:nowrap}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.chip.ok{background:var(--ok-soft);color:var(--ok)}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.chip.bad{background:var(--bad-soft);color:var(--bad)}
.chip.info{background:var(--info-soft);color:var(--info)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips button{border:1px solid var(--border);background:var(--surface);border-radius:999px;height:34px;padding:0 12px;cursor:pointer;color:var(--text-2);font-weight:600}
.chips button:hover{border-color:var(--border-strong);color:var(--text)}
.chips button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.chips button .c{opacity:.72;margin-inline-start:6px;font-weight:500}
.bar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.bar .input{width:min(320px,100%)}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:10px 20px;margin:0}
dl.kv dt{color:var(--muted);font-weight:600}
dl.kv dd{margin:0}
.switch{position:relative;width:40px;height:24px;display:inline-block}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:var(--border-strong);border-radius:999px;transition:.15s var(--ease);cursor:pointer}
.switch span::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s var(--ease);box-shadow:0 1px 2px rgba(0,0,0,.18)}
.switch input:checked+span{background:var(--accent)}
html[dir="rtl"] .switch input:checked+span::after{transform:translateX(-16px)}
html[dir="ltr"] .switch input:checked+span::after{transform:translateX(16px)}
.audit{list-style:none;margin:0;padding:8px 0;max-height:440px;overflow:auto}
.audit li{display:flex;gap:14px;padding:10px 16px;border-bottom:1px solid var(--border);font-size:13.5px}
.audit li:last-child{border-bottom:0}
.audit .t{color:var(--muted);min-width:148px;font-variant-numeric:tabular-nums}
.audit code{font-size:12px;color:var(--text-2);background:var(--surface-2);padding:2px 6px;border-radius:6px}

.login{min-height:100vh;display:grid;place-items:center;padding:28px 16px}
.login .box{width:min(420px,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:32px 28px 22px;box-shadow:var(--shadow-lg)}
.login .mark{width:52px;height:52px;display:block;margin-bottom:16px}
.login h1{font-size:26px;line-height:1.25;margin:0 0 6px}
.login .lead{color:var(--text-2);margin:0 0 22px}
.login form{display:flex;flex-direction:column;gap:14px}
.login .btn.primary{height:42px}
.login .err{color:var(--bad);background:var(--bad-soft);border-radius:9px;padding:10px 12px;font-size:13.5px;margin-bottom:14px}
.login .foot{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}

.ov{position:fixed;inset:0;background:rgba(14,20,20,.46);display:grid;place-items:center;z-index:50;padding:20px;animation:fade .14s var(--ease)}
.dlg{width:min(460px,100%);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow-lg)}
.dlg h3{margin:0 0 8px;font-size:18px}
.dlg p{margin:0 0 14px;color:var(--text-2)}
.dlg .row{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.dlg form{display:flex;flex-direction:column;gap:12px}
.toast{position:fixed;bottom:22px;inset-inline-start:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:13.5px;font-weight:600;z-index:60;box-shadow:var(--shadow-lg)}
html[dir="rtl"] .toast{transform:translateX(50%)}
.toast.bad{background:var(--bad);color:#fff}
.loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted)}
.loading .dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}
.seg{display:inline-flex;gap:8px;flex-wrap:wrap}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.content,.ov,.loading .dot{animation:none}}
@media (max-width:980px){
  .wrap{padding-inline:16px}
  .subnav{position:static}
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .apps,.two,.fields{grid-template-columns:1fr}
  .top{flex-direction:column;align-items:stretch}
  .top h1{font-size:24px}
  .top .tools{justify-content:flex-start}
}
@media (max-width:760px){
  .topnav{height:var(--nav-h);overflow:visible}
  .topnav.is-open{height:auto}
  .tn-in{flex-wrap:wrap;align-items:center;height:auto;gap:0 12px}
  .brand{height:var(--nav-h)}
  .btn.tn-burger{display:inline-flex;margin-inline-start:auto}
  .tn-drawer{display:none;flex:1 0 100%;flex-direction:column;gap:8px;padding:4px 0 12px;border-top:1px solid var(--border)}
  .topnav.is-open .tn-drawer{display:flex}
  .tn{flex-direction:column;align-items:stretch}
  .tn>a,.dd-t{width:100%;justify-content:flex-start}
  .dd{flex-direction:column;align-items:stretch}
  .dd-m{position:static;min-width:0;box-shadow:none;margin-top:4px}
  .tn-end{flex-wrap:wrap;justify-content:flex-start;padding-top:4px}
  .tn-end .me{display:block;max-width:100%;flex-basis:100%}
}
@media (max-width:640px){
  .kpis{grid-template-columns:1fr 1fr}
  .login .box{padding:26px 18px 16px}
  .app-card{min-height:0}
}
