:root{--accent: #0f766e;--accent-dark: #0b5952;--accent-soft: #e6f2f1;--ink: #1f2933;--ink-soft: #52606d;--ink-faint: #7b8794;--bg: #f4f6f7;--card: #ffffff;--line: #e0e5e9;--open-bg: #eaf6ee;--open-ink: #1e7c3c;--blue-bg: #e8f0fb;--blue-ink: #2563af;--gray-bg: #eef0f2;--gray-ink: #6b7681;--danger: #b5473c;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:15px}h1,h2,h3{margin:0 0 8px}a{color:var(--accent)}button{font:inherit;cursor:pointer}.site-header{background:var(--card);border-bottom:1px solid var(--line);padding:0 24px;display:flex;align-items:center;gap:20px;height:60px}.wordmark{display:flex;align-items:center;gap:9px;font-size:20px;font-weight:700;color:var(--accent-dark);-webkit-user-select:none;user-select:none;cursor:pointer}.wordmark svg{display:block}.tenant-context{color:var(--ink-soft);font-size:14px;border-left:1px solid var(--line);padding-left:20px}.header-nav{margin-left:auto;display:flex;align-items:center;gap:4px}.header-nav a{text-decoration:none;color:var(--ink-soft);padding:8px 12px;border-radius:8px;font-weight:600;font-size:14px}.header-nav a.active{color:var(--accent-dark);background:var(--accent-soft)}.user-menu{display:flex;align-items:center;gap:10px;margin-left:12px;padding-left:16px;border-left:1px solid var(--line);font-size:14px;color:var(--ink-soft)}.page{max-width:1080px;margin:0 auto;padding:24px 24px 64px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.times-note{color:var(--ink-faint);font-size:13px;margin-top:16px}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:9px 16px;font-weight:600;font-size:14px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-danger{color:var(--danger);border-color:#e4c7c4}.btn-link{background:none;border:none;color:var(--accent);padding:0;font-weight:600}.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.03em}.chip-open,.chip-completed{background:var(--open-bg);color:var(--open-ink)}.chip-scheduled{background:var(--blue-bg);color:var(--blue-ink)}.chip-full,.chip-cancelled,.chip-closed{background:var(--gray-bg);color:var(--gray-ink)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:380px;padding:32px;text-align:center}.login-card .wordmark{justify-content:center;font-size:24px;margin-bottom:4px;cursor:default}.login-tenant{color:var(--ink-soft);margin-bottom:24px;font-size:14px}.login-card form{display:flex;flex-direction:column;gap:12px;text-align:left}.login-footer{margin-top:16px;font-size:13px}.link-disabled{color:var(--ink-faint);text-decoration:none;cursor:not-allowed}label.field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--ink-soft)}input,select,textarea{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.form-error{background:#faeceb;color:var(--danger);border:1px solid #eccfcc;border-radius:8px;padding:10px 12px;font-size:14px}.facility-banner{display:flex;flex-wrap:wrap;gap:6px 28px;align-items:baseline;margin-bottom:20px}.facility-banner h1{font-size:20px;margin:0}.facility-meta{color:var(--ink-soft);font-size:14px}.facility-rules{flex-basis:100%;color:var(--ink-soft);font-size:13.5px;background:var(--accent-soft);border-radius:8px;padding:8px 12px}.week-nav{display:flex;align-items:center;gap:14px;margin-bottom:14px}.week-nav .label{font-weight:700}.week-nav .note{margin-left:auto;color:var(--ink-faint);font-size:13px}.slot-grid{display:grid;grid-template-columns:92px repeat(7,1fr);gap:6px}.slot-grid .head{text-align:center;font-size:13px;font-weight:700;color:var(--ink-soft);padding:6px 2px}.slot-grid .head .closed-tag{display:block;font-weight:500;color:var(--ink-faint);font-size:11.5px}.slot-grid .window-label{font-size:12.5px;font-weight:600;color:var(--ink-soft);display:flex;align-items:center;justify-content:flex-end;padding-right:8px;white-space:nowrap}.slot-cell{border-radius:8px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;border:1px solid var(--line);background:var(--gray-bg);color:var(--gray-ink);text-align:center;padding:4px}button.slot-cell{background:var(--open-bg);border-color:#bedec8;color:var(--open-ink)}button.slot-cell:hover{border-color:var(--open-ink);box-shadow:0 0 0 1px var(--open-ink) inset}.slot-cell .cell-state{font-weight:800;font-size:12px;letter-spacing:.04em}.slot-cell .cell-detail{font-size:11.5px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f293373;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto;z-index:20}.modal{width:560px;max-width:100%;padding:24px}.modal h2{font-size:18px}.modal-slot-line{color:var(--ink-soft);font-size:14px;margin-bottom:16px}.carrier-chip{display:inline-block;background:var(--accent-soft);color:var(--accent-dark);font-weight:700;font-size:13px;border-radius:999px;padding:5px 12px;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.confirmation{text-align:center;padding:8px 4px}.confirmation .conf-number{font-size:26px;font-weight:800;color:var(--accent-dark);background:var(--accent-soft);border-radius:var(--radius);padding:14px;margin:14px 0;font-family:Consolas,monospace;overflow-wrap:anywhere}.confirmation .conf-when{font-size:16px;font-weight:700}.confirmation .conf-meta{color:var(--ink-soft);font-size:14px;margin:6px 0 14px}.confirmation .conf-rules{text-align:left;background:var(--bg);border-radius:8px;padding:10px 14px;font-size:13.5px;color:var(--ink-soft)}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{text-align:left;color:var(--ink-soft);font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);padding:8px 10px}table.data td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}table.data .conf-id{font-family:Consolas,monospace;font-size:13px}.row-actions{display:flex;gap:12px}details.past-appointments{margin-top:18px}details.past-appointments summary{cursor:pointer;font-weight:700;color:var(--ink-soft);padding:6px 0}.empty-state{color:var(--ink-faint);padding:20px 0;text-align:center}.ops-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.seed-info{font-size:13px;color:var(--ink-soft);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.warning-note{background:#fdf3e3;border:1px solid #f0dcb4;color:#8a6116;border-radius:8px;padding:10px 12px;font-size:13.5px}@media (max-width: 860px){.slot-grid{grid-template-columns:72px repeat(7,1fr);font-size:11px}.tenant-context{display:none}.form-grid{grid-template-columns:1fr}}
