:root{color-scheme:light dark;--bg: #f8f9fa;--card: #ffffff;--text: #212529;--muted: #868e96;--border: #dee2e6;--accent: #4c6ef5;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #1a1b1e;--card: #25262b;--text: #e9ecef;--muted: #909296;--border: #373a40}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}#root{min-height:100vh}.app-shell{max-width:720px;margin:0 auto;padding:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}h1,h2,h3{margin-top:0}.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 0 20px;gap:8px;flex-wrap:wrap}.nav-links{display:flex;gap:8px}button,.btn{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{background:#e03131;color:#fff;border-color:#e03131}button:disabled{opacity:.5;cursor:not-allowed}input,select{font:inherit;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text);width:100%}label{display:block;font-size:.85em;color:var(--muted);margin-bottom:4px}.field{margin-bottom:12px}.error-text{color:#e03131;margin:8px 0}.month-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dow{text-align:center;font-size:.75em;color:var(--muted);padding:4px 0}.day-cell{aspect-ratio:1;border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-size:.85em;position:relative;min-height:44px}.day-cell.empty{border:none;cursor:default}.day-cell.past{opacity:.35;cursor:not-allowed}.day-cell.selected{outline:2px solid var(--accent);outline-offset:2px}.day-cell.viewed{background:#e7f0ff}@media (prefers-color-scheme: dark){.day-cell.viewed{background:#1c2a44}}.day-cell.today{border-color:var(--accent);border-width:2px}.day-cell.in-booking-mode{cursor:pointer}.day-cell.in-booking-mode:hover{background:#f9f9f9}@media (prefers-color-scheme: dark){.day-cell.in-booking-mode:hover{background:#2a2a2a}}.day-bar{position:absolute;left:3px;right:3px;bottom:4px;height:5px;border-radius:3px;background:var(--border);overflow:hidden}.day-bar-seg{position:absolute;top:0;bottom:0}.day-bar-pending{position:absolute;left:3px;right:3px;bottom:11px;height:4px;border-radius:3px;overflow:hidden}.day-bar-seg-pending{position:absolute;top:0;bottom:0;opacity:.7;background-image:repeating-linear-gradient(45deg,currentColor 0 2px,transparent 2px 5px)}.pending-row{opacity:.85}.pending-swatch{background-image:repeating-linear-gradient(45deg,currentColor 0 2px,transparent 2px 5px)}.legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.85em}.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.booking-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);gap:8px}.booking-row:last-child{border-bottom:none}.pill{display:inline-block;padding:2px 8px;border-radius:999px;color:#fff;font-size:.8em}.pill.status-pending{background:#f59f00}.pill.status-approved{background:#12b886}.pill.status-denied{background:#868e96}.pill.status-cancelled{background:#495057}a.btn{text-decoration:none;display:inline-flex;align-items:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.modal{background:var(--card);border-radius:12px;padding:20px;max-width:400px;width:100%}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}table{width:100%;border-collapse:collapse;font-size:.9em}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--border)}.muted{color:var(--muted)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.onboarding-card{background:#f0f7ff;border-color:#cfe2ff}@media (prefers-color-scheme: dark){.onboarding-card{background:#1c2a44;border-color:#2a3b5c}}.onboarding-card button{border:none;background:none;font-size:1.1em;line-height:1;padding:2px 6px;color:var(--muted)}.info-bubble{display:inline-block}.info-bubble-toggle{border:none;background:none;padding:0;width:16px;height:16px;line-height:16px;border-radius:50%;color:var(--muted);font-size:.85em;cursor:pointer;vertical-align:middle}.info-bubble-toggle:hover{color:var(--accent)}.info-bubble-text{display:block;margin:6px 0;font-size:.82em;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;max-width:420px}
