:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#221c35;background:#f6f5fa;font-size:14px;--ink:#221c35;--muted:#685f7b;--line:#e7e2ef;--accent:#5d39ca;--soft:#eee9ff;--side:#181329}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}a{color:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8563f2;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.85rem,3.6vw,2.65rem);letter-spacing:-.06em;line-height:1.07;margin-bottom:9px}h2{font-size:1.22rem;letter-spacing:-.025em;margin-bottom:8px}h3{font-size:1rem;margin-bottom:7px}p{line-height:1.55}.muted,small{color:var(--muted)}.mono,.num{font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,Consolas,monospace}.skip{position:absolute;top:-99px;left:10px;z-index:10;background:white;padding:12px}.skip:focus{top:10px}
.shell{min-height:100vh;display:grid;grid-template-columns:226px minmax(0,1fr)}.rail{background:var(--side);color:#e3dcfa;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:25px 17px 19px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff;font-size:1.32rem;letter-spacing:-.045em;font-weight:770;margin:4px 7px 33px}.brand small{display:block;margin-top:2px;font-size:9px;letter-spacing:.15em;color:#c9b5fe}.nav-group{display:block;margin:0 0 9px 12px;color:#a89abb;font-size:10px;font-weight:750;letter-spacing:.14em;text-transform:uppercase}.nav-link{min-height:43px;border-radius:8px;display:flex;gap:11px;align-items:center;text-decoration:none;padding:9px 12px;margin:2px 0;color:#dad1ec;font-weight:600;font-size:.9rem}.nav-link:hover,.nav-link[aria-current]{background:#30234d;color:#fff}.nav-link[aria-current]{box-shadow:inset 3px 0 #bcaaff}.nav-link svg{width:17px;height:17px;color:#baa7ef;flex:none}.rail-foot{margin-top:auto;font-size:11px;color:#c1b6d7;padding:12px 9px 0;line-height:2;border-top:1px solid #3a304c}.rail-foot a{text-decoration:none;color:#e1d5ff}.live-dot{display:inline-block;background:#a3e8c5;width:6px;height:6px;border-radius:50%;margin-right:4px}
.workspace{min-width:0}.top{min-height:70px;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px clamp(14px,3.2vw,44px)}.top strong{display:block;font-size:1.05rem}.top small{display:block;font-size:.78rem;margin-top:4px}.top-actions,.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-label{font-size:.78rem;color:var(--muted);white-space:nowrap}.top select{width:auto}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:8px;font-size:20px}.icon-button:hover{background:var(--soft)}
main{max-width:1490px;margin:auto;padding:26px clamp(14px,3.2vw,44px) 20px;outline:none}footer{text-align:center;font-size:.76rem;color:var(--muted);padding:10px 14px 24px}.heading,.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:13px;flex-wrap:wrap}.heading{margin-bottom:20px}.heading p,.panel-head p{margin-bottom:0;color:var(--muted)}.eyebrow{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:790;color:#6748bb;margin-bottom:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 13px;border-radius:8px;border:1px solid var(--line);background:white;color:var(--ink);text-decoration:none;font-weight:690;font-size:.85rem;text-align:center}.button:hover{background:#f1edfb}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#4d2cac}.link{display:inline;border:0;background:none;color:#5030aa;font-weight:750;padding:0;text-align:left;text-decoration:underline;text-underline-offset:3px}.quiet{font-weight:650;color:#554975}.warn-button{color:#952b4b}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric,.panel,.card{background:white;border:1px solid var(--line);border-radius:13px}.metric{padding:14px 16px}.metric-top{display:flex;justify-content:space-between;align-items:center;gap:6px;color:var(--muted);font-size:.83rem;font-weight:640}.metric svg{width:18px;height:18px;color:#7358c6}.metric strong{display:block;font-size:clamp(1.35rem,2.5vw,2rem);letter-spacing:-.05em;margin:7px 0 2px}.metric small{font-size:.75rem}.panel{margin-bottom:16px;min-width:0}.panel-head{padding:16px 17px 13px}.panel-body{padding:0 17px 17px}.callout{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 19px;margin-bottom:16px;border-radius:12px;background:#eae2ff;border:1px solid #ded0ff;color:#382169}.callout p{margin:0;font-size:.86rem}.callout h2{margin:0 0 4px}.callout .eyebrow{margin:0 0 5px}.layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(245px,1fr);gap:15px;align-items:start}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card{padding:16px}.card p{margin:7px 0}.card dl{margin-bottom:12px}
.scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.86rem}th,td{padding:11px 13px;vertical-align:middle}th{color:#5d536e;background:#f8f6fb;font-size:.72rem;font-weight:740;text-transform:uppercase;letter-spacing:.065em;white-space:nowrap}td{border-top:1px solid #eeeaf3}tbody tr:hover{background:#fbf9ff}.empty{padding:23px 17px;color:var(--muted);text-align:center}.tag{display:inline-block;white-space:nowrap;line-height:1.3;font-weight:720;font-size:.73rem;color:#51368b;background:#efe8ff;border-radius:99px;padding:4px 8px}.tag.ok{color:#176041;background:#e4f4ed}.tag.warn{color:#88401d;background:#fff0d8}.tag.gray{color:#5c526a;background:#eeebf3}.stack{display:flex;flex-direction:column;gap:8px}.stack-item{padding:10px 11px;background:#f8f6fc;border-radius:8px;display:flex;justify-content:space-between;gap:8px;align-items:center}.stack-item small{display:block;margin-top:3px}.steps{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));gap:5px;padding:10px 12px 14px;min-width:575px}.step{padding:8px 6px;background:#f4f1f8;border-radius:7px;color:#625870;font-size:.72rem;font-weight:650}.step.done{background:#f0ebff;color:#52329f}.step.now{background:#dcd0ff;color:#391b7c}.step span{display:block;margin-bottom:4px}.alert{padding:11px 12px;margin:8px 0 12px;border-left:3px solid #b47126;background:#fff4df;color:#743d1d;border-radius:5px}.fine{font-size:.8rem}.bare{margin:0}.history{margin:0;padding-left:20px}.history li{padding:6px 0}.history small{display:block;margin-top:3px}.keylist{display:grid;grid-template-columns:auto 1fr;gap:6px 11px;margin:0 0 12px}.keylist dt{color:var(--muted)}.keylist dd{margin:0;font-weight:630;overflow-wrap:anywhere}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filters input{width:min(280px,100%)}.filters select{width:auto}
input,select,textarea{width:100%;border:1px solid #d8d0e6;border-radius:7px;min-height:38px;padding:7px 9px;background:#fff;color:var(--ink)}textarea{resize:vertical;min-height:80px}label.field{font-weight:650;display:grid;gap:5px;margin-bottom:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.count-row{display:grid;grid-template-columns:1fr minmax(70px,105px);gap:11px;align-items:center;margin-bottom:8px}.count-row small{display:block}.form-note{color:var(--muted);font-size:.85rem;margin-bottom:12px}.error{color:#9a2042;margin:8px 0;font-size:.87rem}.error:empty{display:none}dialog{border:1px solid var(--line);border-radius:16px;max-height:88vh;max-width:calc(100vw - 22px);width:560px;padding:0;color:var(--ink);box-shadow:0 22px 70px #21184244}dialog::backdrop{background:#1813299e}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border-bottom:1px solid var(--line);background:#f7f3ff}.dialog-head h2{margin:0}.dialog-body{padding:16px 17px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:13px}.invoice-paper{padding:16px}.invoice-paper .panel-head{padding:0 0 15px}.invoice-paper table{margin:15px 0}.invoice-paper p{margin-bottom:4px}#notice{position:fixed;right:15px;bottom:15px;max-width:calc(100% - 30px);padding:11px 15px;border-radius:9px;background:#241839;color:white;box-shadow:0 5px 24px #23173733;z-index:3}#notice:empty{display:none}
@media(max-width:1120px){.shell{grid-template-columns:184px minmax(0,1fr)}.rail{padding-inline:11px}.layout{grid-template-columns:minmax(0,1fr)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:670px){.shell{display:block}.rail{position:static;height:auto;padding:11px 13px 7px}.brand{margin:0 0 6px;font-size:1.13rem}.brand img{width:32px;height:32px}.rail nav{display:flex;overflow:auto;gap:4px;padding-bottom:3px}.nav-group,.rail-foot,.role-label{display:none}.nav-link{white-space:nowrap;min-height:35px;font-size:.79rem;padding:6px 9px;gap:6px}.nav-link svg{width:14px;height:14px}.top{min-height:57px}.top small{font-size:.71rem}.top-actions{gap:5px}.top select{max-width:112px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.metric{padding:10px}.callout{align-items:flex-start;flex-direction:column}.cards{grid-template-columns:1fr}th,td{padding:9px 10px}}
@media print{.rail,.top,footer,main,#notice,.dialog-head,.dialog-actions,.skip{display:none!important}.shell{display:block}dialog[open]{display:block;position:static;width:auto;max-width:none;max-height:none;margin:0;border:0;box-shadow:none}dialog::backdrop{background:white}.invoice-paper{padding:0}}
