@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}.board[data-v-0b6137b6]{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-bg-subtle)}.error-state[data-v-0b6137b6]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8);text-align:center}.error-state-title[data-v-0b6137b6]{font-size:var(--text-lg, 1.125rem);font-weight:600;color:var(--color-fg);letter-spacing:-.01em}.error-state-body[data-v-0b6137b6]{font-size:var(--text-sm);color:var(--color-fg-muted);max-width:36ch;line-height:1.6}.error-state-code[data-v-0b6137b6]{display:inline-block;margin-top:var(--space-2);font-family:ui-monospace,monospace;font-size:var(--text-sm);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:3px 10px;color:var(--color-fg);letter-spacing:.04em}.error-state-hint[data-v-0b6137b6]{font-size:var(--text-xs);color:var(--color-fg-muted);opacity:.6}.no-rooms-message[data-v-0b6137b6]{flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--color-fg-muted)}.header-left[data-v-0b6137b6]{flex:1;min-width:0}.board-header[data-v-0b6137b6]{position:relative;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:var(--space-3) var(--space-4);background:var(--color-bg);border-bottom:1px solid var(--color-border);gap:var(--space-4)}.section-label[data-v-0b6137b6]{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-fg-muted);margin-bottom:var(--space-1)}.building-name[data-v-0b6137b6]{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-fg);margin-bottom:var(--space-2)}.window-wrap[data-v-0b6137b6]{position:relative}.window-row[data-v-0b6137b6]{display:flex;align-items:center;gap:var(--space-1)}.window-badge[data-v-0b6137b6]{font-size:var(--text-xs);color:var(--color-fg);font-weight:500;font-variant-numeric:tabular-nums;padding:2px var(--space-1, 4px);letter-spacing:.04em}.page-btn[data-v-0b6137b6]{display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-sm);line-height:1;color:var(--color-fg-muted);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:0 1px 2px #1c19171f,0 2px 4px #1c19170f;padding:2px var(--space-2);align-self:stretch;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);user-select:none}.page-btn[data-v-0b6137b6]:active:not(:disabled),.clock-date-btn[data-v-0b6137b6]:active{transform:translateY(1px);box-shadow:none}.page-btn[data-v-0b6137b6]:disabled{opacity:.3;box-shadow:none;cursor:default}.clock-wrap[data-v-0b6137b6]{position:relative;text-align:center}.clock-wrap .revert-badge[data-v-0b6137b6]{top:calc(100% - 1px);left:50%;transform:translate(-50%)}.clock[data-v-0b6137b6]{font-size:3rem;font-weight:700;letter-spacing:-.03em;color:var(--color-fg);line-height:1}.clock-date[data-v-0b6137b6]{font-size:var(--text-xs);color:var(--color-fg-muted);margin-top:3px;letter-spacing:.05em}.clock-date-btn[data-v-0b6137b6]{position:relative;display:block;margin-inline:auto;padding:2px 8px;color:var(--color-fg);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:0 1px 2px #1c19171f,0 2px 4px #1c19170f;font-family:inherit;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.date-input[data-v-0b6137b6]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.sim-warning[data-v-0b6137b6]{margin-top:4px;font-size:var(--text-xs);font-weight:700;color:var(--color-warning);letter-spacing:.1em;text-transform:uppercase}.floor-selector-slot[data-v-0b6137b6]{min-width:0;display:flex;justify-content:flex-end;flex:1}.client-ip[data-v-0b6137b6]{position:absolute;top:var(--space-1);right:var(--space-4);max-width:calc(100% - 2 * var(--space-4));overflow-wrap:anywhere;text-align:right;font-size:12px;color:var(--color-fg-muted);opacity:.7}.floor-selector[data-v-0b6137b6]{position:relative}.floor-selector-row[data-v-0b6137b6]{display:flex;align-items:center;gap:var(--space-2)}.floor-selector-label[data-v-0b6137b6]{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-fg-muted);transition:color var(--transition-fast)}.floor-selector-label.is-home[data-v-0b6137b6]{color:var(--color-fg)}.floor-select[data-v-0b6137b6]{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;color:var(--color-fg);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:3px 22px 3px 8px;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;transition:border-color var(--transition-fast);min-width:80px}.floor-select[data-v-0b6137b6]:hover{border-color:var(--color-fg-muted)}.floor-select[data-v-0b6137b6]:focus{outline:none;border-color:var(--color-accent)}.revert-badge[data-v-0b6137b6]{position:absolute;top:calc(100% + 3px);font-size:9px;color:var(--color-fg-muted);letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.revert-badge.visible[data-v-0b6137b6]{opacity:1}.grid-wrapper[data-v-0b6137b6]{position:relative;flex:1;display:flex;min-height:0;overflow:hidden;padding:var(--space-3) var(--space-4);gap:0}.events-overlay[data-v-0b6137b6]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;gap:var(--space-2, 8px);align-items:center;justify-content:center;background:#fff9;font-size:var(--text-sm);color:var(--color-fg-muted);pointer-events:none}.events-overlay-error[data-v-0b6137b6]{background:none}.events-overlay-error>span[data-v-0b6137b6]{padding:var(--space-2, 8px) var(--space-3, 12px);background:#fff8e6;border-left:3px solid #e0a100;border-radius:2px;color:#6b4e00;text-align:center}.spinner[data-v-0b6137b6]{width:32px;height:32px;border:3px solid var(--color-border-strong);border-top-color:var(--color-fg-muted);border-radius:50%;animation:spin-0b6137b6 .8s linear infinite}@keyframes spin-0b6137b6{to{transform:rotate(360deg)}}.label-col[data-v-0b6137b6]{width:170px;flex-shrink:0;display:flex;flex-direction:column}.label-spacer[data-v-0b6137b6]{height:30px;flex-shrink:0}.label-list[data-v-0b6137b6]{flex:1;display:flex;flex-direction:column;min-height:0}.room-label[data-v-0b6137b6]{flex:1;display:flex;flex-direction:column;justify-content:center;padding-right:14px;border-bottom:1px solid var(--color-border-subtle);gap:2px}.room-label[data-v-0b6137b6]:last-child{border-bottom:none}.room-label-name[data-v-0b6137b6]{font-size:var(--text-sm);font-weight:600;color:var(--color-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-label-status[data-v-0b6137b6]{font-size:var(--text-xs);font-weight:500;display:flex;align-items:center;gap:4px}.status-dot[data-v-0b6137b6]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.free[data-v-0b6137b6]{background:var(--color-success)}.status-dot.busy[data-v-0b6137b6]{background:var(--color-warning)}.status-text.free[data-v-0b6137b6]{color:var(--color-success)}.status-text.busy[data-v-0b6137b6]{color:var(--color-warning)}.time-col[data-v-0b6137b6]{--now-indicator-color: #0078d4;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;position:relative}.time-axis[data-v-0b6137b6]{height:30px;flex-shrink:0;position:relative;display:grid}.axis-hour[data-v-0b6137b6]{position:relative;grid-row:1;justify-self:start;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none}.axis-hour.edge-end[data-v-0b6137b6]{justify-self:end;transform:translate(50%)}.axis-hour-tick[data-v-0b6137b6]{width:1px;height:7px;background:var(--color-fg-muted)}.axis-hour-label[data-v-0b6137b6]{font-size:10px;color:var(--color-fg-muted);white-space:nowrap;letter-spacing:.03em}.axis-hour-label.edge-start[data-v-0b6137b6]{transform:translate(50%)}.axis-hour-label.edge-end[data-v-0b6137b6]{transform:translate(-50%)}.axis-half[data-v-0b6137b6]{position:relative;grid-row:1;justify-self:start;transform:translate(-50%);pointer-events:none}.axis-half.edge-end[data-v-0b6137b6]{justify-self:end;transform:translate(50%)}.axis-half-tick[data-v-0b6137b6]{width:1px;height:4px;background:var(--color-border-strong)}.axis-now[data-v-0b6137b6]{position:relative;grid-row:1;justify-self:start;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;pointer-events:none;z-index:20}.axis-now.edge-end[data-v-0b6137b6]{justify-self:end;transform:translate(50%)}.axis-now[data-v-0b6137b6]:after{content:"";width:12px;height:12px;margin-bottom:-6px;border-radius:50%;background:var(--now-indicator-color)}.rooms-area[data-v-0b6137b6]{flex:1;position:relative;display:grid;min-height:0;background:var(--color-bg);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border)}.grid-lines-layer[data-v-0b6137b6]{grid-column:1 / -1;grid-row:1;display:grid;pointer-events:none;z-index:3}.vline[data-v-0b6137b6]{position:relative;grid-row:1;justify-self:start;width:1px;min-height:100%}.vline.edge-end[data-v-0b6137b6]{justify-self:end}.vline-hour[data-v-0b6137b6]{background:var(--color-border)}.vline-half[data-v-0b6137b6]{background:var(--color-border-subtle)}.room-rows-layer[data-v-0b6137b6]{grid-column:1 / -1;grid-row:1;display:flex;flex-direction:column;min-height:0;z-index:auto}.room-row[data-v-0b6137b6]{flex:1;position:relative;display:grid;border-bottom:1px solid var(--color-border-subtle)}.room-row[data-v-0b6137b6]:last-child{border-bottom:none}.room-row[data-v-0b6137b6]:nth-child(2n){background:var(--color-bg-subtle)}.booking[data-v-0b6137b6]{--booking-panel-accent: #1976d2;--booking-panel-bg: #b9d9f2;position:relative;grid-row:1;align-self:stretch;margin:5px 0;border-radius:var(--radius-sm);display:flex;align-items:center;padding:0 var(--space-2);overflow:hidden;cursor:default;border-left:4px solid var(--booking-panel-accent);background:var(--booking-panel-bg);min-width:0;z-index:4;transition:filter var(--transition-fast)}.booking[data-v-0b6137b6]:hover{filter:brightness(.95)}.booking-clip-left[data-v-0b6137b6]{border-left-style:dashed;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.booking-clip-right[data-v-0b6137b6]{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.booking-inner[data-v-0b6137b6]{min-width:0;overflow:hidden}.booking-title[data-v-0b6137b6]{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-fg)}.booking-time[data-v-0b6137b6]{font-size:9px;white-space:nowrap;color:var(--color-fg-muted)}.booking-organiser[data-v-0b6137b6]{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-fg-muted)}.now-overlay[data-v-0b6137b6]{grid-column:1 / -1;grid-row:1;display:grid;pointer-events:none;z-index:10}.now-line[data-v-0b6137b6]{position:relative;grid-row:1;justify-self:start;width:2px;min-height:100%;background:var(--now-indicator-color);transform:translate(-50%)}.now-line.edge-end[data-v-0b6137b6]{justify-self:end;transform:translate(50%)}.shade[data-v-0b6137b6]{position:relative;grid-row:1;background:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(0,0,0,.05) 4px,rgba(0,0,0,.05) 8px);pointer-events:none;z-index:2}.debug[data-v-839d31e4]{padding:24px 24px 80px;font-family:ui-monospace,monospace;font-size:13px;background:#0d1117;color:#e6edf3;min-height:100vh;line-height:1.5}.debug-title[data-v-839d31e4]{font-size:20px;font-weight:700;margin:0 0 24px;color:#f0f6fc}.debug-section[data-v-839d31e4]{margin-bottom:40px}h2[data-v-839d31e4]{font-size:15px;font-weight:600;color:#79c0ff;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid #30363d}h3[data-v-839d31e4]{font-size:13px;font-weight:600;color:#8b949e;margin:16px 0 8px}table[data-v-839d31e4]{border-collapse:collapse;width:100%;margin-bottom:12px}th[data-v-839d31e4],td[data-v-839d31e4]{text-align:left;padding:4px 12px 4px 0;vertical-align:top}th[data-v-839d31e4]{color:#8b949e;font-weight:400;white-space:nowrap;width:200px}thead th[data-v-839d31e4]{width:auto;font-weight:600;color:#8b949e;border-bottom:1px solid #30363d;padding-bottom:6px}code[data-v-839d31e4]{background:#161b22;padding:1px 5px;border-radius:3px;font-size:12px;color:#e6edf3}pre.raw-json[data-v-839d31e4]{background:#161b22;border:1px solid #30363d;border-radius:6px;padding:12px;font-size:12px;color:#e6edf3;white-space:pre-wrap;word-break:break-all}.error-box[data-v-839d31e4]{background:#3d1c1c;border:1px solid #f85149;border-radius:6px;padding:10px 14px;color:#f85149;margin:8px 0}.status-loading[data-v-839d31e4],.no-events[data-v-839d31e4]{color:#8b949e;font-style:italic}.floor-events[data-v-839d31e4]{margin-bottom:28px}.home-badge[data-v-839d31e4]{background:#1f6feb;color:#fff;font-size:11px;padding:1px 6px;border-radius:10px;margin-left:8px;font-family:inherit}.events-table td[data-v-839d31e4],.events-table th[data-v-839d31e4]{width:auto;padding:4px 10px 4px 0;white-space:nowrap}.row-filtered[data-v-839d31e4]{opacity:.45}.badge{font-size:11px;padding:1px 7px;border-radius:10px;margin-left:8px;font-family:ui-monospace,monospace}.badge-ok{background:#1a4731;color:#3fb950}.badge-fail{background:#3d1c1c;color:#f85149}.badge-neutral{background:#21262d;color:#8b949e}.app-layout[data-v-0a31c99f]{height:100vh;overflow:hidden}.app-layout.debug[data-v-0a31c99f]{overflow:auto;height:auto}.not-found[data-v-0a31c99f]{display:flex;align-items:center;justify-content:center;height:100vh;font-size:var(--text-lg);color:var(--color-fg-muted)}:root{--color-bg: #ffffff;--color-bg-subtle: #fafaf9;--color-bg-muted: #f5f5f4;--color-fg: #1c1917;--color-fg-secondary: #44403c;--color-fg-muted: #78716c;--color-fg-faint: #a8a29e;--color-border: rgba(28, 25, 23, .08);--color-border-subtle: rgba(28, 25, 23, .05);--color-border-strong: rgba(28, 25, 23, .15);--color-accent: #6366f1;--color-accent-hover: #4f46e5;--color-accent-subtle: rgba(99, 102, 241, .1);--color-success: #10b981;--color-success-subtle: rgba(16, 185, 129, .1);--color-warning: #f59e0b;--color-warning-subtle: rgba(245, 158, 11, .1);--color-warning-text: #92400e;--color-danger: #ef4444;--color-danger-subtle: rgba(239, 68, 68, .1);--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-subtle: rgba(59, 130, 246, .1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 24px;--transition-fast: .15s cubic-bezier(.25, 1, .5, 1);--transition-base: .2s cubic-bezier(.25, 1, .5, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;background:var(--color-bg);color:var(--color-fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em;line-height:1.25}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);height:32px;padding:0 var(--space-3);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;line-height:1;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-bg);color:var(--color-fg-secondary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-subtle);color:var(--color-fg)}.btn-ghost{background:transparent;color:var(--color-fg-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-bg-subtle);color:var(--color-fg)}.btn-sm{height:28px;padding:0 var(--space-2);font-size:var(--text-xs)}.ph,[class^=ph-]{font-size:16px;line-height:1}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-muted{color:var(--color-fg-muted)}.text-secondary{color:var(--color-fg-secondary)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.tabular-nums{font-variant-numeric:tabular-nums}
