@font-face { font-family:'Disturbance'; src:url('assets/Disturbance-Bold.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap; }
:root { --blue:#407386; --cream:#eee8dc; --sand:#ddd4c3; --red:#bd2026; --ink:#171717; }
html { zoom:90%; }
* { box-sizing:border-box; } body { margin:0; color:var(--ink); font-family:Arial, Helvetica, sans-serif; background:#f5f1e8; }
.topbar { height:68px; background:var(--red); color:white; display:flex; align-items:center; justify-content:space-between; padding:0 4vw; }
.brand { color:white; text-decoration:none; font:700 52px 'Disturbance',Georgia,serif; line-height:.6; letter-spacing:1px; }.brand span { display:block; font:400 12px 'Unica One',Arial,sans-serif; letter-spacing:2px; text-align:center; margin-top:9px; }
.topbar-actions { display:flex; align-items:center; gap:20px; }.today { font-size:14px; }.admin-button, menu button { border:0; border-radius:4px; padding:11px 15px; cursor:pointer; font-weight:700; }.admin-button { color:var(--red); background:white; }
.page { padding:22px 1vw 0; max-width:none; margin:auto; }.headline { display:flex; justify-content:space-between; align-items:baseline; }.headline p { margin:0; font-size:15px; font-weight:700; }.headline h1 { color:var(--blue); font-size:20px; margin:0 0 10px; letter-spacing:.4px; }
.week-range { min-height:22px; margin:0 0 7px; color:var(--blue); font-size:13px; font-weight:800; letter-spacing:1.2px; text-align:center; white-space:nowrap; }.schedule { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); width:100%; overflow:visible; align-items:start; border-top:46px solid var(--blue); position:relative; }.day { min-width:0; position:relative; z-index:1; border-right:1px solid #777; background:transparent; }.day:first-child { border-left:1px solid #777; }.day h2 { color:#fff; letter-spacing:clamp(1px,.25vw,4px); font-size:clamp(12px,1.3vw,18px); margin:-35px 0 14px; padding-left:clamp(6px,.8vw,12px); height:21px; position:relative; z-index:1; white-space:nowrap; }
.course { min-width:0; height:86px; padding:10px 8px; border-bottom:8px solid var(--cream); position:relative; overflow:hidden; background:#fff; }.course.row-odd { background:var(--sand); }.course h3 { font-size:clamp(11px,.8vw,14px); margin:0 0 4px; line-height:1.05; white-space:nowrap; overflow:hidden; }.course p { margin:0; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:clip; }.course em { font-family:Georgia,serif; font-size:16px; }.room { position:absolute; right:7px; bottom:10px; width:22px; height:22px; background:var(--blue); color:white; border-radius:50%; font-size:14px; text-align:center; padding-top:3px; font-weight:bold; }
.course.substitution { background:#fff2cc; border-left:5px solid var(--red); padding-left:33px; }.substitution h3 { margin-right:0; }.substitution .sub-note { position:absolute; top:9px; left:8px; width:18px; height:18px; border-radius:50%; background:var(--red); color:white; font-size:15px; font-weight:800; text-align:center; line-height:17px; }
.substitute-name { color:var(--red); font-weight:800; }
.below-schedule { display:grid; grid-template-columns:1fr 300px; gap:25px; align-items:end; min-height:180px; margin-top:0; }.photos { display:none; }.daily-insight { align-self:center; max-width:620px; margin:28px 0 20px; padding:22px 28px; border-left:7px solid var(--red); background:linear-gradient(110deg,#fff 0%,#f1ece0 100%); box-shadow:0 4px 16px #00000012; }.insight-label { margin:0; color:var(--red); font-size:12px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; }.daily-insight h2 { margin:7px 0 8px; color:var(--blue); font-size:17px; }.daily-insight > p:last-child { margin:0; font:italic 22px Georgia,serif; line-height:1.3; }
.info { padding:30px 0 16px; color:var(--blue); }.legend b { background:var(--blue); color:white; display:inline-block; border-radius:50%; width:23px; height:23px; text-align:center; padding-top:3px; margin-right:8px; }.legend p { margin:7px 0; font-style:italic; }.opening { margin-top:25px; padding:10px; border-left:4px solid var(--sand); background:#f1ede3; }.opening h2 { text-transform:uppercase; letter-spacing:1px; font-size:14px; margin:0 0 8px; }.opening p { line-height:1.55; font-size:13px; }.opening strong { float:right; }.contact { color:var(--red); font-size:12px; font-weight:bold; margin-top:17px; }
dialog { border:0; border-radius:10px; max-width:520px; width:calc(100% - 32px); padding:0; box-shadow:0 20px 70px #0008; } dialog::backdrop { background:#0008; }.admin-panel { padding:26px; }.admin-head { display:flex; justify-content:space-between; align-items:flex-start; }.admin-head h2 { margin:2px 0 0; }.eyebrow { color:var(--red); margin:0; font-size:12px; font-weight:bold; text-transform:uppercase; }.close { border:0; background:none; font-size:29px; cursor:pointer; }.help { color:#555; font-size:14px; line-height:1.4; } label { display:block; font-weight:bold; font-size:14px; margin:15px 0; } input, select { width:100%; padding:10px; border:1px solid #aaa; border-radius:4px; margin-top:5px; font:inherit; }.date-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; } menu { padding:10px 0 0; margin:0; display:flex; justify-content:flex-end; gap:10px; }.secondary { background:#ddd; }.active-substitutions { border-top:1px solid #ddd; margin-top:20px; padding-top:14px; font-size:13px; }.active-substitutions div { display:flex; justify-content:space-between; padding:8px 0; }.remove { color:var(--red); background:none; border:0; cursor:pointer; font-weight:bold; }
.cancel-course { display:flex; align-items:center; gap:9px; padding:11px; border-radius:4px; background:#fff2cc; color:var(--red); }.cancel-course input { width:auto; margin:0; }
.course.cancelled { background:#f4dfdf; border-left:5px solid var(--red); }.course.cancelled h3 { color:#8d191d; text-decoration:line-through; }.cancelled .cancel-note { display:block; color:var(--red); font-size:11px; font-weight:800; text-transform:uppercase; margin-top:4px; }
@media (max-width:850px) { .topbar { height:auto; padding:13px 18px; }.brand { font-size:40px; }.today { display:none; }.below-schedule { grid-template-columns:1fr; }.info { padding-top:0; }.photos { height:280px; }.schedule { border-top-width:42px; }.day h2 { font-size:15px; } }
