.rf{flex-direction:column;gap:22px;display:flex}@keyframes rf-sec-in{0%{opacity:0;transform:translateY(var(--rise))}}.rf>section{animation:rf-sec-in var(--dur-3) var(--ease-out) backwards}.rf>section:first-of-type{animation-delay:0s}.rf>section:nth-of-type(2){animation-delay:40ms}.rf>section:nth-of-type(3){animation-delay:80ms}.rf-search{align-items:center;display:flex;position:relative}.rf-search>svg{color:var(--text-3);position:absolute;left:9px}.rf-search .input{padding-left:30px}.rf-results{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:260px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto}.rf-results button{border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:6px 8px;display:flex}.rf-results button:hover{background:var(--surface-3)}.rf-guest-chip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:10px;padding:8px 10px;display:flex}.rf-rooms{flex-direction:column;gap:4px;display:flex}.rf-room{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color var(--t-fast), box-shadow var(--dur-2) var(--ease), transform var(--dur-2) var(--ease), background var(--t-fast)}.rf-room:not(.unavailable):hover{border-color:var(--border-strong);box-shadow:var(--shadow-lift);transform:translateY(-1px)}.rf-room.selected{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.rf-room.selected:hover{box-shadow:0 0 0 1px var(--brand) inset;transform:none}.rf-room.unavailable:not(.selected){background:var(--surface-2);opacity:.7}.rf-room-detail{animation:rf-sec-in var(--dur-2) var(--ease-out) backwards}.rf-room-main{align-items:center;gap:8px;width:100%;padding:7px 10px;display:flex}.rf-room-num{min-width:64px;font-weight:600}.rf-room-detail{grid-template-columns:90px 90px 150px 1fr;align-items:end;gap:8px 12px;padding:4px 10px 10px 33px;display:grid}.rf-room-detail .span-all{grid-column:1/-1}.rf-room-total{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.rf-room .field-error{padding:0 10px 6px 33px}@media (width<=640px){.rf-room-detail{grid-template-columns:1fr 1fr;padding-left:10px}}.picker{position:relative}.picker-list{z-index:6;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:240px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto}.picker-list button{border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:6px 9px;display:flex}.picker-list button[aria-selected=true]{background:var(--surface-3)}.picker-chip{height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:6px;padding:0 4px 0 10px;font-weight:500;display:flex}.table.ledger{table-layout:fixed;width:100%;min-width:640px}.table.ledger td{vertical-align:top}.ledger col.lg-c-date{width:86px}.ledger col.lg-c-ref{width:90px}.ledger col.lg-c-amt{width:102px}.ledger col.lg-c-act{width:100px}.ledger td{vertical-align:top;height:auto;padding-top:9px;padding-bottom:8px}.ledger thead th{white-space:nowrap}.ledger .lg-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2)}.ledger .lg-concept{flex-direction:column;gap:1px;min-width:0;display:flex}.ledger .lg-type{white-space:nowrap;font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);flex:none;font-weight:700}.ledger .lg-desc{overflow-wrap:anywhere;min-width:0;font-weight:500}.ledger .lg-meta{font-size:var(--fs-xs);color:var(--text-3);flex-wrap:wrap;gap:4px 12px;margin:2px 0 0;display:flex}.ledger .lg-meta .money{font-size:var(--fs-xs)}.ledger .lg-toggle{cursor:pointer;font:inherit;color:var(--text-2);text-underline-offset:2px;background:0 0;border:0;align-items:center;gap:3px;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline-flex}.ledger .lg-toggle:hover{color:var(--text)}.ledger .lg-ref{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2);overflow-wrap:anywhere}.ledger .lg-bal{font-weight:600}.ledger .lg-dash{color:var(--text-3)}.ledger .lg-act{width:28px;padding:0}.ledger td.right{padding-top:5px}.ledger .lg-act-print{color:var(--text-3)}.ledger .lg-act-print:not(:disabled):hover{color:var(--text);background:var(--surface-3)}.ledger .lg-act-refund{color:var(--warn)}.ledger .lg-act-refund:not(:disabled):hover{background:var(--warn-soft);border-color:var(--warn)}.ledger .lg-act-void{color:var(--danger)}.ledger .lg-act-void:not(:disabled):hover{background:var(--danger-soft);border-color:#e3b9b5}.ledger .lg-act:disabled{color:var(--text-3);opacity:.5}.ledger tr.lg-pay .lg-type{color:var(--ok)}.ledger tr.lg-refund .lg-type{color:var(--warn)}.ledger tr.lg-credit-like .lg-type{color:var(--info)}.ledger tr.lg-void td{color:var(--text-3)}.ledger tr.lg-void .lg-desc,.ledger tr.lg-void .money{text-decoration:line-through;-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger)}.ledger .lg-voidnote{font-size:var(--fs-xs);color:var(--danger);margin:3px 0 0;text-decoration:none}.ledger .lg-voidnote svg{vertical-align:-1px;margin-right:3px}.ledger tr.lg-sub td{background:var(--surface-2);font-size:var(--fs-sm);color:var(--text-2);padding-top:4px;padding-bottom:4px}.ledger tr.lg-sub td:nth-child(2){padding-left:24px}.ledger tr.lg-folio td{background:var(--surface-2);font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-2);padding:6px 12px;font-weight:700}.ledger tr.lg-more td{font-size:var(--fs-xs);color:var(--text-3);background:var(--surface-2);padding:6px 12px}.ledger tfoot tr.lg-total td{border-top:1.5px solid var(--text);border-bottom:0;padding-top:8px;padding-bottom:8px;font-weight:600}.ledger tfoot tr.lg-total td:first-child{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-2)}.ledger-compact col.lg-c-date{width:96px}.ledger .lg-date{white-space:nowrap}.ledger-compact col.lg-c-amt{width:96px}.ledger-compact .lg-type{min-width:0}.ledger-compact .lg-meta,.ledger-compact .lg-voidnote{margin-left:0}.ledger-compact tr.lg-sub td:nth-child(2){padding-left:24px}@media (width<=1100px){.ledger .lg-type{min-width:0}.ledger .lg-meta,.ledger .lg-voidnote{margin-left:0}.ledger tr.lg-sub td:nth-child(2){padding-left:24px}.ledger .lg-concept{flex-direction:column;gap:0}}.ledger-wrap{flex-direction:column;gap:12px;display:flex}.ledger-hero{border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--surface-2);transition:background-color var(--t,.15s) var(--ease), border-color var(--t,.15s) var(--ease);flex-wrap:wrap;align-items:baseline;gap:10px;padding:14px 18px;display:flex}.ledger-hero-label{font-size:var(--fs-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-2);font-weight:700}.ledger-hero-value{font-size:var(--fs-3xl);font-variant-numeric:tabular-nums;transition:color var(--t,.15s) var(--ease);font-weight:700}.ledger-hero-sub{font-size:var(--fs-xs);color:var(--text-3);margin-left:auto}.ledger-hero.is-due{background:var(--danger-soft);border-color:#e3b9b5}.ledger-hero.is-due .ledger-hero-value{color:var(--danger)}.ledger-hero.is-credit{background:var(--info-soft);border-color:#b9cfe8}.ledger-hero.is-credit .ledger-hero-value{color:var(--info)}.ledger-hero.is-zero{background:var(--ok-soft);border-color:#b7d8c1}.ledger-hero.is-zero .ledger-hero-value{color:var(--ok)}@media (width<=560px){.ledger-hero{flex-direction:column;align-items:flex-start;gap:2px}.ledger-hero-sub{margin-left:0}}.fin-strip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.fin-strip>div{flex-direction:column;gap:1px;min-width:0;padding:7px 11px;display:flex}.fin-strip>div+div{border-left:1px solid var(--border)}.fin-strip span:first-child{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);font-weight:700}.fin-strip .money{font-size:var(--fs-lg);font-weight:600}.fin-strip-due.is-due .money{color:var(--danger)}.fin-strip-due.is-credit .money{color:var(--info)}.fin-strip-due.is-zero .money{color:var(--ok)}@media (width<=560px){.fin-strip{grid-template-columns:1fr 1fr}.fin-strip>div:nth-child(3){border-left:0}.fin-strip>div:nth-child(n+3){border-top:1px solid var(--border)}}.fin-fieldset{border:1px solid var(--border);border-radius:var(--radius);min-width:0;margin:0;padding:10px 12px 12px}.fin-fieldset legend{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-2);padding:0 5px;font-weight:700}.fin-fieldset legend .req{color:var(--brand);margin-left:2px}.fin-fieldset legend .muted{text-transform:none;letter-spacing:0;font-weight:400}.fin-done{align-items:flex-start;gap:12px;display:flex}.fin-done>svg{color:var(--ok);flex:none;margin-top:2px}.fin-done p{margin:4px 0 0}.fin-balance-line{border-top:1px solid var(--text);border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding:9px 2px;display:flex}.fin-balance-line strong .money{font-size:var(--fs-xl)}.method-picker{flex-wrap:wrap;max-width:100%}.method-picker button{height:34px;padding:0 14px}.fin-preview{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);font-size:var(--fs-sm);flex-direction:column;gap:3px;padding:9px 12px;display:flex}.fin-preview>div{color:var(--text-2);justify-content:space-between;gap:12px;display:flex}.fin-preview .fin-preview-total{color:var(--text);border-top:1px solid var(--border-strong);margin-top:2px;padding-top:4px;font-weight:600}.fin-preview .fin-preview-total:first-child{border-top:0;margin-top:0;padding-top:0}.fin-folioview .fin-strip .money{font-size:var(--fs-md)}.rd-grid{grid-template-columns:1fr 1fr;gap:18px 28px;display:grid}@media (width<=720px){.rd-grid{grid-template-columns:1fr}}.rd-totals{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.rd-totals>div{flex-direction:column;gap:2px;padding:8px 12px;display:flex}.rd-totals>div+div{border-left:1px solid var(--border)}.rd-totals strong{font-family:var(--font-mono);font-size:var(--fs-lg);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:600}.rd-timeline{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.rd-timeline li{align-items:flex-start;gap:10px;display:flex}.rd-timeline .dot{margin-top:5px}.cmdk-overlay{align-items:flex-start;padding-top:10vh}.cmdk{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(640px,100vw - 24px);max-height:70vh;box-shadow:var(--shadow-lg);animation:pop-in var(--t) var(--ease);flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.cmdk-input{border-bottom:1px solid var(--border);height:52px;color:var(--text-3);align-items:center;gap:10px;padding:0 14px;display:flex}.cmdk-input input{font-size:var(--fs-lg);color:var(--text);background:0 0;border:0;outline:0;flex:1}.cmdk-list{padding:6px;overflow:auto}.cmdk-group{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);padding:10px 10px 4px;font-weight:700}.cmdk-item{border-radius:var(--radius);text-align:left;cursor:pointer;width:100%;min-height:38px;color:var(--text);background:0 0;border:0;align-items:center;gap:10px;padding:6px 10px;display:flex}.cmdk-item svg{color:var(--text-3);flex:none}.cmdk-item[aria-selected=true]{background:var(--text);color:var(--text-inv)}.cmdk-item[aria-selected=true] svg,.cmdk-item[aria-selected=true] .cmdk-sub{color:#cfc8bb}.cmdk-item[aria-selected=true] .kbd{color:#eee;background:0 0;border-color:#777}.cmdk-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.cmdk-sub{min-width:0;font-size:var(--fs-sm);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.cmdk-empty{text-align:center;color:var(--text-3);padding:28px}.cmdk-foot{border-top:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-xs);color:var(--text-3);align-items:center;gap:4px;padding:8px 14px;display:flex}.notif-list{flex-direction:column;display:flex}.notif{border-bottom:1px solid var(--border);border-left:3px solid #0000;align-items:flex-start;gap:10px;padding:11px 16px;display:flex}.notif.danger{border-left-color:var(--danger)}.notif.warning{border-left-color:var(--warn)}.notif.info{border-left-color:var(--info)}.notif .notif-icon{margin-top:1px}.notif.danger .notif-icon{color:var(--danger)}.notif.warning .notif-icon{color:var(--warn)}.notif.info .notif-icon{color:var(--info)}.notif-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notif-body strong{font-weight:600}.notif-body span{font-size:var(--fs-sm);color:var(--text-2)}.notif-cat{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);font-weight:700}.notif.unseen .notif-body strong:after{content:"";background:var(--brand);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.shortcuts-table td{border-bottom:1px solid var(--border);padding:6px 4px}.shortcuts-table td:first-child{white-space:nowrap;width:1%;padding-right:14px}.login-page{background:var(--bg);grid-template-columns:minmax(380px,46%) 1fr;min-height:100%;display:grid}.login-side{color:var(--text-inv);isolation:isolate;flex-direction:column;justify-content:space-between;gap:32px;padding:40px 46px;display:flex;position:relative;overflow:hidden}.login-side-photo{z-index:-2;animation:login-photo-in 1.4s var(--ease-out) backwards;background-image:linear-gradient(#140f0c52 0%,#140f0c1f 32%,#140f0c33 62%,#0f0b09d1 100%),url(https://images.unsplash.com/photo-1590490360182-c33d57733427?w=1600&q=80&auto=format&fit=crop);background-position:62% 38%;background-size:cover;position:absolute;inset:0}.login-side-scrim{z-index:-1;background:linear-gradient(100deg,#1f0f1294 0%,#1f0f1224 46%,#0000 68%);position:absolute;inset:0}@keyframes login-photo-in{0%{opacity:0;transform:scale(1.045)}}.login-side-top{align-items:center;gap:12px;display:flex}.login-keytag{-webkit-backdrop-filter:blur(10px);width:38px;height:38px;color:var(--text-inv);background:#fffdf924;border:1px solid #fffdf947;border-radius:11px;place-items:center;display:inline-grid;box-shadow:inset 0 1px #ffffff2e,0 8px 20px -8px #00000080}.login-wordmark{font-size:var(--fs-2xl);letter-spacing:-.015em;text-shadow:0 1px 12px #00000059;font-weight:600}.login-side-foot{font-size:var(--fs-sm);color:#fffdf9db;border-top:1px solid #fffdf938;flex-direction:column;gap:6px;padding-top:16px;display:flex}.login-side-foot strong{color:var(--text-inv);text-shadow:0 1px 10px #0000004d;font-weight:500}.login-side-foot span{font-family:var(--font-mono);font-size:var(--fs-xs);color:#fffdf99e;display:block}.login-side-foot span:first-letter{text-transform:uppercase}.login-card{width:min(380px,100% - 32px);animation:route-in var(--dur-3) var(--ease-out) backwards;flex-direction:column;place-self:center;gap:14px;padding:32px 0;animation-delay:60ms;display:flex}.login-brand{border-bottom:1px solid var(--border-strong);flex-direction:column;gap:6px;margin-bottom:8px;padding-bottom:18px;display:flex}.login-eyebrow{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--brand);align-items:center;gap:7px;font-weight:700;display:inline-flex}.login-eyebrow:before{content:"";border:1.5px solid;border-radius:50%;width:6px;height:6px}.login-brand h1{letter-spacing:-.025em;font-size:32px;font-weight:600;line-height:1.1}.login-note{border-top:1px dashed var(--border);margin-top:6px;padding-top:12px;line-height:1.5}.input-lg{height:42px;font-size:14px}.password-wrap{position:relative}.password-wrap .input{padding-right:44px}.password-wrap .btn{width:34px;height:34px;position:absolute;top:4px;right:4px}.btn-block{width:100%;height:42px;font-size:14px}@media (width<=820px){.login-page{grid-template-rows:minmax(180px,30vh) 1fr;grid-template-columns:1fr}.login-side{gap:0;padding:18px 20px}.login-side-foot{display:none}.login-card{padding:28px 0 40px}}@media (prefers-reduced-motion:reduce){.login-side-photo,.login-card{animation:none}}.hoy .page-header{margin-bottom:14px}.hoy .page-header h1{font-size:var(--fs-2xl)}.hoy-figures{margin-bottom:10px}.hoy-figures .figure{flex-basis:118px}.hoy-figures .figure-value{font-size:22px}.hoy-figures .figures>.figure+.figure{border-left:1px solid var(--border)!important}.fig-of{color:var(--text-3);font-size:15px;font-weight:500}.hoy-quick{border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);flex-wrap:wrap;margin-bottom:16px;display:flex}.hoy-qa{cursor:pointer;min-width:132px;height:42px;font-size:var(--fs-md);color:var(--text);transition:background var(--t-fast);background:0 0;border:0;flex:1 1 0;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-weight:500;display:inline-flex}.hoy-qa+.hoy-qa{border-left:1px solid var(--border)}.hoy-qa svg{color:var(--brand);flex:none}.hoy-qa:hover{background:var(--surface)}.hoy-qa:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.hoy-qa span{white-space:nowrap}.hoy-qa .kbd{white-space:nowrap;margin-left:2px}@media (width<=1360px){.hoy-qa .kbd{display:none}}.hoy-item-extra{font-size:var(--fs-xs)}.rack{margin-bottom:16px}.rack-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:9px 14px;display:flex}.rack-head h2{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text);font-weight:700}.rack-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3)}.rack-focus{margin-left:auto}.rack-focus-n{font-family:var(--font-mono);opacity:.65;margin-left:5px}.rack-body{padding:4px 14px}.rack-floor{grid-template-columns:78px minmax(0,1fr);gap:12px;padding:10px 0;display:grid}.rack-floor+.rack-floor{border-top:1px dashed var(--border)}.rack-floor-label{flex-direction:column;gap:2px;padding-top:4px;display:flex}.rack-floor-name{font-size:var(--fs-sm);font-weight:600}.rack-floor-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-3)}.rack-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;display:grid}.fob{--band:var(--border-strong);--tint:var(--surface);background:var(--tint);border:1px solid var(--border);border-left:5px solid var(--band);border-radius:16px var(--radius) var(--radius) 16px;text-align:left;cursor:pointer;min-height:74px;color:var(--text);transition:border-color var(--t-fast), opacity var(--dur-2) var(--ease), background var(--t-fast), transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);flex-direction:column;gap:3px;padding:7px 9px 7px 16px;display:flex;position:relative}.fob:before{content:"";border:1.5px solid var(--border-strong);background:var(--bg);border-radius:50%;width:6px;height:6px;position:absolute;top:13px;left:4px}.fob:hover{border-color:var(--border-strong);border-left-color:var(--band);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.fob:active{box-shadow:none;transition-duration:60ms;transform:translateY(0)}.fob:hover:before{border-color:var(--text-2)}.fob:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.fob.is-open{outline:2px solid var(--text);outline-offset:1px}.fob.st-occupied{--band:var(--occ-occupied);--tint:#efeef8}.fob.st-arriving{--band:var(--occ-reserved);--tint:#e7f3f2}.fob.st-vacant{--band:#d4ccbd}.fob.is-blocked{background:repeating-linear-gradient(135deg, var(--tint) 0 7px, #eeebe4 7px 14px)}.fob.is-mt{background:repeating-linear-gradient(135deg, var(--tint) 0 7px, #f6ead3 7px 14px)}.fob.is-ooo{--band:var(--mt-ooo);color:#353a42;background:repeating-linear-gradient(135deg,#eceef1 0 7px,#dfe2e7 7px 14px);border-color:#c3c8d0}.fob.is-dim{opacity:.28}.fob-top{align-items:center;gap:6px;display:flex}.fob-num{font-family:var(--font-mono);letter-spacing:-.02em;font-size:19px;font-weight:600;line-height:1.05}.fob-type{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-3);margin-top:2px;font-weight:600}.fob-hk{width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;flex:none;margin-left:auto;display:inline-block}.hk-dot-CLEAN{background:var(--hk-clean)}.hk-dot-DIRTY{background:var(--hk-dirty)}.hk-dot-INSPECTED{background:var(--hk-inspected)}.fob-guest{font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.fob-guest.is-status{color:var(--text-3);font-weight:400}.fob.st-occupied .fob-guest{color:var(--occ-occupied)}.fob.st-arriving .fob-guest{color:#0b5f5d}.fob-flags{align-items:center;gap:4px;min-height:15px;margin-top:auto;display:flex}.fob-flag{letter-spacing:.05em;text-transform:uppercase;border-radius:2px;align-items:center;height:15px;padding:0 4px;font-size:9.5px;font-weight:700;display:inline-flex}.f-dep{background:var(--warn-soft);color:#8a5207}.f-arr{color:#0b5f5d;background:#d6eceb}.fob-ic{color:var(--text-2)}.fob.is-ooo .fob-ic{color:var(--mt-ooo)}.rack-legend{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 14px;display:flex}.rack-legend>span{align-items:center;gap:5px;display:inline-flex}.rack-legend .fob-hk{box-shadow:none;width:8px;height:8px;margin:0}.lg-sep{background:var(--border-strong);width:1px;height:14px}.lg-swatch{border:1px solid var(--border-strong);border-left-width:4px;border-radius:6px 2px 2px 6px;width:18px;height:12px;display:inline-block}.lg-swatch.st-occupied{border-left-color:var(--occ-occupied);background:#efeef8}.lg-swatch.st-arriving{border-left-color:var(--occ-reserved);background:#e7f3f2}.lg-swatch.st-vacant{background:var(--surface);border-left-color:#d4ccbd}.lg-swatch.is-ooo{border-left-color:var(--mt-ooo);background:repeating-linear-gradient(135deg,#eceef1 0 3px,#d3d7de 3px 6px)}.lg-swatch.is-blocked{background:repeating-linear-gradient(135deg, var(--surface) 0 3px, #e2ddd3 3px 6px)}.rack-menu{min-width:240px}.rack-menu .menu-item:disabled{color:var(--text-3);cursor:not-allowed;background:0 0}.rack-skel{flex-direction:column;gap:12px;margin-bottom:16px;padding:14px;display:flex}.hoy-cols{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px;margin-bottom:18px;display:grid}.hoy-col{flex-direction:column;min-width:0;display:flex}.hoy-col-head{border-bottom:1px solid var(--border-strong);align-items:center;gap:7px;min-height:40px;padding:6px 8px 6px 12px;display:flex}.hoy-col-head svg{color:var(--text-3)}.hoy-col-head h2{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;font-weight:700}.hoy-col-head .count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3)}.hoy-col-body{max-height:380px;overflow-y:auto}.hoy-item{border-bottom:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:7px 10px 7px 12px;display:grid}.hoy-item:last-child{border-bottom:0}.hoy-item.is-done{background:var(--surface-2)}.hoy-item.is-done .hoy-item-title{color:var(--text-2);font-weight:500}.hoy-item-keys{flex-direction:column;gap:3px;display:inline-flex}.hoy-item-main{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:0;flex-direction:column;gap:1px;padding:0;display:flex}.hoy-item-main:hover .hoy-item-title{text-decoration:underline}.hoy-item-main:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:2px}.hoy-item-title{font-weight:600;font-size:var(--fs-md)}.hoy-item-meta{font-size:var(--fs-xs);color:var(--text-3)}.hoy-item-warn{font-size:var(--fs-xs);color:var(--warn);align-items:center;gap:4px;font-weight:600;display:inline-flex}.hoy-item-act{display:inline-flex}.hoy-due{color:var(--danger);font-weight:600}.hoy-due .money{color:var(--danger)}.hoy-paid{color:var(--ok)}.hoy-empty{color:var(--text-3);font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:8px;padding:16px 12px;display:flex}.hoy-empty.ok{color:var(--ok);justify-content:flex-start}.attn-item{border-bottom:1px solid var(--border);min-height:46px;font-size:var(--fs-sm);grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px 8px 0;display:grid}.attn-item:last-child{border-bottom:0}.attn-mark{align-self:stretch}.lv-danger .attn-mark{background:var(--danger)}.lv-warning .attn-mark{background:var(--warn)}.lv-info .attn-mark{background:var(--info)}.lv-danger .attn-text{color:#7d1a14}.attn-text{line-height:1.35}.hoy-upcoming .panel-head{margin-bottom:8px}.up-strip{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.up-day{flex-direction:column;min-width:0;padding:0 0 6px;display:flex}.up-day+.up-day{border-left:1px solid var(--border)}.up-day.is-empty{background:var(--surface-2)}.up-day-head{border-bottom:1px solid var(--border);align-items:baseline;gap:5px;margin-bottom:4px;padding:7px 8px 6px;display:flex}.up-wd{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);font-weight:700}.up-date{font-size:var(--fs-xs);color:var(--text-2)}.up-n{font-family:var(--font-mono);font-size:var(--fs-md);margin-left:auto;font-weight:600}.up-day.is-empty .up-n{color:var(--text-3);font-weight:400}.up-row{text-align:left;cursor:pointer;min-width:0;font-size:var(--fs-xs);color:var(--text);background:0 0;border:0;align-items:center;gap:6px;padding:3px 8px;display:flex}.up-row:hover{background:var(--surface-3)}.up-room{font-family:var(--font-mono);color:var(--occ-reserved);flex:none;min-width:26px;font-weight:600}.up-more{font-size:var(--fs-2xs);color:var(--text-3);padding:2px 8px}@media (width<=1280px){.hoy-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.hoy-attn{grid-column:1/-1}.hoy-attn .hoy-col-body{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;max-height:none;display:grid}}@media (width<=1100px){.rack-floor{grid-template-columns:1fr;gap:6px}.rack-floor-label{flex-direction:row;align-items:baseline;gap:8px;padding-top:0}.rack-focus{margin-left:0}.up-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.up-day:nth-child(5){border-left:0}.up-day:nth-child(n+5){border-top:1px solid var(--border)}}@media (width<=860px){.hoy-cols,.hoy-attn .hoy-col-body{grid-template-columns:1fr}.hoy-qa{flex-basis:50%;min-width:50%}.hoy-qa:nth-child(odd){border-left:0}.hoy-qa:nth-child(n+3){border-top:1px solid var(--border)}.rack-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.up-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.up-day:nth-child(odd){border-left:0}.up-day:nth-child(n+3){border-top:1px solid var(--border)}}@media (width<=1280px) and (width>=721px){.hoy-figures .figure{flex:22%}.hoy-figures .figures>.figure:nth-child(4n+1){border-left:0!important}.hoy-figures .figure:nth-child(n+5){border-top:1px solid var(--border)}}@media (width<=720px){.hoy-figures .figure{border-bottom:0;flex:50%}.hoy-figures .figures>.figure+.figure{border-left:0!important}.hoy-figures .figures>.figure:nth-child(2n){border-left:1px solid var(--border)!important}.hoy-figures .figures>.figure:nth-child(n+3){border-top:1px solid var(--border)}.rack-focus{scrollbar-width:none;flex-wrap:nowrap;width:100%;overflow-x:auto}.rack-focus button{white-space:nowrap;flex:none}.rack-body{padding:4px 10px}.hoy-qa{height:48px}}@media (pointer:coarse),(width<=900px){.up-row{min-height:40px}}@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");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@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");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@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");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@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");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", "Cascadia Mono", Consolas, monospace;--fs-2xs:10.5px;--fs-xs:11.5px;--fs-sm:12.5px;--fs-md:13.5px;--fs-lg:15px;--fs-xl:18px;--fs-2xl:22px;--fs-3xl:28px;--lh:1.45;--tracking-caps:.07em;--bg:#f4f1ea;--surface:#fffdf9;--surface-2:#faf7f1;--surface-3:#efebe2;--border:#e3ddd1;--border-strong:#cbc3b4;--text:#1f1c17;--text-2:#57514a;--text-3:#6f685e;--text-inv:#fffdf9;--brand:#8c1d2b;--brand-hover:#74151f;--brand-soft:#f5e6e6;--brand-ring:#8c1d2b38;--frame:#fffdf9;--frame-line:#e3ddd1;--rail-bg:#f7f4ed;--rail-text:#3d3831;--rail-muted:#7a7367;--rail-active:#fff;--ok:#2b7a4b;--ok-soft:#e4f1e8;--warn:#a8660d;--warn-soft:#faeed8;--danger:#b3261e;--danger-soft:#f9e3e1;--info:#2c5f9e;--info-soft:#e3ecf7;--hk-clean:#2b7a4b;--hk-dirty:#c27a12;--hk-inspected:#2c5f9e;--occ-occupied:#3c3a8a;--occ-reserved:#0f7c7a;--occ-vacant:#8b8479;--mt-maintenance:#a8660d;--mt-ooo:#4a4f58;--cal-today:#e8eef8;--cal-weekend:#f6ece9;--cal-select:#8c1d2b24;--cal-grid:#ebe6dc;--cal-grid-strong:#d8d0c2;--radius-sm:3px;--radius:5px;--radius-lg:8px;--shadow-sm:0 1px 0 #1f1c170a;--shadow:0 1px 2px #1f1c170f, 0 2px 8px #1f1c170d;--shadow-lg:0 16px 40px #1f1c172e, 0 2px 6px #1f1c1714;--control-h:32px;--control-h-sm:26px;--row-h:38px;--sidebar-w:216px;--topbar-h:48px;--page-pad:20px;--shadow-hair:0 1px 0 #1f1c170f, 0 6px 14px -10px #1f1c1747;--shadow-lift:0 1px 0 #1f1c170d, 0 4px 10px -6px #1f1c174d;--placeholder:#928a7d;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-inout:cubic-bezier(.65, 0, .35, 1);--t-fast:90ms;--t:.15s;--dur-1:.12s;--dur-2:.18s;--dur-3:.24s;--dur-4:.28s;--stagger:28ms;--rise:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s;--t:0s;--dur-1:0s;--dur-2:0s;--dur-3:0s;--dur-4:0s;--stagger:0s;--rise:0px}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);font-size:var(--fs-md);line-height:var(--lh);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 0;margin:0}h1,h2,h3,h4{letter-spacing:-.005em;margin:0;font-weight:600;line-height:1.2}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-underline-offset:2px;text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}::selection{background:var(--brand-soft)}table{border-collapse:collapse;width:100%}.num,.mono,code,kbd{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-size:.94em}.muted{color:var(--text-3)}.soft{color:var(--text-2)}.small{font-size:var(--fs-sm)}.xsmall{font-size:var(--fs-xs)}.nowrap{white-space:nowrap}.right{text-align:right}.center{text-align:center}.grow{flex:1;min-width:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row{align-items:center;gap:8px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.stack-sm{flex-direction:column;gap:6px;display:flex}.stack-lg{flex-direction:column;gap:20px;display:flex}.caps{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.btn{height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--fs-md);cursor:pointer;white-space:nowrap;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), transform var(--t) var(--ease);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3);border-color:#b9b0a0}.btn:active:not(:disabled){transition-duration:60ms;transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{flex:none}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--text-inv)}.btn-primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover);box-shadow:0 1px #1f1c171f,0 3px 8px -4px #8c1d2b8c}.btn-dark{background:var(--text);border-color:var(--text);color:var(--text-inv)}.btn-dark:hover:not(:disabled){background:#000;border-color:#000}.btn-danger{color:var(--danger);background:var(--surface);border-color:#e3b9b5}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn-ok:hover:not(:disabled){background:#22643d;border-color:#22643d}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-3);border-color:#0000}.btn-link{color:var(--brand);background:0 0;border:0;height:auto;padding:0;font-weight:500}.btn-link:hover:not(:disabled){background:0 0;text-decoration:underline}.btn-sm{height:var(--control-h-sm);font-size:var(--fs-sm);gap:5px;padding:0 9px}.btn-lg{height:42px;font-size:var(--fs-lg);padding:0 18px}.btn-icon{width:var(--control-h);padding:0}.btn-icon.btn-sm{width:var(--control-h-sm)}.btn .kbd{margin-left:4px}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn+.btn{margin-left:-1px}.btn-group .btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.btn-group .btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>label,.label{font-size:var(--fs-xs);color:var(--text-2);letter-spacing:.01em;font-weight:600}.field .req{color:var(--brand);margin-left:2px}.input,.select,.textarea{width:100%;height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);font-size:var(--fs-md);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:0 10px}.select{padding-right:26px}.textarea{resize:vertical;height:auto;min-height:68px;padding:7px 10px;line-height:1.4}.input::placeholder,.textarea::placeholder{color:var(--placeholder)}.input:hover,.select:hover,.textarea:hover{border-color:#b9b0a0}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-3);color:var(--text-3);cursor:not-allowed}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px #b3261e1f}.input.num{text-align:right;font-family:var(--font-mono)}.field-error{color:var(--danger);font-size:var(--fs-xs);font-weight:500}.field-hint{color:var(--text-3);font-size:var(--fs-xs)}.input-sm{height:var(--control-h-sm);font-size:var(--fs-sm)}.input-icon{align-items:center;display:flex;position:relative}.input-icon>svg{color:var(--text-3);pointer-events:none;position:absolute;left:9px}.input-icon>.input{padding-left:30px}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;display:inline-flex}.check input{width:15px;height:15px;accent-color:var(--brand);flex:none;margin:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.form-grid .span-2{grid-column:1/-1}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px;display:grid}.form-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;display:grid}@media (width<=720px){.form-grid,.form-grid-3,.form-grid-4{grid-template-columns:1fr}}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding-top:12px;display:flex}.section-title{border-bottom:1px solid var(--text);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;padding-bottom:7px;display:flex}.section-title h3{font-size:var(--fs-md);font-weight:600}.section-title p{font-size:var(--fs-xs);color:var(--text-3)}.card,.sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:8px 14px;display:flex}.card-header h2{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-2);font-weight:700}.card-body{padding:12px 14px}.card-body.flush{padding:0}.drawer .card{background:0 0;border:0;border-radius:0}.drawer .card-header{border-bottom:1px solid var(--border-strong);min-height:0;padding:0 0 6px}.drawer .card-body{padding:10px 0 2px}.drawer .card-body.flush{padding:0}.card-footer{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:8px 14px}.panel{flex-direction:column;gap:10px;min-width:0;display:flex}.panel-head{border-bottom:1px solid var(--border-strong);align-items:baseline;gap:10px;padding-bottom:6px;display:flex}.panel-head h2{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-2);font-weight:700}.panel-head .count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3)}.panel-head .spacer{flex:1}.table th,.table td{height:var(--row-h);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:0 12px}.table td{padding-top:6px;padding-bottom:6px}.table th{height:32px;font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);background:var(--surface-2);border-bottom:1px solid var(--border-strong);z-index:1;white-space:nowrap;font-weight:700;position:sticky;top:0}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--text)}.table th .sort-ind{color:var(--brand);margin-left:4px}.table tbody tr{transition:background var(--t-fast)}.table tbody tr:hover{background:#f8f4ec}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable td:first-child{transition:box-shadow var(--t) var(--ease);box-shadow:inset 0 0 #0000}.table tbody tr.clickable:hover td:first-child,.table tbody tr.clickable:focus-visible td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.table tbody tr.clickable:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr.is-selected{background:var(--brand-soft)}.table tbody tr.is-muted{color:var(--text-3)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:var(--fs-sm)}.table th.num{font-family:var(--font);font-size:var(--fs-2xs)}.table td.actions{text-align:right;white-space:nowrap;width:1%}.table tfoot td{background:var(--surface-2);border-top:1px solid var(--text);font-weight:600}.table-wrap{-webkit-overflow-scrolling:touch;overflow:auto}.table-wrap.fits{overflow:visible}.table-wrap.fits .table th{top:calc(var(--page-pad) * -1)}.table-compact td,.table-compact th{height:30px;padding:0 10px}.badge{border-radius:var(--radius-sm);height:20px;font-size:var(--fs-2xs);letter-spacing:.02em;background:var(--surface-3);color:var(--text-2);white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:0 7px;font-weight:600;display:inline-flex}.badge-dot:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-brand{background:var(--brand-soft);color:var(--brand)}.badge-outline{border-color:var(--border-strong);color:var(--text-2);background:0 0}.status-pill{border-radius:var(--radius-sm);height:21px;font-size:var(--fs-2xs);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:6px;padding:0 8px 0 0;font-weight:700;display:inline-flex;overflow:hidden}.status-pill .notch{align-self:stretch;width:4px}.keytag{border:1.5px solid var(--text);min-width:46px;height:24px;font-family:var(--font-mono);font-weight:600;font-size:var(--fs-sm);background:var(--surface);color:var(--text);white-space:nowrap;border-radius:12px 5px 5px 12px;align-items:center;gap:5px;padding:0 8px 0 6px;display:inline-flex}.keytag:before{content:"";border:1.5px solid;border-radius:50%;flex:none;width:5px;height:5px}.keytag.lg{min-width:64px;height:32px;font-size:var(--fs-lg);border-width:2px;border-radius:16px 6px 6px 16px}.keytag.muted{border-color:var(--border-strong);color:var(--text-3)}.kbd{border:1px solid var(--border-strong);min-width:18px;height:18px;font-family:var(--font-mono);color:var(--text-2);background:var(--surface);border-bottom-width:2px;border-radius:3px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:600;display:inline-flex}.btn-primary .kbd{color:#ffffffd9;background:0 0;border-color:#fff6}.alert{border-radius:var(--radius);font-size:var(--fs-sm);border:1px solid;border-left-width:3px;align-items:flex-start;gap:9px;padding:9px 12px;line-height:1.4;display:flex}.alert>svg{flex:none;margin-top:1px}.alert-danger{background:var(--danger-soft);border-color:#eab9b4;border-left-color:var(--danger);color:#7d1a14}.alert-warning{background:var(--warn-soft);border-color:#ecd09c;border-left-color:var(--warn);color:#6f4507}.alert-info{background:var(--info-soft);border-color:#c5d6ee;border-left-color:var(--info);color:#1d4273}.alert-ok{background:var(--ok-soft);border-color:#b9dcc5;border-left-color:var(--ok);color:#1c5634}.overlay{z-index:50;animation:fade-in var(--dur-2) var(--ease);background:#1f1c1757;display:flex;position:fixed;inset:0}.overlay.is-leaving{pointer-events:none;animation:fade-out var(--dur-1) var(--ease-in) forwards}.overlay.is-leaving .modal{animation:pop-out var(--dur-1) var(--ease-in) forwards}.overlay.is-leaving .drawer{animation:slide-out var(--dur-1) var(--ease-in) forwards}.modal{background:var(--surface);border-radius:var(--radius-lg);width:min(500px,100vw - 24px);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);animation:pop-in var(--dur-3) var(--ease-out);flex-direction:column;margin:auto;display:flex}.modal-lg{width:min(760px,100vw - 24px)}.modal-xl{width:min(1040px,100vw - 24px)}.modal-header,.drawer-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:52px;padding:10px 18px;display:flex}.modal-header h2,.drawer-header h2{font-size:var(--fs-lg);flex:1;min-width:0;font-weight:600}.modal-body,.drawer-body{padding:16px 18px;overflow:auto}.modal-footer,.drawer-footer{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:10px 18px;display:flex}.drawer{width:min(var(--drawer-w,760px), 100vw);background:var(--surface);height:100%;box-shadow:var(--shadow-lg);border-left:1px solid var(--border-strong);animation:slide-in var(--dur-3) var(--ease-out);flex-direction:column;margin-left:auto;display:flex}.drawer-body{overscroll-behavior:contain;flex:1}.drawer-footer{border-radius:0}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes pop-out{to{opacity:0;transform:translateY(4px)scale(.99)}}@keyframes slide-in{0%{opacity:0;transform:translate(32px)}}@keyframes slide-out{to{opacity:0;transform:translate(24px)}}@keyframes content-in{0%{opacity:0}}@media (width<=640px){.drawer{border-left:0;width:100vw}.overlay-modal{align-items:flex-end}.modal,.modal-lg,.modal-xl{border-radius:14px 14px 0 0;width:100%;max-height:calc(100dvh - 24px);margin:auto 0 0;animation-name:sheet-up}.overlay.is-leaving .modal{animation-name:sheet-down}.modal-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom));border-radius:0}.modal-footer .btn,.drawer-footer .btn{flex:auto}}@keyframes sheet-down{to{opacity:0;transform:translateY(28px)}}.toasts{z-index:100;flex-direction:column;gap:8px;max-width:min(400px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{border-radius:var(--radius);background:var(--text);color:var(--text-inv);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);border-left:3px solid var(--text-3);animation:toast-in var(--dur-3) var(--ease-out);align-items:flex-start;gap:8px;padding:10px 14px;display:flex}.toast.is-leaving{animation:toast-out var(--dur-2) var(--ease-in) forwards}@keyframes toast-in{0%{opacity:0;transform:translate(24px)}}@keyframes toast-out{to{opacity:0;transform:translate(16px)}}.toast-ok{border-left-color:#4fbf7d}.toast-error{border-left-color:#ff7a6e}.toast-info{border-left-color:#7fa8e0}.tabs{border-bottom:1px solid var(--border-strong);gap:18px;display:flex;overflow:auto hidden}.tab{cursor:pointer;color:var(--text-2);font-weight:500;font-size:var(--fs-md);white-space:nowrap;transition:color var(--t-fast), border-color var(--dur-2) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 0 8px}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--brand);font-weight:600}.tab .count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);margin-left:6px}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);display:inline-flex;overflow:hidden}.segmented button{height:calc(var(--control-h) - 2px);cursor:pointer;font-size:var(--fs-sm);color:var(--text-2);transition:background var(--t-fast);background:0 0;border:none;padding:0 11px;font-weight:500}.segmented button+button{border-left:1px solid var(--border)}.segmented button{transition:background var(--t-fast), color var(--t-fast)}.segmented button:hover{background:var(--surface-3)}.segmented button[aria-pressed=true]{background:var(--text);color:var(--text-inv)}.segmented.sm button{height:calc(var(--control-h-sm) - 2px);font-size:var(--fs-xs);padding:0 9px}.empty{text-align:center;color:var(--text-3);padding:28px 16px}.empty-state{width:fit-content;max-width:min(560px,100%);color:var(--text-2);text-align:left;align-items:flex-start;gap:14px;margin:0 auto;padding:28px 20px 30px;display:flex}.empty-state .empty-icon{border:1.5px dashed var(--border-strong);width:44px;height:30px;color:var(--text-3);border-radius:15px 5px 5px 15px;flex:none;place-items:center;padding-left:8px;display:grid;position:relative}.empty-state .empty-icon:before{content:"";border:1.5px solid var(--border-strong);border-radius:50%;width:5px;height:5px;margin-top:-2.5px;position:absolute;top:50%;left:6px}.empty-body{flex-direction:column;gap:3px;min-width:0;padding-top:2px;display:flex}.empty-state h3{font-size:var(--fs-md);color:var(--text)}.empty-state p{font-size:var(--fs-sm);color:var(--text-3);max-width:420px}.empty-action{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.spinner{border:2px solid #80786c59;border-top-color:currentColor;border-radius:50%;flex:none;width:15px;height:15px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{color:var(--text-3);justify-content:center;align-items:center;gap:8px;padding:32px;display:flex}.skeleton{background:var(--surface-3);animation:skel-pulse 1.4s var(--ease-inout) infinite alternate;border-radius:3px;display:block}@keyframes skel-pulse{0%{opacity:1}to{opacity:.45}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.kv{font-size:var(--fs-md);grid-template-columns:max-content 1fr;gap:5px 16px;display:grid}.kv dt{color:var(--text-3);font-size:var(--fs-sm)}.kv dd{min-width:0;margin:0;font-weight:500}.divider{background:var(--border);height:1px;margin:4px 0}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.pagination{font-size:var(--fs-sm);color:var(--text-3);justify-content:flex-end;align-items:center;gap:8px;padding:8px 12px;display:flex}.search-icon{color:var(--text-3);pointer-events:none;position:absolute;left:9px}.figures{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;display:flex}.figure{min-width:0;color:inherit;flex-direction:column;flex:130px;gap:2px;padding:11px 14px;display:flex}.figure+.figure{border-left:1px solid var(--border)}a.figure:hover{background:var(--surface-2);text-decoration:none}.figure-label{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);font-weight:700}.figure-value{font-family:var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:1.15}.figure-sub{font-size:var(--fs-xs);color:var(--text-3)}.tone-ok{color:var(--ok)}.tone-warn{color:var(--warn)}.tone-danger{color:var(--danger)}.tone-info{color:var(--info)}.tone-brand{color:var(--brand)}@media (width<=720px){.figure{flex:50%;padding:10px 12px}.figure+.figure{border-left:0}.figure:nth-child(2n){border-left:1px solid var(--border)}.figure:nth-child(n+3){border-top:1px solid var(--border)}.figure-value{font-size:21px}}.money{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.money.neg{color:var(--danger)}.money.pos{color:var(--ok)}.menu{z-index:40;transform-origin:100% 0;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow-lg);animation:menu-in var(--dur-2) var(--ease-out);padding:4px;position:absolute;top:calc(100% + 4px);right:0}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.menu-item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;width:100%;font-size:var(--fs-md);color:var(--text);background:0 0;border:none;align-items:center;gap:9px;padding:7px 10px;display:flex}.menu-item:hover,.menu-item[aria-selected=true]{background:var(--surface-3)}.menu-item.danger{color:var(--danger)}.menu-item .kbd{margin-left:auto}.menu-sep{background:var(--border);height:1px;margin:4px 0}.menu-head{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);padding:6px 10px 4px;font-weight:700}@media print{.no-print{display:none!important}}.figure-btn{text-align:left;cursor:pointer;font:inherit;color:inherit;transition:background var(--t-fast);background:0 0;border:0;position:relative}.figure-btn:hover{background:var(--surface-2)}.figure-btn:after,a.figure:after{content:"";background:var(--brand);transform-origin:0;height:2px;transition:transform var(--dur-2) var(--ease);position:absolute;bottom:-1px;left:14px;right:14px;transform:scaleX(0)}a.figure{position:relative}.figure-btn:hover:after,a.figure:hover:after,.figure-btn:focus-visible:after{transform:scaleX(1)}.figure-btn:hover .figure-label{color:var(--text-2)}.figure-btn:focus-visible{outline:2px solid var(--brand-ring);outline-offset:-2px}:is(body:has(.drawer) .toasts,body:has(.modal) .toasts){bottom:76px}[data-rv=wait]{opacity:0;transform:translateY(var(--rise))}[data-rv=play]{animation:rv-in var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--rv-i,0) * var(--stagger))}.panel[data-rv=play],.sheet[data-rv=play],.card[data-rv=play],.up-strip[data-rv=play]{animation-duration:var(--dur-3)}@keyframes rv-in{0%{opacity:0;transform:translateY(var(--rise))}}@media (prefers-reduced-motion:reduce){[data-rv]{opacity:1!important;animation:none!important;transform:none!important}}@media print{[data-rv]{opacity:1!important;animation:none!important;transform:none!important}}.count-up{font-variant-numeric:tabular-nums}@media (pointer:coarse),(width<=900px){:root{--control-h:40px;--control-h-sm:40px}.btn-sm{padding:0 12px}.tab{padding:12px 0 11px}.segmented button{min-width:40px}.check{min-height:40px}.check input{width:18px;height:18px}.menu-item{min-height:44px}.input,.select,.textarea{font-size:16px}.kbd,.btn .kbd{display:none}}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"brand desk""rail main";height:100%;display:grid}.app-shell.collapsed{--sidebar-w:64px}.shell-brand{background:var(--rail-bg);border-right:1px solid var(--frame-line);border-bottom:1px solid var(--frame-line);grid-area:brand;align-items:center;gap:10px;min-width:0;padding:0 14px;display:flex}.brand-mark{background:var(--brand);color:#fff;width:28px;height:28px;font-family:var(--font-mono);border-radius:14px 5px 5px 14px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid;position:relative}.brand-mark:before{content:"";background:var(--rail-bg);border-radius:50%;width:4px;height:4px;position:absolute;left:5px}.brand-logo{object-fit:contain;border-radius:4px;flex:none;width:28px;height:28px}.brand-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.brand-name{font-weight:600;font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.brand-sub{font-size:var(--fs-2xs);color:var(--text-3);letter-spacing:var(--tracking-caps);text-transform:uppercase}.app-shell.collapsed .brand-text{display:none}.deskbar{z-index:20;background:var(--frame);border-bottom:1px solid var(--frame-line);grid-area:desk;align-items:center;gap:12px;min-width:0;padding:0 16px;display:flex;position:relative}.deskbar:after{content:"";pointer-events:none;opacity:0;height:10px;transition:opacity var(--dur-2) var(--ease);background:linear-gradient(#1f1c1712,#1f1c1700);position:absolute;top:100%;left:0;right:0}.app-shell[data-scrolled="1"] .deskbar:after{opacity:1}.desk-context{flex:0 auto;align-items:center;min-width:0;height:100%;display:flex;position:relative}.business-date,.desk-title{min-width:0;transition:opacity var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);flex-direction:column;justify-content:center;line-height:1.15;display:flex}.business-date strong{font-size:var(--fs-md);white-space:nowrap;font-weight:600}.business-date span{font-size:var(--fs-2xs);color:var(--text-3);letter-spacing:var(--tracking-caps);text-transform:uppercase;white-space:nowrap}.desk-title{opacity:0;pointer-events:none;width:max-content;max-width:280px;position:absolute;inset:0 auto 0 0;transform:translateY(8px)}.desk-title-eyebrow{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--brand);font-weight:700}.desk-title-text{font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.app-shell[data-compact="1"] .business-date{opacity:0;transform:translateY(-8px)}.app-shell[data-compact="1"] .desk-title{opacity:1;transform:none}.desk-sep{background:var(--border);flex:none;width:1px;height:24px}.global-search{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);min-width:120px;max-width:520px;height:32px;color:var(--text-3);cursor:text;text-align:left;font-size:var(--fs-md);transition:border-color var(--t-fast), background var(--t-fast);flex:1;align-items:center;gap:8px;padding:0 8px 0 10px;display:flex}.global-search:hover{background:var(--surface);border-color:#b9b0a0}.global-search span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.desk-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.icon-btn{border-radius:var(--radius);width:34px;height:34px;color:var(--text-2);cursor:pointer;transition:background var(--t-fast), color var(--t-fast), transform var(--t) var(--ease);background:0 0;border:1px solid #0000;place-items:center;display:grid;position:relative}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn:active{transform:scale(.94)}.icon-btn .counter{background:var(--brand);color:#fff;min-width:16px;height:16px;font-family:var(--font-mono);text-align:center;border:2px solid var(--frame);border-radius:8px;padding:0 4px;font-size:10px;font-weight:700;line-height:12px;position:absolute;top:3px;right:2px}.user-menu{position:relative}.user-button{border-radius:var(--radius);cursor:pointer;text-align:left;height:36px;transition:background var(--t-fast);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 8px 0 4px;display:flex}.user-button:hover{background:var(--surface-3)}.user-button .who{flex-direction:column;line-height:1.15;display:flex}.user-button .who strong{font-size:var(--fs-sm);font-weight:600}.user-button .who span{font-size:var(--fs-2xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.avatar{background:var(--text);width:28px;height:28px;color:var(--text-inv);font-weight:600;font-size:var(--fs-2xs);letter-spacing:.03em;border-radius:50%;flex:none;place-items:center;display:grid}.rail{background:var(--rail-bg);border-right:1px solid var(--frame-line);flex-direction:column;grid-area:rail;min-height:0;display:flex;overflow:hidden}.rail nav{flex:1;padding:10px 8px 12px;overflow-y:auto}.rail-section{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--rail-muted);padding:14px 10px 5px;font-weight:700}.rail-section:first-child{padding-top:4px}.nav-link{border-radius:var(--radius);height:34px;color:var(--rail-text);font-weight:500;font-size:var(--fs-md);white-space:nowrap;transition:background var(--t-fast), color var(--t-fast);align-items:center;gap:10px;padding:0 8px 0 10px;display:flex;position:relative}.nav-link:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.nav-link.active{background:var(--rail-active);color:var(--text);box-shadow:inset 0 0 0 1px var(--border);font-weight:600}.nav-link.active:before{content:"";background:var(--brand);width:3px;animation:tab-in var(--dur-2) var(--ease-out);transform-origin:0;border-radius:0 2px 2px 0;position:absolute;top:7px;bottom:7px;left:-8px}@keyframes tab-in{0%{opacity:0;transform:scaleY(.2)}}.nav-icon-wrap{flex:none;place-items:center;display:grid;position:relative}.nav-link svg{color:var(--text-3);transition:color var(--t-fast), transform var(--t) var(--ease);flex:none}.nav-link:hover svg{color:var(--text-2)}.nav-link.active svg{color:var(--brand)}.nav-dot{display:none}.nav-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nav-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2);text-align:right;min-width:20px;font-weight:600}.nav-count.alert{color:var(--danger)}.nav-count.warn{color:var(--warn)}.nav-more,.nav-short,.nav-scrim{display:none}.rail-footer{border-top:1px solid var(--frame-line);padding:8px}.rail-footer .nav-link{cursor:pointer;background:0 0;border:0;width:100%}.app-shell.collapsed .nav-count{display:none}.app-shell.collapsed .nav-dot{background:var(--brand);border:1.5px solid var(--rail-bg);border-radius:50%;width:7px;height:7px;display:block;position:absolute;top:-2px;right:-3px}.app-shell.collapsed .nav-dot.warn{background:var(--warn)}.app-shell.collapsed .nav-link,.app-shell.collapsed .shell-brand{justify-content:center;padding:0}.app-shell.collapsed .rail-section{background:var(--frame-line);color:#0000;height:1px;margin:10px 12px 9px;padding:0;font-size:0;line-height:0;overflow:hidden}.app-shell.collapsed .rail-section:first-child{display:none}.app-shell.collapsed .nav-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.rail-flyout{z-index:45;border-radius:var(--radius);background:var(--text);color:var(--text-inv);font-size:var(--fs-sm);white-space:nowrap;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity var(--t) var(--ease-out), transform var(--t) var(--ease-out);padding:6px 11px;font-weight:500;position:fixed;transform:translateY(-50%)translate(-4px)}.rail-flyout.show{opacity:1;transform:translateY(-50%)translate(0)}@media (prefers-reduced-motion:reduce){.rail-flyout{transition:none}}.main{flex-direction:column;grid-area:main;min-width:0;min-height:0;display:flex;position:relative}.route-view{min-width:0;min-height:0;animation:route-in var(--dur-3) var(--ease-out) backwards;flex-direction:column;flex:1;display:flex}@keyframes route-in{0%{opacity:0;transform:translateY(var(--rise))}}.page{min-height:0;padding:var(--page-pad) var(--page-pad) 48px;overscroll-behavior-y:contain;flex:1;overflow:auto}.page-narrow{max-width:1180px}.page-flush{flex-direction:column;flex:1;min-height:0;display:flex}.scroll-progress{z-index:15;background:var(--brand);transform-origin:0;opacity:0;height:2px;transition:opacity var(--dur-2) var(--ease);pointer-events:none;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.page-header{border-bottom:1px solid var(--border-strong);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px;padding-bottom:14px;display:flex}.page-header .ph-text{flex-direction:column;flex:1;gap:4px;min-width:220px;display:flex}.page-header .ph-eyebrow{font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--brand);align-items:center;gap:7px;font-weight:700;display:inline-flex}.page-header .ph-eyebrow:before{content:"";border:1.5px solid;border-radius:50%;flex:none;width:6px;height:6px}.page-header h1{font-size:var(--fs-2xl);letter-spacing:-.015em;font-weight:600;line-height:1.15}.page-header .ph-meta{font-size:var(--fs-sm);color:var(--text-3)}.page-header .ph-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.page-header:has(+.tabs){border-bottom:0;margin-bottom:12px;padding-bottom:0}.toolbar{background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.hide-sm{display:inline}@media (pointer:coarse),(width<=900px){.global-search{height:40px}.icon-btn,.user-button{min-width:40px;height:40px}}@media (width<=1180px){.app-shell{--sidebar-w:64px}.app-shell .rail-section,.app-shell .nav-count,.app-shell .brand-text{display:none}.app-shell .nav-link{justify-content:center;height:40px;padding:0}.app-shell .shell-brand{justify-content:center;padding:0}.rail nav{flex-direction:column;gap:2px;display:flex}.user-button .who,.rail-footer{display:none}.app-shell .rail-section{background:var(--frame-line);height:1px;margin:10px 12px 9px;padding:0;font-size:0}.app-shell .rail-section:first-child{display:none}.app-shell .nav-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.app-shell .nav-dot{background:var(--brand);border:1.5px solid var(--rail-bg);border-radius:50%;width:7px;height:7px;display:block;position:absolute;top:-2px;right:-3px}.app-shell .nav-dot.warn{background:var(--warn)}}@media (width<=760px){:root{--page-pad:14px;--topbar-h:52px}.app-shell{grid-template-columns:1fr;grid-template-rows:var(--topbar-h) 1fr auto;grid-template-areas:"desk""main""rail"}.shell-brand{display:none}.deskbar{gap:8px;padding:0 10px 0 14px}.desk-context{flex:auto}.business-date strong{font-size:var(--fs-sm)}.desk-sep{display:none}.global-search{flex:none;justify-content:center;width:40px;min-width:40px;height:40px;padding:0}.global-search span,.global-search .kbd{display:none}.desk-actions .btn-primary{width:40px;height:40px;padding:0}.hide-sm{display:none}.icon-btn{width:40px;height:40px}.user-button{height:40px;padding:0 2px}.toolbar{padding:10px}.toolbar>.select,.toolbar>.input,.toolbar>.input-icon,.toolbar>.field,.toolbar>label:not(.check){flex:100%;width:100%;max-width:none}.toolbar>.segmented,.toolbar .tabs{max-width:100%;overflow-x:auto}.page-header h1{font-size:var(--fs-xl)}.page-header{position:relative}.page-header:has(.ph-actions>.btn-icon:only-child) .ph-text{padding-right:48px}.page-header .ph-actions:has(>.btn-icon:only-child){position:absolute;top:0;right:0}.rail{z-index:30;border-right:0;border-top:1px solid var(--frame-line);padding-bottom:env(safe-area-inset-bottom);position:relative;overflow:visible}.rail nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:4px;display:grid;overflow:visible}.rail-section,.rail-footer{display:none!important}.app-shell .nav-link{display:none}.app-shell .nav-link.nav-primary,.app-shell .nav-more{cursor:pointer;height:52px;color:var(--rail-text);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 2px;font-size:10.5px;font-weight:600;display:flex}.app-shell .nav-link.nav-primary .nav-label,.app-shell .nav-more .nav-label{flex:none;max-width:100%;display:block}.app-shell .nav-link.nav-primary:has(.nav-short) .nav-label{display:none}.app-shell .nav-link.nav-primary .nav-short{display:block}.app-shell.nav-open .nav-link .nav-short{display:none!important}.app-shell .nav-link:has(.nav-count):after{top:7px;right:calc(50% - 15px)}.nav-link.active{box-shadow:none;color:var(--brand);background:0 0}.nav-link.active:before{border-radius:0 0 2px 2px;width:auto;height:3px;inset:-4px 30% auto}.nav-scrim{z-index:25;animation:fade-in var(--dur-2) var(--ease);background:#1f1c175c;display:block;position:fixed;inset:0}.app-shell.nav-open .rail nav{z-index:31;overscroll-behavior:contain;max-height:min(78vh,640px);padding:6px 12px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border-strong);animation:sheet-up var(--dur-3) var(--ease-out);border-radius:14px 14px 0 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 6px;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -12px 32px #1f1c1729}.app-shell.nav-open .rail-section{grid-column:1/-1;padding:12px 4px 4px;display:block!important}.app-shell.nav-open .nav-link,.app-shell.nav-open .nav-link.nav-primary{height:44px;font-size:var(--fs-md);border-radius:var(--radius);flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;padding:0 10px;font-weight:500;display:flex}.app-shell.nav-open .nav-link .nav-label{flex:1;display:block!important}.app-shell.nav-open .nav-count{display:inline}.app-shell.nav-open .nav-link:has(.nav-count):after{display:none}.app-shell.nav-open .nav-link.active{background:var(--brand-soft)}.app-shell.nav-open .nav-link.active:before{display:none}.app-shell.nav-open .nav-more{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);height:48px;font-size:var(--fs-2xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);flex-direction:row;order:-1;grid-column:1/-1;justify-content:space-between;padding:0 4px;position:sticky;top:-6px}.app-shell.nav-open .nav-more .nav-label{order:-1}.app-shell.nav-open .nav-more .nav-label:after{content:" · todas las secciones"}}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}@media (width<=380px){.business-date span{display:none}}.print-sheet{color:#000;background:#fff;max-width:780px;margin:0 auto;padding:28px 32px;font-size:12px;line-height:1.4}.print-sheet h1{font-size:18px}.print-sheet h2{text-transform:uppercase;letter-spacing:.06em;border-bottom:1.5px solid #000;margin:16px 0 8px;padding-bottom:3px;font-size:13px}.print-sheet table{border-collapse:collapse;width:100%}.print-sheet th,.print-sheet td{text-align:left;vertical-align:top;border-bottom:1px solid #bbb;padding:4px 6px}.print-sheet th{text-transform:uppercase;letter-spacing:.05em;border-bottom:1.5px solid #000;font-size:10px}.print-sheet .num{text-align:right;font-family:var(--font-mono)}.print-sheet .print-head{border-bottom:2px solid #000;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:10px;display:flex}.print-sheet .print-head img{object-fit:contain;max-width:160px;max-height:56px}.print-sheet .totals{width:280px;margin-left:auto}.print-sheet .totals td{border:0;padding:2px 6px}.print-sheet .totals tr.grand td{border-top:1.5px solid #000;font-size:13px;font-weight:700}.print-sheet .signature{gap:40px;margin-top:48px;display:flex}.print-sheet .signature div{text-align:center;border-top:1px solid #000;flex:1;padding-top:4px;font-size:11px}.print-toolbar{justify-content:center;gap:8px;padding:12px;display:flex}@media print{@page{size:letter;margin:12mm}body{background:#fff!important}.app-shell{display:block!important}.rail,.deskbar,.shell-brand,.no-print,.print-toolbar,.toasts{display:none!important}.main,.page{padding:0!important;overflow:visible!important}.print-sheet{max-width:none;padding:0}.sheet,.card{border:0!important}}
