:root{--bg:#141416;--panel:#1e1e21;--line:#34343a;--gold:#d4af37;--gold2:#f1d78a;--txt:#ece8df;--mut:#a39f95;--err:#ff7b6b;--ok:#7bd88f}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--gold2)}h1{font-size:1.35rem;color:var(--gold2);margin:.4rem 0 1rem}h3{color:var(--gold);font-size:1rem;margin:1.2rem 0 .4rem}
.sandbox{background:repeating-linear-gradient(45deg,#5a1d1d,#5a1d1d 12px,#6b2424 12px,#6b2424 24px);color:#fff;text-align:center;font-weight:700;padding:.35rem;font-size:.85rem;letter-spacing:.03em}
.live{background:#1d3b25;color:#fff;text-align:center;padding:.3rem;font-size:.85rem}
.top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;background:linear-gradient(#202024,#18181b);border-bottom:1px solid #3b3320;flex-wrap:wrap}
.lw,.rw{display:flex;align-items:center;gap:.5rem}.alogo{height:42px;width:42px;border-radius:8px}.clogo{height:36px;max-width:120px;object-fit:contain}.clogo.big{height:64px;display:block;margin:.4rem 0}
.div{color:#6b5a2a;font-size:1.6rem}.cname{font-weight:600}.beta{background:var(--gold);color:#111;border-radius:4px;padding:0 .35rem;font-size:.7rem;font-weight:800}
select,input,textarea,button,.btn{font:inherit;color:var(--txt);background:#121214;border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem}
textarea{width:100%;min-height:4rem}button,.btn{background:linear-gradient(135deg,#b8902c,#e8c76a);color:#16130a;border:0;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}
.ghost{background:transparent;color:var(--gold2);border:1px solid #5b4b22}.sm{padding:.2rem .5rem;font-size:.8rem}.inline{display:inline}
.wrap{display:flex;min-height:calc(100vh - 120px)}.side{width:220px;padding:.75rem;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.1rem;flex-shrink:0}
.side a{text-decoration:none;color:var(--txt);padding:.3rem .5rem;border-radius:6px;font-size:.92rem}.side a:hover{background:#2a2618;color:var(--gold2)}.navh{color:var(--gold);font-size:.72rem;text-transform:uppercase;margin:.6rem .5rem .1rem;letter-spacing:.08em}
main{flex:1;padding:1rem 1.25rem;min-width:0}.modebar{color:var(--mut);font-size:.82rem;margin-bottom:.3rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;margin-bottom:1rem}
.grid2,.grid3{display:grid;gap:.7rem}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--mut)}label.chk{flex-direction:row;align-items:center;gap:.45rem;color:var(--txt)}
.full{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}legend{color:var(--gold)}
.row{display:flex;gap:.5rem;flex-wrap:wrap;margin:.6rem 0}
.tw{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{border-bottom:1px solid var(--line);padding:.35rem .5rem;text-align:left;vertical-align:top}th{color:var(--gold);font-weight:600;white-space:nowrap}
td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}td.empty,.empty{color:var(--mut);font-style:italic}.empty.big{font-size:1.05rem}
table.lines input,table.lines select{width:100%;min-width:4.5rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.7rem}.kpi{background:var(--panel);border:1px solid #3b3320;border-radius:12px;padding:.8rem}.kpi span{color:var(--mut);font-size:.8rem;display:block}.kpi b{font-size:1.3rem;color:var(--gold2)}.kpi small{display:block;color:var(--mut);font-size:.72rem}
.flash{padding:.6rem .8rem;border-radius:8px;margin:.5rem 0}.flash.ok{background:#16301d;color:var(--ok)}.flash.err,.err{color:var(--err)}.flash.err{background:#3a1b18}.flash.warn{background:#3a3114;color:#f3dc8a}
.muted{color:var(--mut);font-size:.85rem}.totals{font-weight:600}.tag{display:inline-block;background:#2a2618;border-radius:6px;padding:0 .4rem;font-size:.8rem;margin:.1rem}
.foot{display:flex;align-items:center;gap:.5rem;justify-content:center;color:var(--mut);font-size:.8rem;padding:1rem;border-top:1px solid var(--line)}.foot img{height:20px;border-radius:4px}
.bare{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login{width:min(360px,100%);display:flex;flex-direction:column;gap:.7rem;text-align:center}.loginlogo{width:120px;margin:0 auto;border-radius:16px}
.dochead{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.right{text-align:right}.doc{position:relative}.watermark{color:#ff9b8b;font-weight:800;border:2px dashed #a33;padding:.3rem;text-align:center;margin-bottom:.5rem}
.navtoggle{display:none}.rephead{margin-bottom:.5rem}.repfoot{color:var(--mut);font-size:.75rem}
@media (max-width:860px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.side{display:none;position:absolute;background:var(--panel);z-index:5;height:auto}.side.open{display:flex}.navtoggle{display:inline-block}.top .rw .btn.ghost{display:none}}
@media (max-width:560px){.grid2,.grid3,fieldset{grid-template-columns:1fr}.top{padding:.4rem .6rem}.cw select{max-width:100%}main{padding:.7rem}}
@media print{body{background:#fff;color:#000}.top,.side,.foot,.noprint,.modebar,.sandbox,.live,h1{display:none!important}main{padding:0}th{color:#000}th,td{border-color:#999}.card{border:0}.kpi b{color:#000}a{color:#000}.watermark{color:#a00}@page{size:A4;margin:12mm}}

/* busy indicator (performance update) */
.busy{position:fixed;left:50%;top:12px;transform:translateX(-50%);z-index:1000;display:flex;align-items:center;gap:10px;background:#1f1f1f;color:#fff;border:1px solid #c9a227;border-radius:999px;padding:8px 16px;font-size:14px;box-shadow:0 4px 16px rgba(0,0,0,.25);max-width:calc(100vw - 24px)}
.busy[hidden]{display:none}
.busy .spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#c9a227;border-radius:50%;animation:aura-spin .8s linear infinite;flex:none}
@keyframes aura-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.busy .spin{animation:none;border-top-color:rgba(255,255,255,.35);background:#c9a227}}
@media print{.busy{display:none!important}}
.changelog{width:min(640px,100%)}.changelog h2 small{font-weight:400;opacity:.7;font-size:.8em}.loginver{text-align:center;font-size:.85rem;opacity:.8;margin:0}
.loginwrap{position:fixed;inset:0;overflow:auto;background:#161616;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;color:#ddd}
.login.lx{width:min(460px,100%);background:#1f1f20;border:1px solid #333;border-radius:18px;padding:1.6rem 1.5rem;display:flex;flex-direction:column;gap:.55rem;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.45)}
.lx-logo{width:100%;max-width:360px;height:auto;margin:0 auto .4rem;display:block}
.lx-ver{margin:.2rem 0 .6rem;font-size:1rem;color:#d9b24a;font-weight:600}.lx-beta{background:#d9b24a;color:#1a1a1a;border-radius:6px;padding:.1rem .5rem;margin-right:.3rem;font-weight:800}
.login.lx label{color:#aaa;font-size:1rem;margin-top:.3rem}
.login.lx input:not([type=hidden]){width:100%;box-sizing:border-box;background:#121214;color:#eee;border:1px solid #3a3a3c;border-radius:12px;padding:.85rem 1rem;font-size:1.05rem}
.login.lx input:focus{outline:2px solid #d9b24a;outline-offset:1px}
.lx-btn{margin-top:.6rem;width:100%;border:0;border-radius:12px;padding:.85rem;font-size:1.1rem;font-weight:700;color:#1a1a1a;background:linear-gradient(90deg,#b8902e,#e6c46a);cursor:pointer}.lx-btn:focus-visible{outline:2px solid #fff}
.login.lx .err{color:#ff8a80}.login.lx .loginver a{color:#d9b24a}
