:root{--text:#2a2622;--text-muted:#6b6259;--page-bg:#faf7f2;--card:#fffdfa;--surface:#f4efe7;--border:#e6dfd3;--border-strong:#8f8475;--divider:#eee8de;--accent:#1f5f4a;--accent-text:#fff;--accent-soft:#e3eee8;--terracotta:#a3472a;--terracotta-soft:#f6e3d9;--beige:#f2eadc;--beige-border:#e4d8c4;--danger:#b42318;--danger-bg:#fdf0ee;--notice-bg:#fbf0d6;--focus:#1f5f4a;--radius:8px;--radius-card:14px;--shadow-card:0 1px 2px #3c2d190a, 0 2px 6px #3c2d190d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--page-bg);font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#ece6dd;--text-muted:#b3a99c;--page-bg:#151310;--card:#1e1b17;--surface:#27231e;--border:#3a342c;--border-strong:#7d7365;--divider:#2c2822;--accent:#8fcfb2;--accent-text:#10261d;--accent-soft:#1c3229;--terracotta:#eaa284;--terracotta-soft:#3a2419;--beige:#2b261f;--beige-border:#3d362c;--danger:#ff9b8f;--danger-bg:#2e1714;--notice-bg:#2d2614;--focus:#8fcfb2;--shadow-card:none}}*,:before,:after{box-sizing:border-box}body{background:var(--page-bg);margin:0}h1,h2,p{margin:0}h1{letter-spacing:-.01em;font-size:1.625rem;line-height:1.2}h2{font-size:1.125rem;line-height:1.3}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button,input{font:inherit;color:inherit}button{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);cursor:pointer;min-height:44px;padding:0 16px;font-weight:500}button:hover:not(:disabled){background:var(--surface)}button:disabled{cursor:not-allowed;opacity:.55}input{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card);min-height:44px;padding:0 12px}input[aria-invalid=true]{border-color:var(--danger)}.muted{color:var(--text-muted)}.app{max-width:1080px;margin:0 auto;padding:32px 16px 48px}.page{gap:24px;display:grid}.page__header{gap:6px;display:grid}.page__header .muted{font-size:.9375rem}.page__layout{align-items:start;gap:20px;display:grid}@media (width>=720px){.page__layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}@media (width<=480px){.app{padding-top:20px}}.panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--card);box-shadow:var(--shadow-card);gap:16px;padding:22px;display:grid}.panel__header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px;display:flex}.panel__header .muted{font-size:.875rem}.date-heading__weekday,.date-heading__date{display:block}.date-heading__weekday{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.8125rem;font-weight:600}.date-heading__date{letter-spacing:-.01em;font-size:1.625rem;font-weight:700;line-height:1.2}.date-selector{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.date-selector__nav{flex-wrap:wrap;gap:8px;display:flex}.field{gap:6px;display:grid}.field label{font-size:.9375rem;font-weight:600}.state{border-radius:var(--radius);background:var(--surface);color:var(--text-muted);padding:16px}.state--error{color:var(--danger);background:var(--danger-bg);justify-items:start;gap:10px;display:grid}.notice{border-radius:var(--radius);background:var(--notice-bg);padding:10px 14px;font-size:.9375rem}.announcement{border-radius:var(--radius);color:var(--accent);background:var(--accent-soft);padding:10px 14px;font-weight:600}.announcement:empty{display:none}.badge{border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.8125rem}.badge--in-progress{background:var(--terracotta-soft);color:var(--terracotta);border-color:#0000;font-weight:600}.badge--editing{background:var(--accent-soft);color:var(--accent);border-color:#0000;font-weight:600}.booking-list{border:1px solid var(--divider);border-radius:var(--radius);margin:0;padding:0;list-style:none;display:grid}.booking{flex-wrap:wrap;align-items:center;gap:6px 14px;min-height:64px;padding:10px 14px;display:flex}.booking+.booking{border-top:1px solid var(--divider)}.booking--editing{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.booking__time{font-variant-numeric:tabular-nums;min-width:6.5rem;font-size:1.0625rem;font-weight:700}.booking__title{overflow-wrap:anywhere;flex:1;min-width:8rem}.booking__title--empty{color:var(--text-muted);font-style:italic}.booking__actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.booking__actions button{color:var(--text-muted);padding:0 14px;font-size:.9375rem}.booking__actions button:hover:not(:disabled){color:var(--text)}.booking__confirm-text{font-size:.9375rem;font-weight:600}.timeline{--px-per-min:1.6px;--rail:56px;height:calc(var(--day-minutes) * var(--px-per-min));margin:10px 0;position:relative}.timeline__grid{position:absolute;inset:0}.timeline__hour{top:calc(var(--offset) * var(--px-per-min));left:var(--rail);border-top:1px solid var(--divider);position:absolute;right:0}.timeline__hour-label{top:0;left:calc(-1 * var(--rail));width:calc(var(--rail) - 12px);font-variant-numeric:tabular-nums;text-align:right;color:var(--text-muted);font-size:.8125rem;position:absolute;transform:translateY(-50%)}.timeline__track{top:0;bottom:0;left:calc(var(--rail) + 8px);margin:0;padding:0;list-style:none;position:absolute;right:0}.timeline__item{left:0;right:0;top:calc(var(--offset) * var(--px-per-min) + 2px);height:calc(var(--duration) * var(--px-per-min) - 4px);position:absolute}.timeline__block{border:1px solid var(--beige-border);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--beige);text-align:left;align-items:center;gap:4px 12px;width:100%;height:100%;min-height:0;padding:0 14px;font-weight:400;display:flex;overflow:hidden}.timeline__block--tall{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:8px 14px}.timeline__block--in-progress{border-left-color:var(--terracotta);background:var(--terracotta-soft)}.timeline__block--finished{border-color:var(--border);border-left-color:var(--border-strong);background:var(--surface);color:var(--text-muted)}.timeline__block--editing{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}button.timeline__block:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.timeline__block:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.timeline__time{font-variant-numeric:tabular-nums;flex:none;font-weight:700}.timeline__title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;max-width:100%;overflow:hidden}.timeline__block--tall .timeline__title{flex:none}.timeline__title--empty{color:var(--text-muted);font-style:italic}.button--primary,.button--primary:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--accent-text);font-weight:600}.booking__actions .button--danger,.button--danger{border-color:var(--danger);color:var(--danger);font-weight:600}.button--danger-quiet{color:var(--danger);background:0 0;border-color:#0000;padding:0 4px;font-weight:600}.booking-form h2+.muted{margin-top:2px;font-size:.9375rem}.booking-form__times{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;display:grid}.booking-form__actions{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.booking-form__actions .button--primary{flex:auto}.booking-form__delete{border-top:1px solid var(--divider);flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;display:flex}.booking-form__confirm-text{margin-right:auto;font-weight:600}.field input{width:100%}.field__error{color:var(--danger);font-size:.875rem}.form-error{border-radius:var(--radius);color:var(--danger);background:var(--danger-bg);gap:4px;padding:10px 14px;font-size:.9375rem;display:grid}
