:root{color:#12233f;font-synthesis:none;text-rendering:optimizelegibility;background:#f3f7fc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center-screen,.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.center-screen{color:#52627a;gap:10px;display:flex}.auth-page{background:radial-gradient(circle at 50% 0,#dbeaff 0,#f4f8fd 48%,#eef4fb 100%)}.auth-card{text-align:center;background:#fff;border:1px solid #e2ebf7;border-radius:28px;width:min(100%,420px);padding:38px 30px 32px;box-shadow:0 20px 60px #143a6e21}.brand-mark,.mini-mark{color:#fff;background:linear-gradient(145deg,#0965d8,#043c96);place-items:center;font-weight:900;display:grid;box-shadow:0 8px 18px #0552b940}.brand-mark{border-radius:22px;width:70px;height:70px;margin:0 auto 22px;font-size:38px}.mini-mark{border-radius:13px;width:42px;height:42px;font-size:24px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:#0860c8;margin:0 0 6px;font-size:12px;font-weight:800}.auth-card h1,.welcome h1{color:#10213c;letter-spacing:-.035em;margin:0}.auth-card h1{font-size:34px}.auth-copy{color:#64748b;margin:12px 0 26px;line-height:1.55}.auth-form{text-align:left}.auth-form label,.controls-card label>span,.note-field>span{color:#52627a;margin-bottom:7px;font-size:13px;font-weight:700;display:block}input,textarea,select{color:#152943;background:#fff;border:1px solid #d6e1ef;border-radius:12px;outline:none}input:focus,textarea:focus,select:focus{border-color:#2274da;box-shadow:0 0 0 3px #2274da1f}.auth-form input{width:100%;margin-bottom:12px;padding:13px 14px}.primary-button,.secondary-button,.save-button{border:0;border-radius:13px;justify-content:center;align-items:center;gap:9px;padding:14px 18px;font-weight:800;display:flex}.primary-button,.save-button{color:#fff;background:linear-gradient(135deg,#0870e4,#064caf);width:100%;box-shadow:0 8px 18px #0552b933}.secondary-button{color:#0758ba;background:#eaf3ff;margin:auto}button:disabled{cursor:not-allowed;opacity:.58}.success-panel{text-align:left;color:#15633a;background:#eaf8f0;border-radius:14px;align-items:flex-start;gap:12px;padding:16px;display:flex}.success-panel span{margin-top:3px;font-size:13px;line-height:1.4;display:block}.error-message{color:#ad2d32}.auth-card .error-message{margin-top:16px;font-size:13px}.app-shell{min-height:100vh}.topbar{z-index:5;background:#fff;border-bottom:1px solid #e1e9f3;justify-content:space-between;align-items:center;height:70px;padding:0 max(20px,50vw - 470px);display:flex;position:sticky;top:0}.brand-row{align-items:center;gap:11px;display:flex}.brand-row strong,.brand-row span{display:block}.brand-row strong{font-size:16px}.brand-row span{color:#718096;margin-top:1px;font-size:12px}.icon-button{color:#33506f;background:#edf4fc;border:0;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.content{width:min(100% - 32px,940px);margin:0 auto;padding:34px 0 52px}.welcome h1{font-size:clamp(30px,5vw,44px)}.welcome>p:last-child{color:#6b7c91;margin:8px 0 0}.controls-card,.attendance-card,.recent-card{background:#fff;border:1px solid #dee8f4;border-radius:20px;box-shadow:0 8px 28px #1943770f}.controls-card{grid-template-columns:1fr 230px;gap:18px;margin:26px 0 18px;padding:18px;display:grid}.select-wrap,.input-wrap{color:#55708d;border:1px solid #d6e1ef;border-radius:12px;align-items:center;height:46px;padding:0 12px;display:flex}.select-wrap:focus-within,.input-wrap:focus-within{border-color:#2274da;box-shadow:0 0 0 3px #2274da1a}.select-wrap select,.input-wrap input{min-width:0;height:100%;box-shadow:none;background:0 0;border:0;flex:1;padding:0 9px}.select-wrap select{appearance:none}.alert{border-radius:13px;margin-bottom:18px;padding:13px 16px;font-size:14px}.alert.error-message{background:#fff0f0;border:1px solid #ffd4d6}.notice-message{color:#17633b;background:#ecf9f1;border:1px solid #caecd8;align-items:center;gap:8px;display:flex}.attendance-card,.recent-card{padding:22px}.section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-heading h2{letter-spacing:-.02em;margin:0;font-size:20px}.section-heading span{color:#78889c;margin-top:3px;font-size:13px;display:block}.text-button{color:#0861c8;background:#eaf3ff;border:0;border-radius:10px;align-items:center;gap:5px;padding:9px 11px;font-weight:750;display:flex}.add-player{background:#f5f8fc;border-radius:13px;gap:8px;margin-top:18px;padding:14px;display:flex}.add-player input{flex:1;min-width:0;padding:10px 12px}.add-player button{color:#fff;background:#0759bd;border:0;border-radius:10px;padding:0 14px;font-weight:700}.summary-strip{background:#f4f7fb;border-radius:14px;grid-template-columns:1fr 120px 120px;align-items:center;gap:8px;margin:20px 0 12px;padding:10px 12px;display:grid}.summary-strip button{color:#36516f;background:#fff;border:1px solid #d9e3ee;border-radius:9px;justify-self:start;padding:8px 10px;font-size:13px;font-weight:700}.summary-strip div{text-align:center}.summary-strip strong,.summary-strip span{display:block}.summary-strip strong{color:#0a58b4;font-size:20px}.summary-strip span{color:#728398;font-size:11px}.player-list{border-top:1px solid #edf1f6}.player-row{text-align:left;color:#233750;background:#fff;border:0;border-bottom:1px solid #edf1f6;align-items:center;gap:12px;width:100%;padding:12px 4px;display:flex}.player-row:hover{background:#f8fbff}.avatar{color:#4f647c;background:#eaf0f7;border-radius:12px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.player-name{flex:1;font-weight:650}.check-box{color:#fff;border:2px solid #cad6e4;border-radius:8px;place-items:center;width:27px;height:27px;display:grid}.player-row.is-present .avatar{color:#0757b8;background:#dcecff}.player-row.is-present .check-box{background:#0870df;border-color:#0870df}.empty-state,.loading-row{color:#7a899b;justify-content:center;align-items:center;gap:8px;min-height:170px;display:flex}.empty-state{flex-direction:column}.empty-state strong{color:#465b72}.empty-state span{font-size:13px}.note-field{margin-top:20px;display:block}.note-field textarea{resize:vertical;width:100%;padding:12px 13px}.save-button{margin-top:15px}.recent-card{margin-top:18px}.recent-list{margin-top:14px}.recent-list button{text-align:left;color:#263b53;background:#fff;border:0;border-top:1px solid #edf1f6;align-items:center;gap:12px;width:100%;padding:11px 3px;display:flex}.date-badge{background:#e9f2fe;border-radius:11px;place-items:center;width:39px;height:39px;font-weight:800;color:#0758ba!important;margin:0!important;font-size:16px!important;display:grid!important}.recent-list button>span:nth-child(2){flex:1}.recent-list strong,.recent-list small{display:block}.recent-list small{color:#8190a1;margin-top:2px}.recent-list b{color:#0a62c7}.empty-recent{color:#8190a1;margin:18px 0 2px;font-size:14px}footer{text-align:center;color:#8a98a9;padding:0 20px 28px;font-size:12px}@media (width<=620px){.topbar{padding:0 16px}.content{width:min(100% - 24px,940px);padding-top:24px}.controls-card{grid-template-columns:1fr;gap:14px}.attendance-card,.recent-card{border-radius:17px;padding:17px}.summary-strip{grid-template-columns:1fr 86px 86px;padding:9px}.summary-strip button{font-size:12px}.summary-strip strong{font-size:18px}.summary-strip span{font-size:10px}}
