@import url(https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;900&family=Open+Sans:wght@400;600;700&display=swap);@font-face{font-display:swap;font-family:Lubalin Graph;font-style:normal;font-weight:400;src:url(/static/media/LubalinGraphBook.17c4d5c97488f867cc51.ttf) format("truetype")}:root{--ssp-blue:#0086c6;--ssp-navy:#193d68;--ssp-blue-light:#47ace4;--ssp-orange:#f09601;--ssp-gray-brand:#5d5e60;--ssp-dark:#193d68;--ssp-gray:#f5f5f5;--ssp-text:#333;--ssp-text-light:#5d5e60;--ssp-border:#e0e0e0;--ssp-error:#d32f2f;--ssp-success:#0086c6;--ssp-warning:#f09601;--ssp-green:#0086c6;--ssp-green-light:#47ace4}*{box-sizing:border-box;margin:0;padding:0}body{background:#fafafa;color:#333;color:var(--ssp-text);font-family:Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.floorplan-header h2,.header-subtitle,.kiosk-header-subtitle,.mobile-subtitle,h1,h2,h3,h4,h5,h6{font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--theme-heading-font,"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}.app{min-height:100vh}.app,.loading-screen{display:flex;flex-direction:column}.loading-screen{align-items:center;gap:16px;justify-content:center}.spinner{animation:spin .8s linear infinite;border:4px solid #e0e0e0;border-top-color:#0086c6;border:4px solid var(--ssp-border);border-radius:50%;border-top-color:var(--ssp-green);height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.app-header{align-items:center;background:#193d68;background:var(--theme-header-dark,var(--ssp-dark));box-shadow:0 2px 8px #00000026;color:#fff;display:flex;justify-content:space-between;padding:12px 24px}.app-header h1{font-size:20px;font-weight:700}.header-logo{display:block;height:36px;width:auto}.header-left{align-items:center;display:flex;flex:0 0 auto;gap:12px}.header-center{flex:1 1;text-align:center}.header-subtitle{font-size:15px;font-weight:500;opacity:.85}.user-info{align-items:center;display:flex;gap:12px}.user-name{font-size:14px;opacity:.9}.login-btn,.logout-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px}.login-btn{background:#0086c6;background:var(--ssp-blue);color:#fff}.login-btn:hover{background:#193d68}.login-btn-large{border-radius:8px;font-size:16px;font-weight:600;padding:14px 32px}.login-gate{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:16px;justify-content:center;padding:60px 24px;text-align:center}.login-gate-logo{height:48px;margin-bottom:8px;width:auto}.login-gate h2{color:#193d68;color:var(--ssp-navy);font-family:Montserrat,sans-serif;font-size:24px;font-weight:700}.login-gate p{color:#5d5e60;color:var(--ssp-text-light);font-size:15px;margin-bottom:8px;max-width:400px}.logout-btn{background:#ffffff26;color:#fff;font-size:12px}.logout-btn:hover{background:#ffffff40}.floorplan-container{background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000014;padding:20px}.floorplan-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px}.floorplan-header h2{font-size:18px;font-weight:600}.legend{display:flex;flex-wrap:wrap;gap:16px}.legend-item{align-items:center;color:#5d5e60;color:var(--ssp-text-light);display:flex;font-size:12px;gap:6px}.legend-dot{border-radius:3px;display:inline-block;height:12px;width:12px}.floorplan-svg{cursor:default;height:auto;width:100%}.room-group:focus{outline:none}.room-group:focus rect{stroke:#f09601;stroke-width:3}.quick-book{display:flex;gap:12px;margin-bottom:16px}.quick-book-btn{border:2px solid;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.cubicle-btn{background:#e8f4fc;border-color:#47ace4;color:#2a8bc4}.cubicle-btn:hover:not(:disabled){background:#47ace4;color:#fff}.office-btn{background:#ededee;border-color:#5d5e60;color:#5d5e60}.office-btn:hover:not(:disabled){background:#5d5e60;color:#fff}.quick-book-btn:disabled{cursor:not-allowed;opacity:.4}.kiosk-note{background:#e8f4fc;border-left:3px solid #47ace4;border-radius:0 6px 6px 0;color:#555;font-size:13px;margin-top:4px;padding:8px 12px}.booking-panel{background:#fff;border-left:4px solid #0086c6;border-left:4px solid var(--ssp-green);border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-top:20px;padding:24px}.booking-panel-header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.booking-panel-header h3{flex:1 1;font-size:18px}.capacity{background:#f5f5f5;background:var(--ssp-gray);border-radius:12px;font-size:13px;padding:4px 10px}.capacity,.close-btn{color:#5d5e60;color:var(--ssp-text-light)}.close-btn{background:none;border:none;border-radius:4px;cursor:pointer;font-size:20px;padding:4px 8px}.close-btn:hover{background:#f5f5f5;background:var(--ssp-gray)}.booking-form{gap:16px}.booking-form,.form-group{display:flex;flex-direction:column}.form-group{gap:6px}.form-group label{color:#5d5e60;color:var(--ssp-text-light);font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.form-group input,.form-group select{border:1px solid #e0e0e0;border:1px solid var(--ssp-border);border-radius:8px;font-size:15px;padding:10px 12px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#0086c6;border-color:var(--ssp-green);box-shadow:0 0 0 3px #2e7d321a;outline:none}.form-hint{color:#888;display:block;font-size:12px;margin-top:4px}.recurring-section{border-top:1px solid #eee;padding:12px 0}.recurring-toggle{align-items:center;cursor:pointer;display:flex;font-weight:600;gap:8px}.recurring-toggle input[type=checkbox]{cursor:pointer;height:18px;width:18px}.recurring-days{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.day-chip{align-items:center;border:2px solid #ddd;border-radius:20px;cursor:pointer;display:flex;font-size:14px;font-weight:600;justify-content:center;padding:6px 12px;transition:all .15s;-webkit-user-select:none;user-select:none}.day-chip input[type=checkbox]{display:none}.day-chip--selected{background:#193d68;border-color:#193d68;color:#fff}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1 1}.time-summary{background:#e8f4fc;border-radius:8px;color:#0086c6;color:var(--ssp-green);padding:8px;text-align:center}.book-btn,.time-summary{font-size:16px;font-weight:600}.book-btn{background:#0086c6;background:var(--ssp-green);border:none;border-radius:8px;color:#fff;cursor:pointer;padding:14px 24px;transition:background .2s}.book-btn:hover{background:#0086c6}.booking-confirm{text-align:center}.booking-confirm h4{font-size:18px;margin-bottom:16px}.confirm-details{background:#f5f5f5;background:var(--ssp-gray);border-radius:8px;margin-bottom:16px;padding:16px}.confirm-details p{font-size:15px;margin-bottom:4px}.confirm-actions{display:flex;gap:12px;justify-content:center}.confirm-btn{background:#0086c6;background:var(--ssp-green);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 32px}.confirm-btn:hover{background:#0086c6}.cancel-btn{background:#f5f5f5;background:var(--ssp-gray);border:1px solid #e0e0e0;border:1px solid var(--ssp-border);border-radius:8px;color:#333;color:var(--ssp-text);cursor:pointer;font-size:15px;padding:12px 32px}.cancel-btn:hover{background:#eee}.booking-warning{background:#fef3e0;border:1px solid #f09601;border-radius:8px;color:#c47a01}.booking-error,.booking-warning{font-size:14px;margin-bottom:16px;padding:12px 16px}.booking-error{background:#ffebee;border:1px solid #ef9a9a;border-radius:8px;color:#d32f2f;color:var(--ssp-error)}.existing-bookings{margin-bottom:16px}.existing-bookings>label{color:#555;display:block;font-size:13px;font-weight:600;margin-bottom:6px}.existing-bookings-list{display:flex;flex-direction:column;gap:4px}.existing-booking-slot{align-items:center;background:#f5f5f5;border-left:3px solid #f09601;border-radius:6px;display:flex;font-size:13px;justify-content:space-between;padding:6px 10px}.existing-slot-time{color:#333;font-weight:500}.existing-slot-who{color:#777;font-size:12px}.booking-conflict-warning{color:#d32f2f;color:var(--ssp-error,#d32f2f);font-size:13px;font-weight:500;margin-top:6px}.book-btn:disabled{cursor:not-allowed;opacity:.5}.room-card--shared.room-card--booked{cursor:pointer}.room-card--shared.room-card--booked:hover{opacity:.9}.global-error{align-items:center;background:#ffebee;border:1px solid #ef9a9a;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.global-error,.global-error button{color:#d32f2f;color:var(--ssp-error)}.global-error button{background:none;border:none;cursor:pointer;font-weight:600}.booking-success{background:#e8f4fc;border:1px solid #47ace4;border-radius:12px;color:#0086c6;color:var(--ssp-success);margin-bottom:20px;padding:20px;text-align:center}.booking-success h3{margin-bottom:8px}.booking-success button{background:#0086c6;background:var(--ssp-green);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;margin-top:12px;padding:8px 24px}.login-prompt{background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000014;margin-top:20px;padding:40px;text-align:center}.login-prompt p{color:#5d5e60;color:var(--ssp-text-light);font-size:16px;margin-bottom:16px}.qr-booking-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.qr-booking-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:420px;padding:40px;text-align:center;width:90%}.qr-booking-modal h2{color:#193d68;color:var(--ssp-dark);margin-bottom:12px}.qr-instructions{color:#5d5e60;color:var(--ssp-text-light);font-size:14px;margin-bottom:20px}.qr-details{background:#f5f5f5;background:var(--ssp-gray);border-radius:8px;margin-bottom:20px;padding:12px}.qr-details p{font-size:15px;margin-bottom:2px}.qr-code{display:flex;justify-content:center;margin-bottom:16px}.qr-code svg{height:256px;width:256px}.qr-timer{color:#5d5e60;color:var(--ssp-text-light);font-size:14px;margin-bottom:16px}.qr-cancel-btn{background:#f5f5f5;background:var(--ssp-gray);border:1px solid #e0e0e0;border:1px solid var(--ssp-border);border-radius:8px;cursor:pointer;font-size:14px;padding:10px 24px}.kiosk-view{background:#1a1d23;cursor:default;display:flex;flex-direction:column;height:100vh;overflow:hidden}.kiosk-header{align-items:center;background:#47ace4;background:var(--theme-header-bg,#47ace4);border-bottom:4px solid #0000;border-bottom:4px solid var(--theme-header-accent,#0000);color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:16px 24px}.kiosk-header h1{font-size:24px;font-weight:700}.kiosk-header-left{align-items:flex-start;display:flex;flex-direction:column;gap:4px}.kiosk-header-left .header-logo{height:44px;width:auto}.kiosk-header-subtitle{color:#fff;font-size:14px}.kiosk-header-right{align-items:center;display:flex;gap:16px}.kiosk-header-divider{background:#ffffff4d;height:32px;width:1px}.kiosk-clock{align-items:flex-end;display:flex;flex-direction:column}.kiosk-clock-time{color:#fff;font-size:22px;font-weight:600}.kiosk-clock-date{color:#fff;font-size:13px}.kiosk-weather{align-items:center;display:flex;gap:8px}.kiosk-weather-icon{font-size:24px}.kiosk-weather-info{align-items:flex-end;display:flex;flex-direction:column}.kiosk-weather-temp{color:#fff;font-size:18px;font-weight:600}.kiosk-weather-desc{color:#fff;font-size:12px}.kiosk-qr-btn{background:#0086c6;background:var(--ssp-green);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:10px 20px;transition:background .2s}.kiosk-qr-btn:hover{background:#0086c6}.kiosk-notification{align-items:center;display:flex;flex-shrink:0;font-size:15px;justify-content:space-between;padding:12px 20px}.kiosk-notification button{background:none;border:none;border-radius:4px;cursor:pointer;font-weight:600;padding:4px 12px}.kiosk-notification--error{background:#ffebee}.kiosk-notification--error,.kiosk-notification--error button{color:#d32f2f;color:var(--ssp-error)}.kiosk-notification--success{background:#e8f4fc}.kiosk-notification--success,.kiosk-notification--success button{color:#0086c6;color:var(--ssp-success)}.kiosk-main{display:flex;flex:1 1;flex-direction:column;gap:6px;overflow:hidden;padding:8px 16px}.kiosk-calendar{flex:1 1;min-height:0;overflow:hidden}.kiosk-calendar .kiosk-section-rooms{height:100%;overflow:hidden}.kiosk-calendar .room-columns{height:100%}.kiosk-calendar .room-column{background:#1e2128;border:1px solid #2a2d35;display:flex;flex-direction:column;overflow:hidden}.kiosk-calendar .room-card-list{flex:1 1;overflow:hidden}.kiosk-calendar .room-card-list .room-card{flex:1 1}.kiosk-calendar .room-card{background:#262930;border-color:#2e313a}.kiosk-calendar .room-card:hover{border-color:#47ace4}.kiosk-calendar .room-card--available{border-left:4px solid #4caf50}.kiosk-calendar .room-card--booked{border-left:4px solid #d32f2f}.kiosk-calendar .room-card-name{color:#fff}.kiosk-calendar .room-card-status.status-available{background:#4caf5026;color:#4caf50}.kiosk-calendar .room-card-status.status-booked{background:#d32f2f26;color:#ef5350}.kiosk-calendar .room-card-empty{color:#fff}.kiosk-calendar .room-card-current{background:#f09601}.kiosk-calendar .current-meeting-title{color:#111}.kiosk-calendar .current-meeting-remaining{color:#333}.kiosk-calendar .schedule-slot{color:#ffffffd9}.kiosk-calendar .slot-time{color:#fff}.kiosk-calendar .room-type-heading,.kiosk-calendar .room-type-heading.type-conference,.kiosk-calendar .room-type-heading.type-huddle,.kiosk-calendar .room-type-heading.type-meeting{border-bottom-color:#47ace4;border-bottom-color:var(--theme-accent,#47ace4);color:#47ace4;color:var(--theme-accent,#47ace4)}.kiosk-map{flex:1 1;min-height:0;padding:6px}.kiosk-desks,.kiosk-map{background:#f0f2f5;border-radius:10px;display:flex;overflow:hidden}.kiosk-desks{flex:0 0 auto;flex-direction:column;gap:6px;padding:6px 12px}.kiosk-desks .kiosk-section-cubicles,.kiosk-desks .kiosk-section-offices{flex:0 0 auto;overflow:hidden}.kiosk-desks .room-type-group{background:#fff;border:1px solid #e0e0e0}.kiosk-map .floorplan-container{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.kiosk-map .floorplan-header{flex-shrink:0}.kiosk-map .quick-book{display:none}.kiosk-map .floorplan-svg{flex:1 1;max-height:100%;object-fit:contain;width:100%}.easter-egg-overlay{animation:egg-fade 2.8s ease forwards;font-family:Arial Black,Impact,Haettenschweiler,sans-serif;font-size:8.5vw;font-weight:900;left:50%;line-height:1.05;pointer-events:none;position:absolute;text-align:center;text-shadow:0 0 18px #ffffffe6,0 4px 16px #00000059;text-transform:uppercase;top:50%;transform:translate(-50%,-50%);white-space:pre-line;width:80%;z-index:2000}@keyframes egg-fade{0%{opacity:0}10%{opacity:1}55%{opacity:1}to{opacity:0}}.floorplan-footnote{color:#666;flex-shrink:0;font-size:12px;padding:4px 8px;text-align:right}.guest-wifi-btn{background:#193d68;background:var(--theme-button-bg,#193d68);border:none;border-radius:8px;bottom:12px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;left:12px;padding:10px 18px;position:absolute;transition:background .2s}.guest-wifi-btn:hover{background:#2a5a94}.floorplan-container{position:relative}.wifi-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.wifi-popup{background:#fff;border-radius:16px;min-width:480px;padding:40px 60px;text-align:center}.wifi-popup h3{color:#193d68;font-size:24px;font-weight:700;margin-bottom:24px}.wifi-detail{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:12px 0}.wifi-label{color:#666;font-size:16px;font-weight:600}.wifi-value{color:#193d68;font-size:20px;font-weight:700;letter-spacing:.5px}.wifi-countdown{color:#999;font-size:13px;margin-top:20px}.kiosk-panel-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:40px;position:fixed;right:0;top:0;z-index:900}.kiosk-panel-overlay .booking-panel{border-left-width:6px;margin-top:0;max-width:500px;width:100%}.kiosk-panel-overlay .book-btn{font-size:18px;padding:18px 32px}.room-schedule{height:100%}.room-schedule-header{margin-bottom:8px}.room-schedule-header h2{color:#193d68;color:var(--ssp-dark);font-size:18px;font-weight:700}.room-schedule-groups{display:flex;flex-direction:column;gap:10px}.room-columns{display:flex;gap:10px;height:100%}.room-column{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000f;flex:1 1;min-width:0;padding:10px 14px}.room-card-list{display:flex;flex-direction:column;gap:6px}.room-type-group{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000f;padding:10px 14px}.room-type-heading{border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--ssp-border);font-size:13px;font-weight:700;letter-spacing:.5px;margin-bottom:8px;padding-bottom:4px;text-transform:uppercase}.room-type-heading.type-conference,.room-type-heading.type-huddle,.room-type-heading.type-meeting{border-bottom-color:#193d68;border-bottom-color:var(--theme-section-heading,#193d68);color:#193d68;color:var(--theme-section-heading,#193d68)}.room-type-heading.type-cubicle,.room-type-heading.type-office{border-bottom-color:#47ace4;border-bottom-color:var(--theme-accent,#47ace4);color:#2a8bc4;color:var(--theme-accent2,#2a8bc4)}.room-cards{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.room-card{border:1px solid #e0e0e0;border:1px solid var(--ssp-border);border-radius:8px;cursor:pointer;overflow:hidden;padding:10px;transition:box-shadow .2s,border-color .2s}.room-card:hover{box-shadow:0 2px 8px #0000001a}.room-card--available{border-left:4px solid #47ace4;border-left:4px solid var(--ssp-green-light)}.room-card--booked{border-left:4px solid #d32f2f;border-left:4px solid var(--ssp-error);cursor:default;opacity:.85}.room-card-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.room-card-name{color:#333;color:var(--ssp-text);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card-status{border-radius:10px;font-size:11px;font-weight:700;letter-spacing:.5px;padding:3px 8px;text-transform:uppercase}.status-available{background:#e8f4fc;color:#0086c6;color:var(--ssp-success)}.status-booked{background:#ffebee;color:#d32f2f;color:var(--ssp-error)}.room-card-current{background:#fef3e0;border-radius:6px;margin-bottom:4px;padding:6px 8px}.current-meeting-title{color:#c47a01;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-meeting-info{color:#5d5e60;color:var(--ssp-text-light);display:flex;font-size:11px;justify-content:space-between;margin-top:2px}.current-meeting-remaining{color:#c47a01;font-weight:600}.room-card-schedule{display:flex;flex-direction:column;gap:3px}.schedule-slot{color:#5d5e60;color:var(--ssp-text-light);display:flex;font-size:11px;gap:8px;padding:2px 0}.slot-time{font-weight:600;min-width:100px;white-space:nowrap}.slot-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card-empty{color:#0086c6;color:var(--ssp-green);font-size:12px;font-style:italic;font-weight:500}.summary-card{padding:4px 0}.summary-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.summary-count{align-items:baseline;display:flex;gap:6px}.summary-number{font-size:28px;font-weight:700}.has-available .summary-number{color:#0086c6;color:var(--ssp-green)}.none-available .summary-number{color:#d32f2f;color:var(--ssp-error)}.summary-label{color:#5d5e60;color:var(--ssp-text-light);font-size:13px}.summary-book-btn{background:#0086c6;background:var(--ssp-green);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background .2s}.summary-book-btn:hover{background:#0086c6}.summary-room-list{display:flex;flex-wrap:wrap;gap:6px}.summary-room-tag{border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;padding:4px 10px;transition:opacity .2s}.summary-room-tag:hover{opacity:.8}.available-tag{background:#e8f4fc;border:1px solid #47ace4;color:#0086c6;color:var(--ssp-green)}.booked-tag{background:#ffebee;border:1px solid #ef9a9a;color:#d32f2f;color:var(--ssp-error);cursor:default}.more-tag{background:#f5f5f5;background:var(--ssp-gray);border:1px solid #e0e0e0;border:1px solid var(--ssp-border);color:#5d5e60;color:var(--ssp-text-light);cursor:default}.web-view{display:flex;flex-direction:column;min-height:100vh}.web-main{flex:1 1;margin:0 auto;max-width:1400px;padding:20px;width:100%}.web-content{position:relative}.web-floorplan{width:100%}.web-booking-panel{background:#fff;border-radius:12px;box-shadow:0 4px 24px #00000026;max-height:calc(100vh - 90px);overflow-y:auto;position:fixed;right:24px;top:70px;width:380px;z-index:50}.web-booking-panel .booking-panel{margin-top:0}@media (max-width:1024px){.web-booking-panel{border-radius:16px 16px 0 0;bottom:0;left:0;max-height:60vh;position:fixed;right:0;top:auto;width:100%}}@media (max-width:768px){.web-view .app-header{flex-direction:column;gap:8px;text-align:center}.web-view .header-subtitle{display:block;margin-left:0}.web-view .legend{justify-content:center}.web-view .form-row,.web-view .quick-book{flex-direction:column}.web-main,.web-view .floorplan-container{padding:12px}}.mobile-view{background:#f0f2f5;display:flex;flex-direction:column;min-height:100vh}.mobile-header{background:#193d68;background:var(--theme-header-dark,var(--ssp-dark));color:#fff;padding:12px 16px 10px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.mobile-header-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.mobile-header-brand{align-items:flex-start;display:flex;flex-direction:column;gap:2px}.mobile-header-logo{height:28px;width:auto}.mobile-subtitle{font-size:11px;opacity:.75}.mobile-title{font-size:17px;font-weight:700}.mobile-user{align-items:center;display:flex;gap:8px}.mobile-user-name{font-size:13px;opacity:.9}.mobile-logout-btn{background:#ffffff26;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;padding:5px 10px}.mobile-login-btn{font-size:13px;padding:6px 14px}.mobile-toggle{background:#ffffff1a;border-radius:8px 8px 0 0;display:flex;overflow:hidden}.mobile-toggle-btn{background:#0000;border:none;color:#fff9;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:10px;transition:all .2s}.mobile-toggle-btn.active{background:#f0f2f5;border-radius:8px 8px 0 0;color:#333;color:var(--ssp-text)}.mobile-notification{align-items:center;display:flex;font-size:14px;justify-content:space-between;padding:10px 16px}.mobile-notification button{background:none;border:none;cursor:pointer;font-weight:600;padding:4px 8px}.mobile-notification--error{background:#ffebee}.mobile-notification--error,.mobile-notification--error button{color:#d32f2f;color:var(--ssp-error)}.mobile-notification--success{background:#e8f4fc}.mobile-notification--success,.mobile-notification--success button{color:#0086c6;color:var(--ssp-success)}.mobile-main{flex:1 1;overflow-y:auto}.mobile-map-container,.mobile-map-container .floorplan-container{padding:12px}.mobile-map-container .legend{flex-wrap:wrap;gap:8px}.mobile-map-container .quick-book{flex-direction:column}.room-list{padding:12px}.room-list-quick{display:flex;gap:10px;margin-bottom:16px}.room-list-quick-btn{align-items:center;background:#fff;border:2px solid;border-radius:10px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;padding:14px 12px;transition:all .2s}.cubicle-quick-btn{border-color:#47ace4;color:#2a8bc4}.cubicle-quick-btn:hover:not(:disabled){background:#e8f4fc}.office-quick-btn{border-color:#5d5e60;color:#5d5e60}.office-quick-btn:hover:not(:disabled){background:#ededee}.room-list-quick-btn:disabled{cursor:not-allowed;opacity:.4}.quick-btn-label{font-size:14px;font-weight:600}.quick-btn-count{font-size:12px;margin-top:2px;opacity:.75}.room-list-group{margin-bottom:16px}.room-list-group-heading{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--ssp-border);color:#333;color:var(--ssp-text);display:flex;font-size:14px;font-weight:700;gap:8px;margin-bottom:8px;padding:8px 0}.room-list-group-icon{font-size:16px}.room-list-group-count{color:#5d5e60;color:var(--ssp-text-light);font-size:12px;font-weight:500;margin-left:auto}.room-list-items{display:flex;flex-direction:column;gap:6px}.room-list-item{align-items:center;background:#fff;border-left:4px solid #0000;border-radius:10px;box-shadow:0 1px 3px #0000000f;cursor:pointer;display:flex;justify-content:space-between;padding:14px 16px;transition:box-shadow .2s}.room-list-item:active{box-shadow:0 1px 6px #0000001f}.room-list-item--available{border-left-color:#47ace4;border-left-color:var(--ssp-green-light)}.room-list-item--booked{border-left-color:#d32f2f;border-left-color:var(--ssp-error);opacity:.8}.room-list-item-left{flex:1 1;min-width:0}.room-list-item-name{color:#333;color:var(--ssp-text);font-size:15px;font-weight:600;margin-bottom:2px}.room-list-item-detail{color:#5d5e60;color:var(--ssp-text-light);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-list-item-right{align-items:center;display:flex;flex-shrink:0;gap:8px;margin-left:12px}.room-list-badge{border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.3px;padding:4px 8px;text-transform:uppercase}.badge-available{background:#e8f4fc;color:#0086c6;color:var(--ssp-success)}.badge-booked{background:#ffebee;color:#d32f2f;color:var(--ssp-error)}.room-list-book-btn{background:#0086c6;background:var(--ssp-green);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:6px 14px;transition:background .2s}.room-list-book-btn:hover{background:#0086c6}.mobile-booking-overlay{align-items:flex-end;background:#00000080;bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:200}.mobile-booking-sheet{animation:slideUp .3s ease-out;background:#fff;border-radius:16px 16px 0 0;max-height:85vh;overflow-y:auto;width:100%}.mobile-booking-sheet .booking-panel{border-left:none;border-radius:16px 16px 0 0;border-top:4px solid #0086c6;border-top:4px solid var(--ssp-green);margin-top:0}.mobile-booking-sheet .login-prompt{border-radius:16px 16px 0 0;box-shadow:none;margin-top:0}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (max-width:1200px) and (min-height:1400px){.kiosk-header h1{font-size:28px}.kiosk-clock-time{font-size:26px}.room-schedule-header h2{font-size:24px}.room-cards{grid-template-columns:1fr}.kiosk-panel-overlay .booking-panel{max-width:90%}.kiosk-panel-overlay .book-btn{font-size:20px;padding:22px 40px}}@media (max-width:380px){.mobile-header{padding:10px 12px 0}.mobile-title{font-size:15px}.room-list{padding:8px}.room-list-item{padding:12px}.room-list-item-name{font-size:14px}.room-list-quick{flex-direction:column}}.date-picker{align-items:center;display:flex;gap:6px;position:relative}.date-picker-btn{-webkit-tap-highlight-color:transparent;background:none;border:1px solid #e0e0e0;border:1px solid var(--ssp-border);border-radius:8px;color:#333;color:var(--ssp-text);cursor:pointer;transition:all .15s}.date-picker-btn:hover:not(:disabled){background:#f5f5f5;background:var(--ssp-gray);border-color:#0086c6;border-color:var(--ssp-blue)}.date-picker-btn:disabled{cursor:default;opacity:.3}.date-picker-arrow{font-size:22px;height:36px;line-height:1;width:36px}.date-picker-arrow,.date-picker-display{align-items:center;display:flex;justify-content:center}.date-picker-display{border-radius:8px;min-width:140px;padding:6px 16px}.date-picker-label{color:#333;color:var(--ssp-text);font-size:15px;font-weight:600}.date-picker-today{color:#0086c6;color:var(--ssp-blue);font-size:13px;font-weight:600;padding:6px 14px;white-space:nowrap}.date-picker-today,.date-picker-today--active{border-color:#0086c6;border-color:var(--ssp-blue)}.date-picker-today--active{background:#0086c6;background:var(--ssp-blue);color:#fff}.date-picker--kiosk .date-picker-arrow{border-color:#ffffff4d;color:#fff;font-size:28px;height:48px;width:48px}.date-picker--kiosk .date-picker-arrow:hover:not(:disabled){background:#ffffff26;border-color:#ffffff80}.date-picker--kiosk .date-picker-label{color:#fff;font-size:18px}.date-picker--kiosk .date-picker-today{border-color:#fff6;color:#fff;font-size:15px;padding:8px 18px}.date-picker--kiosk .date-picker-today:hover:not(:disabled){background:#ffffff26;border-color:#fff9}.date-picker--kiosk .date-picker-today--active{background:#fff3;border-color:#ffffff80;color:#fff}.date-picker--kiosk .date-picker-btn:disabled{opacity:.25}.date-picker-display{cursor:pointer}.cal-popup{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;color:#333;color:var(--ssp-text);left:50%;margin-top:8px;padding:16px;position:absolute;top:100%;transform:translateX(-50%);width:300px;z-index:500}.cal-popup--kiosk{padding:20px;width:380px}.cal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.cal-month-label{font-family:Montserrat,sans-serif;font-size:16px;font-weight:600}.cal-nav-btn,.cal-popup--kiosk .cal-month-label{font-size:20px}.cal-nav-btn{align-items:center;background:#f5f5f5;background:var(--ssp-gray);border:none;border-radius:8px;color:#333;color:var(--ssp-text);cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .15s;width:32px}.cal-nav-btn:hover:not(:disabled){background:#e0e0e0;background:var(--ssp-border)}.cal-nav-btn:disabled{cursor:default;opacity:.3}.cal-popup--kiosk .cal-nav-btn{font-size:26px;height:44px;width:44px}.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;text-align:center}.cal-dow{color:#5d5e60;color:var(--ssp-text-light);font-size:11px;font-weight:600;padding:4px 0;text-transform:uppercase}.cal-popup--kiosk .cal-dow{font-size:13px;padding:6px 0}.cal-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.cal-cell{align-items:center;aspect-ratio:1;background:none;border:none;border-radius:8px;color:#333;color:var(--ssp-text);cursor:pointer;display:flex;font-size:14px;justify-content:center;transition:background .1s;width:100%}.cal-popup--kiosk .cal-cell{font-size:18px}.cal-cell:hover:not(:disabled):not(.cal-cell--empty){background:#f5f5f5;background:var(--ssp-gray)}.cal-cell--empty{cursor:default}.cal-cell--past{color:#ccc;cursor:default}.cal-cell--today{color:#0086c6;color:var(--ssp-blue);font-weight:700}.cal-cell--selected{background:#0086c6;background:var(--ssp-blue);color:#fff;font-weight:600}.cal-cell--selected:hover:not(:disabled){background:#193d68;background:var(--ssp-navy)}.kiosk-header-center{align-items:center}.kiosk-header-center,.web-date-bar{display:flex;justify-content:center}.web-date-bar{background:#fff;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--ssp-border);padding:8px 16px}.mobile-controls{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:8px 0 0}.mobile-controls .date-picker{flex:1 1}.mobile-controls .date-picker-btn{border-color:#ffffff4d;color:#fff}.mobile-controls .date-picker-btn:hover:not(:disabled){background:#ffffff26;border-color:#ffffff80}.mobile-controls .date-picker-btn:disabled{opacity:.3}.mobile-controls .date-picker-label{color:#fff;font-size:14px}.mobile-controls .date-picker-today{border-color:#fff6;color:#fff}.mobile-controls .date-picker-today:hover:not(:disabled){background:#ffffff26;border-color:#fff9}.mobile-controls .date-picker-today--active{background:#fff3;border-color:#ffffff80;color:#fff}.mobile-controls .mobile-toggle{flex-shrink:0}.kiosk-subject-input{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--ssp-border);border-radius:8px;cursor:pointer;font-size:15px;min-height:42px;padding:10px 12px;transition:border-color .2s}.kiosk-subject-input:active{border-color:#0086c6;border-color:var(--ssp-blue)}.kiosk-subject-input .placeholder{color:#999}.virtual-keyboard-overlay{align-items:flex-end;background:#0006;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.virtual-keyboard{background:#e8e8e8;border-radius:16px 16px 0 0;display:flex;flex-direction:column;gap:8px;max-width:700px;padding:12px 8px 20px;width:100%}.vk-input-preview{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:4px;margin:0 4px 4px;padding:12px 16px}.vk-label{color:#5d5e60;color:var(--ssp-text-light);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.vk-value{color:#333;color:var(--ssp-text);font-size:18px;min-height:26px}.vk-cursor{animation:vk-blink 1s step-end infinite;color:#0086c6;color:var(--ssp-blue)}@keyframes vk-blink{50%{opacity:0}}.vk-row{display:flex;gap:6px;justify-content:center}.vk-key{-webkit-tap-highlight-color:transparent;background:#fff;border:none;border-radius:8px;box-shadow:0 1px 2px #00000026;color:#333;color:var(--ssp-text);cursor:pointer;font-size:18px;font-weight:500;height:52px;min-width:48px;transition:background .1s;-webkit-user-select:none;user-select:none}.vk-key:active{background:#ccc}.vk-shift{background:#c8c8c8;font-size:14px;min-width:72px}.vk-shift.vk-active{background:#0086c6;background:var(--ssp-blue);color:#fff}.vk-backspace{background:#c8c8c8;font-size:20px;min-width:72px}.vk-bottom-row{margin-top:2px}.vk-space{color:#5d5e60;color:var(--ssp-text-light);flex:1 1;font-size:14px;max-width:320px}.vk-special{background:#d4d4d4;font-size:18px;min-width:48px}.vk-done{background:#0086c6;background:var(--ssp-blue);color:#fff;font-size:14px;font-weight:600;min-width:80px}.vk-done:active{background:#193d68;background:var(--ssp-navy)}
/*# sourceMappingURL=main.eaa325cd.css.map*/