:root{color-scheme:light;--ink:#172d28;--forest:#123b32;--pine:#1b5447;--paper:#f5f7f2;--line:#dce5dd;--muted:#4e655c;--gold:#e9bd74}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,sans-serif}
a{color:var(--pine);text-underline-offset:3px}
.wrap{width:min(1120px,calc(100% - 40px));margin:auto}
.top{background:#fff;border-bottom:1px solid var(--line)}
.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1.08rem;font-weight:750;color:var(--forest)}
.brand small{letter-spacing:.17em;font-size:.62rem}
.mark{display:grid;place-items:center;width:43px;height:43px;background:var(--forest);color:var(--gold);font:700 1.2rem Georgia,serif;border-radius:14px 14px 6px 6px}
nav{display:flex;align-items:center;gap:18px}
nav a{text-decoration:none;font-weight:650}
nav form{margin:0}
main{min-height:65vh;padding-block:28px}
.hero,.welcome{background:var(--forest);color:#fff;border-radius:20px;padding:34px;position:relative;overflow:hidden}
.hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}
.hero p,.welcome p{margin:5px 0 0;color:#d2e1d9}
.hero .button{background:var(--gold);color:#292312;white-space:nowrap}
.eyebrow{font-size:.7rem;font-weight:750;letter-spacing:.15em;color:var(--pine);margin-bottom:8px}
.hero .eyebrow,.welcome .eyebrow{color:var(--gold)}
h1,h2,p{margin-top:0}
h1{font:700 clamp(2rem,5vw,3.35rem)/1.08 Georgia,serif;margin-bottom:.3em;overflow-wrap:anywhere}
h2{font-size:1.2rem;margin-bottom:12px}
.entry{display:grid;grid-template-columns:1.13fr 1fr;gap:22px;align-items:stretch;margin:26px auto;max-width:870px}
.welcome{min-height:340px}
.welcome p{max-width:24ch;position:relative;z-index:1}
.ridgeline{position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(120deg,#266553,#204b3e);clip-path:polygon(0 83%,18% 49%,27% 65%,52% 8%,69% 52%,80% 33%,100% 69%,100% 100%,0 100%)}
.panel,.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:23px;min-width:0}
.columns{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:start}
.form-panel{max-width:780px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.stat span{color:var(--muted);font-size:.84rem;font-weight:650}
.stat strong{display:block;font-size:1.9rem;color:var(--forest);line-height:1.15;margin-top:6px}
.stack{display:grid;gap:14px}
.stack button{justify-self:start}
label{display:grid;gap:5px;font-size:.87rem;font-weight:650;min-width:0}
input,select,textarea,button{font:inherit}
input,select,textarea{border:1px solid #b9cbc1;border-radius:8px;background:#fff;color:var(--ink);padding:9px 11px;width:100%}
textarea{resize:vertical}
button,.button{display:inline-block;border:1px solid transparent;border-radius:8px;padding:9px 14px;background:var(--pine);color:white;text-decoration:none;font-weight:700;font-size:.87rem;cursor:pointer}
button:hover,.button:hover{filter:brightness(1.14)}
.quiet{background:#eaf1eb;color:var(--forest);border-color:var(--line);white-space:nowrap}
:focus-visible{outline:3px solid #ac6a22;outline-offset:3px}
.filters,.fields{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:14px}
.filters label,.fields label{flex:1 1 145px}
.filters a{padding:8px 0}
.muted,small{color:var(--muted)}
small{display:block}
.stack+p{margin-top:18px;margin-bottom:0}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;text-align:left}
td,th{padding:12px 9px;border-bottom:1px solid var(--line)}
td:first-child{min-width:185px;overflow-wrap:anywhere}
td a{font-weight:720}
th{font-size:.77rem;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
.badge{display:inline-block;border-radius:999px;background:#edf1ee;color:#2d4b3e;padding:4px 9px;white-space:nowrap;font-size:.76rem;font-weight:700}
.doing{background:#e8efff;color:#244778}
.review{background:#f4eaff;color:#55367a}
.done{background:#dff3e6;color:#1a5837}
.blocked,.late,.overdue{color:#842d24}
.blocked,.late{background:#fce9e5}
.empty{padding:27px 18px;background:var(--paper);border:1px dashed #b8cabd;border-radius:10px;text-align:center}
.empty p{margin:4px 0 0;color:var(--muted)}
.notice{padding:12px 16px;border:1px solid #accdb6;border-radius:9px;background:#e7f4e9;margin-bottom:16px}
.danger{border-color:#ebc1b9;background:#fce9e5;color:#73281f}
.back{display:inline-block;margin-bottom:15px;font-weight:650}
dl{display:grid;grid-template-columns:auto 1fr;gap:7px 14px}
dt{color:var(--muted)}
dd{margin:0;font-weight:650}
.description{white-space:pre-wrap;overflow-wrap:anywhere}
.timeline{list-style:none;margin:0;padding:0 0 0 13px;border-left:2px solid var(--line)}
.timeline li{margin-bottom:16px;overflow-wrap:anywhere}
.timeline p{margin:5px 0 0}
.member{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.member:last-child{border-bottom:0}
.foot{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:16px 0 28px;color:var(--muted);font-size:.82rem}
@media(max-width:680px){.wrap{width:calc(100% - 24px)}.columns,.entry{grid-template-columns:1fr}.welcome{min-height:225px}.hero,.welcome{padding:21px}.hero{align-items:start;flex-direction:column;gap:12px}.stats{grid-template-columns:1fr 1fr}.nav{flex-wrap:wrap;padding:9px 0;gap:8px}nav{gap:12px}.panel,.stat{padding:16px}}
/* Route 15 Resort identity */
:root{--ink:#142644;--navy:#10274b;--blue:#164b92;--paper:#f3f6fb;--line:#d8e1ef;--muted:#4a5d78;--red:#bb1623}
body{background:var(--paper);color:var(--ink)}
.top{border-top:4px solid var(--red)}
a,.brand,.eyebrow{color:var(--blue)}
.brand-logo{display:block;width:66px;height:66px;object-fit:contain;flex:none}
.hero,.welcome{background:linear-gradient(130deg,var(--navy),#174887)}
.hero p,.welcome p{color:#e1ebfa}
.hero .eyebrow,.welcome .eyebrow{color:#e1ebfa}
.hero .button,button,.button{background:var(--red);color:#fff}
.quiet{background:#edf3fc;color:var(--navy)}
.ridgeline{background:linear-gradient(130deg,#2a5d9d,#214c87)}
.stat strong{color:var(--navy)}
:focus-visible{outline-color:var(--blue)}
.hero :focus-visible{outline-color:#fff}
.badge:not(.doing,.review,.done,.blocked,.late){background:#eaf0f8;color:var(--navy)}
.mobile-label{display:none}

@media(max-width:680px){
  .nav{gap:0;align-items:stretch;flex-direction:column;padding:4px 0 0}
  .brand-logo{width:56px;height:56px}
  nav{justify-content:space-between;border-top:1px solid var(--line);gap:8px}
  nav a{display:flex;min-height:44px;align-items:center;padding-inline:8px}
  main{padding-block:16px}
  .entry{margin:0;gap:12px}
  .welcome{min-height:0;padding:20px}
  .welcome p{max-width:30ch}
  .hero,.stats{margin-bottom:14px}
  .hero .button,.stack button{width:100%;text-align:center}
  .stats,.columns{gap:10px}
  .stat{padding:12px}
  button,.button,input,select,textarea{min-height:44px}
  input,select,textarea{font-size:16px}
  .filters,.fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  .filters label:first-child,.filters button{grid-column:1/-1}
  .table-wrap{overflow:visible}
  table,tbody{display:block}
  thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  tbody{display:grid;gap:10px}
  tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8faff}
  tbody td{display:block;min-width:0;padding:0;border:0;overflow-wrap:anywhere}
  tbody td:first-child{grid-column:1/-1;min-width:0;border-bottom:1px solid var(--line);padding-bottom:8px}
  tbody td:first-child a{display:flex;align-items:center;min-height:44px}
  .mobile-label{display:block;font-size:.72rem;font-weight:700;color:var(--muted)}
  .badge{white-space:normal}
}
.task-chart{margin-bottom:18px}
.chart-row{display:grid;grid-template-columns:90px minmax(0,1fr) 32px;align-items:center;gap:12px;margin:9px 0}
.chart-row progress{width:100%;height:16px;accent-color:var(--blue)}
.chart-row strong{text-align:right}
.attachments{margin-bottom:24px}
.attachment-list{padding-left:20px;overflow-wrap:anywhere}
#push-settings{margin-bottom:24px}
@media(max-width:680px){nav{flex-wrap:wrap;gap:0}nav a{padding-inline:4px}.chart-row{gap:8px}.hero form{width:100%}.hero form button{width:100%}}
