:root{--royal:#1d4ed8;--royal-dark:#172554;--royal-light:#edf3ff;--ink:#172033;--muted:#667085;--line:#d8e1f0;--paper:#fff;--green:#067647;--amber:#a65300;--red:#b42318;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{min-height:100vh;margin:0;background:var(--paper)}a{color:inherit;text-decoration:none}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:#fff;background:linear-gradient(105deg,var(--royal-dark),var(--royal))}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.025em}.brand-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;color:var(--royal);background:#fff;font-size:.82rem}.top-link{color:#fff;font-size:.88rem;font-weight:700}
.shell{width:calc(100% - 56px);margin:34px auto 76px}.member-shell{width:100%}h1,h2,h3{margin:0;color:var(--royal-dark);letter-spacing:-.04em}h1{font-size:clamp(2rem,4.5vw,3.15rem);line-height:1.05}h2{font-size:1.25rem}h3{font-size:1rem}p{line-height:1.55}.eyebrow{margin:0 0 9px;color:var(--royal);font-size:.73rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.muted,.hint{color:var(--muted)}.hint{font-size:.82rem}
.checkin-confirmation{background:#fff}.checkin-confirmation .topbar{display:none}.checkin-confirmation .shell{width:100%;margin:0;min-height:100vh}.checkin-confirmation .hero-card{min-height:100vh;padding:32px;background:#fff;color:var(--royal)}.checkin-confirmation h1{color:var(--royal)}.checkin-confirmation .muted{margin:18px 0 0;color:var(--royal)}.checkin-confirmation .success-icon{background:var(--royal);color:#fff}.checkin-details{display:grid;gap:6px;margin-top:30px;color:var(--royal);font-size:clamp(1.05rem,2vw,1.35rem)}.checkin-details strong{font-weight:650}
.checkin-confirmation label{color:var(--royal);text-align:left}.checkin-confirmation input{border-color:#9bb8f5}.checkin-confirmation .person-option{color:var(--royal);border-color:#c7d8fa}.checkin-confirmation .person-option:hover{background:var(--royal-light)}
/* Sections deliberately have no boxes: hierarchy comes from space and rules. */
.card{padding:30px 0;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}.hero-card{min-height:calc(100vh - 178px);display:flex;flex-direction:column;justify-content:center;padding:clamp(38px,9vw,120px) 9vw;border:0;background:transparent;box-shadow:none}.hero-card:after{display:none}.hero-card>*{position:static}.stack{display:grid;gap:22px}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:1/-1}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.button,button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--royal);border-radius:8px;padding:10px 16px;background:var(--royal);color:#fff;font:750 .89rem inherit;cursor:pointer}.button:hover,button:hover{background:#1745be}.button.secondary,button.secondary{background:#fff;color:var(--royal);border-color:#a9c0f6}.button.danger,button.danger{background:#fff;color:var(--red);border-color:#f1bcb8}.button.small,button.small{min-height:34px;padding:7px 10px;font-size:.78rem}.button.wide,button.wide{width:100%}label{display:grid;gap:7px;color:#344054;font-size:.84rem;font-weight:700}input,select,textarea{min-height:46px;width:100%;border:1px solid #bfcce4;border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--royal);box-shadow:0 0 0 3px #1d4ed81c}textarea{min-height:98px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .full{grid-column:1/-1}
.time-override{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px}.time-override summary{color:var(--royal);font-size:.9rem;font-weight:750;cursor:pointer}.time-override .form-grid{margin-top:16px}
.search-results{display:grid;gap:8px;margin-top:10px}.person-option{min-height:54px;width:100%;justify-content:flex-start;text-align:left;background:#fff;color:var(--ink);border-color:var(--line)}.person-option:hover{background:var(--royal-light);border-color:#95b5fa}.list{display:grid;gap:0}.list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 0;border-bottom:1px solid var(--line)}.list-row:first-child{border-top:1px solid var(--line)}.list-row h3,.list-row p{margin:0}.list-row p{margin-top:4px}.stat{padding:3px 0}.stat strong{display:block;font-size:2.2rem;letter-spacing:-.06em}.stat span{font-size:.8rem;color:var(--muted)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.kpi-grid .stat{padding:20px 18px;border-right:1px solid var(--line)}.kpi-grid .stat:first-child{padding-left:0}.kpi-grid .stat:last-child{border-right:0}.kpi-grid .stat strong{color:var(--royal-dark)}
.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800;text-transform:capitalize}.status-present,.status-approved{color:var(--green);background:#dcfae6}.status-late,.status-excused,.status-pending{color:var(--amber);background:#fff0c2}.status-absent,.status-denied{color:var(--red);background:#fee4e2}.status-exempt{color:#475467;background:#e4e7ec}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:14px 12px;text-align:left;border-bottom:1px solid var(--line)}th{font-size:.71rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.alert{padding:13px 15px;margin-bottom:18px;border-left:4px solid var(--royal);color:#1849a9;font-weight:650}.alert.error{border-color:var(--red);color:var(--red)}.alert.success{border-color:var(--green);color:var(--green)}.success-icon{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 19px;border-radius:50%;background:var(--royal);color:#fff;font-size:2.3rem}.center{text-align:center}.empty{padding:28px 0;text-align:center;color:var(--muted);border-bottom:1px solid var(--line)}
/* The admin is a full-width workspace, not a sidebar plus cards. */
.admin-layout{display:block}.admin-layout>.stack{width:100%;margin:0}.side-nav{display:flex;align-items:center;gap:22px;margin:0 0 34px;padding:0 0 13px;border-bottom:1px solid var(--line)}.side-nav::before{content:"STUCO ADMIN";margin-right:12px;color:var(--royal-dark);font-size:.73rem;font-weight:900;letter-spacing:.09em}.side-nav a{padding:7px 0;color:#526077;font-size:.86rem;font-weight:700;border-bottom:2px solid transparent}.side-nav a:hover,.side-nav a.active{color:var(--royal);border-bottom-color:var(--royal)}.side-nav a:last-child{margin-left:auto;color:var(--red)}.side-nav a:last-child:hover{color:var(--red);border-color:var(--red)}.grid>aside.card{align-self:start}.qr-box{width:100%;height:246px;overflow:hidden;display:grid;place-items:center;padding:13px;background:#fff;border:1px solid #bfcce4;border-radius:0}.qr-box.white-qr{background:var(--royal)}.qr-box img{display:block;width:220px !important;height:220px !important;max-width:220px;max-height:220px;flex:none;image-rendering:pixelated}.qr-options{display:flex;gap:8px;margin-top:14px}.qr-options button.active{background:var(--royal);border-color:var(--royal);color:#fff}.live-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#12b76a;box-shadow:0 0 0 4px #dcfae6}
.admin-page{background:#fff}.admin-page .topbar{display:none}.admin-page .shell{width:100%;margin:0;padding:0 6vw 72px}.admin-page .side-nav{margin:0 -6vw 48px;padding:18px 6vw;background:var(--royal);border:0}.admin-page .side-nav::before{color:#fff}.admin-page .side-nav a{color:#dce8ff}.admin-page .side-nav a:hover,.admin-page .side-nav a.active{color:#fff;border-bottom-color:#fff}.admin-page .side-nav a:last-child{color:#fff0ef}.admin-page .side-nav a:last-child:hover{color:#fff;border-color:#fff}.admin-page h1,.admin-page h2{color:var(--royal)}
@media(max-width:720px){.checkin-confirmation{height:100dvh;overflow:hidden}.checkin-confirmation .shell{height:100dvh;overflow:hidden}.topbar{height:60px;padding:0 16px}.brand span:last-child{display:none}.shell{width:calc(100% - 28px);margin:22px auto 50px}.card{padding:22px 0}.hero-card{min-height:calc(100vh - 132px);padding:30px 4px}.side-nav{margin:0 0 24px;gap:14px;overflow-x:auto;white-space:nowrap}.side-nav::before{display:none}.side-nav a{flex:0 0 auto;font-size:.78rem}.side-nav a:last-child{margin-left:auto}.grid{gap:18px}.span-4,.span-6,.span-8{grid-column:1/-1}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.kpi-grid{grid-template-columns:1fr 1fr;gap:0}.kpi-grid .stat{padding:16px 12px;border-right:1px solid var(--line)}.kpi-grid .stat:nth-child(odd){padding-left:0}.kpi-grid .stat:nth-child(even){border-right:0}.kpi-grid .stat:nth-child(n+3){border-top:1px solid var(--line)}.list-row{align-items:flex-start}.list-row .actions{justify-content:flex-end}.actions>.button{flex:1}.table-wrap{margin-inline:0}.table-wrap table{min-width:490px}.qr-box{height:220px}.qr-box canvas{width:190px !important;height:190px !important;max-width:190px;max-height:190px}.button,button{min-height:46px}}
