:root{--navy: #004d68;--steel: #44758e;--text: #033143;--muted: #4a6470;--surface: #f8fafc;--border: #e2e8f0}*{box-sizing:border-box}body{font-family:system-ui,sans-serif;font-size:1rem;color:var(--text);margin:0;background:var(--surface)}.site-header{background:var(--navy);padding:.75rem 1.5rem;display:flex;align-items:center;gap:2rem}.site-header .brand{color:#fff;font-weight:700;font-size:1.1rem;text-decoration:none}.site-header .site-nav{display:flex;gap:1.25rem}.site-header .site-nav a{color:#fffc;text-decoration:none;font-size:.9rem}.site-header .site-nav a:hover{color:#fff}.portal-main{max-width:48rem;margin:0 auto;padding:2.5rem 1.5rem}.portal-main h1{font-size:1.6rem;margin:0 0 .75rem}.portal-main p{line-height:1.6;margin:0 0 1rem}.portal-links{list-style:none;padding:0;margin:0 0 1.5rem}.portal-links li{margin-bottom:.5rem}.portal-links a{color:var(--navy);font-size:1rem;text-decoration:underline}.portal-links a:hover{color:var(--steel)}.placeholder{color:var(--muted);font-size:.9rem}.status{color:var(--muted);min-height:1.2rem}.login-form,.portal-form{display:grid;gap:.75rem;max-width:24rem}.login-form label,.portal-form label{display:grid;gap:.25rem}.login-form label span,.portal-form label span{font-size:.85rem;color:var(--muted)}.login-form input,.login-form select,.login-form textarea,.portal-form input,.portal-form select,.portal-form textarea{font:inherit;padding:.5rem .6rem;border:1px solid var(--border);border-radius:5px;background:#fff}button{font:inherit;background:var(--navy);color:#fff;border:none;border-radius:5px;padding:.45rem .9rem;cursor:pointer}button:hover{background:var(--steel)}button.link-button{background:none;color:var(--navy);padding:0;text-decoration:underline}.badge{display:inline-block;background:var(--border);border-radius:4px;padding:0 .4rem;font-size:.8rem}.muted{color:var(--muted);font-size:.9rem}a.button{display:inline-block;background:var(--navy);color:#fff;border-radius:5px;padding:.45rem .9rem;text-decoration:none}a.button:hover{background:var(--steel)}button.button-secondary{background:none;color:var(--navy);border:1px solid var(--border)}.project-list{list-style:none;padding:0;margin:0}.project-list .project{display:flex;gap:.6rem;align-items:baseline;padding:.6rem 0;border-top:1px solid var(--border)}.project-list .project.project-hidden{opacity:.55}.draft-box,.announce-box,form.project{display:grid;gap:.75rem;max-width:40rem;margin:1.5rem 0;padding:1rem;border:1px solid var(--border);border-radius:8px}.draft-box h2,.announce-box h2,form.project h2{margin:0;font-size:1.1rem}.draft-box label,.announce-box label,form.project label{display:grid;gap:.25rem}.draft-box label span,.announce-box label span,form.project label span{font-size:.85rem;color:var(--muted)}.draft-box label.inline,.announce-box label.inline,form.project label.inline{grid-template-columns:auto 1fr;align-items:center}.draft-box input,.draft-box select,.draft-box textarea,.announce-box input,.announce-box select,.announce-box textarea,form.project input,form.project select,form.project textarea{font:inherit;padding:.5rem .6rem;border:1px solid var(--border);border-radius:5px;background:#fff}.draft-box input[type=checkbox],.announce-box input[type=checkbox],form.project input[type=checkbox]{width:auto}.draft-box p,.announce-box p,form.project p{margin:0}.photo-rows{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.photo-rows .photo-row{display:grid;grid-template-columns:5rem 1fr 2fr auto;gap:.5rem;align-items:end}.photo-rows .photo-row img{width:5rem;height:5rem;object-fit:cover;border-radius:5px}.photo-rows .photo-row button{background:none;color:var(--muted);font-size:1.2rem;padding:.2rem .5rem}.photo-rows .photo-row button:hover{color:var(--navy)}@media(max-width:600px){.photo-rows .photo-row{grid-template-columns:5rem 1fr auto}.photo-rows .photo-row label:last-of-type{grid-column:1/-1}}.channel{margin:1.25rem 0;padding:1rem;border:1px solid var(--border);border-radius:8px}.channel h2{margin:0 0 .5rem;font-size:1.1rem}.channel p{margin:.4rem 0}.channel-form{display:grid;gap:.6rem;max-width:24rem}.channel-form label{display:grid;gap:.25rem}.channel-form label span{font-size:.85rem;color:var(--muted)}.channel-form input{font:inherit;padding:.5rem .6rem;border:1px solid var(--border);border-radius:5px;background:#fff}.post-list{list-style:none;padding:0;margin:0}.post-list .post{display:grid;grid-template-columns:8rem 1fr auto;gap:.75rem;align-items:start;padding:.6rem 0;border-top:1px solid var(--border)}.post-list .post.post-posted{opacity:.7}.post-list .post .post-when{font-weight:600}.post-list .post .post-body{display:flex;gap:.6rem}.post-list .post .post-body img{width:4rem;height:4rem;object-fit:cover;border-radius:5px}.post-list .post .post-body p{margin:0;white-space:pre-line}.post-list .post .post-state{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}@media(max-width:600px){.post-list .post{grid-template-columns:1fr}}.module-cards{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}.module-cards a{display:grid;gap:.25rem;padding:1rem;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--text);text-decoration:none}.module-cards a span{color:var(--muted);font-size:.9rem}.module-cards a:hover{border-color:var(--steel)}.booking-day{margin:1.5rem 0}.booking-day h2{font-size:1.05rem;text-transform:capitalize;margin:0 0 .5rem}.booking-list{list-style:none;padding:0;margin:0}.booking-list .booking{display:grid;grid-template-columns:5rem 1fr auto;gap:.75rem;align-items:start;padding:.6rem 0;border-top:1px solid var(--border)}.booking-list .booking.booking-cancelled{opacity:.55}.booking-list .booking .booking-time{font-weight:600}.booking-list .booking .booking-status{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.inquiry-list{list-style:none;padding:0;margin:0}.inquiry-list .inquiry{display:grid;grid-template-columns:7rem 1fr auto;gap:.75rem;align-items:start;padding:.6rem 0;border-top:1px solid var(--border)}.inquiry-list .inquiry.inquiry-done{opacity:.55}.inquiry-list .inquiry .inquiry-when{font-weight:600}.inquiry-list .inquiry .inquiry-about{display:block;color:var(--muted);font-size:.9rem}.inquiry-list .inquiry .inquiry-body p{margin:.35rem 0 0;white-space:pre-line}.inquiry-list .inquiry .inquiry-status{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.inquiry-done summary{cursor:pointer;margin:1.5rem 0 .5rem;font-weight:600}@media(max-width:600px){.booking-list .booking,.inquiry-list .inquiry{grid-template-columns:1fr}}.site-footer{border-top:1px solid var(--border);padding:1.25rem 1.5rem;color:var(--muted);font-size:.85rem;margin-top:3rem}
