:root { --ink:#152225; --muted:#647477; --line:#dce5e4; --paper:#f5f8f7; --white:#fff; --brand:#176b63; --brand-dark:#0e4a45; --accent:#d7eee9; --danger:#a24135; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; display:flex; flex-direction:column; background:radial-gradient(circle at 80% 0,#e4f1ee 0,transparent 28rem),var(--paper); }
a { color:inherit; }
.site-header { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:0 clamp(1.25rem,5vw,5rem); background:rgba(255,255,255,.88); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:.75rem; font-weight:750; text-decoration:none; letter-spacing:-.02em; }
.brand-mark { width:2.25rem; height:2.25rem; display:grid; place-items:center; border-radius:.65rem; background:var(--brand); color:white; font-size:.75rem; letter-spacing:.08em; }
nav { display:flex; gap:.4rem; }
nav a { padding:.6rem .8rem; border-radius:.55rem; text-decoration:none; color:#465658; font-size:.92rem; }
nav a:hover,nav a:focus-visible { background:var(--accent); color:var(--brand-dark); }
.logout-form{margin:0}.logout-form button{padding:.6rem .8rem;border:0;border-radius:.55rem;background:transparent;color:#465658;font:inherit;font-size:.92rem;cursor:pointer}.logout-form button:hover,.logout-form button:focus-visible{background:#fff0ed;color:var(--danger)}
.auth-shell{width:min(480px,100%);margin:5vh auto}.auth-form{padding:1.5rem;border:1px solid var(--line);border-radius:1rem;background:white}.auth-form .form-actions{margin-top:.5rem}
.page-shell { width:min(1160px,calc(100% - 2.5rem)); margin:0 auto; padding:clamp(3rem,7vw,6.5rem) 0; flex:1; }
.hero { display:flex; align-items:flex-end; justify-content:space-between; gap:3rem; margin-bottom:3rem; }
.hero>div { max-width:760px; }
.eyebrow,.card-label { margin:0 0 .8rem; color:var(--brand); font-weight:750; font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; }
h1 { max-width:780px; margin:0; font-size:clamp(2.6rem,6vw,5.4rem); line-height:.98; letter-spacing:-.055em; }
.page-heading h1 { font-size:clamp(2.5rem,5vw,4rem); }
.lead { max-width:680px; margin:1.4rem 0 0; color:var(--muted); font-size:clamp(1rem,2vw,1.2rem); line-height:1.65; }
.status-pill { display:flex; align-items:center; gap:.55rem; padding:.7rem 1rem; border:1px solid #b8d8d2; border-radius:99px; background:#eef8f5; color:var(--brand-dark); font-size:.85rem; white-space:nowrap; }
.status-dot { width:.55rem; height:.55rem; display:inline-block; border-radius:50%; background:#2b9b71; box-shadow:0 0 0 4px rgba(43,155,113,.13); }
.grid { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:1rem; }
.card { min-height:245px; padding:1.7rem; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:1.15rem; background:rgba(255,255,255,.86); box-shadow:0 16px 50px rgba(31,55,52,.04); }
.card-accent { background:var(--brand-dark); color:white; border-color:transparent; }
.card-accent .card-label { color:#9ed7cc; }
.card h2 { margin:.1rem 0 .8rem; font-size:1.45rem; letter-spacing:-.025em; }
.card p:not(.card-label) { margin:0; color:var(--muted); line-height:1.6; }
.card-accent p:not(.card-label) { color:#c4dad6; }
.text-link { margin-top:auto; padding-top:1rem; color:var(--brand); font-weight:700; text-decoration:none; }
.page-heading { margin-bottom:2.5rem; }
.health-panel { overflow:hidden; border:1px solid var(--line); border-radius:1.15rem; background:white; }
.health-summary { display:flex; align-items:center; gap:1rem; padding:1.5rem 1.7rem; background:#eff8f5; }
.health-summary.degraded { background:#fff3ef; }.health-summary.degraded .status-dot { background:var(--danger); box-shadow:0 0 0 4px rgba(162,65,53,.12); }
.health-summary div { display:flex; flex-direction:column; gap:.25rem; }.health-summary span:last-child { color:var(--muted); }
.health-list { margin:0; }.health-list div { display:flex; justify-content:space-between; padding:1.25rem 1.7rem; border-top:1px solid var(--line); }
.health-list dt { color:var(--muted); }.health-list dd { margin:0; font-weight:700; }
.empty-state { max-width:640px; padding:3rem; border:1px solid var(--line); border-radius:1.15rem; background:white; }
.empty-state h1 { font-size:clamp(2.4rem,5vw,4rem); }.empty-state p:not(.eyebrow) { color:var(--muted); line-height:1.6; }
.button { display:inline-block; margin-top:1rem; padding:.8rem 1rem; border-radius:.6rem; background:var(--brand); color:white; text-decoration:none; font-weight:700; }
.heading-row { display:flex; align-items:end; justify-content:space-between; gap:2rem; }.heading-row .button { margin:0; }
.booking-list { overflow:hidden; border:1px solid var(--line); border-radius:1rem; background:var(--white); }.booking-row { display:grid; grid-template-columns:100px 1fr auto auto; align-items:center; gap:1rem; padding:1.2rem 1.4rem; text-decoration:none; border-top:1px solid var(--line); }.booking-row:first-child { border:0; }.booking-row:hover { background:#f0f7f5; }.booking-row time,.booking-main { display:flex; flex-direction:column; gap:.25rem; }.booking-row span span,.booking-row time span { color:var(--muted); font-size:.88rem; }.tag { padding:.4rem .65rem; border-radius:99px; background:#edf1f0; font-size:.8rem; }.tag-av { background:var(--accent); color:var(--brand-dark); }
.booking-form { display:grid; gap:1rem; }.booking-form fieldset,.detail-card { margin:0; padding:1.5rem; border:1px solid var(--line); border-radius:1rem; background:white; }.booking-form legend { padding:0 .4rem; font-weight:750; }.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.booking-form label { display:flex; flex-direction:column; gap:.45rem; color:#465658; font-size:.9rem; }.booking-form input,.booking-form select,.booking-form textarea { width:100%; padding:.75rem .8rem; border:1px solid #bdcac8; border-radius:.55rem; background:white; color:var(--ink); font:inherit; }.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { outline:3px solid rgba(23,107,99,.16); border-color:var(--brand); }.has-error input { border-color:var(--danger); }.has-error small { color:var(--danger); }.error-summary { display:flex; flex-direction:column; gap:.2rem; margin-bottom:1rem; padding:1rem 1.2rem; border-left:4px solid var(--danger); background:#fff3ef; }.form-actions { display:flex; justify-content:flex-end; align-items:center; gap:1rem; }.form-actions .button { margin:0; border:0; cursor:pointer; }
.button-secondary { background:white; color:var(--brand); border:1px solid var(--brand); }.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.detail-card h2 { margin:0 0 1rem; }.detail-card dl { margin:0; }.detail-card dl div { display:flex; justify-content:space-between; gap:1rem; padding:.65rem 0; border-top:1px solid var(--line); }.detail-card dl div:first-child { border:0; }.detail-card dt { color:var(--muted); }.detail-card dd { margin:0; text-align:right; font-weight:650; }.pre-line { white-space:pre-line; color:var(--muted); }.archive-form { margin-top:1.5rem; text-align:right; }.archive-form button { border:0; background:transparent; color:var(--danger); text-decoration:underline; cursor:pointer; }
.success-summary { display:flex; flex-direction:column; gap:.2rem; margin-bottom:1rem; padding:1rem 1.2rem; border-left:4px solid var(--brand); background:#eef8f5; }.candidate-heading { display:flex; justify-content:space-between; gap:1rem; align-items:start; }.candidate-heading>div { display:flex; align-items:center; gap:.8rem; }.candidate-heading h2 { margin:0; }.review-state { padding:.35rem .6rem; border-radius:99px; font-size:.78rem; background:#fff8ea; color:#80510f; }.review-state-approved { background:#e5f5ed; color:#176b4d; }.review-state-rejected { background:#fff0ed; color:var(--danger); }.duplicate-box { margin-top:1rem; padding:1rem 1.2rem; border-left:4px solid var(--brand); background:#eef8f5; }.duplicate-box p { margin:.4rem 0; color:var(--muted); }.duplicate-box ul { margin:.5rem 0 0; }.import-review-form { margin-top:1rem; }.reject-form { display:flex; justify-content:flex-end; align-items:end; gap:.75rem; margin-top:1rem; }.reject-form label { display:flex; flex-direction:column; gap:.35rem; color:var(--muted); font-size:.85rem; }.reject-form input { padding:.55rem; border:1px solid #bdcac8; border-radius:.5rem; }.reject-form button { padding:.55rem .7rem; border:0; background:transparent; color:var(--danger); text-decoration:underline; cursor:pointer; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }.section-heading h2 { margin:0; font-size:1.8rem; }.section-heading .button { margin:0; }.planning-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.planning-card { padding:1.3rem; border:1px solid var(--line); border-top-width:4px; border-radius:1rem; background:white; }.planning-card h3 { margin:0 0 .3rem; }.planning-card>p { margin:.2rem 0 1rem; color:var(--muted); font-size:.88rem; }.planning-card dl { margin:0; }.planning-card dl div { padding:.7rem 0; border-top:1px solid var(--line); }.planning-card dt { color:var(--muted); font-size:.82rem; }.planning-card dd { margin:.2rem 0 0; font-weight:700; white-space:pre-line; }.planning-assumption { border-top-color:#bd7b25; }.planning-unresolved { border-top-color:var(--danger); }.planning-confirmed { border-top-color:var(--brand); }.form-help { color:var(--muted); line-height:1.5; }.planning-editor { display:grid; gap:.8rem; }.planning-row { display:grid; grid-template-columns:1fr 1.25fr 2fr; gap:.8rem; padding-top:.8rem; border-top:1px solid var(--line); }
.site-footer { display:flex; justify-content:space-between; padding:1.5rem clamp(1.25rem,5vw,5rem); color:var(--muted); border-top:1px solid var(--line); font-size:.8rem; }
.upload-card { display:flex; align-items:end; gap:1rem; padding:1.5rem; border:1px solid var(--line); border-radius:1rem; background:white; }.upload-card label { display:flex; flex-direction:column; gap:.3rem; }.upload-card label span,.muted,.empty-inline { color:var(--muted); }.upload-card input { flex:1; padding:.75rem; border:1px solid #bdcac8; border-radius:.55rem; }.upload-card .button { margin:0; border:0; cursor:pointer; }.section-block { margin-top:2.5rem; }.import-row { grid-template-columns:100px 1fr auto; }.import-candidate { margin-top:1rem; }.review-box { margin-top:1.25rem; padding:1rem 1.2rem; border-left:4px solid #bd7b25; background:#fff8ea; }.review-box ul { margin:.6rem 0 0; padding-left:1.2rem; }.import-candidate details { margin-top:1rem; }.import-candidate summary { cursor:pointer; color:var(--brand); font-weight:700; }.import-candidate pre { overflow:auto; padding:1rem; background:#f4f7f6; white-space:pre-wrap; }
.bulk-import-form { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:1.25rem 0; padding:1rem 1.2rem; border:1px solid var(--line); border-radius:.8rem; background:#fff; }.bulk-import-form div { display:flex; flex-direction:column; gap:.25rem; }.bulk-import-form span { color:var(--muted); }.bulk-import-form .button { border:0; white-space:nowrap; }.bulk-summary { margin:1.25rem 0; padding:1rem 1.2rem; border-left:4px solid var(--brand); background:#eef8f5; }.bulk-summary h2 { margin-top:0; }.bulk-summary section { margin:.65rem 0; }.bulk-summary ul { margin:.35rem 0 0; }
@media (max-width:800px) { .hero { align-items:flex-start; flex-direction:column; gap:1.5rem; }.grid { grid-template-columns:1fr; }.card { min-height:210px; } }
@media (max-width:700px) { .heading-row,.section-heading { align-items:flex-start; flex-direction:column; }.booking-row { grid-template-columns:80px 1fr; }.booking-row .tag { display:none; }.form-grid,.detail-grid,.planning-grid,.planning-row { grid-template-columns:1fr; } }
@media (max-width:700px) { .upload-card { align-items:stretch; flex-direction:column; }.import-row { grid-template-columns:80px 1fr; } }
@media (max-width:540px) { .site-header { align-items:flex-start; flex-direction:column; gap:.8rem; padding-top:1rem; padding-bottom:1rem; } nav { width:100%; flex-wrap:wrap; } nav a { padding-left:0; margin-right:.8rem; }.page-shell { width:min(100% - 1.5rem,1160px); }.site-footer { gap:.5rem; flex-direction:column; } }
.task-list{margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:1rem;background:white}.task-list li{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-top:1px solid var(--line)}.task-list li:first-child{border:0}.task-list li span:last-child{color:var(--muted);font-size:.88rem}.task-list .task-overdue{border-left:4px solid var(--danger);background:#fff6f3}.task-list .task-completed{text-decoration:line-through;opacity:.65}.task-summary{color:var(--muted)}.task-summary strong{color:var(--danger)}.template-apply{display:flex;align-items:end;gap:.75rem;margin-top:1rem}.template-apply label{display:flex;flex-direction:column;gap:.35rem}.template-apply select{padding:.7rem;border:1px solid #bdcac8;border-radius:.55rem;background:white}.template-apply .button{margin:0}.task-editor{display:grid;gap:.7rem}.task-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.7rem;padding-top:.7rem;border-top:1px solid var(--line)}.template-card{padding:1rem 0;border-top:1px solid var(--line)}.template-card h3{margin:0}.template-card p{color:var(--muted)}
@media(max-width:700px){.task-row{grid-template-columns:1fr}.template-apply{align-items:stretch;flex-direction:column}}
.resource-list{overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:white}.resource-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-top:1px solid var(--line);text-decoration:none}.resource-row:first-child{border:0}.resource-row:hover{background:#f0f7f5}.resource-row>span{display:flex;flex-direction:column;gap:.25rem}.resource-row small,.resource-row>span:last-child{color:var(--muted)}.resource-booking-row{grid-template-columns:100px 1fr}.resource-picker{display:grid;gap:.75rem}.resource-option{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;align-items:center;gap:1rem;padding:.85rem;border:1px solid var(--line);border-radius:.65rem}.resource-option label{display:flex;align-items:center;flex-direction:row}.resource-option label input{width:auto}.resource-option label span{display:flex;flex-direction:column}.resource-option small{color:var(--muted)}
.mapping-list{display:grid;gap:.75rem}.mapping-row{display:grid;grid-template-columns:minmax(180px,1.3fr) 1fr 1.4fr auto;gap:1rem;align-items:end;padding:1rem;border:1px solid var(--line);border-radius:.8rem;background:#fff}.mapping-row>div{display:flex;flex-direction:column}.mapping-row small{color:var(--muted)}.mapping-unmapped{border-left:5px solid #c77916;background:#fffaf1}.source-products{margin:1rem 0;padding:1rem;border-radius:.75rem;background:#f5f8f7}.source-products ul{list-style:none;padding:0;margin:.5rem 0}.source-products li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-top:1px solid var(--line)}
@media(max-width:700px){.resource-row,.resource-option,.mapping-row{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.resource-row>span:last-child{font-size:.9rem}}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:3rem}.metric{display:flex;flex-direction:column;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:white;text-decoration:none}.metric:hover{border-color:var(--brand)}.metric strong{font-size:2.2rem;color:var(--brand)}.metric span{color:var(--muted)}.metric-alert strong{color:var(--danger)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:2rem}.dashboard-booking{grid-template-columns:75px 1fr auto}.tag-danger{background:#fff0ed;color:var(--danger)}.empty-state.compact{padding:1.25rem}.action-list{margin:0;padding:0;list-style:none;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:white}.action-list li{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;padding:1rem 1.2rem;border-top:1px solid var(--line)}.action-list li:first-child{border:0}.action-list li.task-overdue{border-left:4px solid var(--danger);background:#fff6f3}.action-list a{display:flex;flex-direction:column;gap:.2rem;text-decoration:none}.action-list a span,.action-list time{color:var(--muted);font-size:.82rem}.action-list-wide li{grid-template-columns:1fr auto 130px}.calendar-nav{display:flex;justify-content:space-between;margin-bottom:1rem}.calendar-nav a{color:var(--brand);font-weight:700;text-decoration:none}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:.6rem;text-align:center;color:var(--muted);font-size:.8rem;font-weight:700}.calendar-grid{overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--line);gap:1px}.calendar-day{min-height:145px;padding:.6rem;background:white}.calendar-day.outside-month{background:#f1f4f3;color:#899593}.calendar-day h2{margin:0 0 .5rem;font-size:.85rem}.calendar-event{display:flex;flex-direction:column;margin:.35rem 0;padding:.45rem;border-left:3px solid #bd7b25;border-radius:.35rem;background:#f6f8f7;text-decoration:none;font-size:.75rem}.calendar-event.status-ready,.calendar-event.status-completed{border-left-color:var(--brand)}.calendar-event time,.calendar-event span{color:var(--muted);font-size:.7rem}
@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.calendar-grid{display:block}.calendar-weekdays{display:none}.calendar-day{min-height:auto}.calendar-day.no-events,.outside-month{display:none}.calendar-event{font-size:.9rem}.calendar-event time,.calendar-event span{font-size:.8rem}}
@media(max-width:540px){.metric-grid{grid-template-columns:1fr 1fr}.action-list-wide li{grid-template-columns:1fr}.calendar-nav{gap:1rem;font-size:.85rem}}
