:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#192a37;--room-colour:#126b53;--ink:#192a37;--muted:#6a7883;--layout-x:24px;--layout-y:22px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;height:100%;overscroll-behavior:none}body{background:#071411}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #5ab5fa;outline-offset:2px}#wallpaper,#shade,#tint{position:fixed;inset:0;pointer-events:none;width:100%;height:100%}#wallpaper{object-fit:contain;display:none}#shade{background:#0005;display:none}#tint{background:var(--room-colour)}body[data-status=upcoming]{--room-colour:#875716}body[data-status=occupied]{--room-colour:#a82e3b}#tablet-main{position:relative;height:100%;height:100dvh;display:grid;grid-template-columns:minmax(0,43fr) minmax(0,57fr);gap:28px;padding:calc(var(--layout-y) + var(--safe-top)) calc(var(--layout-x) + env(safe-area-inset-right,0px)) calc(var(--layout-y) + var(--safe-bottom)) calc(var(--layout-x) + env(safe-area-inset-left,0px))}#room{min-width:0;min-height:0;display:flex;flex-direction:column;color:#fff}header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}h1{font-size:clamp(17px,2.1vw,24px);font-weight:750;letter-spacing:.1em;margin:0;white-space:nowrap}.gear{width:48px;height:48px;border:0;border-radius:12px;background:#ffffff18;opacity:.65;padding:12px;flex-shrink:0}.gear svg{width:24px;height:24px;fill:white}#room-name{height:42px;line-height:42px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(18px,2.4vw,26px);font-weight:650}#tablet-clock{font-size:14px;opacity:.88;min-height:26px}#status-area{flex:1;display:flex;align-items:center;min-height:90px;padding:10px 0}.status-panel{width:100%;border-radius:20px;border:1px solid #ffffff50;background:#ffffff1c;padding:20px}#status{font-size:clamp(30px,4.5vw,58px);letter-spacing:-.035em;line-height:1.08;margin:0;font-weight:700}#status-detail{font-size:14px;line-height:1.5;margin:10px 0 0;opacity:.94;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-actions{display:grid;gap:10px;flex-shrink:0}button{border:0;border-radius:12px;min-height:48px;padding:10px 16px;font-weight:600;background:#edf2f5;color:var(--ink)}button:active{filter:brightness(.94)}.primary{background:#126b53;color:white}.main-actions .primary{background:white;color:#192a37}.outline{background:#ffffff12;color:white;border:1px solid #ffffff80}.danger{background:#fbecef;color:#a82e3b}.health{font-size:11px;font-weight:450;opacity:.8;background:transparent;color:white;padding:2px 0;min-height:18px;text-align:left}.health.ready{opacity:.65}#schedule{background:#fffffffa;border-radius:22px;display:flex;flex-direction:column;padding:16px 22px 10px;min-width:0;min-height:0}#day-tabs{display:flex;gap:6px;overflow-x:auto;flex-shrink:0;padding:2px 0 12px;scrollbar-width:none}#day-tabs::-webkit-scrollbar{display:none}.date-tab{min-width:82px;max-width:82px;min-height:48px;padding:7px 8px;white-space:pre-line;font-size:12px;line-height:1.4;flex-shrink:0}.date-tab.selected,.date-chip.selected{background:#126b53;color:white}.date-tab:disabled,.date-chip:disabled{background:#f0f1f2;color:#a6adb3;opacity:.65}#agenda{overflow-y:auto;min-height:0;flex:1;scrollbar-width:none}#agenda::-webkit-scrollbar{display:none}.meeting{display:flex;align-items:center;width:100%;min-height:68px;padding:12px 0;border-radius:0;border-bottom:1px solid #e2e7ea;background:transparent;text-align:left;gap:12px;font-weight:normal}.meeting:disabled{color:inherit}.marker{height:34px;width:3px;border-radius:3px;flex-shrink:0;background:#cbd3d7}.meeting.live .marker{background:#126b53}.meeting.current .marker{background:#a82e3b}.meeting-time{font-size:13px;line-height:1.5;min-width:42px;color:#65747d}.meeting-info{min-width:0;flex:1}.meeting-title{display:block;font-size:16px;line-height:1.35;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meeting-state{display:block;font-size:12px;color:#65747d;margin-top:4px;font-weight:400}.meeting.current .meeting-state{color:#a82e3b}.chevron{font-size:24px;color:#839198}.empty{padding:28px 0;font-size:16px;color:#667580}.tail{pointer-events:none}dialog{border:0;padding:0;border-radius:22px;width:min(680px,calc(100vw - 32px));top:var(--safe-top);bottom:var(--safe-bottom);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px);background:white;color:var(--ink);box-shadow:0 24px 100px #0004;overflow:auto}dialog::backdrop{background:#0007}#modal-content{padding:22px;display:flex;flex-direction:column;gap:10px}dialog h2{margin:0;font-size:24px;line-height:1.2;font-weight:700;overflow-wrap:anywhere}dialog p{margin:0;color:#65747d;line-height:1.45;font-size:14px}.dialog-body{display:flex;flex-direction:column;gap:10px}.dialog-footer{display:flex;gap:10px;margin-top:4px}.dialog-footer>*{flex:1;min-width:0}.row{display:flex;gap:12px}.row>*{flex:1;min-width:0}.field{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:13px}.field input,.field select{width:100%;height:48px;border:0;border-radius:12px;background:#edf2f5;color:var(--ink);padding:10px 12px;font-size:16px;min-width:0}input[type=date]{-webkit-appearance:none;appearance:none}input[type=range]{accent-color:#126b53;width:100%}.date-choices{display:flex;gap:5px}.date-chip{min-width:0;flex:1;white-space:pre-line;font-size:12px;padding:5px 2px;line-height:1.4}.date-more{width:48px;min-width:48px;flex:0 0 48px;background:none;padding:8px;font-size:24px;position:relative;z-index:0}.date-more:before{content:"";position:absolute;inset:8px;border-radius:9px;background:#edf2f5;z-index:-1}.error{color:#a82e3b!important;font-size:13px!important;line-height:1.4;min-height:0}.error:empty{display:none}.settings-menu{display:grid;gap:8px}.preview{height:88px;background:#071411;border-radius:10px;position:relative;overflow:hidden}.preview img{height:100%;width:100%;object-fit:contain}.preview .preview-tint{position:absolute;inset:0}.small{font-size:12px!important}#notice{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);padding:12px 18px;border-radius:12px;background:#182a35;color:white;max-width:90vw;z-index:5;display:none}.install-steps{margin:0;padding-left:22px;line-height:1.7;font-size:14px}.state-good{color:#126b53!important;font-weight:650}.state-bad{color:#a82e3b!important;font-weight:650}a{color:#126b53}button.pending{opacity:.5}.row input{width:100%}@media(orientation:portrait){#tablet-main{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:18px}#room{display:grid;grid-template-columns:1fr;grid-template-rows:48px 36px 22px 92px auto}#room-name{height:36px;line-height:36px;font-size:22px}#status-area{padding:4px 0 10px;min-height:0}.status-panel{padding:12px 18px}#status{font-size:36px}#status-detail{margin-top:4px}.main-actions{grid-template-columns:1fr 1fr;gap:8px}.health{grid-column:1/-1}h1{font-size:22px}#schedule{padding:14px 18px 8px}}@media(max-height:600px) and (orientation:landscape){#tablet-main{--layout-y:14px;--layout-x:18px;gap:20px}#room-name{height:32px;line-height:32px;font-size:20px}#tablet-clock{font-size:12px;min-height:20px}.status-panel{padding:12px 14px}#status{font-size:34px}#status-detail{font-size:12px;margin-top:5px}.main-actions{gap:7px}#modal-content{padding:16px 20px;gap:8px}dialog h2{font-size:21px}.preview{height:48px}}@media(max-width:600px){#tablet-main{--layout-y:12px;--layout-x:12px;gap:12px}#modal-content{padding:18px}dialog h2{font-size:21px}.dialog-footer button{font-size:13px;padding:8px}.main-actions button{font-size:14px}.date-tab{min-width:76px;max-width:76px}}
[hidden]{display:none!important}

html.standalone{--safe-top:max(24px,env(safe-area-inset-top,0px))}

.offline-success{background:#e8f5ef;border:1px solid #bbdfce;border-radius:14px;padding:18px;color:#126b53!important;font-size:17px!important;line-height:1.5!important}
.gear{position:relative}.gear.connection-lost{opacity:1}.gear.connection-lost:after{content:'!';position:absolute;right:-3px;top:-3px;width:24px;height:24px;border:2px solid #fff;border-radius:50%;background:#ce233a;color:#fff;font-size:16px;font-weight:800;line-height:20px;text-align:center}.main-actions button:disabled{opacity:.45}.other-rooms{font-size:14px;min-height:40px}@media(orientation:portrait){.other-rooms{grid-column:1/-1}}

.kiosk-title{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.kiosk-title:focus-visible{outline:3px solid #ffffffa0;outline-offset:5px;border-radius:3px}
/* Company mode uses the original fair tablet layout, colors and dialogs. */
body{--room-colour:#126b53}.header-tools{display:flex;align-items:center;gap:7px}.gear.language{width:64px;padding:10px 5px;color:#fff;font-size:12px;white-space:nowrap}#agenda{position:relative;overflow-anchor:none}.date-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-shrink:0;background:transparent;padding:2px 0 14px;border-radius:0;text-align:left;font-size:14px;min-height:44px;border-bottom:1px solid #e2e7ea;margin-bottom:2px}.date-heading span{font-size:18px;color:#65747d}.past{opacity:.42}.connection-error{display:block;font-size:12px;color:#fff;margin-top:4px}.main-actions [data-blocked=true]{opacity:.55}.has-background #wallpaper,.has-background #shade{display:block}.has-background #tint{opacity:.84}dialog>form{padding:22px;display:flex;flex-direction:column;gap:10px}dialog label{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:0}dialog input,dialog select,dialog textarea{width:100%;min-width:0;border:0;border-radius:12px;background:#edf2f5;color:var(--ink);padding:10px 12px;font:inherit;font-size:16px;min-height:48px}dialog .fields{display:flex;gap:12px}dialog .fields>*{flex:1;min-width:0}dialog .actions{display:flex;gap:10px;margin-top:4px}dialog .actions>*{flex:1;min-width:0}dialog p.meeting-time{font-size:24px;margin:8px 0}.modal-error{color:#a82e3b;font-size:13px;line-height:1.4}.modal-error:empty{display:none}.date-list{display:grid;gap:8px;max-height:50dvh;overflow:auto}.date-list button{text-align:left}.login{grid-column:1/-1;max-width:640px;width:100%;margin:auto;background:white;color:var(--ink);border-radius:22px;padding:26px;box-shadow:0 20px 60px #0002}.login h1{white-space:normal;font-size:27px;letter-spacing:-.5px;line-height:1.2;margin:12px 0}.login p{color:#65747d;font-size:14px;line-height:1.55}.login label{display:flex;flex-direction:column;gap:7px;font-size:13px;margin:16px 0}.login input{width:100%;height:48px;background:#edf2f5;color:var(--ink);border:0;border-radius:12px;padding:10px 12px;font:inherit}.login .eyebrow{font-size:10px;color:#65747d;letter-spacing:1.6px}.login #pair-error,.login #install-error{color:#a82e3b}.login form{display:grid;gap:8px}.install-steps{color:#65747d}.install-steps li{padding:5px 0}.install-steps strong{color:var(--ink)}.install-ready{padding:14px 16px;background:#e8f5ef;border:1px solid #bbdfce;border-radius:12px;margin:18px 0;color:#126b53;font-size:14px}.install-ready p{font-size:13px;color:#126b53;margin-bottom:0}.login summary{cursor:pointer;color:#126b53;font-size:13px}.login details{padding:12px 0}.login .warning{background:#fff3dc;color:#875716;padding:12px;border-radius:10px}#notice{display:block}#notice[hidden]{display:none}body:has(#install-guide){overflow:auto;height:auto;min-height:100dvh}#tablet-main:has(#install-guide){height:auto;min-height:100dvh}#status-detail:empty{display:none}@media(orientation:portrait){#room{grid-template-rows:48px 36px 22px 108px auto}.status-panel{min-height:82px}.main-actions{margin-top:2px}}@media(max-height:650px) and (orientation:landscape){dialog>form{padding:16px 20px;gap:8px}dialog h2{font-size:21px}dialog input,dialog select{min-height:43px}dialog .actions button{min-height:43px}}@media(max-width:600px){.header-tools{gap:4px}.gear.language{width:54px}.gear{width:42px;height:42px;padding:9px}#room header h1{font-size:18px}dialog>form{padding:18px}.login{padding:22px}.login h1{font-size:24px}}

/* Native date/time inputs must not force wider columns on iPad. */
dialog .booking-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}dialog .booking-fields>label:first-child{grid-column:1/-1}dialog label{min-width:0}dialog input,dialog select,dialog textarea{box-sizing:border-box;min-width:0;max-width:100%;width:100%}dialog input[type=date],dialog input[type=time]{appearance:none;-webkit-appearance:none;display:block;min-height:44px} .meeting-booker{display:block;opacity:.65;font-size:13px;margin-top:5px}.meeting[role=button]{cursor:pointer}.meeting[role=button]:focus-visible{outline:3px solid #111;outline-offset:-3px}button[aria-pressed=true]{background:#151515;color:white}

.month-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.month-heading strong{text-transform:capitalize}.month-heading button{width:44px;height:44px;padding:0;font-size:28px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.month-grid .weekday{text-align:center;font-size:12px;color:#66747d;padding:4px 0}.month-grid button{position:relative;min-height:44px;padding:8px 3px;border-radius:10px;background:#edf2f5;color:#23313a;font-size:16px}.month-grid button:disabled{opacity:1;color:#b7bfc4;background:#f6f7f8;cursor:default}.month-grid button.selected-day{background:#126b53;color:white}.month-grid button.today-day{outline:1px solid #126b53;outline-offset:-1px}.month-grid button i{display:block;position:absolute;bottom:5px;left:calc(50% - 2px);height:4px;width:4px;border-radius:50%;background:currentColor}#status-detail{overflow-wrap:anywhere}@media(max-height:650px){.month-grid{gap:3px}.month-grid button{min-height:35px;padding:5px 2px}.month-heading button{height:36px}}

.operation-running>:not([data-operation-status]){display:none!important}[data-operation-status]{text-align:center;padding:28px 10px;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}[data-operation-status] p{max-width:470px;line-height:1.6;margin:0}.operation-spinner{display:inline-block;flex:none;width:24px;height:24px;border:3px solid #b7cfc6;border-top-color:#126b53;border-radius:50%;animation:operation-spin 1s linear infinite}.operation-spinner.large{width:48px;height:48px;border-width:4px}#pending-operation{position:fixed;z-index:20;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(760px,calc(100vw - 28px));display:flex;align-items:center;gap:14px;text-align:left;background:#fff;color:#243b33;border:1px solid #adcdbf;border-radius:16px;padding:16px 20px;box-shadow:0 8px 35px #0003}#pending-operation strong,#pending-operation small{display:block}#pending-operation small{font-size:12px;font-weight:400;line-height:1.5;margin-top:4px}@keyframes operation-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.operation-spinner{animation-duration:3s}}
body:has(dialog[open] [data-operation-status]) #pending-operation{display:none}
/* Company identity: the room name is the main landmark, with a quiet SQM signature. */
#room header{gap:12px;min-height:48px;align-items:center}.sqm-wordmark{display:flex;align-items:baseline;gap:9px;letter-spacing:.06em;font-size:clamp(17px,1.8vw,23px);font-weight:700;line-height:1.2}.sqm-wordmark small{position:relative;top:3px;font-size:10px;line-height:1;font-weight:400;letter-spacing:.03em;opacity:.68;white-space:nowrap}.header-tools{gap:6px}.gear{height:42px;width:42px;border-radius:50%;padding:10px;background:#ffffff0b;opacity:.72}.gear svg{width:22px;height:22px}.gear.language{height:42px;width:58px;font-size:11px;background:transparent}#room-name{height:auto;line-height:1.08;white-space:normal;font-size:clamp(30px,3.8vw,50px);font-weight:700;letter-spacing:-.035em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:2.2em;margin:32px 0 14px}#tablet-clock{font-size:13px;opacity:.72;line-height:1.5;min-height:24px}#status-area{padding:22px 0;min-height:115px}.status-panel{background:none;border:0;border-radius:0;padding:0;display:grid;grid-template-columns:14px minmax(0,1fr);gap:0 16px;align-items:center}.status-panel:before{content:'';height:14px;width:14px;background:#fff;border-radius:50%;box-shadow:0 0 0 7px #ffffff10;align-self:center}#status{grid-column:2;font-size:clamp(38px,4.5vw,64px);letter-spacing:-.04em;line-height:1.1;font-weight:500}#status-detail{grid-column:2;margin-top:12px;font-size:14px;opacity:.8;white-space:normal;line-height:1.5}.main-actions{gap:9px}.main-actions button{font-size:14px;min-height:50px;border-radius:12px}.main-actions .other-rooms{min-height:42px;background:transparent;border-color:#ffffff38;font-size:13px}.main-actions .primary{font-weight:650}.meeting-title{font-size:15px;font-weight:600}.meeting-booker{font-size:12px}.meeting{min-height:70px}.date-heading{font-size:13px;font-weight:500}.operation-running [data-operation-status]{min-height:215px}[data-operation-status] p:empty,#pending-operation small:empty{display:none}.booking-room{font-weight:600;color:var(--ink)}.device-information{border-top:1px solid #e2e7ea;padding-top:14px}.device-information summary{font-size:13px;color:#64737d;cursor:pointer}.device-information p{margin-top:10px}.other-room-list{display:grid;gap:8px;max-height:60dvh;overflow:auto}.other-room-card{display:flex;gap:14px;align-items:center;min-height:82px;padding:16px;text-align:left;background:#f1f4f5;border:1px solid transparent}.other-room-card>i{width:10px;height:10px;border-radius:50%;background:#126b53;flex:none}.other-room-card[data-status=occupied]>i{background:#a82e3b}.other-room-card[data-status=upcoming]>i{background:#a16b16}.other-room-card>span:nth-child(2){flex:1;min-width:0}.other-room-card strong{display:block;font-size:17px;overflow-wrap:anywhere}.other-room-card small{display:block;font-size:12px;font-weight:400;color:#687780;margin-top:6px;line-height:1.4}.other-room-card>span:last-child{color:#7f8f97;font-size:25px}.other-room-schedule{max-height:42dvh;overflow:auto}.other-room-schedule .meeting:first-child{padding-top:4px}.other-room-schedule .meeting:last-child{border-bottom:0}@media(orientation:portrait){#room{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto auto}#room-name{font-size:clamp(30px,5vw,46px);margin:20px 0 8px;line-height:1.08;height:auto}#status-area{padding:20px 0;min-height:94px}.status-panel{min-height:0}#status{font-size:40px}#status-detail{margin-top:6px}.main-actions{grid-template-columns:1fr 1fr}.main-actions .other-rooms{grid-column:1/-1}.sqm-wordmark{font-size:22px}}@media(max-height:600px) and (orientation:landscape){#room-name{font-size:32px;margin:18px 0 9px}.main-actions button{min-height:43px}.main-actions .other-rooms{min-height:36px}#status-area{min-height:85px;padding:15px 0}#status{font-size:42px}#status-detail{font-size:12px;margin-top:7px}.sqm-wordmark{font-size:18px}.sqm-wordmark small{font-size:9px}}@media(max-width:600px){#room header h1{font-size:18px}.sqm-wordmark{gap:6px}.sqm-wordmark small{font-size:9px}#room-name{font-size:32px;margin-top:18px}.main-actions button{font-size:13px}#status{font-size:36px}.other-room-card strong{font-size:15px}}

/* Artwork fades over the status colour; the schedule stays opaque. */
#tint,.has-background #tint{z-index:0;opacity:1}#background-art{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1;opacity:.16}#wallpaper{transform-origin:center}#tablet-main{z-index:2}#schedule{background:#fff}.schedule-logo{display:flex;justify-content:flex-end;align-items:flex-end;flex:none;padding:12px 0 6px;min-height:0}.schedule-logo img{display:block;max-width:140px;max-height:72px;width:auto;height:auto;object-fit:contain;border-radius:12px;overflow:hidden}.schedule-logo img{max-width:min(140px,65%)}@media(max-height:600px) and (orientation:landscape){.schedule-logo img{max-height:48px}.schedule-logo{padding-top:8px}}
.schedule-logo img{max-height:var(--logo-height,72px)}@media(max-height:600px) and (orientation:landscape){.schedule-logo img{max-height:min(var(--logo-height,72px),48px)}}

/* Kiosk gestures: retain one-finger scrolling without page pinch zoom. */
html,body.tablet,body.tablet *{touch-action:pan-x pan-y}body.tablet input,body.tablet select,body.tablet textarea{font-size:16px}

/* Seven-day home agenda, with the logo outside the list layout. */
.schedule-side{position:relative}.agenda-day{position:relative;margin:0 0 16px}.agenda-day-heading{position:sticky;top:0;z-index:2;background:#fff;margin:0;padding:17px 0 13px;border-bottom:1px solid #e1e5e8;font-size:12px;line-height:1.5;font-weight:500;color:#8a939d}.today-group>.agenda-day-heading{font-size:14px;font-weight:700;color:#273e35;border-bottom:2px solid var(--room-colour)}.future-group{background:#f7f8f9;border-radius:10px;padding:0 12px}.future-group>.agenda-day-heading{background:#f7f8f9}.future-group .meeting-title{font-weight:400;color:#66737f}.future-group .meeting-time{color:#9ca5ae}.agenda-day .empty{font-size:12px;padding:18px 0}.schedule-side #agenda{padding-bottom:24px}.schedule-side .schedule-logo{position:absolute;right:22px;bottom:18px;z-index:4;display:flex;justify-content:flex-end;align-items:flex-end;width:240px;max-width:45%;height:110px;padding:0;margin:0;pointer-events:none}.schedule-side .schedule-logo img{max-height:var(--logo-height,110px);max-width:100%;pointer-events:none}.start-now-fields{grid-template-columns:1fr!important}.start-now-fields label{max-width:260px}@media(orientation:portrait){.agenda-day-heading{padding-top:12px;padding-bottom:10px}.schedule-side .schedule-logo{right:18px;bottom:14px}}
