/* Nibras Global admin — same navy/gold brand as the website, tuned for dense work screens. */
:root{
  --bg:#F4F6FA; --panel:#FFFFFF; --surface:#EEF1F6; --ink:#0B1F3A; --ink-2:#4A5770; --ink-3:#717E95; --line:#E2E7EF; --line-2:#CAD2DE;
  --navy:#0B1F3A; --navy-2:#132A4F; --on-navy:#F3F5F9; --on-navy-2:#AEB9CC;
  --gold:#B8862E; --gold-ink:#8A6216; --gold-soft:#F7EFDE; --gold-grad:linear-gradient(105deg,#ECCD88 0%,#C99A4E 52%,#A9732E 100%);
  --ok:#1C7A53; --ok-soft:#E2F3EA; --warn:#995A06; --warn-soft:#FBEFD8; --info:#2456A0; --info-soft:#E5EDF8; --bad:#B3261E; --bad-soft:#FBE7E5;
  --r:12px; --shadow:0 1px 2px rgba(11,31,58,.05),0 12px 30px -18px rgba(11,31,58,.3);
  --f-d:"Sora","Segoe UI",system-ui,sans-serif; --f-b:"Public Sans","Segoe UI",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#071226; --panel:#0C1B33; --surface:#13253F; --ink:#EEF1F6; --ink-2:#A9B4C7; --ink-3:#8290A8; --line:#1C2E4C; --line-2:#2A3F62;
  --navy:#050E1D; --navy-2:#0E1E3A; --gold:#E3BB6A; --gold-ink:#E6C27A; --gold-soft:#272010;
  --ok:#5CC495; --ok-soft:#0E2C22; --warn:#E6A84A; --warn-soft:#2E220D; --info:#82AAE8; --info-soft:#122540; --bad:#F2867D; --bad-soft:#3A1614;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 30px -18px rgba(0,0,0,.7); color-scheme:dark}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14.5px/1.5 var(--f-b);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-d);font-weight:600;letter-spacing:-.015em;margin:0;line-height:1.2}
h1{font-size:1.5rem} h2{font-size:1.1rem} h3{font-size:.98rem}
p{margin:0}
a{color:var(--gold-ink)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--ink-2)} .faint{color:var(--ink-3)} .small{font-size:.86rem}
.boot{display:grid;place-items:center;height:100vh;color:var(--ink-3)}
.ico{width:18px;height:18px;flex:none}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--navy);position:relative;overflow:hidden;isolation:isolate}
.login::before{content:"";position:absolute;width:90px;top:-60px;bottom:-60px;right:24%;background:var(--gold-grad);transform:skewX(-33deg);z-index:-1;opacity:.9}
.login-card{width:min(400px,100%);background:var(--panel);border-radius:18px;padding:32px;box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
.login-card img{height:56px;margin-bottom:18px}
.login-card h1{font-size:1.35rem;margin-bottom:4px}

/* shell */
.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.side{background:var(--navy);color:var(--on-navy-2);display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto}
.side .brand{padding:6px 10px 20px}
.side .brand img{height:46px}
.side .brand small{display:block;color:var(--on-navy-2);margin-top:6px;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
.nav{display:grid;gap:2px}
.nav a{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:9px;color:var(--on-navy-2);text-decoration:none;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.06);color:var(--on-navy)}
.nav a.on{background:rgba(255,255,255,.1);color:#fff}
.nav a.on .ico{color:#E6C27A}
.nav .badge{margin-left:auto;background:#E6C27A;color:#1B1406;border-radius:99px;font-size:.72rem;font-weight:700;padding:1px 7px}
.nav-sep{height:1px;background:rgba(255,255,255,.1);margin:12px 6px}
.side .me{margin-top:auto;padding:12px 10px 4px;border-top:1px solid rgba(255,255,255,.1);font-size:.86rem}
.side .me b{color:var(--on-navy);display:block;font-weight:600}
.side .me button{background:none;border:0;padding:0;color:#E6C27A;cursor:pointer;font-weight:600;margin-top:6px}
.main{min-width:0;padding:26px 30px 60px}
.topbar{display:none}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:260px;z-index:50;transform:translateX(-100%);transition:transform .2s}
  .shell.menu .side{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
  .topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--navy);color:#fff;padding:10px 14px;position:sticky;top:0;z-index:40}
  .topbar img{height:34px}
  .main{padding:18px 14px 60px}
}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.head p{margin-top:4px}
.crumb{font-size:.86rem;margin-bottom:6px}
.crumb a{color:var(--ink-2);text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* bits */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;padding:8px 14px;font-weight:600;cursor:pointer;border:1px solid transparent;font-size:.9rem;line-height:1.2;white-space:nowrap;text-decoration:none;background:var(--panel);color:var(--ink);border-color:var(--line-2)}
.btn:hover{border-color:var(--ink-3)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-gold{background:var(--gold-grad);color:#1B1406;border-color:transparent}
.btn-ink{background:var(--ink);color:var(--panel);border-color:var(--ink)}
.btn-bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.btn-sm{padding:5px 10px;font-size:.82rem;border-radius:8px}
.btn-link{background:none;border:0;padding:0;color:var(--gold-ink);font-weight:600;cursor:pointer}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grow{flex:1}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0}
.panel>h2,.panel>.ph{margin-bottom:12px}
.ph{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.g-detail{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}
@media (max-width:1100px){.g-detail,.g2{grid-template-columns:minmax(0,1fr)}}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;text-decoration:none;color:inherit;display:block}
.kpi:hover{border-color:var(--line-2)}
.kpi small{color:var(--ink-2);font-size:.83rem}
.kpi b{display:block;font-family:var(--f-d);font-size:1.75rem;font-weight:600;margin-top:2px}
.kpi.alert b{color:var(--warn)}
.tag{display:inline-block;font-size:.74rem;padding:2px 8px;border-radius:99px;font-weight:600;white-space:nowrap;background:var(--surface);color:var(--ink-2)}
.t-ok{background:var(--ok-soft);color:var(--ok)} .t-warn{background:var(--warn-soft);color:var(--warn)} .t-info{background:var(--info-soft);color:var(--info)} .t-bad{background:var(--bad-soft);color:var(--bad)} .t-gold{background:var(--gold-soft);color:var(--gold-ink)}
.f{display:flex;flex-direction:column;gap:5px;font-size:.84rem;font-weight:500;min-width:0}
.f input,.f select,.f textarea,.inp{border:1px solid var(--line-2);background:var(--panel);border-radius:9px;padding:8px 11px;font-size:.92rem;width:100%;min-width:0}
.f textarea{resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus,.inp:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fields .full{grid-column:1/-1}
@media (max-width:600px){.fields{grid-template-columns:1fr}}
.check{display:flex;gap:8px;align-items:center;font-size:.9rem;cursor:pointer}
.check input{accent-color:var(--gold);width:16px;height:16px}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filters .inp{width:auto}
.filters .search{min-width:220px;flex:1;max-width:340px}
.err{color:var(--bad);font-size:.86rem;font-weight:500}
.empty{padding:36px 16px;text-align:center;color:var(--ink-2)}
.empty b{display:block;color:var(--ink);font-size:1rem;margin-bottom:4px}

/* tables */
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th{text-align:left;font-weight:600;font-size:.78rem;color:var(--ink-2);padding:9px 12px;border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap;position:sticky;top:0}
th[data-sort]{cursor:pointer}
th[data-sort]:hover{color:var(--ink)}
td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}
tbody tr.click:hover td{background:var(--surface)}
td.wrap{max-width:380px;white-space:pre-wrap;overflow-wrap:anywhere}
td .sub{display:block;color:var(--ink-3);font-size:.8rem}
.db-cell{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.null{color:var(--ink-3);font-style:italic}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:.86rem;color:var(--ink-2);flex-wrap:wrap}

/* detail */
.stages{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:4px 0 14px}
.stages button{border:1px solid var(--line-2);background:var(--panel);border-radius:8px;padding:8px 4px;font-size:.78rem;font-weight:600;cursor:pointer;color:var(--ink-2);line-height:1.25}
.stages button.done{background:var(--surface);color:var(--ink)}
.stages button.on{background:var(--ink);color:var(--panel);border-color:var(--ink)}
@media (max-width:600px){.stages{grid-template-columns:1fr 1fr}}
.docs{list-style:none;margin:0;padding:0}
.docs>li{padding:11px 0;border-bottom:1px solid var(--line)}
.docs>li:last-child{border-bottom:0}
.docs .dh{display:flex;gap:10px;align-items:center}
.docs .dot{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:none;font-size:.7rem;color:transparent}
.docs .have .dot{background:var(--ok);border-color:var(--ok);color:#fff}
.files{list-style:none;margin:6px 0 0 28px;padding:0;display:grid;gap:4px}
.files li{display:flex;gap:8px;align-items:center;font-size:.85rem;flex-wrap:wrap}
.files li .nm{overflow-wrap:anywhere}
.ev{list-style:none;margin:0;padding:0;display:grid;gap:0}
.ev li{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.87rem}
.ev li:last-child{border:0}
.ev li i{width:8px;height:8px;border-radius:50%;background:var(--line-2);margin-top:6px}
.ev li.pub i{background:var(--gold)}
.ev small{display:block;color:var(--ink-3);font-size:.78rem}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.9rem}
.kv dt{color:var(--ink-2)} .kv dd{margin:0;overflow-wrap:anywhere}
.cards{display:grid;gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.card.new{border-left:3px solid var(--gold)}
.card p.body{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}
.stars{color:var(--gold);letter-spacing:1px}
.bar{height:8px;border-radius:99px;background:var(--surface);overflow:hidden}
.bar i{display:block;height:100%;background:var(--gold-grad)}
.bars{display:grid;gap:8px}
.bars .r{display:grid;grid-template-columns:140px 1fr 36px;gap:10px;align-items:center;font-size:.85rem}
.sql{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem}
.preview{width:100%;height:70vh;border:1px solid var(--line);border-radius:10px;background:#fff}
.preview-img{max-width:100%;max-height:70vh;display:block;margin:0 auto;border-radius:10px}

/* modal + toast */
.modal-bg{position:fixed;inset:0;z-index:80;background:rgba(5,12,24,.55);display:flex;align-items:flex-start;justify-content:center;padding:6vh 14px 14px;overflow:auto}
.modal{width:min(560px,100%);background:var(--panel);border-radius:16px;padding:22px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.modal.wide{width:min(980px,100%)}
.modal h2{margin-bottom:14px}
.modal .acts{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:var(--panel);padding:10px 16px;border-radius:10px;font-size:.9rem;z-index:90;box-shadow:var(--shadow)}
.toast.bad{background:var(--bad);color:#fff}
.shell>div{min-width:0}
td.num{white-space:nowrap}

/* website editor */
.doclist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.docrow{display:grid;grid-template-columns:minmax(0,1.3fr) auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--bg,transparent)}
.docrow .check{font-size:.82rem;white-space:nowrap}
@media (max-width:700px){.docrow{grid-template-columns:1fr auto}.docrow [name=dh]{grid-column:1/-1}}
