:root{--ink:#12202e;--navy:#173b63;--blue:#2674bb;--sky:#dcebf7;--paper:#f4f2ec;--white:#fff;--orange:#ef7b43;--line:rgba(18,32,46,.18);--ok:#16815e}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Apple SD Gothic Neo",sans-serif}button,input,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{height:78px;padding:0 3vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{font-weight:900;font-size:21px;letter-spacing:-.05em}.brand span{font-size:8px;letter-spacing:.13em;color:var(--blue);margin-left:10px}.topbar nav{display:flex;gap:24px;align-items:center}.topbar nav a,.topbar nav button{font-size:9px;letter-spacing:.14em;background:none;border:0;padding:8px 0;cursor:pointer}.topbar nav a{border-bottom:1px solid}.topbar-dark{background:#111;color:#f6f3ec;border-color:rgba(255,255,255,.2)}
main{min-height:calc(100vh - 78px)}.hero{min-height:520px;padding:6vw 3vw 4vw;position:relative;display:grid;grid-template-columns:2fr 1fr;align-content:space-between}.eyebrow{font-size:9px;letter-spacing:.16em;color:var(--blue)}.hero>.eyebrow{grid-column:1/-1}.hero h1{font-size:clamp(65px,10vw,145px);line-height:.76;letter-spacing:-.085em;margin:5vw 0 0}.hero h1 i,.login-card h1 i,.admin-title h1 i{font-family:Georgia,serif;font-weight:400;color:var(--blue)}.hero-note{align-self:end;border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:45px 1fr}.hero-note span{font-size:9px;color:var(--blue)}.hero-note p{font-size:11px;line-height:1.8;margin:0}
.control-panel{display:grid;grid-template-columns:1.4fr 1fr .7fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 3vw;background:var(--white)}.control-panel>div{min-height:150px;padding:25px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.control-panel>div:last-child{border:0}.label{font-size:9px;letter-spacing:.13em;color:var(--blue)}.control-panel select{width:100%;border:0;border-bottom:2px solid var(--ink);background:transparent;padding:10px 0;font-size:clamp(25px,3vw,42px);font-weight:800;letter-spacing:-.05em}.control-panel strong{font-size:clamp(25px,3vw,42px);letter-spacing:-.05em}.progress-card strong b{color:var(--orange)}
.roster{margin:6vw 3vw 10vw;border-top:2px solid var(--navy)}.roster>header,.roster-row{display:grid;grid-template-columns:80px 1.1fr .9fr 1.5fr 90px;align-items:center}.roster>header{min-height:54px;background:var(--navy);color:white;font-size:9px;letter-spacing:.13em;padding:0 20px}.roster-row{min-height:88px;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.35);transition:background .2s}.roster-row:hover{background:white}.row-number{font-size:11px;color:var(--blue)}.roster-row>strong{font-size:22px;letter-spacing:-.035em}.size-field select,.memo-field input{width:calc(100% - 24px);min-height:48px;border:1px solid var(--line);background:white;padding:0 14px;border-radius:0;outline:0}.size-field select{font-size:16px;font-weight:800}.size-field select:focus,.memo-field input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(38,116,187,.13)}.memo-field input{font-size:13px}.save-state{font-size:9px;letter-spacing:.1em;color:var(--ok);text-align:right}.save-state.saving{color:var(--orange)}
footer{padding:28px 3vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:8px;letter-spacing:.15em}
.login-layer{position:fixed;inset:0;z-index:50;background:#111;color:#f6f3ec;display:none;place-items:center;padding:25px}.login-layer.visible{display:grid}.login-card{width:min(620px,100%)}.login-card h1{font-size:clamp(65px,10vw,120px);line-height:.76;letter-spacing:-.08em;margin:6vh 0}.login-card>p{font-size:12px;color:rgba(255,255,255,.65);margin-bottom:45px}.login-card label{display:block;border-top:1px solid rgba(255,255,255,.3);padding:20px 0}.login-card label span{display:block;font-size:9px;letter-spacing:.13em;margin-bottom:12px}.login-card input{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.4);background:transparent;color:white;padding:12px 0;font-size:24px;outline:0}.login-card button{width:100%;margin-top:25px;padding:20px;background:var(--blue);border:0;color:white;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.13em;cursor:pointer}.login-card small{display:block;color:#ff9c83;margin-top:15px;min-height:20px}
.admin-body{background:#111;color:#f5f1e8}.admin-main{padding-bottom:10vw}.admin-title{min-height:600px;padding:6vw 3vw;display:grid;grid-template-columns:2fr 1fr;align-content:space-between}.admin-title>.eyebrow{grid-column:1/-1}.admin-title h1{font-size:clamp(75px,12vw,175px);line-height:.7;letter-spacing:-.09em;margin:5vw 0 0}.admin-title>div{align-self:end;justify-self:end;display:flex;flex-direction:column}.admin-title>div strong{font-size:clamp(60px,9vw,130px);line-height:.8;color:var(--blue)}.admin-title>div span{font-size:9px;letter-spacing:.15em;margin-top:15px}
.db-tools{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:1fr 260px 220px;background:#e9e6dd;color:var(--ink);border-bottom:1px solid var(--line)}.db-tools label{padding:18px 22px;border-right:1px solid var(--line)}.db-tools label span{display:block;font-size:8px;letter-spacing:.13em;color:var(--blue);margin-bottom:8px}.db-tools input,.db-tools select{width:100%;border:0;background:transparent;font-size:17px;outline:0}.export-button{background:var(--blue);color:white;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.12em}
.db-table-wrap{margin:4vw 3vw 0;overflow:auto;border:1px solid rgba(255,255,255,.2)}table{width:100%;min-width:980px;border-collapse:collapse}th,td{padding:18px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.15);font-size:12px}th{position:sticky;top:0;background:#0f2e3d;color:#fff;font-size:8px;letter-spacing:.12em}tbody tr:hover{background:rgba(38,116,187,.12)}td strong{font-size:16px}.size-badge{display:inline-block;background:var(--blue);color:white;padding:7px 11px;min-width:58px;text-align:center;font-weight:800}.size-badge.empty{background:rgba(255,255,255,.12);color:rgba(255,255,255,.55)}.empty-state{text-align:center;padding:70px;font-family:Georgia,serif;font-style:italic}
@media(max-width:760px){
  .topbar{height:68px;padding:0 5vw}.topbar nav{gap:14px}.brand span{display:none}.hero{display:block;min-height:520px;padding:15vw 5vw}.hero h1{font-size:19vw;margin:18vw 0 15vw}.hero-note{margin-top:80px}.control-panel{margin:0 5vw;grid-template-columns:1fr 1fr}.control-panel>div:first-child{grid-column:1/-1;border-bottom:1px solid var(--line);border-right:0}.control-panel>div{min-height:125px;padding:20px}.control-panel select,.control-panel strong{font-size:25px}.roster{margin:16vw 5vw}.roster>header{display:none}.roster-row{grid-template-columns:42px 1fr 110px;gap:12px;padding:18px 14px;min-height:140px}.roster-row>strong{font-size:21px}.size-field select{width:100%}.memo-field{grid-column:2/4}.memo-field input{width:100%}.save-state{grid-column:1/4}.admin-title{display:block;min-height:560px;padding:16vw 5vw}.admin-title h1{font-size:21vw;margin-top:20vw}.admin-title>div{margin-top:80px}.db-tools{grid-template-columns:1fr 1fr}.db-tools label{padding:15px}.export-button{grid-column:1/-1}.db-table-wrap{margin:8vw 5vw}.login-card h1{font-size:20vw}footer{padding:25px 5vw;flex-direction:column;gap:12px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
