:root { color-scheme: light; --page:#f5f6f4; --surface:#fff; --ink:#17231d; --muted:#65736b; --line:#d9dfd9; --brand:#5f9f2f; --free:#dff2d2; --free-ink:#315f16; --occupied:#f3e2df; --occupied-ink:#8b3027; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; background:var(--page); color:var(--ink); }
.widget-shell { width:min(100%,1180px); min-height:300px; margin:auto; padding:18px; }
header { display:grid; grid-template-columns:minmax(180px,1fr) minmax(180px,260px) auto; align-items:end; gap:16px; margin-bottom:14px; }
.eyebrow { margin:0; color:var(--brand); font-size:10px; font-weight:900; letter-spacing:.06em; }
h1 { margin:3px 0; font-size:clamp(22px,4vw,32px); }
header p { margin:0; color:var(--muted); font-size:13px; }
.week-controls { display:flex; gap:6px; }
button, select { min-height:38px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); font:inherit; font-weight:700; }
button { min-width:38px; padding:0 11px; cursor:pointer; }
button:hover { border-color:var(--brand); }
.legend { display:flex; gap:14px; margin:8px 0; color:var(--muted); font-size:12px; }
.legend span::before { content:""; display:inline-block; width:9px; height:9px; margin-right:5px; border-radius:50%; }
.legend .free::before { background:var(--free-ink); }
.legend .occupied::before { background:var(--occupied-ink); }
.preview { display:inline-flex; margin:4px 0 10px; padding:5px 8px; border-radius:5px; background:#fff5d6; color:#694d00; font-size:11px; font-weight:800; }
.status { color:var(--muted); font-size:13px; }
.error { padding:12px; border:1px solid #d8a39c; border-radius:7px; background:#fff1ef; color:#792a22; font-size:13px; }
.court-picker { display:grid; gap:4px; color:var(--muted); font-size:11px; font-weight:700; }
select { width:100%; padding:0 10px; }
.scroll { overflow:auto; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.week-grid { display:grid; grid-template-columns:repeat(7,minmax(115px,1fr)); min-width:805px; }
.day { border-right:1px solid var(--line); }
.day:last-child { border-right:0; }
.day h2 { margin:0; padding:9px 6px; border-bottom:1px solid var(--line); background:#fafbfa; font-size:12px; text-align:center; }
.slots { display:grid; gap:5px; padding:6px; }
.slot { display:grid; gap:2px; min-height:49px; padding:7px; border-radius:6px; font-size:11px; }
.slot strong { font-size:12px; }
.slot.free { border:1px solid #a9d58b; background:var(--free); color:var(--free-ink); }
.slot.occupied { background:var(--occupied); color:var(--occupied-ink); }
.empty { padding:18px 5px; color:var(--muted); font-size:11px; text-align:center; }
footer { margin-top:9px; color:var(--muted); font-size:10px; text-align:right; }
[hidden] { display:none!important; }
@media(max-width:760px) { header{grid-template-columns:1fr 1fr}.week-controls{justify-content:flex-end} }
@media(max-width:560px) { .widget-shell{padding:12px} header{grid-template-columns:1fr;align-items:stretch}.week-controls{justify-content:space-between}.week-controls button{flex:1} }
