/* Office 2003-inspired blue: compact command bars, task pane and worksheet. */
:root{font-family:Tahoma,Verdana,'Segoe UI',sans-serif;font-size:13px;color:#182b49;background:#dbe5f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(90deg,#c5d6ef,#e9eff8);padding:87px 14px 28px 218px}button,input,select,textarea{font:inherit}button{cursor:pointer;color:#172d4d;border:1px solid #7b9ebd;border-radius:3px;background:linear-gradient(#fff,#e8eef6 48%,#dbe5f1 49%,#f3f7fc);box-shadow:inset 0 0 0 1px #fff9;padding:7px 12px;min-height:32px}button:hover{border-color:#c18a2a;background:linear-gradient(#fff9df,#ffe5a0 49%,#ffd16a 50%,#ffe9a8)}button:active{background:#ffd183;box-shadow:inset 1px 1px 3px #b08039}button:disabled{cursor:default;color:#748197;background:#e5eaf0;box-shadow:none;border-color:#b5c2d1}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid #164eab;outline-offset:2px}aside{position:fixed;inset:87px auto 28px 14px;width:190px;padding:0 10px 15px;background:linear-gradient(#ebf2fc,#cfdef3);border:1px solid #8ca9ce;box-shadow:inset 0 0 0 1px #fff8}.brand{position:fixed;top:0;left:0;right:0;height:35px;display:flex;gap:8px;align-items:center;padding:0 12px;font-size:14px;font-weight:bold;color:#fff;text-shadow:1px 1px #214d91;background:linear-gradient(#769acc 0%,#356ab2 12%,#2a5da4 65%,#3f75ba);border-bottom:1px solid #183f79;box-shadow:inset 0 1px 0 #a5c2e9;z-index:3}.brand::after{content:'Attendance workbook';margin-left:auto;font-size:11px;font-weight:normal;color:#e7f0ff;text-shadow:none}.logo{display:grid;place-items:center;width:21px;height:23px;background:linear-gradient(135deg,#fff,#dfecd7);color:#287b32;text-shadow:none;border:1px solid #254c32;box-shadow:inset 0 0 0 2px #fff;font-family:Georgia,serif;font-size:17px}.eyebrow{font-size:11px;font-weight:bold;color:#294d7e;letter-spacing:0;margin:0}aside>.eyebrow{margin:0 -10px 12px;padding:9px 11px;background:linear-gradient(90deg,#fff,#c6d9f3);border-bottom:1px solid #9fb7d7}nav{display:flex;flex-direction:column;gap:5px}nav button{text-align:left;border-color:transparent;background:none;box-shadow:none;line-height:1.4;padding:9px 7px;border-radius:2px;font-size:12px}nav button:hover{border-color:#c99535;background:#fff1c1}nav button.active{border-color:#d19b42;background:linear-gradient(#fff3cf,#ffdc91);box-shadow:inset 0 0 0 1px #fff6;font-weight:bold}.aside-bottom{position:absolute;bottom:16px;left:11px;right:11px;border-top:1px solid #a6bcda;padding-top:12px;font-size:11px;color:#3b5375;line-height:1.8}.aside-bottom small{font-size:10px;color:#526786}.dot{display:inline-block;background:#528a32;border:1px solid #32621a;width:7px;height:7px;margin-right:4px}main{max-width:1600px;margin:0 auto}header{position:fixed;left:0;right:0;top:35px;height:39px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 15px 0 22px;font-size:12px;background:linear-gradient(#f3f7fd,#d6e4f6 50%,#bed1ec);border-bottom:1px solid #8ca8ca;box-shadow:0 2px 0 #f4f7fc;z-index:2}header::before{content:'';position:absolute;left:8px;top:10px;width:3px;height:20px;border-left:1px dotted #6b84a8;border-right:1px dotted #fff}.demo{font-size:10px;color:#3b5273;letter-spacing:1px;border-left:1px solid #98b2d4;padding-left:13px}.notice{border:1px solid #b9b188;background:#fffde5;color:#64592b;font-size:11px;padding:9px 12px;line-height:1.5;margin-bottom:13px;box-shadow:inset 0 0 0 1px #fff}.page{background:#f5f7fb;border:1px solid #7c9cc4;box-shadow:2px 3px 7px #47648a26;padding:17px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;border-bottom:1px solid #c9d7e8;padding-bottom:15px}.heading .eyebrow{color:#617b9d;font-size:10px;text-transform:uppercase;letter-spacing:.7px;margin-bottom:5px}h1{font-family:Tahoma,Verdana,sans-serif;font-size:24px;font-weight:normal;letter-spacing:-.5px;color:#214b80;margin:0 0 6px}p{color:#50627c;line-height:1.6}.heading p:last-child{font-size:12px;margin:0}.toolbar{position:relative;display:grid;grid-template-columns:1.1fr 1fr 1fr 1.1fr;gap:15px;padding:13px 14px 14px 20px;border:1px solid #9cb4d5;background:linear-gradient(#eaf2fc,#d1e0f5);box-shadow:inset 0 1px 0 white}.toolbar::before{content:'';position:absolute;left:5px;top:13px;bottom:14px;width:3px;border-left:1px dotted #8ea6c5;border-right:1px dotted white}label{display:flex;flex-direction:column;gap:6px;color:#344d70;font-size:11px}input,select,textarea{background:#fff;color:#1e2e45;padding:7px 8px;min-height:32px;border:1px solid #7f9db9;border-radius:0;max-width:100%;box-shadow:inset 1px 1px 1px #65758e12}label input,label select,label textarea{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:15px 0;border:1px solid #a6b9d1;background:#bacbe0}.stats article{background:#fff;padding:12px 14px;position:relative;border-top:3px solid #7c9cc4}.stats article:nth-child(2){border-top-color:#7a9c55}.stats article:nth-child(3){border-top-color:#c58c6c}.stats article:last-child{border-top-color:#dab45d}.stats span{display:block;font-size:11px;color:#445c79}.stats strong{display:inline-block;font-size:25px;font-weight:normal;margin-top:5px;color:#274c78}.stats small{display:block;font-size:10px;margin-top:4px;color:#64748b}.panel{background:#fff;border:1px solid #8da8c9}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(#e8f0fc,#cfdef1);border-bottom:1px solid #8da8c9;padding:10px 12px}h2{font-size:13px;margin:0 0 4px;color:#244b7c}#progress{font-size:11px;color:#456080}.actions{display:flex;align-items:center;gap:8px}.actions input{width:170px}.primary,#mark-all{font-weight:bold;border-color:#6b8daf;background:linear-gradient(#fff,#e4effb 49%,#d1e2f6 50%,#edf5ff)}.primary:hover,#mark-all:hover{border-color:#c18a2a;background:linear-gradient(#fff7d3,#ffdb8c)}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:11px;font-weight:normal;color:#203f69;padding:9px 11px;border-right:1px solid #9fb5d0;border-bottom:1px solid #8aa5c7;background:linear-gradient(#edf3fb,#cfddf0);white-space:nowrap}th:last-child{border-right:0}td{padding:8px 11px;border-right:1px solid #d5dfec;border-bottom:1px solid #d5dfec;vertical-align:middle}td:last-child{border-right:0}tbody tr:nth-child(even){background:#f4f7fc}tbody tr:hover{background:#fff9e4}td small{display:block;font-size:10px;color:#657891;margin-top:3px;line-height:1.4}td select{width:240px;font-size:12px;padding:5px;min-height:29px}.pupil-cell{display:flex;align-items:center;gap:9px;min-width:170px}.avatar{display:grid;place-items:center;flex-shrink:0;width:26px;height:29px;background:linear-gradient(#fff,#dce7f6);border:1px solid #a7bad2;border-top:3px solid #7c9fc9;border-radius:1px;color:#527299;font-size:10px}.badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:11px;color:#68788e}.badge::before{content:'';width:7px;height:7px;background:#bbc5d2;border:1px solid #94a3b7}.badge.present{color:#37642a}.badge.present::before{background:#83ae67;border-color:#587f3f}.badge.absent{color:#8c4b2d}.badge.absent::before{background:#d69e7d;border-color:#a77354}.badge.other{color:#3e6296}.badge.other::before{background:#8caed8;border-color:#587cae}.note-button{background:none;border:1px solid transparent;box-shadow:none;color:#4c6d99;padding:4px;text-align:left;font-size:11px;max-width:210px;overflow-wrap:anywhere;white-space:normal}footer{display:flex;justify-content:space-between;gap:10px;background:#ebeff5;padding:7px;font-size:10px;color:#4e627c;border-top:1px solid #a7b9d1}footer>span{padding:4px 7px;border:1px solid;border-color:#c0cad7 #fff #fff #c0cad7;flex:1}footer>span:last-child{flex:0 0 auto}.hint{font-size:11px;color:#5d6e85;margin:12px 0 0;padding-left:18px;position:relative}.hint::before{content:'i';position:absolute;left:0;top:2px;font-family:Georgia,serif;font-weight:bold;color:#426c9f}.table-wrap{overflow-x:auto}.form{display:flex;align-items:end;gap:18px;padding:16px;margin:0 0 17px;background:#e6eef9}.form label{flex:1}a{color:#1858a5;text-underline-offset:2px}dialog{padding:0 19px 18px;border:1px solid #375f98;border-radius:5px 5px 0 0;background:#edf2f9;box-shadow:4px 6px 20px #16355566;color:#263d5d;width:460px;max-width:calc(100% - 24px)}dialog::backdrop{background:#16355555}dialog h2{margin:0 -19px 15px;padding:10px 14px;background:linear-gradient(#7a9ed0,#386bb0);border-bottom:1px solid #285186;color:#fff;text-shadow:1px 1px #2a5188;font-size:13px}dialog label{margin:16px 0}dialog .actions{justify-content:end;border-top:1px solid #c8d6e8;padding-top:13px}#edit-description{font-size:12px}#save-status.error{color:#a42c1e}[hidden]{display:none!important}
@media(min-width:1450px){td{padding-top:10px;padding-bottom:10px}}
@media(max-width:1100px){body{padding-left:196px}aside{width:170px}.toolbar{grid-template-columns:1fr 1fr}.panel-head{align-items:start;flex-direction:column}.stats article{padding:11px}}
@media(max-width:760px){body{padding:85px 10px 15px}aside{position:static;width:100%;padding:0;margin-bottom:12px;background:linear-gradient(#f0f5fc,#cdddf2);border:1px solid #91acd0}aside>.eyebrow,.aside-bottom{display:none}nav{flex-direction:row;gap:3px;overflow-x:auto;padding:5px}nav button{white-space:nowrap;min-height:36px;font-size:11px}.brand::after{content:'School office';font-size:10px}.page{padding:12px}.heading{gap:10px}h1{font-size:22px}.heading p{max-width:220px}.stats{grid-template-columns:1fr 1fr}.toolbar{padding:12px 10px 12px 17px;gap:11px}.actions{flex-wrap:wrap}.form{flex-direction:column;align-items:stretch}.panel-head{padding:10px}td,th{padding:8px}footer{flex-wrap:wrap}.notice{font-size:11px}.demo{font-size:9px}.stats small{font-size:10px}.heading>button{white-space:nowrap}}
@media(prefers-reduced-motion:no-preference){button{transition:border-color .12s}}
@media print{body{background:#fff;padding:0}aside,header,.notice,.heading>button,.toolbar,.actions,.hint{display:none!important}.page{border:0;padding:0;box-shadow:none}.table-wrap{overflow:visible}td select{appearance:none;border:0;background:none}.panel{border:1px solid #777}.note-button{color:#000}.stats{break-inside:avoid}tr{break-inside:avoid}}
/* Authenticated server edition */
.account-tools{display:flex;gap:13px;align-items:center;font-size:11px}.account-tools form{margin:0}.account-tools button{padding:3px 9px;min-height:26px;font-size:11px}.auth-body{padding:80px 15px;display:grid;place-items:start center;min-height:100vh}.auth-window{width:430px;max-width:100%;border:1px solid #446da5;background:#edf2f9;box-shadow:4px 7px 20px #23436944}.auth-title{display:flex;align-items:center;gap:9px;background:linear-gradient(#7b9fd1,#386bb0);color:white;font-weight:bold;padding:9px 12px}.auth-content{padding:25px}.auth-content h1{font-size:23px}.auth-content form{display:flex;flex-direction:column;gap:10px}.auth-content form label{font-weight:bold;margin-top:5px}.auth-content form input{width:100%}.auth-content form button{margin-top:10px}.auth-content .helptext,.auth-content ul{font-size:11px;line-height:1.6}.auth-footer{padding:10px;border-top:1px solid #b6c9e0;font-size:11px;color:#526b8c;background:#dce7f6}.errorlist{color:#a22d21;padding-left:18px}#connection-status.error{color:#932719;background:#fff0eb;border-color:#cc948a}#connection-status.busy{background:#f0f5ff;border-color:#8daacf;color:#264c7f}input[readonly]{background:#edf2f7;color:#4a6485}.loading-table{padding:30px;text-align:center;color:#52749d}@media(max-width:760px){.account-tools{gap:7px}.account-tools>span{display:none}header>span{font-size:10px}.auth-body{padding:30px 12px}.auth-content{padding:20px}}
#edit-error{padding:9px;border:1px solid #cb9a8e;background:#fff0e9;color:#932719;font-size:12px}
.form-error{background:#fff0e9;border:1px solid #cb9a8e;padding:10px;color:#932719;font-size:12px}.admin-body{padding:35px 20px}.admin-window{max-width:1250px;background:#f5f7fb;border:1px solid #7c9cc4;box-shadow:3px 4px 12px #47648a33}.admin-content{padding:22px}.admin-content .form{flex-wrap:wrap}.admin-content .form input{min-width:130px}.admin-content td form{margin:0}@media(max-width:760px){.admin-body{padding:10px}.admin-content{padding:12px}}
.installer-window{width:610px}.auth-content fieldset{border:1px solid #a9bdd7;display:flex;flex-direction:column;gap:9px;margin:7px 0;padding:16px;background:#f7f9fd}.auth-content legend{color:#285184;font-weight:bold;font-size:12px;padding:0 6px}.auth-content fieldset small{font-size:11px;color:#526b87;line-height:1.5}.auth-content .install-confirm{display:flex;flex-direction:row;align-items:start;gap:9px;font-weight:normal;line-height:1.5}.auth-content .install-confirm input{width:auto;min-height:0;margin-top:3px}.install-signin{display:inline-block;border:1px solid #7798bd;background:#e1edfc;padding:10px 15px}
/* Whole-day keyboard register */
.keyboard-help{padding:10px 12px;background:#fffbe8;border-bottom:1px solid #c5cbd2;font-size:11px;color:#4d607a;line-height:1.8}.keyboard-help kbd{font:11px Tahoma,sans-serif;border:1px solid #a4b4ca;border-bottom-width:2px;background:#fff;padding:1px 4px;border-radius:2px}#draft-status{display:block;color:#8b4f0e;font-weight:bold}.register-scroll{max-height:65vh}.day-register{table-layout:fixed;min-width:660px}.day-register thead th{position:sticky;top:0;z-index:1;font-weight:bold}.day-register thead th:first-child{width:28%}.day-register thead .selected-session{background:linear-gradient(#fff0c7,#ffd67b);color:#553e12;border-bottom:2px solid #b9862d}.day-register tbody th{background:#f0f4fa;text-transform:none;white-space:normal;text-align:left;font-size:12px}.day-register tr:focus-within>th{background:#fff0c2;box-shadow:inset 3px 0 #d09a3b}.row-number{font-size:10px;color:#7388a4;min-width:18px}.day-register td{padding:7px 10px;background:#fff}.day-register .is-present{background:#f0f7ed}.day-register .is-absent{background:#fff4ee}.day-register .is-other{background:#f0f5fc}.mark-line{display:flex;align-items:center;gap:9px}.code-entry{width:54px;min-width:54px;min-height:35px;padding:4px;text-align:center;font:bold 19px 'Courier New',monospace;letter-spacing:1px;background:#fff;border:1px solid #9bb0ca}.code-entry:focus{outline:2px solid #225dac;outline-offset:1px;background:#fffde6}.code-entry.unsaved{border-color:#bf790f;background:#fff1bc}.code-entry[aria-invalid=true]{border:2px solid #b33e26}.code-meaning{font-size:11px;line-height:1.4;color:#425873;flex:1}.mark-line .note-button{font-size:10px;white-space:nowrap}.session-note{padding-left:63px;color:#536984;font-size:10px}.day-register .pupil-cell{min-width:0}.stats{margin:10px 0}.stats article{padding:9px 13px}.stats strong{font-size:22px}.stats small{display:none}@media(max-width:760px){.day-register{min-width:580px}.code-meaning{font-size:10px}.mark-line{gap:6px}.day-register td{padding:7px}.code-entry{width:44px;min-width:44px}.mark-line .note-button{padding:3px}.register-scroll{max-height:65vh}}@media print{.keyboard-help,#start-entry{display:none!important}.register-scroll{max-height:none}.day-register{min-width:0}.code-entry{border:0;background:none}}
