:root{color:#1f2933;background:#f6f7f9;font-family:system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column}.site-header,.site-footer{padding:1rem max(1rem,calc((100% - 60rem)/2))}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border-bottom:1px solid #d8dee6}.brand{font-size:1.25rem;font-weight:700;text-decoration:none}nav{display:flex;flex-wrap:wrap;gap:1rem}nav a{text-decoration:none}nav a.active{text-decoration:underline;text-underline-offset:.25rem}.content{width:min(60rem,calc(100% - 2rem));margin:0 auto;flex:1;padding:4rem 0}.stack{display:flex;flex-direction:column;gap:1rem;max-width:42rem}.narrow{max-width:28rem}.eyebrow{margin:0;color:#52606d;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1{margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}p{margin:0;font-size:1.1rem}.actions{display:flex;flex-wrap:wrap;gap:.75rem}.button{display:inline-block;width:fit-content;border:0;border-radius:.4rem;padding:.7rem 1rem;color:#fff;background:#1f2933;font:inherit;text-decoration:none;cursor:pointer}.button.secondary{color:#1f2933;background:#e4e7eb}.button.danger{background:#c53030}.button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #2f80ed;outline-offset:2px}.link-button{border:0;padding:0;color:inherit;background:transparent;font:inherit;text-decoration:underline;cursor:pointer}.admin-nav{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.75rem max(1rem,calc((100% - 60rem)/2));background:#e4e7eb;border-bottom:1px solid #cbd2d9}.admin-nav-title{font-weight:700}.admin-form{padding:1rem;border:1px solid #d8dee6;border-radius:.4rem}.admin-form h2{margin:0}.user-list{display:grid;gap:.75rem;padding:0;list-style:none}.user-list li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;background:#fff;border:1px solid #d8dee6;border-radius:.4rem}.booking-list{display:grid;gap:.75rem;padding:0;list-style:none}.booking-list li{display:flex;flex-direction:column;gap:.2rem;padding:.9rem;background:#fff;border:1px solid #d8dee6;border-radius:.4rem}.booking-list li span{color:#52606d}.admin-booking-list li{align-items:flex-start}.booking-status{color:#52606d;font-size:.9rem;font-weight:700}.notice.error{border-left-color:#c53030;background:#fff5f5}select{border:1px solid #9aa5b1;border-radius:.35rem;padding:.7rem;font:inherit}label{display:flex;flex-direction:column;gap:.35rem;font-weight:600}input{border:1px solid #9aa5b1;border-radius:.35rem;padding:.7rem;font:inherit}textarea,select{border:1px solid #9aa5b1;border-radius:.35rem;padding:.7rem;font:inherit;background:#fff}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border:2px solid #c53030;background:#fff5f5}.field-warning{display:block;color:#9b2c2c;font-size:.9rem;font-weight:700}.field-help{color:#52606d;font-size:.95rem}.link-button{border:0;padding:0;color:inherit;background:transparent;font:inherit;cursor:pointer}.nav-menu{position:relative}.nav-menu summary{cursor:pointer}.nav-menu-items{position:absolute;z-index:2;top:1.8rem;right:0;min-width:12rem;display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#fff;border:1px solid #d8dee6;box-shadow:0 .5rem 1rem #1f293322}.nav-menu-items a{padding:.25rem;text-decoration:none}.nav-menu-items a:hover{background:#f0f4f8}.badge{display:inline-flex;min-width:1.35rem;height:1.35rem;align-items:center;justify-content:center;margin-left:.35rem;padding:0 .3rem;border-radius:999px;color:#fff;background:#c53030;font-size:.75rem;font-weight:700}.news-page,.news-detail{max-width:52rem}.news-list{display:grid;gap:1rem}.news-card{padding:1.25rem;background:#fff;border:1px solid #d8dee6;border-radius:.5rem}.news-card.unread{border-left:4px solid #2f80ed}.news-card h2{margin:.25rem 0 .75rem}.news-card h2 a{text-decoration:none}.read-article{margin-top:.5rem}.news-date{color:#52606d;font-size:.9rem}.unread-label{margin-left:.6rem;color:#2f80ed;font-weight:700}.markdown{display:grid;gap:.6rem}.markdown p,.markdown h1,.markdown h2,.markdown h3{margin:0}.markdown ul{margin:0;padding-left:1.5rem}.markdown code{padding:.1rem .25rem;background:#f0f4f8;border-radius:.2rem}.attachment-list{display:grid;gap:.5rem;margin:0;padding-left:1.5rem}.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0}.markdown-toolbar{display:flex;flex-wrap:wrap;gap:.4rem}.markdown-toolbar .button{padding:.45rem .65rem;font-size:.9rem}.booking-page{max-width:56rem}.booking-page h2{margin:1.25rem 0 .75rem;font-size:1.1rem}.day-picker{display:grid;grid-template-columns:repeat(7,minmax(6rem,1fr));gap:.5rem;overflow-x:auto}.day,.slot{border:1px solid #cbd2d9;border-radius:.5rem;padding:.7rem;color:#1f2933;background:#fff;font:inherit;cursor:pointer}.day{display:flex;flex-direction:column;gap:.15rem;text-align:left}.day span{color:#52606d;font-size:.85rem}.day.selected,.slot.selected{border-color:#1f2933;background:#e4e7eb;box-shadow:inset 0 0 0 1px #1f2933}.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(10rem,1fr));gap:.75rem}.slot:disabled{color:#7b8794;background:#f0f4f8;cursor:not-allowed;text-decoration:line-through}.booking-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}.checkbox{flex-direction:row;align-items:center}.checkbox input{width:auto}.weekday-grid{display:grid;grid-template-columns:repeat(2,minmax(8rem,1fr));gap:.5rem}.time-row{display:flex;gap:.75rem}.time-row>label{flex:1}fieldset{display:flex;flex-direction:column;gap:.75rem;border:1px solid #d8dee6;border-radius:.5rem;padding:1rem}legend{padding:0 .35rem;font-weight:700}@media(max-width:44rem){.day-picker{display:flex}.day{min-width:6.5rem}.slot-grid{grid-template-columns:1fr}.booking-summary{align-items:stretch;flex-direction:column}}.notice{border-left:4px solid #2f80ed;padding:.8rem 1rem;background:#eaf2ff}.site-footer{color:#52606d;font-size:.9rem}
