:root{font:14px "Inter",system-ui,sans-serif;color:#252842;background:#ecf0f5;--blue:#0846b9;--deep:#073799;--line:#dfe4ec;--muted:#657285}
*{box-sizing:border-box}
body{margin:0}
button,input,select,textarea{font:inherit}
button,a,summary{cursor:pointer}
a{color:var(--blue);text-decoration:none}
button{color:#25324a;background:#fff;border:1px solid #cfd7e3;border-radius:5px;padding:8px 12px}
button:hover{filter:brightness(.96)}
input,select,textarea{width:100%;min-height:36px;padding:7px 9px;border:1px solid #cfd7e3;border-radius:5px;background:#fff;color:inherit}
input[type=checkbox]{width:auto;min-height:0}
h1{font-size:24px;margin:0 0 18px} h3{font-size:16px;margin:0} h1 small{font-weight:400;color:var(--muted);font-size:.58em;margin-left:7px}
aside{position:fixed;inset:0 auto 0 0;width:250px;background:white;z-index:8;overflow:auto;border-right:1px solid #edf0f5}
.brand{height:60px;display:flex;gap:5px;align-items:center;justify-content:center;background:var(--blue);color:white;font-size:18px;font-weight:650}
.online{width:11px;height:11px;border-radius:50%;background:#45c47c}
.menu-search{position:relative;margin:8px 12px 10px}.menu-search span{position:absolute;top:8px;left:11px;color:#8a97a8}.menu-search input{padding-left:36px;background:#eef1f5;border-color:#e8ebf0}
nav{padding:0 8px 16px}nav button,nav a{width:100%;display:flex;align-items:center;gap:11px;margin:3px 0;padding:7px 12px;border:0;background:white;text-align:left;color:#626b7a;border-radius:8px;min-height:32px}nav b{margin-left:auto;font-weight:400}nav i{font-style:normal;color:#8997aa;width:17px;font-size:17px;text-align:center}nav .active{color:#1259c7;background:#dce8ff}nav a:hover,nav button:hover{background:#edf3fc}nav .sub a{padding-left:36px}
#shell{margin-left:250px;min-height:100vh;display:flex;flex-direction:column}
header{position:sticky;top:0;z-index:4;height:61px;display:flex;align-items:center;gap:9px;padding:0 18px;background:linear-gradient(90deg,var(--blue),var(--deep));border-bottom:1px solid #ffffff20;color:white}
header .spacer,.spacer{flex:1}header button,header a{background:#ffffff0d;color:white;border:1px solid #ffffff16;min-width:34px;padding:6px 11px;border-radius:8px;display:inline-block;text-align:center}
header details{position:relative}summary{list-style:none}header summary{padding:7px 12px;background:#ffffff0d;border-radius:8px}header details .dropdown{right:0;top:39px}
.dropdown{position:absolute;z-index:5;min-width:165px;padding:6px;background:white;color:#252842;border:1px solid var(--line);box-shadow:0 8px 24px #15274d24;border-radius:6px}
.dropdown button,.dropdown a{display:block;width:100%;text-align:left;border:0;background:#fff;color:#293549}
main{flex:1;padding:22px 20px}main.home{padding-top:0}.welcome{background:linear-gradient(90deg,var(--blue),var(--deep));color:white;margin:0 -20px 22px;padding:24px 20px 48px}.welcome h1{margin:0}
footer{padding:15px 20px;color:#657285;background:#fff;border-top:1px solid var(--line)}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:19px;padding:16px;min-width:0}.card-title{display:flex;align-items:center;gap:10px;margin-bottom:16px}.glyph{border:1px solid var(--line);border-radius:50%;width:39px;height:39px;display:grid;place-items:center;color:#12a1d0}
.chartbox{position:relative;border:1px solid #edf0f5;border-radius:8px;padding:32px 10px 8px;overflow:hidden}.chartbox canvas{width:100%;display:block}.legend{position:absolute;top:28px;right:23px;font-weight:600}.legend b{color:#82b4db}.chart-menu{position:absolute;top:5px;right:11px}.chart-menu button{border:0;padding:3px 5px}.chart-menu .dropdown{right:0}
.dashboard-grid,.grid{display:grid;gap:17px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.form-grid label{display:grid;align-content:start;gap:5px;font-weight:550}.form-grid label span{font-weight:400}.form-grid label:has(input[type=checkbox]){display:flex;align-items:center}
.filters>summary{font-weight:600;color:#1758b9}.filters[open]>summary{margin-bottom:16px}
.row,.actions,.table-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.table-controls{margin:9px 0}.table-controls select,.table-controls input,.row select,.row input{width:auto;max-width:100%}
.primary{background:#1260d6;color:white;border-color:#1260d6}.success{background:#169a63;color:white;border-color:#169a63}.danger{background:#dc4353;color:white;border-color:#dc4353}
.scroll{overflow:auto}.scroll table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:10px;border:1px solid var(--line);text-align:left}th{background:#f8fafd;font-weight:650}td input{min-width:78px}.empty{text-align:center;color:var(--muted)}.table-footer{margin-top:12px}
.align-right{justify-content:flex-end}.mt{margin-top:16px}.muted{color:var(--muted)}
.pos #sidebar,.pos footer{display:none}.pos #shell{margin-left:0}.pos main{padding-top:12px}.pos-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px}.pos-actions{position:sticky;bottom:0;background:#fff;padding:12px;border:1px solid var(--line);z-index:3}.totals{margin:12px 0;display:grid;gap:7px;text-align:right}.totals strong{font-size:19px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(106px,1fr));gap:6px}.tiles button{min-height:60px}
dialog{max-width:min(750px,94vw);width:100%;border:0;border-radius:10px;padding:20px;box-shadow:0 15px 50px #0004;color:inherit}dialog::backdrop,#shade{background:#07183166}#status{position:fixed;bottom:16px;right:16px;z-index:20;background:#172c44;color:white;padding:10px 16px;border-radius:8px}#status:empty,#shade{display:none}
body.collapsed aside{transform:translateX(-100%)}body.collapsed #shell{margin-left:0}
@media(max-width:980px){aside{transform:translateX(-100%);transition:transform .18s}#shell{margin-left:0}body.open aside{transform:none}body.open #shade{display:block;position:fixed;inset:0;z-index:7}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:690px){main{padding:20px 18px}.welcome{margin-inline:-18px;padding-inline:18px}.form-grid,.pos-grid,.grid{grid-template-columns:1fr}header{gap:6px}.pos-grid .catalog{order:2}}
@media print{aside,header,footer,.actions,.table-controls,.filters,#status,button{display:none!important}#shell{margin:0}body,main{background:white}body:has(dialog[open]) #shell{display:none}dialog[open]{position:static;display:block;max-width:none;box-shadow:none}}
[hidden]{display:none!important}
.add-link{padding:8px 13px;border-radius:5px}
.scroll th button{border:0;padding:0;background:none;font-weight:inherit;color:inherit;text-align:left}
.columns>summary{padding:8px 12px;border:1px solid #cfd7e3;border-radius:5px}
.label-sheet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.label-sheet article{border:1px dashed #a5aab2;padding:12px;text-align:center;break-inside:avoid}
.card-title>select{max-width:180px}
body.signed-out #sidebar,body.signed-out header,body.signed-out footer{display:none}
body.signed-out #shell{margin-left:0}
body.signed-out main{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#edf3fd,#dfeaff)}
.login-card{width:min(100%,420px);padding:28px}
.login-card form,.login-card label{display:grid;gap:8px}
.login-card form{gap:14px}
#login-error,#save-error{color:#a9233d}
#save-error{padding:10px 20px;background:#fff0f3;font-weight:600}
.ui-icon{width:19px;height:19px;display:inline-block;vertical-align:middle;flex:none}
nav .ui-icon{color:#8997aa}
nav .active .ui-icon{color:inherit}
nav b .ui-icon,.menu-search .ui-icon{width:15px;height:15px}
header summary{border:1px solid #ffffff16;border-radius:8px;padding:6px 10px}
header .desktop-toggle{display:inline-block}
header .mobile-toggle{display:none}
@media(max-width:980px){header .desktop-toggle{display:none}header .mobile-toggle{display:inline-block}}
