*{box-sizing:border-box}body{color:#172333;background:#f4f6f9;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}main{max-width:1100px;margin:auto;padding:0 32px}header{border-bottom:1px solid #dbe2ea;align-items:center;gap:12px;height:96px;display:flex}header strong{font-size:20px}.mark{color:#fff;background:#ee4d2d;border-radius:10px;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.label{letter-spacing:2px;color:#64748b;margin-left:auto;font-size:12px}.support{max-width:600px;margin:76px auto 64px}.eyebrow{color:#ee4d2d;letter-spacing:2px;font-size:14px;font-weight:700}h1{letter-spacing:-1.5px;margin:18px 0;font-size:clamp(32px,5vw,48px);line-height:1.15}p.intro{color:#5c6b7e;margin-bottom:34px;font-size:18px}.status{color:#526175;align-items:center;gap:10px;margin-bottom:20px;display:flex}.status i{background:#94a3b8;border-radius:50%;width:9px;height:9px}.status i.green{background:#159c5c}button,.download{font:inherit;cursor:pointer;color:#172333;background:#fff;border:1px solid #ccd5df;border-radius:10px;padding:13px 20px;font-weight:600}button.primary{color:#fff;background:#ee4d2d;border-color:#ee4d2d;width:100%;padding:18px}button:disabled{cursor:default;opacity:.5}:is(button:focus-visible,a:focus-visible,input:focus-visible){outline-offset:4px;outline:3px solid #254a82}.result{background:#fff;border:1px solid #d6e3dc;border-left:4px solid #159c5c;border-radius:12px;margin-top:28px;padding:28px}.result small{letter-spacing:1.5px;color:#56806a;font-size:12px}.result h2{text-transform:capitalize;margin:12px 0;font-size:24px}.email{overflow-wrap:anywhere;color:#42536b}.hint{color:#66768a;font-size:14px}.error{color:#a4321d}.result button{width:100%}footer{color:#738196;border-top:1px solid #dbe2ea;justify-content:space-between;gap:20px;padding:24px 0;font-size:14px;display:flex}a{color:#52647d;text-underline-offset:4px}.download{margin:0 0 26px;text-decoration:none;display:inline-block}label{display:block}input,textarea{width:100%;font:inherit;border:1px solid #ccd5df;border-radius:8px;margin:8px 0 18px;padding:14px;display:block}textarea{overflow-wrap:anywhere;font-size:14px}details{margin:30px 0}li{margin-bottom:10px}@media (max-width:600px){main{padding:0 20px}.label{display:none}.support{margin-top:48px}footer{flex-direction:column}.result{padding:22px}}.roster{max-width:720px;margin:0 auto 54px}.tabs{border-bottom:1px solid #dbe2ea;gap:8px;padding-bottom:16px;display:flex}.tabs button{font-size:14px}.tabs button[aria-selected=true]{color:#fff;background:#172333;border-color:#172333}.hourgroup h3{color:#5c6b7e;margin:28px 0 12px;font-size:14px}.person{background:#fff;border:1px solid #dbe2ea;border-radius:10px;justify-content:space-between;gap:18px;margin-bottom:8px;padding:18px 22px;display:flex}.person strong{text-transform:capitalize;display:block}.person span{overflow-wrap:anywhere;color:#5c6b7e;font-size:14px;display:block}.period{text-align:right;flex-shrink:0}.period small{color:#547860;font-size:12px}.empty{color:#64748b;padding:24px}footer{max-width:900px;margin:auto}@media (max-width:600px){.person{flex-direction:column;gap:8px}.period{text-align:left}.tabs button{padding:12px}}.site-presence{width:100%;margin-top:12px}.supervisor-card{background:#fff;border:1px solid #dbe2ea;border-radius:12px;max-width:720px;margin:0 auto 28px;padding:24px}.supervisor-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.supervisor-heading h2{margin:0;font-size:20px}.supervisor-heading>span{color:#bd3b20;background:#fff0eb;border-radius:20px;padding:4px 12px}.supervisor-card .person{border:0;border-top:1px solid #dbe2ea;border-radius:0;margin:12px 0 0;padding:16px 0}.supervisor-card .person button{align-self:center;font-size:14px}.person small{color:#64748b}.availability-dialog{color:#172333;border:0;border-radius:16px;width:calc(100% - 32px);max-width:480px;padding:28px;box-shadow:0 18px 70px #17233330}.availability-dialog::backdrop{background:#17233380}.dialog-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.dialog-heading h2{margin:0;font-size:22px}.dialog-heading button{border:0;padding:3px 12px;font-size:26px}.availability-dialog select{width:100%;font:inherit;border:1px solid #ccd5df;border-radius:8px;margin:8px 0 18px;padding:13px}.success{color:#168052;font-size:14px}.duration-options{gap:12px;margin-top:12px;display:flex}.duration-options button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:10px;flex:1;padding:12px;font-size:14px}.duration-options button:disabled{opacity:.5}.admin-panel{max-width:900px}.admin-panel h1{font-size:28px}.admin-panel form{gap:16px;max-width:460px;margin:24px 0;display:grid}.admin-panel input,.admin-panel select{box-sizing:border-box;border:1px solid #ccc;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:16px;display:block}.admin-toolbar,.admin-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-panel .person span{overflow-wrap:anywhere}.admin-panel>a{margin-top:24px;display:inline-block}@media (max-width:600px){.admin-panel .person{flex-wrap:wrap;gap:12px}.admin-toolbar{flex-wrap:wrap}}.duty-card{border-top:1px solid #eee;padding:20px 0}.duty-card:first-of-type{margin-top:20px}.duty-card .person{flex-wrap:wrap;gap:12px}.duty-card .person span{overflow-wrap:anywhere}.substitute-list{max-height:220px;margin:12px 0;overflow:auto}.admin-panel .substitute-list label{overflow-wrap:anywhere;align-items:center;gap:8px;margin:10px 0;font-size:14px;display:flex}.admin-panel .substitute-list input{width:auto;margin:0}.admin-panel fieldset{border:1px solid #ddd;border-radius:8px;min-width:0;padding:12px}
