:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;color-scheme:light dark;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--page-space:var(--space-5);--section-space:var(--space-8);--radius:12px;--sheet-radius:24px;--touch:44px;--bg:#fafafa;--surface:#fff;--text:#171717;--muted:#666;--line:#dedede;--field:#f0f0f0;--danger:#a93232;--app-top:env(safe-area-inset-top,0px);--app-bottom:env(safe-area-inset-bottom,0px);--app-left:env(safe-area-inset-left,0px);--app-right:env(safe-area-inset-right,0px);background:var(--bg);color:var(--text)}@media(prefers-color-scheme:dark){:root{--bg:#131313;--surface:#1c1c1c;--text:#eee;--muted:#aaa;--line:#373737;--field:#252525;--danger:#ed9090}}:root[data-theme=dark]{color-scheme:dark;--bg:#131313;--surface:#1c1c1c;--text:#eee;--muted:#aaa;--line:#373737;--field:#252525;--danger:#ed9090}:root[data-theme=light]{color-scheme:light;--bg:#fafafa;--surface:#fff;--text:#171717;--muted:#666;--line:#dedede;--field:#f0f0f0;--danger:#a93232}*{box-sizing:border-box}html{touch-action:manipulation}body{margin:0;padding-left:var(--app-left);padding-right:var(--app-right)}button,input,textarea,select{font:inherit;color:inherit;max-width:100%}button{cursor:pointer;min-height:var(--touch);min-width:0;border:0;background:transparent;padding:var(--space-3);border-radius:var(--radius);text-align:left;overflow-wrap:anywhere;touch-action:manipulation}button:hover{background:var(--field)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--muted);outline-offset:2px}input,textarea,select{width:100%;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-3);background:var(--field);font-size:16px}select{appearance:none;height:48px;padding-right:var(--space-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%23888' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}input[type=checkbox]{width:20px;min-height:20px;flex:0 0 20px;accent-color:var(--text)}input[type=date],input[type=time],input[type=datetime-local]{display:block;max-width:100%;min-width:0;-webkit-appearance:none}textarea{resize:vertical;line-height:1.5}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:26px;letter-spacing:-.6px;line-height:1.2;margin:var(--space-6) 0 var(--space-4);font-weight:700}h2{font-size:20px;line-height:1.3;margin:var(--section-space) 0 var(--space-4);font-weight:650}h3{font-size:16px;margin:var(--space-6) 0 var(--space-3);font-weight:650}p{line-height:1.5;margin:var(--space-3) 0 var(--space-4)}small,time,.muted{font-size:13px;color:var(--muted)}small{line-height:1.5}.muted{font-size:14px}.shell{width:100%;max-width:800px;margin:auto;padding-bottom:calc(88px + var(--app-bottom))}header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:calc(var(--app-top) + var(--space-2)) var(--page-space) var(--space-2);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:2}header .brand{font-size:20px;font-weight:650;padding-left:0}header>div{display:flex;gap:var(--space-1)}.iconButton{width:44px;min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:10px;flex-shrink:0}.iconButton svg{width:22px;height:22px}main{padding:0 var(--page-space)}main>*{min-width:0}section{margin:var(--section-space) 0}section>h2:first-child,section>h3:first-child{margin-top:0}label{display:grid;gap:var(--space-2);margin:var(--space-4) 0;color:var(--muted);font-size:13px;min-width:0}label:has(input[type=checkbox]){display:flex;align-items:center;gap:var(--space-3);min-height:44px}.row{display:flex;gap:var(--space-2);align-items:center;border-bottom:1px solid var(--line);min-height:68px;min-width:0}.rowBody{flex:1;min-width:0;display:grid;gap:var(--space-1);padding:var(--space-4) 0}.rowBody strong{font-weight:550;overflow-wrap:anywhere}.rowBody small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.row>span{color:var(--muted);padding:var(--space-2);flex-shrink:0}.check{font-size:27px;width:44px;min-width:44px;flex-shrink:0;text-align:center;padding:var(--space-2)}.completed .rowBody{text-decoration:line-through;color:var(--muted)}.toolbar,.views{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-4) 0}.views{padding:var(--space-1);background:var(--field);border-radius:var(--radius)}.views button{flex:1;text-align:center;padding:var(--space-2)}.scheduleRow{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:72px;margin:var(--space-3) 0;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.scheduleRow>span:first-child{display:grid;gap:var(--space-1);flex:1;min-width:0}.scheduleRow strong{font-weight:600;overflow-wrap:anywhere}.scheduleRow small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduleRow .chevron{flex:0 0 20px;text-align:center;font-size:22px}.scheduleRow:hover{background:var(--field)}.selected{font-weight:650;background:var(--field)}.views .selected{background:var(--surface);outline:1px solid var(--line)}.empty{color:var(--muted);padding:var(--space-4) 0;margin:0}.quick{display:flex;gap:var(--space-1);padding:var(--space-1);margin:var(--space-6) 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--field);align-items:center;min-width:0}.quick input{flex:1;width:0;min-width:0;border:0;background:transparent;text-overflow:ellipsis;padding:var(--space-2)}.quick button{flex:0 0 auto;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--line);white-space:nowrap}.smartViews{display:flex;gap:var(--space-2);overflow-x:auto;max-width:100%;min-width:0;padding:var(--space-1) var(--space-5) var(--space-2) 0;margin:var(--space-4) 0;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.smartViews::-webkit-scrollbar{display:none}.smartViews button{flex:0 0 auto;white-space:nowrap;overflow-wrap:normal;padding:var(--space-2) var(--space-4);border:1px solid var(--line);font-weight:500}.smartViews .selected{background:var(--field);border-color:var(--muted);font-weight:650}button,nav,.views,.smartViews,.calendarHeading,.month,.weekStrip,.lessonEvent{-webkit-user-select:none;user-select:none}input,textarea,.rowBody strong,.rowBody small,.userText{-webkit-user-select:text;user-select:text}.status{font-size:13px;color:var(--muted);padding:var(--space-3) var(--page-space);margin:0;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;border-bottom:1px solid var(--line)}.status p{flex:1;margin:0;min-width:120px}.error{color:var(--danger);border-bottom:1px solid var(--line);padding:var(--space-3) var(--page-space);font-size:13px;display:flex;gap:var(--space-2);align-items:center;justify-content:space-between;overflow-wrap:anywhere}.error button{flex-shrink:0}.danger,.overdue .rowBody small{color:var(--danger)}.welcome{border-bottom:1px solid var(--line);padding-bottom:var(--space-6)}.welcome button{display:block;width:100%}details{border-bottom:1px solid var(--line);padding:var(--space-3) 0;margin:var(--space-4) 0}summary{font-size:16px;font-weight:600;cursor:pointer;padding:var(--space-3) 0;min-height:44px;overflow-wrap:anywhere}summary small{font-weight:400}.preview{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}nav{position:fixed;bottom:0;left:var(--app-left);right:var(--app-right);background:var(--bg);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:800px;margin:auto;padding:var(--space-2) var(--space-1) calc(var(--space-2) + var(--app-bottom));z-index:2}nav button{width:100%;height:52px;font-size:11px;font-weight:500;letter-spacing:-.2px;line-height:16px;text-align:center;padding:4px 1px;border-radius:var(--radius);display:grid;place-items:center;white-space:nowrap;overflow-wrap:normal;background:transparent}nav .navLabel{display:flex;align-items:center;justify-content:center;width:100%;height:44px;border-radius:var(--radius)}nav .selected{font-weight:500;background:transparent}nav .selected .navLabel{background:var(--field)}nav button:hover .navLabel{background:var(--field)}.backdrop{position:fixed;inset:0;background:#0006;z-index:10;display:flex;align-items:flex-end;justify-content:center;padding-top:calc(var(--space-5) + var(--app-top));padding-left:var(--app-left);padding-right:var(--app-right)}.sheet{width:100%;max-width:700px;max-height:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;margin:0;padding:0 var(--page-space) calc(var(--space-6) + var(--app-bottom));position:relative;outline:none;min-width:0}.sheet .backdrop{z-index:20}.sheetContent{padding-top:var(--space-3)}.sheetHandle{height:24px;display:grid;place-items:center;touch-action:none;cursor:grab}.sheetHandle span{width:36px;height:4px;background:var(--muted);border-radius:4px}.titleline{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center}.titleline h2{margin:0;flex:1}.close{background:var(--field)}.primary{background:var(--text);color:var(--surface);width:100%;text-align:center;font-weight:600;margin-top:var(--space-4);padding:var(--space-4);min-height:48px}.primary:hover{background:var(--muted)}.checkrow{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-2) 0;min-width:0}.checkrow>input:not([type=checkbox]){flex:1;min-width:0}.checkrow>button{flex:0 0 44px}.weekday{display:flex;flex-wrap:wrap;gap:var(--space-2)}.weekday label{display:grid;text-align:center;margin:var(--space-2) 0}.dialogActions{display:grid;gap:var(--space-2)}.dialogActions button{text-align:center}.sheetContent>.sheet .primary{margin-top:0}.event{display:grid;grid-template-columns:60px minmax(0,1fr);gap:var(--space-5);width:100%;margin:var(--space-2) 0;padding:var(--space-4) var(--space-3);align-items:start;border-radius:var(--radius);position:relative;line-height:1.5}.event+.event:before{content:"";position:absolute;top:-4px;left:92px;right:12px;height:1px;background:var(--line)}.event>span{display:grid;gap:var(--space-1);min-width:0}.event b{font-weight:550;overflow-wrap:anywhere}.event time{display:grid;gap:var(--space-1);font-size:12px;line-height:1.5}.event time strong{font-size:14px;color:var(--text);font-weight:600}.event small{overflow-wrap:anywhere}.calendarHeading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:var(--space-4) 0}.calendarHeading b{text-transform:capitalize;font-size:16px;flex:1;text-align:center;overflow-wrap:anywhere}.calendarControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.calendarControls label{margin:var(--space-2) 0}.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1);padding:var(--space-4) 0}.month button{text-align:center;min-height:48px;min-width:0;padding:var(--space-2) 0;display:grid;place-items:center;border-radius:10px}.month small{text-align:center;font-size:12px}.month button small{height:8px;line-height:8px}.month .otherMonth{color:var(--muted)}.month button.selected{outline:1px solid var(--muted)}.weekStrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1);margin:var(--space-4) 0}.weekStrip button{padding:var(--space-2) 0;font-size:12px;text-align:center;min-height:48px}.weekStrip .selected{outline:1px solid var(--line)}.dayGroup h3{margin:var(--space-6) 0 var(--space-3)}.dayGroup h3:first-letter{text-transform:uppercase}.createAction{display:flex;width:100%;align-items:center;gap:var(--space-4);min-height:76px;padding:var(--space-4) 0;border-bottom:1px solid var(--line);border-radius:0}.createAction>svg{flex:0 0 24px;width:24px;height:24px}.createAction>span:not(.chevron){display:grid;gap:var(--space-1);flex:1;min-width:0}.createAction strong{font-size:16px;font-weight:600}.createAction small{font-size:13px;font-weight:400}.chevron{color:var(--muted)}.searchEntry{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:44px;margin:var(--space-5) 0;background:var(--field);color:var(--muted)}.searchEntry svg{flex-shrink:0}.sectionHeading{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-6) 0 var(--space-3)}.sectionHeading h2{flex:1;margin:0}.hiddenFile{display:none}.filePicker{width:100%;min-height:48px;display:flex;align-items:center;gap:var(--space-3);border:1px solid var(--line);background:var(--field)}.fileRow{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--line);min-width:0}.fileRow>span{min-width:0;flex:1;overflow-wrap:anywhere}.fileRow small{display:block}.importPanel{border-top:1px solid var(--line);padding-top:var(--space-6)}.importSelection{margin-top:var(--space-6)}.importChoices .chosen{font-weight:650;background:var(--field)}.importChoices>button{padding:var(--space-4);border-radius:var(--radius)}.importSelection>small{display:block;margin-top:var(--space-3)}.gate{max-width:500px;margin:calc(var(--space-8) + var(--app-top)) auto 0;padding:var(--page-space);padding-bottom:calc(var(--space-6) + var(--app-bottom))}.gate a{display:inline-block;padding:var(--space-4);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);overflow-wrap:anywhere}@media(max-width:359px){:root{--page-space:var(--space-4)}.event{gap:var(--space-4)}.event+.event:before{left:88px}.calendarControls{grid-template-columns:minmax(0,1fr)}.quick{flex-wrap:wrap}.quick input{flex-basis:100%;width:100%}.quick button{width:100%;text-align:center}}@media(min-width:700px){.backdrop{padding-bottom:var(--space-6)}.sheet{border-radius:var(--sheet-radius);max-height:calc(100% - var(--space-6))}}
