*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--text:#fff;--text-2:hsla(0,0%,100%,.8);--text-3:hsla(0,0%,100%,.58);--text-4:hsla(0,0%,100%,.38);--bg:#0d1117;--on-light:#111;--fill-1:hsla(0,0%,100%,.06);--fill-2:hsla(0,0%,100%,.11);--fill-3:hsla(0,0%,100%,.16);--fill-4:hsla(0,0%,100%,.24);--line-1:hsla(0,0%,100%,.1);--line-2:hsla(0,0%,100%,.2);--line-3:hsla(0,0%,100%,.4);--free:#4ade80;--busy:#ef4444;--soon:#f59e0b;--accent:#93c5fd;--free-soft:#86efac;--busy-soft:#fca5a5;--soon-soft:#fcd34d;--free-bg:rgba(74,222,128,.15);--busy-bg:rgba(239,68,68,.15);--accent-bg:rgba(147,197,253,.15);--free-line:rgba(74,222,128,.4);--busy-line:rgba(239,68,68,.4);--accent-line:rgba(147,197,253,.4);--panel:rgba(0,0,0,.3);--panel-solid:rgba(10,12,18,.82);--scrim:rgba(0,0,0,.72);--overlay:rgba(22,24,30,.97);--radius:14px;--radius-sm:10px;--ease:cubic-bezier(.16,1,.3,1);--dur-1:.14s;--dur-2:.4s;--dur-slow:2.4s;--fs-micro:.76rem;--fs-small:.92rem;--fs-base:1.05rem;--fs-md:1.25rem;--fs-lg:1.9rem;--fs-xl:3rem;--fs-2xl:4rem;--fs-hero:6rem;--fw-light:300;--fw-normal:400;--fw-medium:600;--fw-bold:700;font-family:Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}body,html{height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--text);touch-action:pan-x pan-y;-webkit-overflow-scrolling:auto}.dur-btn,.kiosk-corner-tap,.mc,.pin-btn,[role=button],button,input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.booking-confirm:active:not(:disabled),.dur-btn:active,.end-btn:active:not(:disabled),.mc:active .mc-inner,.pin-btn:active,button:active:not(:disabled){filter:brightness(1.13);transform:scale(.97);transition:transform .05s ease,filter .05s ease}.btn-loading{filter:brightness(.8) saturate(.9);pointer-events:none;position:relative}.btn-loading>:not(.btn-spinner){visibility:hidden}.btn-loading .btn-spinner{left:50%;margin:-.52em 0 0 -.52em;position:absolute;top:50%}.main-col{touch-action:none}.booking-form,.schedule-col{touch-action:pan-y}.display-root{display:grid;grid-template-columns:1fr 360px;height:100vh;overflow:hidden;position:relative}.display-root:before{background:url(./background.CIu3MYqz.jpg) 50%/cover no-repeat;content:"";inset:0;position:fixed;z-index:0}.display-root:after{content:"";inset:0;position:fixed;transition:background var(--dur-slow) ease;z-index:1}.display-root.free:after{background:#000a0538}.display-root.occupied:after{background:#14000047}.display-root.upcoming:after{background:#1c12004d}.main-col,.schedule-col{position:relative;z-index:2}.main-col{display:flex;flex-direction:column;min-height:100vh;padding:36px 48px}.main-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:0}.logo{height:44px;-o-object-fit:contain;object-fit:contain;width:auto}.content-area{display:flex;flex:1;flex-direction:column;gap:18px;justify-content:center}.badges{align-items:center;display:flex;gap:8px}.admin-card-badge,.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--fs-micro);font-weight:var(--fw-medium);gap:6px}.badge{font-weight:var(--fw-bold);letter-spacing:.1em;padding:6px 15px}.badge-green,.badge-neutral{background:var(--fill-2);border:1px solid var(--line-2);color:var(--text-2)}.badge-red{background:var(--busy-bg);border:1px solid var(--busy-line);color:var(--busy-soft)}.icon-people{height:15px;width:15px}.room-title{font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:1.05;text-shadow:0 2px 20px rgba(0,0,0,.4)}.current-subject{color:var(--text-2);font-size:var(--fs-lg);font-weight:var(--fw-normal);line-height:1.2}.current-meta{color:var(--text-3);font-size:var(--fs-base)}.meta-sep{margin:0 8px}.remaining-display,.upcoming-display{align-items:baseline;display:flex;gap:12px;margin:8px 0 4px}.remaining-number,.upcoming-number{font-size:var(--fs-hero);font-weight:var(--fw-normal);letter-spacing:-.02em;line-height:1}.remaining-number{color:var(--busy)}.upcoming-number{color:var(--soon-soft)}.remaining-unit,.upcoming-unit{color:var(--text-3);font-size:var(--fs-md);font-weight:var(--fw-normal)}.progress{background:var(--fill-3);height:5px;max-width:420px;overflow:hidden}.progress,.progress-fill{border-radius:999px;width:100%}.progress-fill{background:var(--busy);height:100%;transform:translate(-100%);transition:transform 1s linear;will-change:transform}.end-btn{align-self:flex-start;background:var(--busy-bg);border:1px solid var(--busy-line);border-radius:var(--radius-sm);color:var(--busy-soft);cursor:pointer;font-size:var(--fs-base);font-weight:var(--fw-normal);padding:12px 28px;transition:background var(--dur-1),border-color var(--dur-1)}.end-btn:hover:not(:disabled){background:#ef44443d}.end-btn:disabled{cursor:not-allowed;opacity:.4}.free-state{color:var(--text-2);font-size:var(--fs-lg);font-weight:var(--fw-light);letter-spacing:-.01em}.dur-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.dur-btn{background:var(--fill-3);border:1px solid var(--line-2);border-radius:12px;color:var(--text);cursor:pointer;font-size:var(--fs-base);font-weight:var(--fw-normal);padding:13px 26px;transition:background var(--dur-1),border-color var(--dur-1)}.dur-btn:hover{background:var(--fill-4);border-color:var(--line-2)}.dur-btn-more{border-style:dashed;color:var(--text-3)}.dur-btn-more:hover{color:var(--text)}.dur-btn-sm{border-radius:10px;font-size:var(--fs-small);padding:9px 16px}.occ-actions{gap:14px}.extend-row,.occ-actions{align-items:center;display:flex;flex-wrap:wrap}.extend-row{gap:8px}.extend-label{color:var(--text-3);font-size:var(--fs-small)}.booking-form{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--panel);border:1px solid var(--line-2);border-radius:16px;display:flex;flex-direction:column;gap:12px;max-width:460px;padding:20px 22px}.booking-form-top{align-items:center;display:flex;gap:10px;justify-content:space-between}.booking-form-label{color:var(--text-2);font-size:var(--fs-md);font-weight:var(--fw-medium)}.booking-close{align-items:center;background:var(--fill-2);border:1px solid var(--line-1);border-radius:9px;color:var(--text-3);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;position:relative;transition:background var(--dur-1),color var(--dur-1);width:32px}.booking-close svg{display:block;height:17px;width:17px}.booking-close:after{content:"";inset:-8px;position:absolute}.booking-close:hover{background:var(--fill-3);color:var(--text)}.booking-dur-row{align-items:center;display:flex;gap:10px}.booking-dur-unit{color:var(--text-3);font-size:var(--fs-small)}.admin-input,.booking-input{background:var(--fill-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-small);outline:none;padding:10px 14px;transition:border-color var(--dur-1)}.admin-input:focus,.booking-input:focus{border-color:var(--line-3)}.booking-input{font-size:var(--fs-base);width:100%}.booking-input::-moz-placeholder{color:var(--text-4)}.booking-input::placeholder{color:var(--text-4)}.booking-input-sm{width:80px}.booking-error{color:var(--busy-soft);font-size:var(--fs-small)}.booking-confirm{background:#ffffffeb;border:none;border-radius:10px;color:var(--on-light);cursor:pointer;font-size:var(--fs-base);font-weight:var(--fw-medium);padding:12px;transition:background var(--dur-1),opacity var(--dur-1)}.booking-confirm:hover:not(:disabled){background:var(--text)}.booking-confirm:disabled{cursor:not-allowed;opacity:.4}.main-footer{border-top:1px solid var(--line-1);padding-top:28px}.foot-time{font-size:var(--fs-xl);font-weight:var(--fw-light);letter-spacing:-.02em;line-height:1}.foot-date{color:var(--text-3);font-size:var(--fs-base);margin-top:7px}.schedule-col{background:var(--panel-solid);border-left:1px solid var(--line-1);display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding:32px 20px}.schedule-empty{color:var(--text-3);font-size:var(--fs-small);padding:12px 0}.day-label{color:var(--text-3);font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:.14em;padding:20px 0 8px;text-transform:uppercase}.day-label:first-child{padding-top:0}.mc{cursor:pointer;margin-bottom:5px}.mc-inner{background:var(--fill-1);border:1px solid var(--line-1);border-radius:10px;padding:11px 14px;transition:background var(--dur-1),border-color var(--dur-1),transform .12s var(--ease),filter .12s var(--ease)}.mc-expanded .mc-inner{background:var(--fill-2);border-color:var(--line-2)}.mc-current{margin-bottom:16px}.mc-current .mc-inner{background:var(--busy-bg);border-color:var(--busy-line)}.mc-top-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.mc-time{color:var(--text-3);font-size:var(--fs-micro)}.mc-subject{font-size:var(--fs-small);font-weight:var(--fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-count-badge{align-items:center;color:var(--text-3);display:inline-flex;flex-shrink:0;font-size:var(--fs-micro);gap:3px}.icon-sm{flex-shrink:0;height:11px;width:11px}.mc-attendees{border-top:1px solid var(--line-1);display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px}.mc-attendee{align-items:center;display:flex;gap:9px}.att-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.att-yes{background:var(--free)}.att-no{background:var(--busy)}.att-maybe{background:var(--soon)}.att-none{background:var(--text-4)}.mc-aname{color:var(--text-3);font-size:var(--fs-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-aname.att-org{color:var(--text);font-weight:var(--fw-medium)}.att-org-tag{color:var(--text-3);flex-shrink:0;font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase}.admin-root{margin:40px auto;max-width:880px;padding:0 28px 60px}.admin-root h1{font-size:var(--fs-lg);font-weight:var(--fw-medium);margin-bottom:4px}.admin-subtitle{color:var(--text-3);font-size:var(--fs-small);margin-bottom:32px}.admin-topbar{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:32px}.admin-logout-btn{background:transparent;border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--text-3);cursor:pointer;font-size:var(--fs-small);margin-top:6px;padding:8px 16px;transition:background var(--dur-1),color var(--dur-1);white-space:nowrap}.admin-logout-btn:hover{background:var(--fill-1);color:var(--text)}.admin-input-full{max-width:100%;width:100%}.admin-grid{display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:28px}.admin-card-wide{grid-column:1/-1}.admin-card{background:var(--fill-1);border:1px solid var(--line-1);border-radius:var(--radius);padding:22px 22px 20px}.admin-card-header{align-items:center;border-bottom:1px solid var(--line-1);display:flex;gap:9px;margin-bottom:16px;padding-bottom:14px}.admin-card-header h3{font-size:var(--fs-small);font-weight:var(--fw-medium);margin:0}.admin-card-desc{color:var(--text-3);font-size:var(--fs-small);line-height:1.4}.admin-card-divider{border:none;border-top:1px solid var(--line-1);margin:14px 0}:where(.admin-btn,.admin-btn-full,.btn-group button,.btn-group-h button,.btn-group-grid button){background:var(--fill-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:var(--fs-small);padding:9px 14px;transition:background var(--dur-1),border-color var(--dur-1);white-space:nowrap}:where(.admin-btn,.admin-btn-full,.btn-group button,.btn-group-h button,.btn-group-grid button):hover{background:var(--fill-3)}.admin-btn-full,.btn-group button,.btn-group-grid button,.btn-group-h button{text-align:center;width:100%}.btn-group{display:flex;flex-direction:column;gap:7px}.btn-group-h{display:flex;gap:8px}.btn-group-h button{flex:1}.btn-group-grid{display:grid;gap:7px;grid-template-columns:1fr 1fr}.admin-btn-top{margin-top:12px}.btn-danger{border-color:var(--busy-line);color:var(--busy-soft)}.btn-danger:hover{background:var(--busy-bg)}.btn-success{border-color:var(--free-line);color:var(--free-soft)}.btn-success:hover{background:var(--free-bg)}.btn-primary{border-color:var(--accent-line);color:var(--accent)}.btn-primary:hover{background:var(--accent-bg)}.admin-toggle{align-items:center;color:var(--text-3);cursor:pointer;display:inline-flex;font-size:var(--fs-small);gap:10px;margin-bottom:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.admin-toggle input{display:none}.admin-toggle-track{background:var(--fill-3);border-radius:999px;flex-shrink:0;height:20px;position:relative;transition:background var(--dur-2);width:36px}.admin-toggle input:checked+.admin-toggle-track{background:var(--free)}.admin-toggle-thumb{background:var(--text);border-radius:50%;height:14px;left:3px;position:absolute;top:3px;transition:transform var(--dur-2);width:14px}.admin-toggle input:checked+.admin-toggle-track .admin-toggle-thumb{transform:translate(16px)}.admin-night-fields{display:flex;gap:8px;margin-bottom:14px}.admin-night-field{align-items:center;background:var(--fill-1);border:1px solid var(--line-1);border-radius:var(--radius-sm);display:flex;flex:1;gap:8px;padding:8px 12px}.admin-night-label,.admin-night-unit{color:var(--text-3);flex-shrink:0;font-size:var(--fs-small)}.admin-input-sm{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;background:transparent;border:none;color:var(--text);flex:1;font-size:var(--fs-base);min-width:0;outline:none;padding:0;text-align:center}.admin-input-sm::-webkit-inner-spin-button,.admin-input-sm::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.admin-card-badge{margin-left:auto;padding:3px 9px}.status-on{background:var(--free-bg);border:1px solid var(--free-line);color:var(--free-soft)}.status-off{background:var(--busy-bg);border:1px solid var(--busy-line);color:var(--busy-soft)}.status-off:before,.status-on:before{content:"●";font-size:.6rem}.admin-toast{background:var(--overlay);border:1px solid var(--line-2);border-radius:12px;bottom:24px;box-shadow:0 4px 24px #00000080;font-size:var(--fs-small);line-height:1.4;max-width:320px;padding:12px 18px;position:fixed;right:24px;z-index:9999}.toast-enter-active,.toast-leave-active{transition:opacity var(--dur-2),transform var(--dur-2)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(10px)}.admin-login-card{display:flex;flex-direction:column;gap:16px;max-width:360px}.admin-login-field label{color:var(--text-3);display:block;font-size:var(--fs-micro);letter-spacing:.08em;margin-bottom:6px;text-transform:uppercase}.admin-login-error{color:var(--busy-soft);font-size:var(--fs-small)}.admin-login-btn{background:var(--fill-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:var(--fs-small);padding:11px 20px;transition:background var(--dur-1)}.admin-login-btn:hover:not(:disabled){background:var(--fill-3)}.admin-login-btn:disabled{cursor:not-allowed;opacity:.5}.custom-msg-overlay{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--scrim);display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.custom-msg-box{background:var(--fill-1);border:1px solid var(--line-2);border-radius:20px;color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-light);line-height:1.4;max-width:700px;padding:40px 60px;text-align:center}.booking-disabled-note{color:var(--text-4);font-size:var(--fs-small);font-style:italic;margin-top:18px}.offline-root{align-items:center;background:url(./background.CIu3MYqz.jpg) 50%/cover no-repeat;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.offline-root:before{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:var(--scrim);content:"";inset:0;position:fixed}.offline-box{background:var(--fill-1);border:1px solid var(--line-1);border-radius:20px;max-width:480px;padding:48px 56px;position:relative;text-align:center;z-index:1}.offline-logo{height:36px;margin-bottom:28px;opacity:.7}.offline-icon{font-size:2.8rem;margin-bottom:16px;opacity:.6}.offline-title{font-size:var(--fs-lg);font-weight:var(--fw-medium);margin-bottom:10px}.offline-msg{color:var(--text-2);font-size:var(--fs-base);margin-bottom:8px}.offline-sub{color:var(--text-4);font-size:var(--fs-small)}.display-root.has-banner{padding-top:37px}.cache-banner{background:#422a06f0;border-bottom:1px solid rgba(245,158,11,.3);color:var(--soon-soft);font-size:var(--fs-micro);left:0;padding:8px 20px;position:fixed;right:0;text-align:center;top:0;z-index:10}.skeleton-root{background:var(--bg);display:grid;grid-template-columns:1fr 360px;inset:0;position:fixed;z-index:50}.skeleton-col{display:flex;flex-direction:column;padding:36px 48px}.skeleton-center{flex:1;gap:22px;justify-content:center}.skeleton-aside,.skeleton-center{display:flex;flex-direction:column}.skeleton-aside{border-left:1px solid var(--line-1);gap:10px;padding:32px 20px}.sk-row{display:flex;gap:10px}.sk{animation:skShimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,var(--fill-1),var(--fill-3),var(--fill-1));background-size:200% 100%;border-radius:10px}.sk-logo{height:40px;width:120px}.sk-badge{border-radius:20px;height:28px;width:130px}.sk-title{height:66px;width:60%}.sk-big{height:92px;width:40%}.sk-btn{border-radius:12px;height:46px;width:96px}.sk-time{height:46px;width:180px}.sk-card{height:62px;width:100%}@keyframes skShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.display-root{animation:fadeIn .35s ease}.status-block{display:flex;flex-direction:column;gap:18px}.ambient-glow{background:radial-gradient(ellipse 95% 62% at 50% 40%,currentColor 0,transparent 68%);color:transparent;inset:0;pointer-events:none;position:fixed;transition:color 3s ease;z-index:2}.display-root.occupied .ambient-glow{color:#cb2a2a2b}.display-root.upcoming .ambient-glow{color:#e6aa1924}.display-root.free .ambient-glow{color:transparent}.state-wash{inset:0;pointer-events:none;position:fixed;z-index:4}.state-wash:before{animation:washBloom 3.4s var(--ease) forwards;background:radial-gradient(circle at 50% 44%,var(--wash) 0,transparent 62%)}.state-wash:after,.state-wash:before{content:"";inset:0;opacity:0;position:absolute}.state-wash:after{animation:washVignette 3.2s var(--ease) forwards;background:radial-gradient(ellipse 130% 130% at 50% 50%,transparent 38%,var(--wash-edge) 94%)}.wash-occupied{--wash:rgba(220,38,38,.38);--wash-edge:rgba(220,38,38,.6)}.wash-free{--wash:rgba(34,197,94,.34);--wash-edge:rgba(34,197,94,.52)}.wash-upcoming{--wash:rgba(234,179,8,.3);--wash-edge:rgba(234,179,8,.48)}@keyframes washBloom{0%{opacity:0;transform:scale(.4)}18%{opacity:1}45%{opacity:.9;transform:scale(1.2)}to{opacity:0;transform:scale(1.95)}}@keyframes washVignette{0%{opacity:0;transform:scale(1.12)}13%{opacity:1;transform:scale(1)}42%{opacity:.92}to{opacity:0;transform:scale(1.04)}}.mc-group{position:relative}.mc-enter-active,.mc-leave-active,.mc-move{transition:opacity .5s ease,transform .5s var(--ease)}.mc-enter-from,.mc-leave-to{opacity:0;transform:translate(26px)}.mc-leave-active{left:0;position:absolute;right:0}.mc-attendees-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease)}.mc-attendees-wrap.open{grid-template-rows:1fr}.mc-attendees-clip{overflow:hidden}@media(max-width:768px){:root{--fs-hero:4rem;--fs-2xl:2.4rem;--fs-xl:2.2rem;--fs-lg:1.4rem;--fs-md:1.05rem}.skeleton-root{grid-template-columns:1fr}.skeleton-aside{display:none}.display-root{grid-template-columns:1fr;min-height:100dvh}.main-col{min-height:auto;padding:24px 22px 20px}.schedule-col{border-left:none;border-top:1px solid var(--line-1);max-height:45vh;overflow-y:auto;padding:20px 22px}.content-area{gap:12px}.dur-row{gap:8px}.dur-btn{padding:11px 18px}.logo{height:32px}.booking-form{max-width:100%}}@media(max-width:480px){:root{--fs-2xl:1.9rem;--fs-xl:1.8rem}.main-col{padding:18px 16px}.schedule-col{padding:16px}.dur-btn{padding:10px 14px}.admin-root{padding:0 16px 40px}.admin-grid{grid-template-columns:1fr}.admin-card-wide{grid-column:1}}
