@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff")}:root{--bg:#0a0f1a;--panel:#0e1626;--card:#131e33;--card-2:#17253e;--line:#23324f;--line-soft:#1b2943;--txt:#e8eef9;--txt-2:#9db0ce;--txt-3:#6d809f;--brand:#4fa3e0;--green:#22c55e;--blue:#3b82f6;--amber:#f59e0b;--red:#ef4444;--violet:#a855f7;--cyan:#06b6d4;--slate:#64748b;--r:12px;--r-sm:8px;--shadow:0 10px 30px #00000059;--body:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;--line-strong:#3a5286;--hover:#1d2e4d;--nav-active:#1b2c4a;--txt-strong:#fff;--ok-txt:#7ee8ac;--bad-txt:#fca5a5;--warn-txt:#fbd38d;--info-txt:#9cc0fc;--cyan-txt:#7dd8e8;--topbar:#0a0f1ae6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f4f6fa;--panel:#fff;--card:#fff;--card-2:#f1f4f9;--line:#d5dde8;--line-soft:#e7ecf3;--line-strong:#b6c3d6;--hover:#eef2f8;--nav-active:#e3ebfa;--txt:#0f172a;--txt-2:#475569;--txt-3:#64748b;--txt-strong:#0b1220;--brand:#1f6fb2;--shadow:0 8px 24px #0f172a14;--ok-txt:#15803d;--bad-txt:#b91c1c;--warn-txt:#b45309;--info-txt:#1d4ed8;--cyan-txt:#0e7490;--topbar:#ffffffe6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--txt);font-family:var(--body);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-size:14px;line-height:1.5}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line);border:2px solid var(--bg);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--line-strong)}.app{grid-template-columns:250px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--line-soft);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:18px 18px 16px;display:flex}.brand-mark{color:#2a0f18;letter-spacing:-.5px;background:linear-gradient(145deg,#e58ba2,#a8466a);border-radius:10px;flex:0 0 36px;place-items:center;width:36px;height:36px;font-size:15px;font-weight:800;display:grid}.brand-name{letter-spacing:.5px;font-size:14px;font-weight:700}.brand-sub{color:var(--txt-3);letter-spacing:1.6px;text-transform:uppercase;margin-top:1px;font-size:10px}.nav{flex:1;padding:10px 10px 20px;overflow-y:auto}.nav-group{letter-spacing:1.4px;text-transform:uppercase;color:var(--txt-3);margin:14px 8px 6px;font-size:10px;font-weight:600}.nav-item{width:100%;color:var(--txt-2);text-align:left;border-radius:9px;align-items:center;gap:11px;padding:9px 11px;font-size:13.5px;transition:all .15s;display:flex;position:relative}.nav-item:hover{color:var(--txt);background:#16233a}.nav-item.active{background:var(--nav-active);color:var(--txt-strong);font-weight:600}.nav-item.active:before{content:"";background:var(--brand);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:0}.nav-item svg{opacity:.85;flex:0 0 17px;width:17px;height:17px}.nav-badge{color:#bfd0ec;background:#2a3a5c;border-radius:20px;margin-left:auto;padding:1px 7px;font-size:10.5px;font-weight:600}.nav-badge.alert{color:var(--bad-txt);background:#ef44442e}.sidebar-foot{border-top:1px solid var(--line-soft);padding:12px}.ai-status{background:var(--card);border:1px solid var(--line-soft);border-radius:10px;align-items:center;gap:10px;padding:10px 11px;display:flex}.ai-dot{background:var(--green);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #22c55e26}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:40;background:var(--topbar);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 22px;display:flex;position:sticky;top:0}.page-title{letter-spacing:-.2px;font-size:19px;font-weight:700}.page-sub{color:var(--txt-3);margin-top:1px;font-size:12px}.search{background:var(--card);border:1px solid var(--line);min-width:230px;color:var(--txt-3);border-radius:9px;align-items:center;gap:8px;margin-left:auto;padding:7px 12px;display:flex}.search input{width:100%;color:var(--txt);background:0 0;border:none;outline:none;font-size:13px}.date-chip{border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;padding:4px 12px;line-height:1.25;display:flex}.date-chip b{font-size:13px}.date-chip span{color:var(--txt-3);font-size:11px}.role-switch{background:var(--card);border:1px solid var(--line);border-radius:9px;gap:2px;padding:3px;display:flex}.role-switch button{color:var(--txt-2);white-space:nowrap;border-radius:7px;padding:6px 12px;font-size:12.5px}.role-switch button.on{background:var(--brand);color:#2a0f18;font-weight:700}.icon-btn{background:var(--card);border:1px solid var(--line);width:36px;height:36px;color:var(--txt-2);border-radius:9px;place-items:center;display:grid;position:relative}.icon-btn:hover{color:var(--txt);border-color:#31456b}.icon-btn .dot{background:var(--red);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.user-chip{align-items:center;gap:9px;display:flex}.avatar{background:linear-gradient(145deg,var(--line-strong),var(--line-soft));color:#c6d6f2;border:1px solid var(--line);border-radius:50%;place-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:grid}.view{flex:1;padding:20px 22px 40px}.grid{gap:14px;display:grid}.g-kpi{grid-template-columns:repeat(auto-fit,minmax(178px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.g-main{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr)}.card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:16px}.card-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-title{font-size:14.5px;font-weight:650}.card-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.muted{color:var(--txt-3)}.small{font-size:12px}.label{letter-spacing:1.2px;text-transform:uppercase;color:var(--txt-3);font-size:10.5px;font-weight:600}.kpi-val{letter-spacing:-.6px;margin:6px 0 2px;font-size:26px;font-weight:700;line-height:1.1}.kpi-ico{border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.delta{font-size:11.5px;font-weight:600}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.btn{background:var(--card-2);border:1px solid var(--line);color:var(--txt);white-space:nowrap;border-radius:9px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn:hover{border-color:var(--line-strong);background:var(--hover)}.btn-p{background:var(--blue);border-color:var(--blue);color:#fff}.btn-p:hover{background:#2563eb;border-color:#2563eb}.btn-g{background:var(--green);border-color:var(--green);color:#04240f}.btn-g:hover{background:#16a34a;border-color:#16a34a}.btn-gold{background:var(--brand);border-color:var(--brand);color:#2a0f18}.btn-gold:hover{background:#c4647e}.btn-ghost{background:0 0}.btn-sm{border-radius:7px;padding:5px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.badge{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.b-green{color:var(--ok-txt);background:#22c55e26}.b-blue{color:var(--info-txt);background:#3b82f629}.b-amber{color:var(--warn-txt);background:#f59e0b26}.b-red{color:var(--bad-txt);background:#ef444426}.b-violet{color:#d8b4fe;background:#a855f729}.b-slate{color:#b4c2d6;background:#64748b33}.b-cyan{color:var(--cyan-txt);background:#06b6d429}table{border-collapse:collapse;width:100%}th{text-align:left;letter-spacing:1px;text-transform:uppercase;color:var(--txt-3);border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:8px 10px;font-size:10.5px;font-weight:600}td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:10px;font-size:13px}tbody tr:hover td{background:#ffffff05}tbody tr:last-child td{border-bottom:none}.tbl-wrap{margin:0 -16px -16px;padding:0 16px 4px;overflow-x:auto}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.list-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:10px 0;display:flex}.list-row:last-child{border-bottom:none}.dot-ico{border-radius:8px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:13px;display:grid}.progress{background:var(--line-soft);border-radius:6px;height:6px;overflow:hidden}.progress i{background:var(--green);border-radius:6px;height:100%;display:block}.tabs{background:var(--panel);border:1px solid var(--line-soft);border-radius:10px;gap:4px;padding:4px;display:flex;overflow-x:auto}.tabs button{color:var(--txt-2);white-space:nowrap;border-radius:7px;padding:7px 13px;font-size:12.5px}.tabs button.on{background:var(--card-2);color:var(--txt-strong);font-weight:600}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--txt-3);letter-spacing:.4px;font-size:11px;font-weight:600}.field input,.field select,.field textarea{background:var(--panel);border:1px solid var(--line);border-radius:8px;outline:none;width:100%;padding:9px 11px;font-size:13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}.field input[readonly]{color:var(--txt-2)}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{border:1px solid var(--line);background:var(--panel);color:var(--txt-2);border-radius:8px;padding:7px 12px;font-size:12.5px}.seg button.on{border-color:var(--blue);color:var(--info-txt);background:#3b82f624;font-weight:600}.chk{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:9px;align-items:center;gap:9px;padding:9px 11px;font-size:13px;display:flex}.chk.on{border-color:var(--green);background:#22c55e14}.chk .box{border:1.5px solid var(--line);color:#04240f;border-radius:5px;flex:0 0 17px;place-items:center;width:17px;height:17px;font-size:11px;display:grid}.chk.on .box{background:var(--green);border-color:var(--green)}.empty{text-align:center;color:var(--txt-3);padding:34px;font-size:13px}.divider{background:var(--line-soft);height:1px;margin:14px 0}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#04080fb8;place-items:center;padding:20px;animation:.18s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;width:min(920px,100%);max-height:90vh;animation:.2s pop;display:flex}.modal.wide{width:min(1120px,100%)}.modal.narrow{width:min(560px,100%)}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.modal-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:16px 18px;display:flex}.modal-body{padding:18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line-soft);justify-content:flex-end;align-items:center;gap:10px;padding:14px 18px;display:flex}.stepper{gap:6px;padding:0 18px 14px;display:flex}.step{flex-direction:column;flex:1;gap:6px;display:flex}.step i{background:var(--line);border-radius:3px;height:3px;display:block}.step.done i{background:var(--green)}.step.on i{background:var(--blue)}.step span{color:var(--txt-3);letter-spacing:.3px;font-size:10.5px}.step.on span{color:var(--info-txt);font-weight:600}.step.done span{color:var(--ok-txt)}#toast-root{z-index:200;flex-direction:column;gap:9px;max-width:360px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--card-2);border:1px solid var(--line);border-left:3px solid var(--green);box-shadow:var(--shadow);border-radius:10px;padding:12px 14px;font-size:13px;animation:.22s slide}.toast.info{border-left-color:var(--blue)}.toast.warn{border-left-color:var(--amber)}.toast.err{border-left-color:var(--red)}@keyframes slide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.tile{background:var(--card-2);border:1px solid var(--line-soft);border-radius:10px;padding:12px}.tile.click{cursor:pointer;transition:all .15s}.tile.click:hover{border-color:var(--line-strong);transform:translateY(-1px)}.slot{text-align:center;border:1px solid var(--line-soft);background:var(--panel);cursor:pointer;border-radius:7px;padding:7px 4px;font-size:11.5px}.slot.busy{color:var(--info-txt);cursor:default;background:#3b82f624;border-color:#3b82f64d}.slot.free:hover{border-color:var(--green);color:var(--ok-txt)}.slot.sel{background:var(--green);color:#04240f;border-color:var(--green);font-weight:700}.hbar{background:var(--line-soft);border-radius:8px;height:8px;display:flex;overflow:hidden}.hbar i{height:100%;display:block}.mini{color:var(--txt-3);font-size:11.5px}.alert-row{background:var(--card-2);border:1px solid var(--line-soft);border-radius:10px;align-items:flex-start;gap:11px;padding:11px;display:flex}.alert-row.crit{border-left:3px solid var(--red)}.alert-row.warn{border-left:3px solid var(--amber)}.alert-row.info{border-left:3px solid var(--blue)}.pill-tab{border:1px solid var(--line);color:var(--txt-2);border-radius:20px;padding:5px 11px;font-size:12px}.pill-tab.on{background:var(--card-2);border-color:var(--line-strong);color:#fff;font-weight:600}.kv{border-bottom:1px dashed var(--line-soft);justify-content:space-between;gap:12px;padding:7px 0;font-size:13px;display:flex}.kv:last-child{border-bottom:none}.kv b{font-weight:600}.scroll-x{overflow-x:auto}.nowrap{white-space:nowrap}@media (width<=1180px){.g-main{grid-template-columns:1fr}.rooms{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width<=860px){.app{grid-template-columns:1fr}.sidebar{z-index:90;width:250px;transition:all .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow);transform:none}.burger{display:grid!important}.scrim{z-index:80;background:#04080f99;position:fixed;inset:0}.topbar{padding:10px 14px}.view{padding:14px}.search{display:none}.mirror{grid-template-columns:1fr}.role-switch button{padding:6px 9px;font-size:11.5px}}.burger{display:none}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.code{font-family:var(--mono);letter-spacing:0;font-size:12px;font-weight:500}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}h1,h2,h3,p{margin:0}.auth{grid-template-columns:1.06fr 1fr;min-height:100dvh;display:grid}.auth-story{border-right:1px solid var(--line);background:linear-gradient(150deg,#2a1624,#150c18 68%,#1f1424);flex-direction:column;padding:42px 7%;display:flex}.auth-copy{margin:auto 0;padding:60px 0}.auth-copy h1{letter-spacing:-1.5px;font-size:clamp(34px,4.1vw,60px);font-weight:700;line-height:1.12}.auth-copy h1 em{color:var(--brand);font-style:normal}.auth-copy p{color:var(--txt-2);max-width:46ch;margin:24px 0 32px;font-size:17px;line-height:1.7}.auth-features{color:var(--txt-2);flex-direction:column;gap:15px;font-size:14px;display:flex}.auth-features span{align-items:center;gap:12px;display:flex}.auth-features svg{color:var(--brand)}.auth-foot{letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);font-size:11px}.auth-panel{justify-content:center;align-items:center;padding:40px 24px;display:flex}.auth-card{width:100%;max-width:390px;animation:.3s pop}.auth-card h2{letter-spacing:-.5px;margin:6px 0 8px;font-size:26px}.auth-card>p{color:var(--txt-2);margin-bottom:24px}.eyebrow{color:var(--brand);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700;display:block}.wordmark{letter-spacing:.3px;align-items:center;gap:12px;font-size:17px;font-weight:700;display:flex}.form{flex-direction:column;gap:13px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.field small{color:var(--txt-3);font-size:11.5px}.field textarea{resize:vertical;min-height:64px}.field input:disabled,.field select:disabled{opacity:.55}.btn-wide{justify-content:center;width:100%;padding:11px 14px;font-size:14px}.btn-danger{color:var(--bad-txt);background:#ef444429;border-color:#ef444466}.btn-danger:hover{border-color:var(--red);background:#ef444442}.note{border:1px solid var(--line);background:var(--card-2);color:var(--txt-2);border-radius:10px;padding:10px 12px;font-size:13px}.note.err{color:var(--bad-txt);background:#ef44441a;border-color:#ef444473}.note.ok{color:var(--ok-txt);background:#22c55e14;border-color:#22c55e66}.note.warn{color:var(--warn-txt);background:#f59e0b14;border-color:#f59e0b66}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar .field{min-width:180px}.toolbar .grow{flex:1}.user-chip button{text-align:left;align-items:center;gap:9px;display:flex}.link{color:var(--info-txt);cursor:pointer}.link:hover{text-decoration:underline}.loading{text-align:center;color:var(--txt-3);padding:40px}.total-row td{border-top:1px solid var(--line);font-weight:700}.strike{opacity:.55;text-decoration:line-through}.perm-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px;display:grid}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (width<=860px){.auth{grid-template-columns:1fr}.auth-story{display:none}.form-row{grid-template-columns:1fr}}.locked-section{flex-direction:column;align-items:center;gap:10px;padding:56px 24px;display:flex}.locked-section h3{color:var(--txt-strong);margin:0;font-size:16px}.locked-section p{max-width:420px;margin:0}.cols{align-items:flex-end;gap:6px;padding-top:6px;display:flex}.col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.col i{background:var(--blue);opacity:.78;border-radius:5px 5px 2px 2px;width:100%;max-width:34px;display:block}.col.hi i{background:var(--brand);opacity:1}.col-val{color:var(--txt-3);white-space:nowrap;letter-spacing:-.2px;font-size:10px}.col-lab{color:var(--txt-3);white-space:nowrap;font-size:10.5px}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{background:var(--card-2);border:1px solid var(--line-soft);color:var(--txt-2);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px}.pos{color:var(--ok-txt)}.neg{color:var(--bad-txt)}.row-click{cursor:pointer}.row-click.sel td{background:var(--hover)}.tabs,.tbl-wrap{max-width:100%}.grid>*,.stack>*{min-width:0}@media (width<=1180px){.g-main{grid-template-columns:minmax(0,1fr)}}:root[data-theme=light] .b-violet{color:#7e22ce}:root[data-theme=light] .b-slate{color:#475569}.scope-sw{position:relative}.scope-btn{background:var(--card);border:1px solid var(--line);color:var(--txt);border-radius:9px;align-items:center;gap:8px;max-width:320px;padding:7px 11px;font-size:13px;font-weight:600;display:flex}.scope-btn:hover{border-color:var(--brand)}.scope-cur{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scope-menu{z-index:60;background:var(--card);border:1px solid var(--line);min-width:260px;max-width:min(380px,92vw);max-height:70vh;box-shadow:var(--shadow);border-radius:10px;padding:5px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.scope-item{width:100%;color:var(--txt-2);text-align:left;border-radius:7px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.scope-item:hover{background:var(--card-2);color:var(--txt)}.scope-item.on{color:var(--txt-strong);font-weight:600}.scope-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tbl-busy-foreign{opacity:.85}.assign-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(150px,1.2fr) minmax(110px,.8fr) minmax(150px,1.2fr) minmax(130px,.9fr) auto;align-items:end;gap:8px;padding:10px 0;display:grid}.assign-row:last-child{border-bottom:none}@media (width<=860px){.assign-row{grid-template-columns:1fr 1fr}}.perm-area{margin-bottom:16px}.perm-area h4{letter-spacing:.4px;text-transform:uppercase;color:var(--txt-3);margin:0 0 8px;font-size:12px}.chk:disabled{cursor:default}.view.ro .btn-p,.view.ro .btn-g,.view.ro .btn-danger,.view.ro .btn-gold{display:none}.legend{color:var(--txt-2);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:9px;height:9px;display:inline-block}.st-booked{color:var(--warn-txt);background:#f59e0b29;border-color:#f59e0b8c}.st-confirmed{color:var(--info-txt);background:#3b82f62e;border-color:#3b82f68c}.st-arrived{color:var(--cyan-txt);background:#06b6d42b;border-color:#06b6d48c}.st-service{color:#d8b4fe;background:#a855f72e;border-color:#a855f78c}.st-done{color:var(--ok-txt);background:#22c55e29;border-color:#22c55e80}.st-noshow{color:var(--txt-2);background:#64748b38;border-color:#64748b80}.st-cancelled{color:var(--txt-3);background:#64748b1f;border-color:#64748b59}:root[data-theme=light] .st-service{color:#7e22ce}.badge[class*=st-]{border:1px solid}.jr{--hh:58px;border:1px solid var(--line-soft);background:var(--panel);border-radius:12px;min-height:260px;max-height:calc(100vh - 250px);overflow:auto}.jr-grid{grid-template-columns:48px repeat(var(--n),minmax(148px,1fr));min-width:min-content;display:grid}.jr-corner,.jr-name{z-index:7;background:var(--card-2);border-bottom:1px solid var(--line);padding:8px;font-size:12.5px;font-weight:650;line-height:1.25;position:sticky;top:0}.jr-corner{z-index:9;border-right:1px solid var(--line-soft);left:0}.jr-name{border-left:1px solid var(--line-soft)}.jr-name small{color:var(--txt-3);font-size:10.5px;font-weight:500;display:block}.jr-name.dayoff small{color:var(--warn-txt)}.jr-time{z-index:5;background:var(--panel);border-right:1px solid var(--line-soft);height:calc(var(--rows) * var(--hh));position:sticky;left:0}.jr-time span{color:var(--txt-3);font-size:10.5px;position:absolute;right:6px;transform:translateY(-50%)}.jr-col{border-left:1px solid var(--line-soft);height:calc(var(--rows) * var(--hh));cursor:cell;background-image:linear-gradient(to bottom,var(--line-soft) 1px,transparent 1px);background-size:100% var(--hh);position:relative}.jr-col.off{background-color:#64748b14}.jr-off{pointer-events:none;background:repeating-linear-gradient(45deg,#64748b29,#64748b29 6px,#0000 6px 12px);position:absolute;left:0;right:0}.jr-now{border-top:2px solid var(--red);z-index:3;pointer-events:none;height:0;position:absolute;left:0;right:0}.ap{cursor:pointer;z-index:2;text-align:left;border:1px solid;border-radius:8px;flex-direction:column;gap:1px;padding:3px 7px;font-size:11.5px;line-height:1.3;transition:all .12s;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}.ap:hover{filter:brightness(1.15);z-index:4}.ap b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ap span{white-space:nowrap;text-overflow:ellipsis;opacity:.9;overflow:hidden}.ap.unpaid{border-style:dashed;border-color:var(--amber);box-shadow:0 0 0 1px #f59e0b66}.ap.st-cancelled,.ap.st-noshow{opacity:.55}.ap.st-cancelled b{text-decoration:line-through}.tabs-sp{margin-left:auto}.nowrap-cell{white-space:nowrap}.slots{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:6px;display:grid}.slots .slot{padding:8px 4px;font-size:12.5px}.svc-pick{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;max-height:230px;padding:2px;display:grid;overflow:auto}.svc-pick .chk{align-items:flex-start;padding:8px 10px}.svc-pick .chk small{color:var(--txt-3);font-size:11px;display:block}.part-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(120px,1fr) 120px auto;align-items:end;gap:8px;padding:8px 0;display:grid}.part-row:last-child{border-bottom:none}.part-ref{flex-wrap:wrap;grid-column:1/-1;align-items:end;gap:8px;display:flex}.part-ref .note{flex:100%}.hours-row{border-bottom:1px dashed var(--line-soft);grid-template-columns:160px 1fr;align-items:center;gap:10px;padding:6px 0;display:grid}.hours-row:last-child{border-bottom:none}.hours-row .row{flex-wrap:wrap}.hours-row input[type=time]{background:var(--panel);border:1px solid var(--line);border-radius:8px;outline:none;max-width:130px;padding:7px 9px}.kpi-sm .kpi-val{font-size:24px}.big-total{letter-spacing:-.6px;font-size:28px;font-weight:700}.cat-title{align-items:center;gap:10px;margin:0 0 6px;font-weight:650;display:flex}.pending-dot{background:var(--amber);color:#2a1a02;text-align:center;border-radius:20px;min-width:18px;padding:0 6px;font-size:11px;font-weight:700;display:inline-block}.eq-card{flex-direction:column;gap:6px;display:flex}.eq-t{font-size:22px;font-weight:700}.spark{width:100%;height:36px}.stack .list-row{padding:9px 0}@media (width<=860px){.jr{--hh:52px;max-height:calc(100vh - 210px)}.jr-grid{grid-template-columns:40px repeat(var(--n),minmax(138px,1fr))}.part-row{grid-template-columns:1fr 1fr}.part-row>:last-child{grid-column:1/-1}.hours-row{grid-template-columns:1fr}.kpi-sm{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-sm .card{padding:10px 12px}.kpi-sm .kpi-val{margin:3px 0 0;font-size:20px}.kpi-sm .mini{display:none}.toolbar .field{min-width:130px}.modal-foot .btn{flex:1;justify-content:center}.overlay{align-items:end;padding:10px}.modal{max-height:94vh}}.print-only{display:none}@media print{html.print-doc .sidebar,html.print-doc .topbar,html.print-doc #toasts,html.print-doc .no-print{display:none!important}html.print-doc .app{display:block!important}html.print-doc .view{padding:0}html.print-doc .view>:not(.print-sheet){display:none!important}html.print-doc .print-only{display:block}html.print-doc body{background:#fff}html.print-doc .print-sheet,html.print-doc .print-sheet *{background:0 0;color:#000!important;border-color:#888!important}html.print-doc .print-sheet table{font-size:11px}html.print-doc .print-sheet th,html.print-doc .print-sheet td{padding:4px 6px}}.tl{flex-direction:column;gap:6px;min-width:640px;display:flex}.tl-row{grid-template-columns:150px 1fr;align-items:center;gap:10px;display:grid}.tl-name{flex-direction:column;line-height:1.25;display:flex;overflow:hidden}.tl-track{background:var(--panel);border:1px solid var(--line-soft);border-radius:7px;height:30px;position:relative}.tl-head{background:0 0;border:none;height:auto;display:flex}.tl-head span{text-align:center;color:var(--txt-3);flex:1;font-size:11px}.tl-bar{white-space:nowrap;text-align:left;background:var(--brand);color:#fff;border-radius:5px;padding:0 6px;font-size:11px;font-weight:600;position:absolute;top:3px;bottom:3px;overflow:hidden}.tl-bar.out{background:var(--violet)}.tl-bar.returned,.tl-bar.closed{background:var(--slate)}@media print{body *{visibility:hidden}.act-print,.act-print *{visibility:visible}.act-print{width:100%;position:absolute;top:0;left:0}}
