:root{--bg:#0b1320;--bg2:#121b2e;--bg3:#1a2540;--tx:#f4f6fa;--mu:#9aa6bd;--au:#d9a45b;--rd:#d64545;--yl:#e6b422;--gn:#2fa56a;--ln:#26324d;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--tx);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
h1,h2,h3,.serif{font-family:Marcellus,"Palatino Linotype",Georgia,serif;font-weight:400;letter-spacing:.03em}
h2{font-size:24px;margin:0 0 14px}a{color:var(--au);text-decoration:none}
header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--ln);flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;color:var(--tx)}.brand .bar{width:2px;height:40px;background:var(--au)}
.brand b{display:block;font:22px/1.1 Marcellus,Georgia,serif}.brand small{display:block;color:var(--au);font:9px Marcellus,Georgia,serif;letter-spacing:.18em;text-transform:uppercase}
.sp{flex:1}.who{color:var(--mu);font-size:13px;text-align:right}
nav{display:flex;gap:6px;padding:10px 16px;overflow-x:auto;border-bottom:1px solid var(--ln)}
nav a{color:var(--mu);border:1px solid transparent;padding:8px 14px;border-radius:6px;white-space:nowrap}
nav a.on{color:var(--au);border-color:var(--au)}
main{padding:18px 16px 40px;max-width:1100px;margin:0 auto}
.btn{display:inline-block;background:var(--au);color:#1a1205;border:0;border-radius:6px;padding:10px 16px;cursor:pointer;font:600 14px inherit;text-align:center}
.btn.g{background:none;border:1px solid var(--ln);color:var(--tx)}.btn.r{background:var(--rd);color:#fff}.btn.s{padding:5px 10px;font-size:12px}
input,select{background:var(--bg);color:var(--tx);border:1px solid var(--ln);border-radius:6px;padding:10px;font:inherit;width:100%}
label{display:block;color:var(--mu);font-size:12px;margin:12px 0 4px}
.card{background:var(--bg2);border:1px solid var(--ln);border-radius:10px;padding:16px;margin-bottom:14px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:130px}.row>.btn{flex:none}
.top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}.top h2{margin:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
a.proj{display:block;color:var(--tx)}a.proj:hover{border-color:var(--au)}
.muted{color:var(--mu)}.flash{background:#3a1d1d;border:1px solid var(--rd);padding:10px 14px;border-radius:8px;margin-bottom:12px}
.fl{display:flex;gap:8px;align-items:center;margin:8px 0}.fl>span{width:60px;flex:none;color:var(--mu);font-size:12px}.fl>div{display:flex;gap:8px;flex-wrap:wrap}
.cube{width:76px;height:62px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px}
.cube small{font-weight:400;font-size:11px}.free{background:var(--gn)}.sold{background:var(--rd)}.busy{background:var(--yl);color:#1a1205}
.lg{display:flex;gap:14px;color:var(--mu);font-size:13px;margin:8px 0;flex-wrap:wrap}.lg i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
a.stat,.stat{display:block;color:var(--tx);border-left:3px solid var(--au)}.stat small{color:var(--mu)}.stat b{display:block;font:22px Marcellus,Georgia,serif;margin-top:4px}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--ln);white-space:nowrap}th{color:var(--mu);font-weight:400;font-size:12px}
tr.cl:hover{background:var(--bg3)}tr.cl a{color:var(--tx)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.dr{background:var(--rd)}.dg{background:var(--gn)}
.login{max-width:380px;margin:10vh auto;padding:0 16px;text-align:center}.login .card{text-align:left}
/* diagrammalar */
.cols{display:flex;align-items:flex-end;gap:10px;height:180px;padding-top:10px}.cols>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.cols .b{width:100%;max-width:56px;background:linear-gradient(var(--au),#a97a35);border-radius:4px 4px 0 0;min-height:2px}.cols small{color:var(--mu);font-size:11px;margin-top:6px}.cols em{font-style:normal;font-size:11px;margin-bottom:3px;white-space:nowrap}
.hb{margin:10px 0}.hb .t{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;gap:8px}.hb .tr{height:12px;background:var(--bg);border-radius:6px;overflow:hidden;display:flex}.hb .tr span{display:block;height:100%}
/* chek */
.rc{background:#fff;color:#111;padding:16px;border:1px dashed #555;margin:12px 0;display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap;border-radius:6px}
.rc h3{margin:0 0 6px;color:#0b1220}.rc .ln{margin:2px 0;font-size:14px}.rc .ln span{color:#666}.rc svg{width:120px;height:120px}
@media (max-width:600px){.cube{width:62px;height:56px;font-size:16px}.fl>span{width:44px}}
@media print{body{background:#fff}header,nav,.np{display:none!important}main{padding:0}.rc{page-break-inside:avoid;margin:0 0 20px}}

.logo{height:54px;width:auto;display:block}.login .logo{height:auto;width:min(320px,80%);margin:0 auto 10px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}.tabs a{border:1px solid var(--ln);color:var(--mu);padding:6px 12px;border-radius:6px}.tabs a.on{border-color:var(--au);color:var(--au)}
.cw{position:relative}.cw input[type=checkbox]{position:absolute;top:3px;left:3px;width:16px;height:16px;padding:0;margin:0;z-index:2}
.cube{position:relative}.dd{position:absolute;top:5px;right:5px;width:10px;height:10px;border-radius:50%;border:1px solid #fff8}.dd.dr{background:#ff6b6b}.dd.dg{background:#7dffb4}
.bulk{display:none;margin:8px 0;background:var(--bg3);padding:10px;border-radius:8px}.bulk.on{display:block}
.thumb{max-width:100%;max-height:260px;border-radius:8px;border:1px solid var(--ln);cursor:zoom-in;background:#fff}
.imgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
#lb{position:fixed;inset:0;background:#000d;display:none;align-items:center;justify-content:center;z-index:99;cursor:zoom-out;padding:16px}#lb img{max-width:100%;max-height:100%;background:#fff;border-radius:6px}
.err{color:#ff9a9a}.ok{color:#7dffb4}details>summary{cursor:pointer;color:var(--au);margin:4px 0}
.pimg{width:100%;max-height:160px;object-fit:cover;border-radius:8px;margin-bottom:10px;display:block}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}.kv div{background:var(--bg);padding:10px;border-radius:8px}.kv small{display:block;color:var(--mu)}.kv b{font-weight:600}
.badge{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:var(--rd);color:#fff;font-size:11px;font-weight:700;text-align:center;line-height:18px}
.pill{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;border:1px solid var(--ln)}
.pill.approved{border-color:var(--gn);color:#7dffb4}.pill.pending,.pill.draft{border-color:var(--yl);color:var(--yl)}.pill.cancelled{border-color:var(--rd);color:#ff9a9a}
.sr .lbl{flex:none;min-width:100px}.sr .rm{flex:none;min-width:0;width:40px}.sumbar{margin:10px 0;padding:10px 12px;border-radius:8px;background:var(--bg3)}.sumbar.ok{outline:1px solid var(--gn)}.sumbar.bad{outline:1px solid var(--rd)}
.qb{flex:none}.qb button{margin-right:4px}
tr.err td{color:#ff9a9a}tr.ok td:last-child{color:#7dffb4}
.vbox{max-width:480px;margin:6vh auto;padding:0 16px}.vstate{font-size:20px;font-weight:700;margin:10px 0}.vstate.ok{color:#7dffb4}.vstate.err{color:#ff9a9a}.vstate.warn{color:var(--yl)}
code.k{background:var(--bg);padding:2px 6px;border-radius:4px;color:var(--au);user-select:all}
.bell{position:relative;font-size:20px;padding:4px 6px;color:var(--tx)}.bell .badge{position:absolute;top:-4px;right:-8px}
a.who{color:var(--mu)}a.who:hover{color:var(--au)}
.ccard{background:var(--bg);border:1px solid var(--ln);border-radius:10px;padding:14px;margin:12px 0}.ccard b.big{font-size:18px}
.methods{display:flex;gap:8px;flex-wrap:wrap}.methods label{flex:1;min-width:100px;margin:0;border:1px solid var(--ln);border-radius:8px;padding:12px;text-align:center;color:var(--tx);cursor:pointer;font-size:15px}
.methods input{display:none}.methods input:checked+span{color:var(--au);font-weight:700}.methods label:has(input:checked){border-color:var(--au);background:var(--bg3)}
.quick button{margin:4px 4px 0 0}.warn{background:#3a2f12;border:1px solid var(--yl);padding:10px 14px;border-radius:8px;margin-bottom:12px}
.codes{font:16px/1.9 ui-monospace,monospace;columns:2;background:#fff;color:#111;padding:12px 16px;border-radius:8px}
tr.unread td{font-weight:600}.mini{font-size:12px}.rev{color:#ff9a9a}
.flash.good{background:#12301f;border-color:var(--gn)}
.ch-t{margin:0 0 8px;font-size:17px}.chart{position:relative;min-height:60px;width:100%}.chart svg{display:block;overflow:visible}
.chart .hit{cursor:pointer}.chart .hit:hover~*{}.chart text{font:11px system-ui,sans-serif;fill:var(--mu)}.chart text.v{fill:var(--tx);font-weight:600}
.tip{position:absolute;pointer-events:none;background:#0b1320;border:1px solid var(--ln);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.5;white-space:nowrap;z-index:5;box-shadow:0 4px 16px #0008;display:none}
.tip b{color:var(--tx)}.tip i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px}
.lgd{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--mu);margin-bottom:6px}.lgd i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.nodata{color:var(--mu);font-size:13px;padding:14px 0}
.ch2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.ch3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
/* ---------------- PWA / telefon ---------------- */
html{-webkit-tap-highlight-color:transparent}
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
header{padding-top:calc(12px + env(safe-area-inset-top))}
.hbtn{color:var(--tx);display:flex;align-items:center;padding:4px}
.only-m,#nav .sheet-h,.tabbar,#scrim{display:none}
.linkbtn{background:none;border:0;color:var(--tx);font:inherit;padding:0;cursor:pointer;text-align:left}.linkbtn.danger{color:#ff9a9a}
.hint{background:var(--bg3);border:1px solid var(--au);border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:14px;line-height:1.6}.hint .btn{margin-left:6px}
.hint .ico{display:inline-block;border:1px solid var(--mu);border-radius:4px;padding:0 4px;font-size:12px}.warnb{border-color:var(--yl)}
#camwrap{position:relative;max-width:420px;margin:0 auto 10px;border-radius:12px;overflow:hidden;background:#000}#cam{width:100%;display:block}
.aim{position:absolute;inset:18%;border:2px solid var(--au);border-radius:12px;box-shadow:0 0 0 999px #0006}
@media (max-width:760px){
  body.auth{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  header{padding:calc(8px + env(safe-area-inset-top)) 14px 8px;gap:8px}.logo{height:42px}
  .who,.hide-m{display:none}
  body.auth>nav#nav{display:none}
  body.auth.menu-open>nav#nav{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:85vh;overflow:auto;gap:0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));
    background:var(--bg2);border-top:1px solid var(--ln);border-radius:16px 16px 0 0;box-shadow:0 -10px 40px #000a}
  body.menu-open #scrim{display:block;position:fixed;inset:0;background:#0009;z-index:55}
  body.menu-open{overflow:hidden}
  #nav .sheet-h{display:flex;justify-content:space-between;align-items:center;padding:8px 0 10px;border-bottom:1px solid var(--ln);margin-bottom:4px}
  #nav a,#nav .linkbtn{display:block;padding:14px 4px;border:0;border-bottom:1px solid var(--ln);border-radius:0;font-size:16px;color:var(--tx);width:100%}
  #nav a.on{color:var(--au);border-color:var(--ln)}#nav form{margin:0}
  #nav .only-m{display:block}#nav .linkbtn[hidden]{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:#0b1320f2;border-top:1px solid var(--ln);
    padding:4px max(4px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .tabbar a,.tabbar button{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;background:none;border:0;color:var(--mu);font:500 11px system-ui,sans-serif;min-height:52px;justify-content:center}
  .tabbar .on{color:var(--au)}.tabbar .badge{position:absolute;top:2px;left:calc(50% + 6px);font-style:normal}
  main{padding:14px 14px 28px}
  input,select,textarea{font-size:16px}                          /* iOS: fokusda kattalashib ketmasligi uchun */
  .btn{min-height:42px;padding:10px 16px}.btn.s{min-height:34px;padding:6px 12px;font-size:13px}
  h2{font-size:21px}.top{gap:8px}.stats{grid-template-columns:1fr 1fr;gap:8px}.stat b{font-size:17px}
  .card{padding:14px}
}
@media (display-mode: standalone){ .hide-standalone{display:none!important} }
