:root{color-scheme:light;--paper:#f7f1e3;--surface:#fffcf4;--burgundy:#731e2b;--ink:#241c1c;--line:#e2d2bf;--muted:#756255}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}header{max-width:1180px;margin:auto;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--ink);font-weight:800;font-size:23px;letter-spacing:.04em}.brand img{width:64px;height:70px;object-fit:contain}.brand small{display:block;font-size:12px;font-weight:400;letter-spacing:.08em;color:var(--muted)}main{max-width:1180px;margin:auto;padding:30px 28px 60px}h1{font-size:clamp(28px,4vw,40px);margin:0 0 14px;line-height:1.2}h2{font-size:22px;margin:0 0 18px}.eyebrow{color:var(--burgundy);font-size:12px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}.card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:26px;margin:22px 0;box-shadow:0 5px 18px #38231605}.login{max-width:470px;margin:36px auto}.login p{color:var(--muted)}label{display:block;font-weight:600;font-size:14px;margin:12px 0}input{display:block;width:100%;padding:12px 14px;margin-top:5px;border:1px solid #bfa99b;border-radius:7px;background:#fff;color:var(--ink);font:inherit;min-height:46px}input:focus{outline:3px solid #b9d4eb;outline-offset:1px}button{font:600 14px system-ui;cursor:pointer;background:var(--burgundy);border:1px solid var(--burgundy);border-radius:7px;color:white;padding:12px 18px;min-height:44px}button:hover{filter:brightness(.93)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8dbde4;outline-offset:3px}.secondary{background:transparent;color:var(--burgundy)}.login button{width:100%;margin:8px 0 20px}.login-links{font-size:14px}a{color:var(--burgundy)}.notice{padding:16px 22px;background:#e4efdf;border:1px solid #a6bc9b;border-radius:8px}.error{background:#f8e1de;border-color:#c78378}.stats{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stats .card{margin:8px 0}.stats span{color:var(--muted);font-size:14px}.stats strong{display:block;font-size:clamp(23px,4vw,34px);color:var(--burgundy);margin-top:8px}.sync{font-size:13px;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-size:12px;background:#f2e9da}th,td{padding:13px 12px;border-bottom:1px solid var(--line)}.table-scroll{overflow-x:auto}td{vertical-align:middle}.inline{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.inline label{margin:0}.inline button{margin:4px 0}.attendance{display:grid;grid-template-columns:1fr 180px;gap:28px;margin-top:24px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;font-size:12px;font-weight:700;color:var(--muted)}.day{min-height:86px;border:1px solid var(--line);border-radius:6px;padding:8px 5px;display:flex;flex-direction:column;align-items:center;gap:4px}.outside{color:#9d9388;background:#f3eee4}.badge{display:inline-block;font-size:11px;padding:3px 5px;border-radius:4px;word-break:normal}.present{background:#dceede;color:#235830}.absent{background:#f5dcd9;color:#772f2d}.excused{background:#faebc5;color:#6d5114}.pending{background:#dfe4e8;color:#37424d}aside p{margin:0 0 20px}aside strong{display:block;margin-top:4px}small{color:var(--muted)}summary{cursor:pointer;font-weight:600}.password-form{max-width:430px}.search{display:flex;align-items:end;gap:12px}.search label{flex:1;max-width:450px;margin:0}.activation{display:block;padding:16px;background:var(--paper);font-size:17px;overflow-wrap:anywhere}.pager{display:flex;justify-content:space-between}footer{text-align:center;padding:22px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}@media(max-width:700px){header{padding:16px}.brand{font-size:19px}.brand img{width:45px;height:55px}main{padding:22px 14px 40px}.card{padding:17px}.stats{gap:10px}.attendance{grid-template-columns:1fr;gap:18px}.day{min-height:67px;padding:6px 1px}.badge{font-size:9px;padding:2px}.calendar{gap:3px}aside{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}aside p{margin:0}aside small{grid-column:1/-1}.inline button{font-size:12px;padding:9px}th,td{padding:10px 8px}.login{margin:15px auto}}@media(max-width:380px){.stats{grid-template-columns:1fr}.day{min-height:62px}.badge{font-size:8px}}

.short-status{display:none}@media(max-width:700px){.calendar .full-status{display:none}.calendar .short-status{display:inline}.calendar .badge{font-size:11px;padding:2px 6px}}
