:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#163e35;background:#f5f7f5;font-synthesis:none;line-height:1.45}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}main{max-width:640px;margin:auto;padding:10px max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}h1,h2,h3,p{margin-top:0}h1{font-size:24px;line-height:1.25;margin:12px 0}h2{font-size:20px;line-height:1.3}h3{font-size:17px}button,input,select,textarea{font:inherit;font-size:16px;color:inherit}button,input:not([type=checkbox]),select,textarea{min-height:44px;border:1px solid #b5c9bd;border-radius:10px;background:#fff;padding:10px 12px;max-width:100%;min-width:0}button{cursor:pointer;touch-action:manipulation;line-height:1.4;overflow-wrap:anywhere}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #946016;outline-offset:2px}label,strong,p,small,h1,h2,h3,dd,dt{overflow-wrap:anywhere}small,.meta,.hint{font-size:13px;color:#466456}.hint{margin:6px 0 10px}header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 8px}.brand{font-size:20px;color:#176759;font-weight:750}.brand span{display:none}.badge,.status,.roster-status{font-size:12px;border-radius:16px;padding:4px 8px;background:#e3ede6;max-width:100%}.CONFIRMED.status{background:#dcefe1;color:#215e40}.CANCELLED.status,.roster-status.WITHDRAWN{background:#f7e3df;color:#82382c}.section-nav{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 12px}.section-nav button{flex:1 1 auto;padding:10px 4px;border:0;white-space:nowrap;background:transparent}.section-nav [aria-current=page]{background:#e0ede5;font-weight:650}.primary{background:#176759;border-color:#176759;color:#fff;min-height:48px;font-weight:600}.danger{background:#8b392e;border-color:#8b392e;color:#fff}.danger-outline{color:#853c31;border-color:#c39285}.date-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:12px 0}.date-row>label{min-width:0;margin:0;font-size:13px}.date-row button{margin:0;min-width:88px}.date input,input[type=date]{display:block;width:100%;min-inline-size:0;max-inline-size:100%;margin-top:4px}input[type=date]{-moz-appearance:none;appearance:none;-webkit-appearance:none}input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}.session-context{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:13px;margin-bottom:6px}.session-context button{padding:8px}.session-context span{min-width:0}.sessions{display:grid;gap:10px}.session-card{width:100%;text-align:left;padding:12px 14px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.card-top strong{font-size:20px}.session-card small{display:block}.session-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0}.session-title h1{margin:0}.group-picker{width:100%;margin:8px 0}.group{background:#fff;border-block:1px solid #d6e1d9;margin:10px 0 0;scroll-margin-top:10px}.group-heading{font-size:16px;margin:0;padding:8px 0}.group-heading small{display:block;font-weight:400}.group-heading:focus-visible{outline:3px solid #946016;outline-offset:2px}.child{display:flex;align-items:center;gap:8px;border-top:1px solid #dfe7e1;min-width:0}.child-info{flex:1;min-width:0}.child-info strong{display:block;font-size:16px;font-weight:600}.child-info small{display:block;font-size:13px;color:#466456;margin-top:2px}.child:has(>.child-info){padding:8px 0;min-height:60px}.child>button{flex-shrink:0}.absent{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:60px;padding:8px 0;cursor:pointer;touch-action:manipulation}.absent input{width:24px;height:24px;margin:10px;flex-shrink:0;accent-color:#176759}.absent:has(input:focus-visible){outline:3px solid #946016;outline-offset:-3px}.child.ABSENT{background:#fff0df}.child.ABSENT small{color:#82451e}.child.PRESENT small{color:#21623f}.save-status{font-size:13px;color:#315e48;min-height:24px;margin:4px 0;display:flex;align-items:center}.action-dock{position:sticky;bottom:0;z-index:2;background:#f5f7f5;border-top:1px solid #cbdace;padding:8px 0 max(8px,env(safe-area-inset-bottom));margin-top:8px}.action-dock>button{width:100%}.dock-totals{font-size:13px;margin:0 0 6px}.completion{margin-top:14px}.completion button{width:100%}.completion p{font-size:14px;color:#215e40}.lesson-actions{margin:12px 0}.lesson-actions button,.device-tools button{display:block;width:100%;margin:8px 0;text-align:left}summary{min-height:44px;padding:10px 0;cursor:pointer}.notice{font-size:13px;color:#466456}.error,.pending,.cancelled-notice,.stale-draft{background:#ffebe2;border:1px solid #dec1b5;border-radius:10px;padding:12px;margin:12px 0;color:#79392c}.error button,.pending button{display:block;margin-top:8px;width:100%}.error p,.pending p{margin:0 0 8px}.empty{padding:16px 0}.empty h2{margin:8px 0}.empty button{width:100%}footer{border-top:1px solid #d6e1d9;margin-top:24px;padding-top:12px;color:#4d6656;font-size:12px;overflow-wrap:anywhere}dialog{width:calc(100% - 24px);max-width:480px;max-height:calc(var(--dialog-height,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));position:fixed;top:calc(var(--dialog-top,0px) + 12px + env(safe-area-inset-top));bottom:auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding-block:12px;padding:16px;border:1px solid #b6cbbb;border-radius:14px;background:#f5f7f5;color:#163e35;margin:0 auto}dialog::backdrop{background:#163e3588}dialog h2{font-size:20px}dialog p{font-size:14px}dialog>button{display:block;width:100%;margin-top:10px}dialog textarea,dialog select{display:block;width:100%;margin-top:6px}dialog .reason{display:block;font-size:14px;margin:12px 0}.consent{display:flex;align-items:flex-start;gap:8px;min-height:44px;padding:10px 0;font-size:14px}.consent input{width:24px;height:24px;flex-shrink:0;margin:0;accent-color:#176759}.counts{display:grid;gap:4px;margin:12px 0}.counts div{display:flex;align-items:center;justify-content:space-between;gap:8px}.counts dt{font-size:14px}.counts dd{margin:0;font-weight:650}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.history article,.periods article{padding:12px 0;border-bottom:1px solid #cbdace}.history small{display:block}.history p{font-size:14px;margin:6px 0}.stale-draft textarea{display:block;width:100%;margin-bottom:10px}.auth-bar{max-width:640px;margin:auto;padding:max(6px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));font-size:13px}.auth-bar summary{padding:8px 0}.auth-bar button{margin:4px 8px 4px 0}.auth-bar p{font-size:13px;margin:6px 0}.auth-bar .error{margin:6px 0}.login-page{max-width:480px}.login-page label{display:block;margin:12px 0}.login-page input{display:block;width:100%;margin-top:6px}.login-page form>button{width:100%}.login-page form{margin:12px 0}.children-page label{display:block;font-size:14px}.children-page input:not([type=checkbox]),.children-page select,.children-page textarea{display:block;width:100%;margin:6px 0 12px}.children-search{margin:12px 0}.roster-filters{display:grid;gap:8px;margin:10px 0}.roster-list{display:grid;gap:8px}.roster-child{text-align:left;padding:10px 12px}.roster-child strong,.roster-child small{display:block;margin:4px 0}.child-card{margin:16px 0}.child-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.children-page .add-child{width:100%;margin:8px 0}.children-page dialog label{margin:8px 0}.month-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.month-picker label{min-width:0;font-size:14px}.month-picker input,.month-picker select{width:100%;margin-top:4px}.month-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.month-counts div{padding:8px;background:#e5eee6;border-radius:8px}.month-counts dt{font-size:13px}.month-counts dd{margin:0;font-size:22px;font-weight:650}.summary{margin:16px 0;padding:16px;background:#e4eee5;border-radius:12px}.summary h2{font-size:28px;margin-bottom:6px}.summary p,.summary small{font-size:13px}.month-children article{padding:10px 0;border-bottom:1px solid #d6e1d9}.month-children p{font-size:13px;margin:4px 0}.month-session{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;margin:8px 0}.month-session>span:first-child{flex:1;min-width:120px}.month-session small{display:block;margin-top:4px}.month-sessions{margin:18px 0}.month-sessions h2{font-size:18px}.offline-page label{display:block;font-size:14px;margin:8px 0}.offline-page input[type=password],.offline-page input[type=date]{width:100%;margin-top:6px}.offline-page .absent{display:flex;margin:0}.offline-page .sr-only{display:block}.offline-page .sync-button{width:100%;margin:8px 0}.offline-lesson>button{margin:8px 0}.offline-comparison{max-width:100%;overflow-wrap:anywhere}.offline-comparison table{width:100%;table-layout:fixed;font-size:13px;border-collapse:collapse}.offline-comparison td,.offline-comparison th{padding:6px 3px;vertical-align:top;border-bottom:1px solid #cbdace;overflow-wrap:anywhere}.offline-page .action-dock button{margin:0}.offline-page form>button{width:100%}.eyebrow{font-size:12px;font-weight:600}.roster-status{display:inline-block}.history-button{width:100%}@media(min-width:600px){.roster-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media(max-width:359px){.date-row{grid-template-columns:minmax(0,1fr)}.date-row>button{justify-self:start}.offline-page .date-row>label{margin:0}}
