:root{color:#1a1a1a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f4f6f8;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}#root{min-height:100vh}.kiosk{color:#1a1a1a;background:#f4f6f8;flex-direction:column;height:100dvh;min-height:100dvh;font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex;overflow:hidden}.kiosk-header{--nav-track-pad:3px;--nav-pill-py:.5rem;--nav-pill-px:.95rem;--nav-pill-px-compact:.72rem;--nav-pill-fs:.92rem;--nav-pill-lh:1.2;--nav-pill-r:999px;--nav-track-bg:#edf2f7;--nav-pill-height:calc(var(--nav-track-pad) * 2 + var(--nav-pill-py) * 2 + 1.104rem);background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;box-shadow:0 1px 3px #0000000f}.kiosk-header h1{margin:0;font-size:1.35rem;font-weight:650;line-height:1.2}.kiosk-header--with-post h1{color:#94a3b8;letter-spacing:normal;font-size:.78rem;font-weight:400;line-height:1}.kiosk-header__brand{flex-direction:column;flex:0 auto;align-items:flex-start;gap:.2rem;min-width:0;max-width:min(480px,52vw);display:flex;position:relative}.kiosk-header__brand-measure{visibility:hidden;pointer-events:none;z-index:-1;width:max-content;max-width:none;position:absolute;top:0;left:0}.kiosk-header__brand-icon{box-sizing:border-box;width:var(--nav-pill-height);height:var(--nav-pill-height);color:#475569;border-radius:var(--nav-pill-r);cursor:default;background:#f8fafc;border:1px solid #e2e8f0;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.kiosk-header__brand-icon:hover{color:#334155;background:#f1f5f9;border-color:#cbd5e1}.kiosk-header--brand-compact,.kiosk-header--with-post.kiosk-header--brand-compact{min-height:auto}.kiosk-tabs{flex:none;align-items:center;gap:.5rem;min-width:0;display:flex}.kiosk-header--with-post .kiosk-header__brand{gap:.35rem}.kiosk-header__title-row{flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;display:flex}.kiosk-header__post-label{color:#9a3412;letter-spacing:.01em;flex-wrap:wrap;align-items:baseline;gap:.28rem .35rem;min-width:0;margin:0;font-size:.82rem;font-weight:650;line-height:1.35;display:flex}.kiosk-header--with-post .kiosk-header__post-label{color:#1a1a1a;letter-spacing:normal;font-size:1.35rem;font-weight:650;line-height:1.2}.kiosk-header__post-site{word-break:break-word;min-width:0}.kiosk-header--with-post .kiosk-header__post-site{color:inherit;font-weight:inherit}.kiosk-header__title-row .kiosk-header__post-name{color:#94a3b8;word-break:break-word;min-width:0;font-size:.78rem;font-weight:400;line-height:1}.kiosk-header__meta-sep{color:#94a3b8;flex-shrink:0;font-size:.78rem;line-height:1}.kiosk-header__post-switch{box-sizing:border-box;height:var(--nav-pill-height);padding:0 var(--nav-pill-px-compact);color:#475569;border-radius:var(--nav-pill-r);font-size:var(--nav-pill-fs);font-weight:500;line-height:var(--nav-pill-lh);cursor:pointer;white-space:nowrap;background:#f8fafc;border:1px solid #e2e8f0;flex-shrink:0;justify-content:center;align-items:center;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.kiosk-header__post-switch:hover{color:#334155;background:#f1f5f9;border-color:#cbd5e1}.kiosk-header--with-post{box-sizing:border-box;min-height:4.85rem;padding-top:1rem;padding-bottom:1rem}.kiosk-header--with-post .kiosk-header__status{color:#94a3b8;font-size:.78rem;font-weight:400}.kiosk-header__status{color:#64748b;align-items:center;font-size:.85rem;line-height:1;display:inline-flex}.kiosk-header__status-text--short{display:none}.header-search{box-sizing:border-box;color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:999px;width:11rem;height:calc(1.1rem + 1.2em);padding:.55rem 1rem;font-size:.95rem;line-height:1.2}.header-search:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 2px #2563eb26}.header-search::placeholder{color:#94a3b8}.tab-nav{background:var(--nav-track-bg);border-radius:var(--nav-pill-r);padding:var(--nav-track-pad);height:var(--nav-pill-height);box-sizing:border-box;align-items:center;gap:0;display:inline-flex;position:relative}.tab-nav__droplet{top:var(--nav-track-pad);bottom:var(--nav-track-pad);border-radius:var(--nav-pill-r);z-index:0;background:#2563eb;transition:left .38s cubic-bezier(.34,1.35,.64,1),width .32s cubic-bezier(.34,1.2,.64,1);position:absolute;box-shadow:0 2px 8px #2563eb47}.tab-nav__btn{z-index:1;box-sizing:border-box;color:#475569;padding:var(--nav-pill-py) var(--nav-pill-px);border-radius:var(--nav-pill-r);font-size:var(--nav-pill-fs);line-height:var(--nav-pill-lh);cursor:pointer;white-space:nowrap;background:0 0;border:none;height:100%;transition:color .22s;position:relative}.tab-nav__btn.active{color:#fff}.tab-nav__btn:not(.active):hover{color:#1e293b}.header-admin-nav{height:var(--nav-pill-height);flex-shrink:0;align-items:center;gap:.5rem;display:inline-flex}.admin-tab-nav{background:var(--nav-track-bg);border-radius:var(--nav-pill-r);padding:var(--nav-track-pad);height:var(--nav-pill-height);box-sizing:border-box;align-items:center;display:inline-flex;position:relative}.admin-tab-nav__droplet{top:var(--nav-track-pad);bottom:var(--nav-track-pad);border-radius:var(--nav-pill-r);z-index:0;background:#2563eb;transition:left .34s cubic-bezier(.34,1.35,.64,1),width .28s cubic-bezier(.34,1.2,.64,1);position:absolute;box-shadow:0 2px 8px #2563eb47}.admin-tab-nav__btn{z-index:1;box-sizing:border-box;color:#475569;padding:var(--nav-pill-py) var(--nav-pill-px-compact);border-radius:var(--nav-pill-r);font-size:var(--nav-pill-fs);line-height:var(--nav-pill-lh);cursor:pointer;white-space:nowrap;background:0 0;border:none;height:100%;transition:color .22s;position:relative}.admin-tab-nav__btn.active{color:#fff}.admin-tab-nav__btn:not(.active):hover{color:#1e293b}.header-admin-nav__logout{box-sizing:border-box;background:var(--nav-track-bg);color:#475569;padding:0 var(--nav-pill-px);border-radius:var(--nav-pill-r);font-size:var(--nav-pill-fs);line-height:var(--nav-pill-lh);height:var(--nav-pill-height);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;transition:color .22s,background .22s}.header-admin-nav__logout:hover{color:#1e293b;background:#e2e8f0}.fade-panel{transition:opacity .28s}.fade-panel--in{opacity:1}.fade-panel--out{opacity:0}.page-enter{animation:.28s forwards page-enter}@keyframes page-enter{0%{opacity:0}to{opacity:1}}.kiosk-main-wrap{flex-direction:column;flex:1;width:100%;min-width:0;min-height:0;display:flex}.floor-tab-nav{background:#edf2f7;border-radius:999px;align-items:center;padding:3px;display:inline-flex;position:relative}.floor-tab-nav__droplet{z-index:0;background:#2563eb;border-radius:999px;transition:left .36s cubic-bezier(.34,1.35,.64,1),width .3s cubic-bezier(.34,1.2,.64,1);position:absolute;top:3px;bottom:3px;box-shadow:0 2px 6px #2563eb38}.floor-tab-nav__btn{z-index:1;color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:.38rem .75rem;font-size:.86rem;transition:color .2s;position:relative}.floor-tab-nav__btn.active{color:#fff}.floor-tab-nav__btn:not(.active):hover{color:#334155}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:.35rem;display:inline-block}.status-dot.ok{background:#22c55e}.status-dot.off{background:#ef4444}.kiosk-main{box-sizing:border-box;flex:1;width:100%;min-width:0;max-width:none;min-height:0;margin:0;padding:1.25rem 1.5rem 2rem;overflow:hidden auto}.kiosk--employee-mode .kiosk-main.employee-kiosk-main{flex-direction:column;padding:0;display:flex;overflow:hidden}.room-picker{flex-direction:column;gap:.85rem;display:flex}.room-picker__sub,.room-picker__grid{opacity:1;transition:opacity .28s}.room-picker__sub.is-hidden,.room-picker__grid.is-hidden{opacity:0;pointer-events:none}.room-picker__sub.is-visible,.room-picker__grid.is-visible{opacity:1}.building-tabs{grid-template-columns:repeat(4,1fr);gap:.65rem;display:grid}@media (width<=900px){.building-tabs{grid-template-columns:repeat(2,1fr)}}.building-tab{cursor:pointer;text-align:left;background:#fff;border:2px solid #cbd5e1;border-radius:12px;flex-direction:column;gap:.2rem;min-height:72px;padding:.75rem .85rem;display:flex}.building-tab.active{background:#eff6ff;border-color:#2563eb;box-shadow:0 2px 8px #2563eb1f}.building-tab__name{color:#0f172a;font-size:1.05rem;font-weight:700}.building-tab__meta{color:#64748b;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.building-tab__alert{border-radius:999px;padding:.05rem .4rem;font-weight:600}.building-tab__alert--out{color:#c2410c;background:#ffedd5}.building-tab__alert--overdue{color:#be123c;background:#ffe4e6}.floor-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.floor-tabs{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.floor-chip{color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:.4rem .75rem;font-size:.88rem}.floor-chip.active{color:#fff;background:#2563eb;border-color:#2563eb}.room-count{color:#64748b;white-space:nowrap;align-self:center;margin:0;padding-left:0;font-size:.88rem}.room-sections{flex-direction:column;gap:1.25rem;display:flex}.floor-heading{color:#475569;margin:0 0 .55rem;font-size:.95rem;font-weight:650}.room-grid{grid-template-columns:repeat(auto-fill,104px);justify-content:start;gap:.65rem;display:grid}.room-btn{box-sizing:border-box;cursor:pointer;background:#fff;border:2px solid #cbd5e1;border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;width:104px;height:104px;padding:.45rem .35rem 0;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.room-btn:hover:not(:disabled){border-color:#2563eb;box-shadow:0 3px 10px #2563eb24}.room-btn:disabled{opacity:.55;cursor:not-allowed}.room-btn.key-out{background:#fff7ed;border-color:#f97316}.room-btn.key-out:hover:not(:disabled){border-color:#fb923c;box-shadow:0 3px 10px #f9731624}.room-btn.key-overdue{background:#fff1f2;border-color:#f5c2c7}.room-btn.key-overdue:hover:not(:disabled){border-color:#fda4af;box-shadow:0 3px 10px #f43f5e1f}.room-btn__indicator{background:0 0;border-radius:50%;width:9px;height:9px;position:absolute;top:7px;right:7px}.room-btn.key-out .room-btn__indicator{background:#f97316;box-shadow:0 0 0 2px #ffedd5}.room-btn.key-overdue .room-btn__indicator{background:#fb7185;box-shadow:0 0 0 2px #ffe4e6}.room-number{margin-top:.15rem;font-size:1.35rem;font-weight:700;line-height:1.2}.room-label{color:#64748b;text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;height:2.4em;margin-top:.15rem;font-size:.68rem;line-height:1.2;display:-webkit-box;overflow:hidden}.room-btn__status{text-align:center;text-transform:uppercase;letter-spacing:.02em;color:#0000;background:0 0;height:22px;font-size:.62rem;font-weight:700;line-height:22px;position:absolute;bottom:0;left:0;right:0}.room-btn.key-out .room-btn__status{color:#c2410c;background:#ffedd5}.room-btn.key-overdue .room-btn__status{color:#be123c;background:#ffe4e6}.room-btn.key-free{background:#f0fdf4;border-color:#86efac}.room-btn.key-free:hover:not(:disabled){border-color:#4ade80;box-shadow:0 3px 10px #22c55e24}.room-btn.key-free .room-btn__indicator{background:#22c55e;box-shadow:0 0 0 2px #dcfce7}.room-btn.key-free .room-btn__status{color:#15803d;background:#dcfce7}.room-btn.key-held{background:#eff6ff;border-color:#93c5fd}.room-btn.key-held:hover:not(:disabled){border-color:#60a5fa;box-shadow:0 3px 10px #2563eb24}.room-btn.key-held .room-btn__indicator{background:#2563eb;box-shadow:0 0 0 2px #dbeafe}.room-btn.key-held .room-btn__status{color:#1d4ed8;background:#dbeafe}.room-picker__title{color:#0f172a;margin:0 0 .25rem;font-size:1.25rem;font-weight:650}.room-grid--large{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.85rem}.room-picker--large .room-btn{width:100%;min-width:140px;height:132px}.room-picker--large .room-number{font-size:1.65rem}.room-picker--large .room-btn__status{height:26px;font-size:.72rem;line-height:26px}.btn-sm{padding:.5rem .85rem;font-size:.9rem}.overlay{z-index:20;-webkit-backdrop-filter:blur();opacity:0;background:#0f172a00;justify-content:center;align-items:center;padding:1rem;transition:opacity .28s,background-color .28s,-webkit-backdrop-filter .28s,backdrop-filter .28s;display:flex;position:fixed;inset:0}.overlay--visible{opacity:1;-webkit-backdrop-filter:blur(10px);background:#0f172a70}.modal{text-align:center;opacity:0;background:#fff;border-radius:18px;width:min(480px,100%);padding:2rem 1.75rem;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .28s;transform:scale(.94)translateY(14px);box-shadow:0 20px 50px #0000002e}.modal--visible{opacity:1;transform:scale(1)translateY(0)}.modal-body{animation:.22s modal-content-in}@keyframes modal-content-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.modal h2{margin:0 0 .5rem;font-size:1.75rem}.modal p{color:#475569;margin:.35rem 0;font-size:1.05rem;line-height:1.45}.modal .timer{color:#2563eb;margin-top:1rem;font-size:1.1rem;font-weight:600}.card-reader-input{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.card-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:2px dashed #60a5fa;border-radius:12px;justify-content:center;align-items:center;width:88px;height:88px;margin:1.25rem auto;font-size:2rem;animation:1.6s ease-in-out infinite pulse;display:flex}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.04)}}.success-icon{color:#16a34a;background:#dcfce7;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:.5rem auto 1rem;font-size:2rem;font-weight:700;display:flex}.error-banner{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-top:1rem;padding:.75rem;font-size:.95rem}.access-denied-banner{color:#991b1b;text-align:center;background:#fef2f2;border:2px solid #ef4444;border-radius:12px;margin-top:1rem;padding:1rem}.access-denied-banner strong{margin-bottom:.35rem;font-size:1.25rem;display:block}.access-denied-banner p{margin:.25rem 0}.access-denied-hint{color:#7f1d1d;font-weight:600;margin-top:.75rem!important}.modal-body--denied{max-width:28rem}.access-denied-panel{text-align:center;background:linear-gradient(#fef2f2 0%,#fff 100%);border:2px solid #ef4444;border-radius:14px;margin-top:.75rem;padding:1.25rem 1.25rem 1rem;box-shadow:0 4px 20px #ef44441f}.access-denied-panel__icon{margin-bottom:.35rem;font-size:2.5rem;line-height:1}.access-denied-panel__title{color:#991b1b;margin:0 0 1rem;font-size:1.35rem;font-weight:700}.access-denied-panel__details{text-align:left;background:#fff;border:1px solid #fecaca;border-radius:10px;margin:0;padding:.75rem 1rem}.access-denied-panel__row{grid-template-columns:6.5rem 1fr;gap:.35rem .75rem;padding:.35rem 0;display:grid}.access-denied-panel__row:not(:last-child){border-bottom:1px solid #fee2e2}.access-denied-panel__row dt{color:#64748b;text-transform:uppercase;letter-spacing:.02em;margin:0;font-size:.82rem;font-weight:600}.access-denied-panel__row dd{color:#1e293b;margin:0;font-size:1rem;font-weight:600}.access-denied-panel__hint{color:#7f1d1d;margin:1rem 0 0;font-size:.92rem;font-weight:500;line-height:1.45}.actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.5rem;display:flex}.btn{cursor:pointer;border:none;border-radius:10px;padding:.75rem 1.25rem;font-size:1rem}.btn-primary{color:#fff;background:#2563eb}.btn-secondary{color:#334155;background:#e2e8f0}.btn-dev{color:#475569;background:#f1f5f9;border:1px dashed #94a3b8;font-size:.9rem}.journal-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto}.journal-table{border-collapse:collapse;width:100%;font-size:.95rem}.journal-table th,.journal-table td{text-align:left;border-bottom:1px solid #f1f5f9;padding:.75rem 1rem}.journal-table th{color:#475569;background:#f8fafc;font-weight:600}.journal-row{cursor:pointer;transition:background-color .15s}.journal-row:hover{background:#f8fafc}.journal-row--active{background:#eff6ff!important}.journal-row--open{box-shadow:inset 3px 0 #f97316}.journal-row:focus-visible{outline-offset:-2px;outline:2px solid #2563eb}.journal-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.journal-toolbar input[type=date]{border:1px solid #cbd5e1;border-radius:8px;padding:.5rem .65rem;font-size:.95rem}.empty-state{text-align:center;color:#64748b;padding:2rem}.side-drawer-backdrop{z-index:40;-webkit-backdrop-filter:blur();background:#0f172a00;justify-content:flex-end;transition:background-color .32s,-webkit-backdrop-filter .32s,backdrop-filter .32s;display:flex;position:fixed;inset:0}.side-drawer-backdrop--visible{-webkit-backdrop-filter:blur(8px);background:#0f172a61}.side-drawer{background:#fff;flex-direction:column;width:min(420px,92vw);height:100%;transition:transform .32s cubic-bezier(.22,1,.36,1);display:flex;transform:translate(100%);box-shadow:-12px 0 40px #00000024}.side-drawer--visible{transform:translate(0)}.side-drawer__header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:1rem 1.15rem;display:flex}.side-drawer__header h2{margin:0;font-size:1.05rem;font-weight:650}.side-drawer__close{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;width:2rem;height:2rem;font-size:1.25rem;line-height:1}.side-drawer__close:hover{color:#334155;background:#e2e8f0}.side-drawer__body{flex:1;padding:1rem 1.15rem 1.5rem;overflow-y:auto}.journal-detail{flex-direction:column;gap:.65rem;display:flex}.journal-detail__status{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-self:flex-start;margin-bottom:.35rem;padding:.3rem .65rem;font-size:.78rem;font-weight:700;display:inline-block}.journal-detail__status--open{color:#c2410c;background:#ffedd5}.journal-detail__status--done{color:#15803d;background:#dcfce7}.journal-detail__row{border-bottom:1px solid #f1f5f9;grid-template-columns:7.5rem 1fr;gap:.5rem;padding:.45rem 0;font-size:.92rem;display:grid}.journal-detail__label{color:#64748b;font-size:.82rem}.journal-detail__value{color:#1e293b;word-break:break-word}.journal-detail__holder-hint{color:#64748b;margin:.75rem 0 0;font-size:.82rem}.post-login{justify-content:center;align-items:center;min-height:calc(100vh - 80px);padding:1.5rem;display:flex}.kiosk-boot{color:#64748b;flex:1;justify-content:center;align-items:center;min-height:12rem;font-size:1rem;display:flex}.post-login__card{background:#fff;border-radius:14px;width:min(100%,380px);padding:1.5rem;box-shadow:0 8px 24px #0f172a14}.post-login__title{margin:0 0 .35rem;font-size:1.25rem}.post-login__hint{color:#64748b;margin:0 0 1rem;font-size:.9rem}.post-login__form{flex-direction:column;gap:.75rem;display:flex}.post-login__field{color:#475569;flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.post-login__field input,.post-login__field select{border:1px solid #cbd5e1;border-radius:8px;padding:.55rem .65rem;font-size:1rem}.post-login__site{color:#475569;margin:0;font-size:.9rem}.post-login__error{color:#be123c;margin:0;font-size:.88rem}.post-login__submit{margin-top:.25rem}.kiosk-layout{flex:1;align-items:stretch;min-width:0;min-height:0;display:flex;overflow:hidden}.kiosk-layout .kiosk-main{flex:auto;min-width:0;overflow:hidden auto}.kiosk-handoff-slot{flex-direction:column;flex:0 0 0;align-self:stretch;width:0;max-width:0;transition:flex-basis .32s cubic-bezier(.22,1,.36,1),width .32s cubic-bezier(.22,1,.36,1),max-width .32s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden}.kiosk-handoff-slot--open{flex:0 0 min(360px,38vw);width:min(360px,38vw);max-width:min(360px,38vw)}.guard-handoff-panel{opacity:0;background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;width:min(360px,38vw);height:100%;min-height:0;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .28s;display:flex;transform:translate(100%);box-shadow:-4px 0 16px #0000000a}.guard-handoff-panel--visible{opacity:1;transform:translate(0)}.guard-handoff-panel__header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:1rem 1.1rem;display:flex}.guard-handoff-panel__header h2{margin:0;font-size:1.05rem}.guard-handoff-panel__count{color:#fff;background:#2563eb;border-radius:999px;justify-content:center;align-items:center;min-width:1.75rem;height:1.75rem;padding:0 .45rem;font-size:.85rem;font-weight:600;display:inline-flex}.guard-handoff-panel__list{flex-direction:column;flex:1;gap:.75rem;min-height:0;padding:.75rem;display:flex;overflow-y:auto}.guard-handoff-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.85rem 1rem}.guard-handoff-card__kind{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.75rem;font-weight:600}.guard-handoff-card__room{margin:.35rem 0 .2rem;font-size:1.05rem}.guard-handoff-card__holder{color:#334155;margin:0}.guard-handoff-card__time{color:#94a3b8;margin:.25rem 0 .65rem;font-size:.82rem}.guard-handoff-card__actions{gap:.5rem;display:flex}.guard-handoff-panel__footer{border-top:1px solid #e2e8f0;padding:.75rem 1rem 1rem}.guard-handoff-panel__undo{flex-direction:column;gap:.5rem;font-size:.88rem;display:flex}.guard-handoff-panel__undo-actions{gap:.5rem;display:flex}.guard-handoff-panel__error{color:#be123c;background:#fef2f2;border-radius:8px;flex-shrink:0;margin:.5rem 1rem 0;padding:.5rem .75rem;font-size:.85rem}.actions--stack{flex-direction:column;align-items:stretch}.actions--stack .btn{width:100%;min-height:48px}.kiosk-header__badge{color:#1d4ed8;letter-spacing:.02em;text-transform:uppercase;background:#dbeafe;border-radius:999px;flex-shrink:0;align-items:center;padding:.15rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.kiosk--employee-mode .kiosk-header{z-index:20;border-bottom-color:#bfdbfe;position:relative}.kiosk--employee-mode .kiosk-header__brand{flex:auto;max-width:none}.kiosk--employee-mode .kiosk-header__title-row{flex-wrap:nowrap}.kiosk--employee-mode .kiosk-header__title-row h1,.kiosk--employee-mode .kiosk-header__title-row .kiosk-header__status,.kiosk--employee-mode .kiosk-header__title-row .kiosk-header__post-name{white-space:nowrap;word-break:normal;flex-shrink:0}.kiosk--employee-mode .kiosk-header__badge,.kiosk--employee-mode .kiosk-header__meta-sep{flex-shrink:0}.modal-content-fade .modal-body{animation:none}.modal-content-fade.fade-panel{width:100%;display:block}.success-icon--error{color:#b91c1c;background:#fef2f2;border:2px solid #fecaca}.employee-error-modal p{color:#475569;line-height:1.45}.kiosk--employee-video-stage{background:#0f172a}.kiosk--employee-video-stage .kiosk-header{z-index:30;-webkit-backdrop-filter:blur(18px)saturate(125%);background:#0f172a85;border-bottom:1px solid #ffffff24;box-shadow:0 4px 28px #00000038}.kiosk--employee-video-stage .kiosk-header--with-post .kiosk-header__post-label,.kiosk--employee-video-stage .kiosk-header--with-post .kiosk-header__post-site{color:#f8fafc;text-shadow:0 1px 10px #0000008c}.kiosk--employee-video-stage .kiosk-header h1,.kiosk--employee-video-stage .kiosk-header__post-name{color:#e2e8f0;text-shadow:0 1px 8px #00000073}.kiosk--employee-video-stage .kiosk-header--with-post h1{color:#cbd5e1}.kiosk--employee-video-stage .kiosk-header__status{color:#e2e8f0}.kiosk--employee-video-stage .kiosk-header__meta-sep{color:#ffffff6b}.kiosk--employee-video-stage .kiosk-header__badge{color:#eff6ff;background:#2563eb94;border:1px solid #93c5fd61;box-shadow:0 1px 6px #0000002e}.kiosk--employee-video-stage .kiosk-main-wrap{background:0 0;flex:1;min-height:0;position:relative}.employee-kiosk-root{z-index:1;background:0 0;flex:1;width:100%;min-height:0;padding:0;position:relative;overflow:hidden}.kiosk--employee-video-stage .employee-stage{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.employee-stage{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.employee-stage__media{background:#0f172a;position:absolute;inset:0;overflow:hidden}.employee-stage__gradient{z-index:1;pointer-events:none;background:linear-gradient(#0f172ac7 0%,#0f172a57 14%,#0f172a1a 38%,#0f172a3d 62%,#0f172ad1 100%);position:absolute;inset:0}.employee-stage__scrim{z-index:2;pointer-events:none;background:#0f172a00;transition:background-color .32s;position:absolute;inset:0}.employee-stage__scrim--idle{background:#0f172a14}.employee-stage__scrim--rooms{background:#0f172a7a}.employee-stage__scrim--panel{background:#0f172a94}.employee-stage__video{z-index:0;object-fit:cover;object-position:center;background:#0f172a;width:100%;height:100%;display:block;position:absolute;inset:0}.employee-stage__idle{z-index:3;opacity:0;transition:opacity .32s}.employee-stage__idle--visible{opacity:1}.employee-stage__sheet{z-index:20;pointer-events:none;opacity:0;background:#f4f6f8;border-radius:18px 18px 0 0;max-height:88vh;transition:opacity .34s,transform .38s cubic-bezier(.22,1,.36,1),height .32s cubic-bezier(.22,1,.36,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(calc(100% + 12px));box-shadow:0 -12px 40px #00000038}.employee-stage__sheet--visible{pointer-events:auto;opacity:1;transform:translateY(0)}.employee-stage__sheet--sized{flex-direction:column;display:flex;overflow:hidden}.employee-stage__sheet--compact .employee-stage__sheet-inner{gap:0;padding:.75rem 1rem .625rem}.employee-stage__sheet--compact,.employee-stage__sheet-body{min-height:0}.employee-stage__sheet-inner{box-sizing:border-box;flex-direction:column;flex:1;gap:1rem;min-height:100%;padding:1rem 1rem 1.25rem;display:flex}.employee-stage__sheet--sized .employee-stage__sheet-inner{max-height:100%;overflow-y:auto}.employee-stage__sheet-inner .employee-rooms-fade{flex:0 auto;min-height:0}.employee-stage__sheet-inner .room-picker{gap:1rem;padding-bottom:.5rem}.employee-stage__sheet-inner .room-picker__sub{margin-bottom:.15rem}.employee-stage__sheet-inner .room-picker__grid{margin-top:.65rem;padding-top:.35rem}.employee-stage__banner{z-index:25;pointer-events:none;opacity:0;border-radius:10px;width:min(100% - 2rem,520px);padding:.75rem 1rem;font-size:.95rem;animation:.32s forwards employee-banner-in;position:absolute;top:.5rem;left:50%;transform:translate(-50%)}.employee-stage__banner--warn{color:#b91c1c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fef2f2f0;border:1px solid #fecaca}@keyframes employee-banner-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.kiosk--employee-idle-backdrop{background:#0f172a}.kiosk--employee-idle-backdrop .employee-idle-fade{z-index:0;pointer-events:none;position:fixed;inset:0}.kiosk--employee-idle-backdrop .kiosk-header{z-index:30;-webkit-backdrop-filter:blur(18px)saturate(125%);background:#0f172a85;border-bottom:1px solid #ffffff24;box-shadow:0 4px 28px #00000038}.kiosk--employee-idle-backdrop .kiosk-header--with-post .kiosk-header__post-label,.kiosk--employee-idle-backdrop .kiosk-header--with-post .kiosk-header__post-site{color:#f8fafc;text-shadow:0 1px 10px #0000008c}.kiosk--employee-idle-backdrop .kiosk-header h1,.kiosk--employee-idle-backdrop .kiosk-header__post-name{color:#e2e8f0;text-shadow:0 1px 8px #00000073}.kiosk--employee-idle-backdrop .kiosk-header--with-post h1{color:#cbd5e1}.kiosk--employee-idle-backdrop .kiosk-header__status{color:#e2e8f0}.kiosk--employee-idle-backdrop .kiosk-header__meta-sep{color:#ffffff6b}.kiosk--employee-idle-backdrop .kiosk-header__badge{color:#eff6ff;background:#2563eb94;border:1px solid #93c5fd61;box-shadow:0 1px 6px #0000002e}.kiosk--employee-idle-backdrop .kiosk-main-wrap{z-index:10;background:0 0;position:relative}.kiosk--employee-mode .kiosk-main.employee-kiosk-main--idle-backdrop{background:0 0;padding:0;overflow:visible}.employee-kiosk-main{flex-direction:column;flex:1;justify-content:flex-start;align-items:stretch;gap:0;min-height:0;display:flex}.employee-idle-fade.fade-panel{display:block}.employee-rooms-fade{flex:0 auto;width:100%;min-height:0}.employee-kiosk-notice{z-index:12;border-radius:10px;flex-shrink:0;margin:1rem 1.25rem 0;padding:.75rem 1rem;font-size:.95rem;position:relative}.employee-kiosk-notice--warn{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.employee-error-panel{z-index:12;background:#fef2f2;border:2px solid #fecaca;border-radius:12px;flex-shrink:0;margin:1rem 1.25rem 0;padding:1rem 1.15rem;position:relative}.employee-error-panel__title{color:#991b1b;margin:0 0 .85rem;font-size:1.05rem;font-weight:650;line-height:1.4}.employee-error-panel__actions{flex-wrap:wrap;gap:.65rem;display:flex}.employee-error-panel__actions .btn{min-height:48px}.employee-idle{min-height:100%;position:absolute;inset:0}.employee-idle__media{background:#0f172a;position:absolute;inset:0;overflow:hidden}.employee-idle__media:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(#0f172ac7 0%,#0f172a57 14%,#0f172a1a 38%,#0f172a3d 62%,#0f172ad1 100%);position:absolute;inset:0}.employee-idle__video{object-fit:cover;object-position:center;width:100%;height:100%;display:block;position:absolute;inset:0}.employee-idle__brand{z-index:0;color:#f8fafc;background:linear-gradient(#1e3a5f 0%,#0f172a 100%);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem 1.5rem 8rem;display:flex;position:absolute;inset:0}.employee-idle__card-icon{background:#ffffff1f;border:2px dashed #ffffff59;border-radius:16px;justify-content:center;align-items:center;width:88px;height:88px;font-size:2.25rem;animation:1.6s ease-in-out infinite pulse;display:flex}.employee-idle__brand-title{margin:.5rem 0 0;font-size:1.5rem;font-weight:700}.employee-idle__brand-sub{color:#94a3b8;margin:0;font-size:1rem}.employee-idle__overlay{z-index:2;padding:1.5rem 1.25rem max(2rem, calc(env(safe-area-inset-bottom) + 1.25rem));pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:0;left:0;right:0}.employee-idle__content{text-align:center;color:#f8fafc;-webkit-backdrop-filter:blur(14px);background:#0f172a9e;border:1px solid #ffffff24;border-radius:16px;width:min(100%,560px);padding:1.15rem 1.35rem 1.25rem;box-shadow:0 12px 40px #00000059}.employee-idle__cta{letter-spacing:-.01em;text-shadow:0 2px 12px #0000008c;margin:0;font-size:clamp(1.45rem,3.5vw,2rem);font-weight:750}.employee-idle__sub{color:#e2e8f0;text-shadow:0 1px 6px #00000073;margin:.4rem 0 0;font-size:1.05rem}.employee-session-bar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.65rem 1rem;padding:.85rem 1rem;display:flex;box-shadow:0 1px 3px #0000000d}.employee-session-bar__info{flex-direction:column;flex:160px;gap:.15rem;min-width:0;display:flex}.employee-session-bar__info strong{color:#0f172a;font-size:1.15rem}.employee-session-bar__info span{color:#64748b;font-size:.9rem}.employee-session-bar__status--loading{color:#2563eb}.employee-session-bar .btn{min-height:48px;padding:.65rem 1.1rem}.employee-greeting{color:#64748b!important;margin:0 0 .15rem!important;font-size:1rem!important}.employee-flow-modal{max-width:28rem}.employee-flow-actions{flex-direction:column;gap:.85rem;margin:1.35rem 0;display:flex}.employee-flow-btn{text-align:left;align-items:center;gap:.85rem;width:100%;min-height:72px;border-radius:14px!important;padding:.9rem 1.1rem!important;display:flex!important}.employee-flow-btn__icon{background:#ffffff2e;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.35rem;display:inline-flex}.btn-secondary.employee-flow-btn .employee-flow-btn__icon{background:#fff}.employee-flow-btn__text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.employee-flow-btn__text strong{font-size:1.15rem;font-weight:700}.employee-flow-btn__text small{opacity:.85;font-size:.88rem;font-weight:500}.employee-confirm-meta{color:#64748b!important;margin:0 0 .35rem!important;font-size:.95rem!important}.employee-timer-ring{--progress:1;background:radial-gradient(closest-side, #fff 72%, transparent 73% 100%), conic-gradient(#2563eb calc(var(--progress) * 360deg), #e2e8f0 0);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:96px;height:96px;margin:1rem auto .25rem;display:flex}.employee-timer-ring__value{color:#0f172a;font-size:1.65rem;font-weight:750;line-height:1}.employee-timer-ring__unit{color:#64748b;text-transform:uppercase;font-size:.75rem;font-weight:600}.employee-spinner{border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:48px;height:48px;margin:.5rem auto 1rem;animation:.8s linear infinite employee-spin}@keyframes employee-spin{to{transform:rotate(360deg)}}.employee-wait-room{color:#0f172a!important;font-weight:650!important}.employee-wait-hint{color:#64748b!important;margin-top:.5rem!important;font-size:.95rem!important}.employee-wait-timeout{color:#94a3b8!important;margin-top:.75rem!important;font-size:.88rem!important}.success-icon--wait{color:#2563eb;background:#dbeafe}.admin-checkbox{align-items:center;gap:.5rem;margin:.75rem 0;display:flex}@media (width<=900px){.kiosk-handoff-slot--open{flex:0 0 min(300px,44vw);width:min(300px,44vw);max-width:min(300px,44vw)}.guard-handoff-panel{width:min(300px,44vw)}.kiosk-header{flex-wrap:wrap;gap:.65rem}.kiosk-tabs{flex-wrap:wrap;justify-content:flex-end}}@media (width<=640px){.kiosk-handoff-slot--open{z-index:5;flex:none;width:min(100%,320px);max-width:min(100%,320px);position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0000001f}.kiosk-layout{position:relative}.employee-idle__cta{font-size:1.35rem}}@media (width<=480px){.kiosk--employee-mode .kiosk-header{align-items:stretch;gap:.35rem;min-height:auto;padding:.62rem .85rem}.kiosk--employee-mode .kiosk-header__brand{flex:auto;width:100%;max-width:none}.kiosk--employee-mode .kiosk-header--with-post .kiosk-header__post-label{font-size:.92rem;line-height:1.25}.kiosk--employee-mode .kiosk-header__title-row{flex-wrap:wrap;gap:.22rem .42rem}.kiosk--employee-mode .kiosk-header__title-row h1,.kiosk--employee-mode .kiosk-header--with-post h1{white-space:normal;font-size:.95rem;font-weight:600}.kiosk--employee-mode .kiosk-header__badge{padding:.12rem .45rem;font-size:.62rem}.kiosk--employee-mode .kiosk-header__status{font-size:.72rem}.kiosk--employee-mode .kiosk-header__status-text--long{display:none}.kiosk--employee-mode .kiosk-header__status-text--short{display:inline}.kiosk--employee-mode .kiosk-header__title-row .kiosk-header__post-name,.kiosk--employee-mode .kiosk-header__meta-sep{display:none}.employee-idle__cta{font-size:1.35rem}.kiosk--employee-video-stage .kiosk-header{padding-top:.62rem;padding-bottom:.62rem}.kiosk--employee-idle-backdrop .kiosk-header--with-post .kiosk-header__post-label,.kiosk--employee-idle-backdrop .kiosk-header--with-post .kiosk-header__post-site{font-size:.88rem}}.admin-main{flex-direction:column;flex:1;max-width:1100px;min-height:0;margin:0 auto;display:flex}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.admin-chips--status{margin-bottom:.75rem}.admin-screen{flex-direction:column;flex:1;min-height:0;display:flex}.admin-data{margin-top:0}.admin-chips{flex-wrap:wrap;gap:.4rem;display:flex}.admin-chip{color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.25rem .6rem;font-size:.78rem}.admin-chip strong{color:#334155;font-weight:600}.admin-toast{z-index:50;color:#f8fafc;background:#1e293b;border-radius:10px;padding:.55rem .9rem;font-size:.88rem;animation:.25s toast-in;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 8px 24px #0000002e}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.admin-split{grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.65rem;display:grid}@media (width<=720px){.admin-split{grid-template-columns:1fr}}.admin-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:.85rem 1rem}.admin-card--compact h2{margin:0 0 .35rem;font-size:.95rem}.admin-card h2{margin:0 0 .5rem;font-size:1rem}.admin-login{flex-direction:column;gap:.65rem;max-width:360px;display:flex}.admin-login input[type=password]{border:1px solid #cbd5e1;border-radius:8px;padding:.6rem .75rem;font-size:.95rem}.admin-error{color:#b91c1c;margin:0;font-size:.88rem}.admin-hint{color:#64748b;margin:0 0 .5rem;font-size:.78rem}.admin-inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.55rem;display:flex}.admin-card--compact .admin-inline-form{width:fit-content;max-width:100%}.admin-inline-form input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:7px;padding:.38rem .55rem;font-size:.82rem}.admin-inline-form input[type=date]{flex:none;width:auto;min-width:11rem}.admin-inline-form input:not([type=date]):first-of-type{flex:0 0 5.5rem;width:5.5rem;min-width:5.5rem}.admin-inline-form input:not([type=date]):nth-of-type(2){flex:120px;min-width:120px}.admin-inline-form .btn{flex-shrink:0}.admin-file-btn{cursor:pointer;display:inline-block}.btn-xs{border-radius:8px;padding:.38rem .65rem;font-size:.82rem}.admin-catalog__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.65rem;display:flex}.admin-catalog__head h2{margin:0}.admin-catalog__stats{color:#64748b;margin:.2rem 0 0;font-size:.78rem}.admin-catalog__alert{color:#c2410c;font-weight:600}.admin-catalog{flex-direction:column;flex:1;min-height:0;margin-bottom:0;display:flex;overflow:hidden}.admin-catalog__fade{flex-direction:column;flex:1;min-height:0;display:flex}.height-panel{transition:height .28s;overflow:hidden}.height-panel--fill{flex-direction:column;flex:1;min-height:0;transition:none;display:flex}.fade-panel--fill{flex-direction:column;flex:1;min-height:0;display:flex}.admin-catalog__body{flex-direction:column;flex:1;min-height:0;padding-top:.15rem;display:flex}.admin-site-picker{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.75rem;display:flex}.admin-site-picker__label{color:#64748b;font-size:.85rem;font-weight:600}.post-zone-editor{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:1rem;padding:.85rem}.post-zone-editor__grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.45rem;margin:.65rem 0;display:grid}.post-zone-editor__item{align-items:center;gap:.4rem;font-size:.88rem;display:flex}.catalog-tab-nav{background:#f1f5f9;border-radius:999px;padding:2px;display:inline-flex;position:relative}.catalog-tab-nav__droplet{z-index:0;background:#2563eb;border-radius:999px;transition:left .34s cubic-bezier(.34,1.35,.64,1),width .28s cubic-bezier(.34,1.2,.64,1);position:absolute;top:2px;bottom:2px;box-shadow:0 2px 6px #2563eb38}.catalog-tab-nav__btn{z-index:1;color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.32rem .7rem;font-size:.78rem;transition:color .2s;position:relative}.catalog-tab-nav__btn.active{color:#fff}.admin-building-chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.55rem;display:flex}.admin-building-chip{color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .55rem;font-size:.78rem;display:inline-flex}.admin-building-chip.active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.admin-building-chip__count{color:#64748b;background:#e2e8f0;border-radius:999px;padding:.05rem .35rem;font-size:.72rem}.admin-building-chip.active .admin-building-chip__count{color:#1d4ed8;background:#dbeafe}.admin-table-wrap{overflow-x:auto}.admin-table-wrap--scroll{max-height:340px;overflow-y:auto}.admin-catalog .admin-table-wrap--scroll{flex:1;min-height:0;max-height:none}.admin-table{border-collapse:collapse;width:100%;font-size:.82rem}.admin-table--compact th,.admin-table--compact td{padding:.35rem .45rem}.admin-table th{color:#64748b;text-transform:uppercase;letter-spacing:.02em;background:#f8fafc;font-size:.75rem;font-weight:600}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #f1f5f9}.admin-table-input{border:1px solid #e2e8f0;border-radius:5px;width:100%;min-width:60px;padding:.28rem .4rem;font-size:.82rem}.admin-table-input--narrow{max-width:4.5rem}.admin-table-actions{white-space:nowrap;gap:.25rem;display:flex}.admin-code{color:#475569;background:#f1f5f9;border-radius:4px;padding:.1rem .35rem;font-size:.78rem}.admin-muted{color:#94a3b8;font-size:.78rem}.admin-badge{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;padding:.12rem .4rem;font-size:.68rem;font-weight:600;display:inline-block}.admin-badge--ok{color:#15803d;background:#f0fdf4}.admin-badge--warn{color:#c2410c;background:#ffedd5}.admin-table tr.row-key-out{background:#fffbf5}.overdue-banner{color:#9a3412;background:#fff7ed;border:1px solid #fdba74;border-radius:10px;margin-bottom:.85rem;padding:.65rem 1rem;font-size:.95rem}.overdue-banner strong{font-weight:650}.admin-analytics{margin-bottom:.75rem}.admin-analytics__head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.65rem;display:flex}.admin-analytics__head h2{margin:0}.admin-analytics__period{background:#fff;border:1px solid #cbd5e1;border-radius:7px;padding:.32rem .55rem;font-size:.82rem}.admin-analytics__kpis{grid-template-columns:repeat(4,1fr);gap:.45rem;margin-bottom:.75rem;display:grid}@media (width<=640px){.admin-analytics__kpis{grid-template-columns:repeat(2,1fr)}}.analytics-kpi{text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.45rem .55rem}.analytics-kpi--warn .analytics-kpi__value{color:#c2410c}.analytics-kpi__value{color:#1e293b;font-size:1.15rem;font-weight:700;line-height:1.2;display:block}.analytics-kpi__label{color:#64748b;text-transform:uppercase;letter-spacing:.03em;font-size:.68rem}.admin-analytics__grid{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}@media (width<=720px){.admin-analytics__grid{grid-template-columns:1fr}}.analytics-chart{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;min-height:180px;padding:.6rem .65rem}.analytics-chart h3{color:#334155;margin:0 0 .15rem;font-size:.88rem;font-weight:650}.analytics-chart__hint{color:#94a3b8;margin:0 0 .45rem;font-size:.68rem;line-height:1.35}.analytics-chart__empty{text-align:center;color:#94a3b8;margin:1.5rem 0 0;font-size:.78rem}.analytics-chart__svg{width:100%;height:auto;display:block}.analytics-chart__axis{fill:#94a3b8;font-size:7px}.analytics-hbars{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.analytics-hbars__row{grid-template-columns:4.5rem 1fr auto;align-items:center;gap:.4rem;font-size:.78rem;display:grid}.analytics-hbars__label{color:#475569;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.analytics-hbars__track{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden}.analytics-hbars__fill{border-radius:999px;min-width:2px;height:100%;transition:width .4s;display:block}.analytics-hbars__value{color:#334155;white-space:nowrap;font-size:.75rem;font-weight:600}.analytics-hbars__value small{color:#f97316;font-size:.65rem;font-weight:400;display:block}.analytics-legend{color:#64748b;gap:.75rem;margin-top:.35rem;font-size:.68rem;display:flex}.analytics-legend__dot{vertical-align:middle;border-radius:2px;width:8px;height:8px;margin-right:.25rem;display:inline-block}.analytics-legend__dot--blue{background:#2563eb}.analytics-legend__dot--green{background:#22c55e}.analytics-chart--trend{min-height:200px}.analytics-trend__grid{stroke:#e2e8f0;stroke-width:1px;stroke-dasharray:3 3}.analytics-trend__axis{stroke:#cbd5e1;stroke-width:1px}.analytics-trend__ylabel{fill:#94a3b8;font-size:8px}.analytics-trend__bar--checkout{fill:#2563eb;opacity:.88}.analytics-trend__bar--return{fill:#22c55e;opacity:.88}.analytics-trend__zero{fill:#cbd5e1}.analytics-trend__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.analytics-trend__totals{color:#64748b;font-size:.72rem;font-weight:600}.analytics-donut-wrap{flex:1;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:132px;display:flex}.analytics-chart--donut{flex-direction:column;min-height:200px;display:flex}.analytics-donut{aspect-ratio:1;flex:1 0 48%;width:100%;max-width:168px;max-height:168px}.analytics-donut__pct{fill:#1e293b;font-size:13px;font-weight:700}.analytics-donut__sub{fill:#94a3b8;font-size:7px}.analytics-donut-legend{color:#475569;flex-direction:column;flex:52%;justify-content:center;gap:.35rem;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.analytics-donut-legend li{align-items:center;gap:.45rem;margin-bottom:0;display:flex}.analytics-donut-legend i{border-radius:50%;flex-shrink:0;width:10px;height:10px}.analytics-donut-legend strong{color:#1e293b;font-weight:650}.analytics-donut-legend__meta{color:#64748b;border-top:1px solid #e2e8f0;margin-top:.45rem;padding-top:.45rem;font-size:.82rem}.admin-analytics__denials{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}@media (width<=900px){.admin-analytics__denials{grid-template-columns:1fr}}.admin-split--access{align-items:start;gap:1rem}.admin-access-members{min-width:16rem}.admin-access-members__list{flex-direction:column;gap:.25rem;max-height:16rem;margin:.5rem 0 .75rem;display:flex;overflow:auto}.admin-split--holders{grid-template-columns:minmax(16rem,22rem) 1fr}.holder-register{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.75rem}.holder-register__title{margin:0 0 .75rem;font-size:1rem}.holder-register__fields,.holder-register__groups{margin-bottom:.75rem}.holder-register__groups-list{flex-direction:column;gap:.25rem;max-height:8rem;margin-top:.35rem;display:flex;overflow:auto}.holder-register__scan{text-align:center;background:#fff;border:1px dashed #93c5fd;border-radius:8px;padding:.75rem}.holder-register__scan--active{animation:1.6s ease-in-out infinite pulse}.holder-register__scan-icon{margin-bottom:.35rem;font-size:1.75rem;display:block}.holder-register__error{color:#b91c1c;margin:.5rem 0 0;font-size:.88rem}.holder-list h3{margin:0 0 .75rem;font-size:1rem}.admin-check-row{cursor:pointer;align-items:center;gap:.45rem;font-size:.88rem;display:flex}.admin-row--active{background:#eff6ff}.access-matrix{flex-direction:column;gap:.75rem;display:flex}.access-matrix__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.access-matrix__title{color:#1e293b;margin:0 0 .2rem;font-size:.95rem;font-weight:650}.access-matrix__hint{max-width:36rem;margin:0 0 .45rem}.access-matrix__stats{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;display:flex}.access-matrix__stat{color:#64748b;align-items:center;gap:.35rem;font-size:.78rem;display:inline-flex}.access-matrix__dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.access-matrix__dot--on{background:#22c55e;box-shadow:inset 0 0 0 1px #15803d59}.access-matrix__dot--off{background:#f1f5f9;box-shadow:inset 0 0 0 1px #cbd5e1}.access-matrix__dot--partial{background:#fef3c7;box-shadow:inset 0 0 0 1px #fbbf24}.access-matrix__view-row{margin-bottom:.45rem}.access-matrix__filters{flex-wrap:wrap;align-items:center;gap:.45rem .65rem;margin-bottom:.65rem;display:flex}.access-matrix__filters-label{color:#64748b;font-size:.78rem;font-weight:600}.access-matrix__floor-chips{flex-wrap:wrap;gap:.35rem;display:flex}.access-matrix__floor-chip{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.22rem .55rem;font-size:.78rem}.access-matrix__floor-chip.active{color:#fff;background:#2563eb;border-color:#2563eb}.access-matrix__head-static{cursor:default}.access-matrix__head-static:hover{background:0 0}.access-matrix__cell-btn.is-partial{color:#b45309;background:#fef9c3;border-color:#fcd34d;box-shadow:0 1px 4px #fbbf2433}.access-matrix__cell-btn.is-partial:hover{background:#fef08a;border-color:#fbbf24}.access-matrix__cell-btn--sm{width:2rem;height:2rem;font-size:.85rem}.access-matrix__col-head--room{min-width:2.5rem}.access-matrix__grid--rooms .access-matrix__head-code{font-size:.78rem}.access-matrix__empty-msg{padding:1rem}.access-matrix__dirty{color:#c2410c;font-size:.78rem;font-weight:600}.access-matrix__actions{flex-shrink:0;gap:.4rem;display:flex}.access-matrix__scroll{background:#fff;border:1px solid #e2e8f0;border-radius:12px;max-height:min(52vh,28rem);overflow:auto;box-shadow:inset 0 1px #fffc}.access-matrix__grid{border-collapse:separate;border-spacing:0;min-width:100%;font-size:.82rem}.access-matrix__corner{z-index:3;color:#64748b;text-align:left;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;min-width:9.5rem;padding:.55rem .65rem;font-weight:600;position:sticky;top:0;left:0}.access-matrix__col-head{z-index:2;vertical-align:bottom;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:0;position:sticky;top:0}.access-matrix__row-head{z-index:1;text-align:left;background:#fff;border-right:1px solid #e2e8f0;min-width:9.5rem;padding:0;position:sticky;left:0}.access-matrix__head-btn{cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;transition:background .15s;display:flex}.access-matrix__head-btn--col{text-align:center;align-items:center;min-width:4.5rem;padding:.5rem .55rem}.access-matrix__head-btn--row{padding:.45rem .65rem}.access-matrix__head-btn:hover{background:#f1f5f9}.access-matrix__head-btn.is-on{background:#eff6ff}.access-matrix__head-btn.is-partial{background:#fffbeb}.access-matrix__head-code{color:#2563eb;font-size:.88rem;font-weight:700;line-height:1.1}.access-matrix__head-label{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:5.5rem;font-size:.72rem;line-height:1.15;overflow:hidden}.access-matrix__head-btn--row .access-matrix__head-label{max-width:8rem}.access-matrix__row-count{color:#94a3b8;margin-top:.15rem;font-size:.68rem}.access-matrix__cell{text-align:center;background:#fff;border-bottom:1px solid #f1f5f9;padding:.2rem}.access-matrix__cell-btn{color:#0000;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:2.35rem;height:2.35rem;margin:0 auto;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s;display:flex}.access-matrix__cell-btn:hover{background:#eff6ff;border-color:#93c5fd;transform:scale(1.04)}.access-matrix__cell-btn.is-on{color:#15803d;background:#dcfce7;border-color:#86efac;box-shadow:0 1px 4px #22c55e2e}.access-matrix__cell-btn.is-on:hover{background:#bbf7d0;border-color:#4ade80}.access-matrix__cell-icon{font-size:1rem;font-weight:700;line-height:1}.access-matrix__grid tbody tr:hover .access-matrix__row-head{background:#fafafa}.access-matrix-empty{padding:1rem 0}.admin-card.admin-reports{flex-direction:column;flex:1;min-height:0;padding-bottom:.85rem;display:flex;overflow:hidden}.admin-reports__head{flex-wrap:wrap;flex-shrink:0;align-items:baseline;gap:.75rem;margin-bottom:.75rem;display:flex}.admin-reports__head h2{flex-shrink:0;margin:0}.admin-reports__hint{margin:0}.admin-reports__layout{flex:1;grid-template-columns:minmax(200px,260px) minmax(0,1fr);align-items:stretch;gap:1rem;min-height:0;display:grid;overflow:hidden}.admin-reports__catalog{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;min-height:0;padding:.5rem;overflow:hidden auto}.reports-catalog{position:relative}.reports-group+.reports-group{margin-top:.75rem}.reports-group__title{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0 0 .35rem .35rem;font-size:.72rem;font-weight:600}.reports-group__list{flex-direction:column;gap:.2rem;display:flex}.reports-tab-nav__droplet{z-index:0;pointer-events:none;background:#2563eb;border-radius:8px;transition:top .34s cubic-bezier(.34,1.35,.64,1),height .28s cubic-bezier(.34,1.2,.64,1);position:absolute;left:0;right:0;box-shadow:0 2px 6px #2563eb38}.reports-tab-nav__btn{z-index:1;text-align:left;color:#475569;cursor:pointer;background:0 0;border:none;border-radius:8px;width:100%;padding:.45rem .55rem;font-size:.82rem;font-weight:400;line-height:1.35;transition:color .2s;position:relative}.reports-tab-nav__btn.active{color:#fff}.reports-tab-nav__btn:not(.active):hover{color:#1e293b}.reports-tab-nav__btn--high:not(.active):before,.reports-tab-nav__btn--critical:not(.active):before{content:"";border-radius:0 2px 2px 0;width:3px;position:absolute;top:.35rem;bottom:.35rem;left:0}.reports-tab-nav__btn--high:not(.active):before{background:#f97316}.reports-tab-nav__btn--critical:not(.active):before{background:#ef4444}.admin-reports__main{flex-direction:column;gap:.65rem;min-width:0;min-height:0;display:flex;overflow:hidden}.reports-panel-top{flex-direction:column;flex-shrink:0;gap:.65rem;display:flex}.reports-panel-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.reports-desc{color:#475569;flex:1;min-width:0;margin:0;font-size:.88rem;line-height:1.45}.reports-params{flex-wrap:wrap;align-items:flex-end;gap:.65rem;width:100%;display:flex}.reports-param{color:#64748b;flex-direction:column;gap:.2rem;font-size:.78rem;display:flex}.reports-param select,.reports-param input{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:140px;height:2rem;padding:0 .5rem;font-size:.85rem;line-height:1.2}.reports-notes{color:#64748b;flex-direction:column;gap:.25rem;font-size:.78rem;display:flex}.reports-notes textarea{resize:vertical;border:1px solid #e2e8f0;border-radius:8px;max-height:120px;padding:.5rem;font-family:inherit;font-size:.85rem}.reports-actions{flex-shrink:0}.reports-split-btn{align-items:stretch;height:2rem;display:inline-flex;position:relative}.reports-split-btn__main{box-sizing:border-box;color:#fff;cursor:pointer;white-space:nowrap;background:#2563eb;border:none;border-radius:8px 0 0 8px;height:2rem;padding:0 .75rem;font-size:.82rem;font-weight:500;transition:background .2s}.reports-split-btn__main:hover:not(:disabled){background:#1d4ed8}.reports-split-btn__main:disabled{opacity:.65;cursor:not-allowed}.reports-split-btn__toggle{box-sizing:border-box;color:#fff;cursor:pointer;background:#2563eb;border:none;border-left:1px solid #ffffff47;border-radius:0 8px 8px 0;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;transition:background .2s;display:inline-flex}.reports-split-btn__toggle:hover:not(:disabled){background:#1d4ed8}.reports-split-btn__toggle:disabled{opacity:.65;cursor:not-allowed}.reports-split-btn__menu{z-index:20;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:148px;padding:.25rem;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0f172a1f}.reports-split-btn__menu-item{text-align:left;color:#334155;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;width:100%;padding:.45rem .55rem;font-size:.82rem;display:block}.reports-split-btn__menu-item:hover:not(:disabled){background:#f1f5f9}.reports-split-btn__menu-item:disabled{color:#94a3b8;cursor:not-allowed}.reports-warnings{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.5rem .75rem;font-size:.82rem}.reports-warnings p{margin:.15rem 0}.reports-preview-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex:1;min-height:240px;display:flex;overflow:hidden}.reports-preview-meta{color:#94a3b8;background:#f8fafc;border-bottom:1px solid #f1f5f9;flex-shrink:0;padding:.4rem .75rem;font-size:.72rem}.reports-preview-body{flex:1;min-height:0;overflow:auto}.reports-preview-empty{text-align:center;color:#94a3b8;margin:0;padding:2rem 1rem;font-size:.88rem}.reports-md{color:#1e293b;word-break:break-word;padding:1rem 1.1rem 1.25rem;font-size:.88rem;line-height:1.55}.reports-md>:first-child{margin-top:0}.reports-md>:last-child{margin-bottom:0}.reports-md h1{color:#0f172a;margin:0 0 .75rem;font-size:1.25rem;font-weight:700;line-height:1.3}.reports-md h2{color:#1e293b;margin:1.25rem 0 .5rem;font-size:1rem;font-weight:650;line-height:1.35}.reports-md h3{color:#334155;margin:1rem 0 .4rem;font-size:.92rem;font-weight:600}.reports-md p{margin:.45rem 0}.reports-md strong{color:#0f172a;font-weight:650}.reports-md em{color:#64748b;font-style:italic}.reports-md hr{border:none;border-top:1px solid #e2e8f0;margin:1rem 0}.reports-md ul,.reports-md ol{margin:.45rem 0;padding-left:1.35rem}.reports-md li{margin:.2rem 0}.reports-md li input[type=checkbox]{margin-right:.35rem}.reports-md table{border-collapse:collapse;width:100%;max-width:100%;margin:.65rem 0 .85rem;font-size:.82rem;display:block;overflow-x:auto}.reports-md thead{background:#f8fafc}.reports-md th,.reports-md td{text-align:left;vertical-align:top;white-space:nowrap;border:1px solid #e2e8f0;padding:.4rem .55rem}.reports-md th{color:#475569;font-weight:600}.reports-md tbody tr:nth-child(2n){background:#fafbfc}.reports-md tbody tr:hover{background:#f1f5f9}.reports-md code{background:#f1f5f9;border-radius:4px;padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82em}@media (width<=860px){.admin-reports__layout{grid-template-columns:1fr;overflow:visible}.admin-reports__catalog{max-height:200px}.reports-preview-wrap{min-height:280px}.reports-panel-head{flex-wrap:wrap;align-items:flex-start}.reports-actions{margin-left:auto}}.admin-kiosk{flex-direction:column;gap:1rem;margin-bottom:.65rem;display:flex}.admin-kiosk--loading h2{margin:0 0 .35rem}.admin-kiosk__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-kiosk__title-block h2{margin:0 0 .25rem;font-size:1.05rem}.admin-kiosk__routes{margin:0}.admin-kiosk__route{color:#1d4ed8;background:#eff6ff;border-radius:6px;padding:.08rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;font-weight:600;display:inline-block}.admin-kiosk__route-sep{color:#cbd5e1;margin:0 .35rem}.admin-kiosk__head-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.admin-kiosk__site{flex-direction:column;gap:.2rem;display:flex}.admin-kiosk__site-label,.admin-kiosk__url-label,.admin-kiosk__timeout-label{color:#64748b;font-size:.72rem;font-weight:600}.admin-kiosk__site select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.38rem .55rem;font-size:.82rem}.admin-kiosk__toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.55rem;display:inline-flex}.admin-kiosk__toggle input{opacity:0;pointer-events:none;position:absolute}.admin-kiosk__toggle-ui{background:#cbd5e1;border-radius:999px;width:2.65rem;height:1.45rem;transition:background-color .2s;position:relative}.admin-kiosk__toggle-ui:after{content:"";background:#fff;border-radius:999px;width:1.1rem;height:1.1rem;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000002e}.admin-kiosk__toggle input:checked+.admin-kiosk__toggle-ui{background:#2563eb}.admin-kiosk__toggle input:checked+.admin-kiosk__toggle-ui:after{transform:translate(1.2rem)}.admin-kiosk__toggle-text{color:#334155;font-size:.82rem;font-weight:600}.admin-kiosk__grid{grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.admin-kiosk__panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.85rem}.admin-kiosk__panel-title{color:#1e293b;margin:0 0 .2rem;font-size:.88rem;font-weight:700}.admin-kiosk__panel-hint{margin:0 0 .75rem}.admin-kiosk__timeout-grid{gap:.65rem;display:grid}.admin-kiosk__timeout{gap:.25rem;display:grid}.admin-kiosk__timeout-input{align-items:center;gap:.35rem;display:flex}.admin-kiosk__timeout-input input{background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:5.5rem;padding:.42rem .55rem;font-size:.88rem}.admin-kiosk__timeout-unit{color:#64748b;font-size:.78rem}.admin-kiosk__timeout-hint{color:#94a3b8;font-size:.72rem}.admin-kiosk__preview-wrap{background:#0f172a;border:1px solid #cbd5e1;border-radius:10px;margin-bottom:.65rem;overflow:hidden}.admin-kiosk__preview{object-fit:cover;background:#0f172a;width:100%;max-height:220px;display:block}.admin-kiosk__drop{text-align:center;background:#fff;border:1.5px dashed #cbd5e1;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:6.5rem;margin-bottom:.65rem;padding:.75rem;transition:border-color .2s,background-color .2s;display:flex}.admin-kiosk__drop--active{background:#eff6ff;border-color:#2563eb}.admin-kiosk__drop--busy{opacity:.72;pointer-events:none}.admin-kiosk__drop-title{color:#334155;margin:0;font-size:.84rem;font-weight:600}.admin-kiosk__drop-hint{margin:0}.admin-kiosk__url{flex-direction:column;gap:.3rem;display:flex}.admin-kiosk__url input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:.45rem .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem}.admin-kiosk__remove-video{margin-top:.55rem}.admin-kiosk__foot{border-top:1px solid #e2e8f0;justify-content:flex-end;padding-top:.15rem;display:flex}@media (width<=860px){.admin-kiosk__grid{grid-template-columns:1fr}.admin-kiosk__head-actions{justify-content:space-between;width:100%}}
