@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:var(--line);--line-soft:var(--line-soft);--txt:#e8eef9;--txt-2:#9db0ce;--txt-3:#6d809f;--gold:#c9a227;--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;--gold:#a8841a;--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:#1a1405;letter-spacing:-.5px;background:linear-gradient(145deg,#c9a227,#8c6f17);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(--gold);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(--gold);color:#1a1405;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{align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-title{font-size:14.5px;font-weight:650}.card-actions{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(--gold);border-color:var(--gold);color:#1a1405}.btn-gold:hover{background:#b8931f}.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}.tl{border:1px solid var(--line-soft);background:var(--panel);border-radius:10px;overflow:hidden}.tl-head,.tl-line{grid-template-columns:104px 1fr;align-items:stretch;display:grid}.tl-head{background:var(--card-2);border-bottom:1px solid var(--line);z-index:5;position:sticky;top:0}.tl-corner{letter-spacing:1px;text-transform:uppercase;color:var(--txt-3);border-right:1px solid var(--line);align-items:center;padding:7px 9px;font-size:10.5px;font-weight:600;display:flex}.tl-days,.tl-track{grid-template-columns:repeat(var(--n),minmax(30px,1fr));display:grid}.tl-day{text-align:center;color:var(--txt-2);border-left:1px solid var(--line-soft);padding:5px 2px;font-size:10.5px;line-height:1.25}.tl-day.we{color:var(--bad-txt);background:#ef444412}.tl-day.now{color:var(--info-txt);background:#3b82f62e;font-weight:700}.tl-day b{font-size:12px;display:block}.tl-line{border-bottom:1px solid var(--line-soft);min-height:30px}.tl-line:last-child{border-bottom:none}.tl-line:hover{background:#ffffff05}.tl-room{border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:1px;padding:5px 9px;display:flex}.tl-room b{font-size:12.5px}.tl-room span{color:var(--txt-3);font-size:9.5px}.tl-track{padding:3px 0;position:relative}.tl-slot{border-left:1px solid var(--line-soft);grid-row:1;min-height:24px;display:block}.tl-slot.we{background:#ef44440d}.tl-slot.now{background:#3b82f61a}.tl-bar{z-index:2;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:6px;grid-row:1;align-items:center;min-height:24px;margin:0 1px;padding:0 7px;font-size:10.5px;font-weight:600;transition:all .12s;display:flex;overflow:hidden}.tl-bar:hover{filter:brightness(1.18);transform:translateY(-1px)}.bar-stay{color:#eaf2ff;background:#3b82f6d9}.bar-book{color:#2a1a02;background:#f59e0bcc}.bar-past{color:#d8e1ee;background:#64748b80}.bar-out{color:#fff;background:#ef4444bf}.cal-h,.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.cal-h div{text-align:center;letter-spacing:1px;text-transform:uppercase;color:var(--txt-3);padding-bottom:2px;font-size:10.5px;font-weight:600}.cal-day{border:1px solid var(--line-soft);background:var(--panel);cursor:pointer;border-radius:9px;min-height:78px;padding:7px 8px;transition:all .12s}.cal-day:hover{border-color:var(--line-strong);transform:translateY(-1px)}.cal-day.out{opacity:.32;cursor:default}.cal-day.now{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.cal-day .d{font-size:13px;font-weight:700}.cal-day .o{color:var(--txt-2);margin-top:2px;font-size:11px}.cal-day .f{margin-top:1px;font-size:11px;font-weight:600}.cal-day .bar{background:var(--line-soft);border-radius:4px;height:4px;margin-top:6px;overflow:hidden}.cal-day .bar i{height:100%;display:block}.yr-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.yr-card{border:1px solid var(--line-soft);background:var(--panel);cursor:pointer;border-radius:10px;padding:11px;transition:all .12s}.yr-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.yr-card.now{border-color:var(--gold)}.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}.floor{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.floor-label{width:58px;color:var(--txt-3);flex:0 0 58px;padding-top:9px;font-size:11.5px;font-weight:600}.rooms{flex:1;grid-template-columns:repeat(10,minmax(0,1fr));gap:7px;display:grid}.room{text-align:center;border:1px solid #0000;border-radius:8px;padding:9px 4px;font-size:12.5px;font-weight:650;transition:all .12s;position:relative}.room:hover{filter:brightness(1.18);transform:translateY(-2px)}.room.sel{outline:2px solid var(--txt-strong);outline-offset:1px}.r-free{color:var(--ok-txt);background:#22c55e29;border-color:#22c55e4d}.r-occupied{color:var(--info-txt);background:#3b82f629;border-color:#3b82f64d}.r-cleaning{color:var(--warn-txt);background:#f59e0b2b;border-color:#f59e0b4d}.r-repair{color:var(--bad-txt);background:#ef444429;border-color:#ef44444d}.r-vip{color:#ddb6fe;background:#a855f72b;border-color:#a855f74d}.r-blocked{color:var(--txt-2);background:#64748b2e;border-color:#64748b4d}.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}.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}}.mirror{grid-template-columns:1fr 1fr;gap:14px;display:grid}.screen{border:1px solid var(--line);background:#0a1120;border-radius:10px;overflow:hidden}.screen-bar{border-bottom:1px solid var(--line);background:#182a47;align-items:center;gap:8px;padding:7px 11px;font-size:12px;display:flex}.screen-body{min-height:230px;padding:14px}.cn{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif}.cn-btn{background:#1f3355;border:1px solid #2e4a79;border-radius:6px;margin:3px 4px 3px 0;padding:7px 12px;font-size:13px;display:inline-block}.cn-btn.hi{color:#fff;background:#2563eb;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb40}.cursor{pointer-events:none;width:14px;height:14px;transition:all .35s cubic-bezier(.4,0,.2,1);position:absolute}.log{font-family:var(--mono);border:1px solid var(--line-soft);background:#080d18;border-radius:9px;max-height:190px;padding:11px;font-size:11.5px;line-height:1.7;overflow-y:auto}.log .t{color:var(--txt-3)}.log .ok{color:var(--ok-txt)}.log .warn{color:var(--warn-txt)}.log .inf{color:var(--info-txt)}.doc{color:#1a1a1a;background:#f7f7f4;border-radius:8px;padding:26px 28px;font-family:Times New Roman,Georgia,serif;font-size:13px;line-height:1.6}.doc h3{text-align:center;letter-spacing:.5px;margin:0 0 4px;font-size:16px}.doc .doc-sub{text-align:center;color:#555;margin-bottom:16px;font-size:12px}.doc table{border-collapse:collapse;margin:10px 0}.doc td,.doc th{color:#1a1a1a;border:1px solid #bbb;padding:5px 8px;font-size:12px}.doc th{text-transform:none;letter-spacing:0;color:#1a1a1a;background:#eceae4}.doc .sign{justify-content:space-between;margin-top:26px;font-size:12px;display:flex}.doc .stamp{color:#777;border-top:1px dashed #bbb;margin-top:16px;padding-top:8px;font-size:11px}.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}.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,#17243b,#0b1527 68%,#142335);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(--gold);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(--gold)}.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(--gold);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}.r-reserve{color:var(--txt-2);background:#64748b2e;border-color:#64748b4d}.r-sanitary{color:var(--cyan-txt);background:#06b6d429;border-color:#06b6d44d}.bar-block{color:var(--bad-txt);cursor:default;background:repeating-linear-gradient(45deg,#ef444459,#ef444459 6px,#ef44442e 6px 12px)}.perm-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px;display:grid}.staff-shell{max-width:1100px;margin:0 auto;padding:0 0 40px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (width<=860px){.auth{grid-template-columns:1fr}.auth-story{display:none}.form-row{grid-template-columns:1fr}}@media print{body{background:#fff}.app,.overlay>.modal>.modal-head,.overlay>.modal>.modal-foot,#toast-root{display:none!important}.overlay{background:0 0;padding:0;display:block;position:static}.modal{box-shadow:none;border:none;width:100%;max-height:none}.modal-body{padding:0;overflow:visible}.modal-body>:not(.doc){display:none!important}}.demo-badge{color:var(--gold);white-space:nowrap;background:#c9a22724;border-radius:999px;margin-left:auto;padding:6px 12px;font-size:12.5px;font-weight:600}.brand-logo{object-fit:contain;background:var(--card);border-radius:10px;width:38px;height:38px}.demo-badge__short{display:none}@media (width<=900px){.demo-badge__full{display:none}.demo-badge__short{display:inline}}.nav-item.locked{opacity:.45}.nav-item.locked:hover{opacity:.7}.nav-lock{flex:0 0 13px;margin-left:auto}.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}
