@font-face{font-family:IM Fell DW Pica;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/im-fell-dw-pica-latin-400-normal-CvO4MhwA.woff2) format("woff2"),url(/assets/im-fell-dw-pica-latin-400-normal-BckB3Xg5.woff) format("woff")}@font-face{font-family:IM Fell DW Pica;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/im-fell-dw-pica-latin-400-italic-DofQCskI.woff2) format("woff2"),url(/assets/im-fell-dw-pica-latin-400-italic-YJapCll6.woff) format("woff")}@font-face{font-family:IM Fell DW Pica SC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/im-fell-dw-pica-sc-latin-400-normal-DiGyXIoI.woff2) format("woff2"),url(/assets/im-fell-dw-pica-sc-latin-400-normal-B7bljqnR.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Caslon Text;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-caslon-text-latin-400-normal-CfldDPV-.woff2) format("woff2"),url(/assets/libre-caslon-text-latin-400-normal-WtjoQ5sB.woff) format("woff")}@font-face{font-family:Libre Caslon Text;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/libre-caslon-text-latin-400-italic-snTzlHlN.woff2) format("woff2"),url(/assets/libre-caslon-text-latin-400-italic-C1OAqZ6C.woff) format("woff")}@font-face{font-family:Libre Caslon Text;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/libre-caslon-text-latin-700-normal-D1WVYPaO.woff2) format("woff2"),url(/assets/libre-caslon-text-latin-700-normal-B3n-DWsl.woff) format("woff")}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-400-normal-BbyBr73r.woff2) format("woff2"),url(/assets/courier-prime-latin-400-normal-BAlbUm6l.woff) format("woff")}:root{--paper: #efe4cc;--paper-2: #e6d8b9;--sheet: #f8f1e0;--sheet-2: #f3ead5;--ink: #2b2219;--ink-2: #4f4234;--muted: #7d6c57;--rule: #cdb994;--rule-2: #dccbaa;--blue-rule: #a9bccb;--green: #2f5a43;--green-2: #4c7a5c;--oxblood: #7c2f2a;--ink-blue: #2c4a63;--gold: #e3b44c;--gold-ink: #a77a1c;--ok: #2f6b45;--wait: #9a6a12;--no: #8a2f2a;--c-islam: #2f5a43;--c-math: #2c4a63;--c-copy: #6a4560;--c-tka: #8a4a22;--c-sci: #4f6b2a;--c-hist: #7d5524;--c-geo: #2e6468;--c-art: #8a3f45;--c-lit: #523f73;--c-habit: #5c4a32;--f-display: "IM Fell DW Pica", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--f-sc: "IM Fell DW Pica SC", "IM Fell DW Pica", Georgia, serif;--f-body: "Libre Caslon Text", "Iowan Old Style", Georgia, "Times New Roman", serif;--f-type: "Courier Prime", "Courier New", ui-monospace, monospace;--shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 2px 0 rgba(90,64,30,.08), 0 10px 24px -14px rgba(70,48,20,.35);color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(ellipse at 20% 0%,rgba(255,250,235,.55),transparent 55%),radial-gradient(ellipse at 100% 100%,rgba(150,110,60,.16),transparent 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .12 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-attachment:fixed;font-family:var(--f-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--ink-blue);text-decoration-thickness:1px;text-underline-offset:3px}h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;margin:0;line-height:1.15;text-wrap:balance;letter-spacing:.005em}h1{font-size:clamp(30px,3.4vw,42px)}h2{font-size:26px}h3{font-size:21px}h4{font-size:17px}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px dashed var(--ink-blue);outline-offset:2px}.sc{font-family:var(--f-sc);letter-spacing:.06em}.type{font-family:var(--f-type)}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12.5px}.num{font-variant-numeric:tabular-nums lining-nums}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}.hidden{display:none!important}.app{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100%}.side{position:sticky;top:0;height:100vh;overflow:auto;padding:26px 18px 20px 22px;border-right:1px solid var(--rule);background:linear-gradient(90deg,#fffaec59,#fffaec00),var(--paper-2);display:flex;flex-direction:column;gap:22px}.brand{display:flex;align-items:center;gap:12px;color:var(--green);text-decoration:none}.brand .name{font-family:var(--f-display);font-size:27px;line-height:1;color:var(--ink)}.brand .name i{display:block;font-family:var(--f-sc);font-style:normal;font-size:11.5px;letter-spacing:.16em;color:var(--muted);margin-top:5px}.toc{display:flex;flex-direction:column;gap:2px}.toc .head{font-family:var(--f-sc);font-size:12px;letter-spacing:.16em;color:var(--muted);margin:0 0 6px}.toc a{display:grid;grid-template-columns:26px 1fr auto;align-items:baseline;gap:6px;padding:7px 8px;border-radius:3px;color:var(--ink-2);text-decoration:none;font-size:16px}.toc a .rn{font-family:var(--f-sc);color:var(--muted);font-size:13px}.toc a .lead{border-bottom:1px dotted var(--rule);transform:translateY(-4px);min-width:10px}.toc a .label{display:flex;align-items:baseline;gap:6px}.toc a .badge{font-family:var(--f-type);font-size:12px;background:var(--oxblood);color:#fff6ec;border-radius:9px;padding:0 6px;line-height:18px}.toc a:hover{background:#fffaec8c;color:var(--ink)}.toc a.active{background:var(--sheet);color:var(--ink);box-shadow:0 0 0 1px var(--rule) inset}.toc a.active .rn{color:var(--green)}.side .who{margin-top:auto;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--rule);padding-top:14px}.side select{width:100%}.main{min-width:0;padding:30px max(16px,env(safe-area-inset-right,0px)) 60px max(16px,env(safe-area-inset-left,0px))}.page{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.mobilebar{display:none}.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow);position:relative}.sheet.ruled{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(169,188,203,.45) 31px,rgba(169,188,203,.45) 32px);background-position:0 14px}.pad{padding:20px 22px}.eyebrow{font-family:var(--f-sc);font-size:13px;letter-spacing:.14em;color:var(--muted)}.title-block{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap}.title-block .lead{max-width:62ch;color:var(--ink-2)}.fleuron{display:flex;align-items:center;gap:12px;color:var(--gold-ink)}.fleuron span{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--rule),transparent)}.fern{position:absolute;width:120px;color:var(--green-2);opacity:.18;pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--ink-2);background:var(--sheet);color:var(--ink);padding:7px 14px;border-radius:2px;cursor:pointer;font-size:15px;line-height:1.2;text-decoration:none;box-shadow:0 2px 0 var(--rule);transition:transform .08s ease,box-shadow .08s ease,background .15s}.btn:hover{background:#fffaf0}.btn:active{transform:translateY(2px);box-shadow:0 0 0 var(--rule)}.btn.primary{background:var(--green);color:#fbf4e2;border-color:#22432f;box-shadow:0 2px #1b3526}.btn.primary:hover{background:#356649}.btn.danger{color:var(--oxblood);border-color:var(--oxblood)}.btn.ghost{border-color:transparent;box-shadow:none;background:transparent;color:var(--ink-2)}.btn.ghost:hover{background:#fffaec99}.btn.sm{padding:4px 10px;font-size:14px}.btn[disabled]{opacity:.5;cursor:not-allowed}.chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--f-type);font-size:12.5px;line-height:1;padding:5px 8px;border:1px solid currentColor;border-radius:2px;white-space:nowrap}.chip.ok{color:var(--ok);background:#2f6b4514}.chip.wait{color:var(--wait);background:#9a6a1217;border-style:dashed}.chip.no{color:var(--no);background:#8a2f2a14}.chip.skip{color:var(--muted)}.chip.plain{color:var(--ink-2)}.field{display:flex;flex-direction:column;gap:4px}.field label,.lbl{font-family:var(--f-sc);font-size:13px;letter-spacing:.08em;color:var(--muted)}input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=search],select,textarea{background:#fffaf0;border:1px solid var(--rule);border-bottom:1.5px solid var(--ink-2);border-radius:2px;padding:8px 10px;min-width:0}textarea{min-height:70px;resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink-blue);box-shadow:0 0 0 3px #2c4a631f}.check{display:inline-flex;align-items:flex-start;gap:9px;cursor:pointer}.check input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border:1.5px solid var(--ink-2);background:#fffaf0;margin:2px 0 0;flex:none;display:grid;place-items:center;cursor:pointer;border-radius:1px}.check input:checked{background:var(--green);border-color:var(--green)}.check input:checked:after{content:"";width:10px;height:5px;border:2px solid #fbf4e2;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}.check input:disabled{opacity:.6;cursor:default}.stamp{--st: var(--oxblood);display:inline-grid;padding:6px;transform:rotate(-4deg);background:radial-gradient(circle at 5px 5px,transparent 2.6px,#fbf6ea 3px) -5px -5px / 10px 10px;filter:drop-shadow(0 2px 2px rgba(80,50,20,.22))}.stamp-in{border:1.5px solid var(--st);color:var(--st);min-width:92px;padding:8px 10px 6px;text-align:center;display:flex;flex-direction:column;align-items:center;background:#fbf6ea repeating-linear-gradient(45deg,rgba(124,47,42,.05) 0 4px,transparent 4px 8px)}.stamp-in b{font-family:var(--f-body);font-weight:400;font-size:30px;line-height:1;font-variant-numeric:lining-nums}.stamp-in span{font-family:var(--f-sc);font-size:11.5px;letter-spacing:.14em}.stamp.green{--st: var(--green);transform:rotate(3deg)}.stamp.blue{--st: var(--ink-blue);transform:rotate(-2deg)}.today-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:22px;align-items:start}.lesson{display:grid;grid-template-columns:58px minmax(0,1fr);border-left:0;overflow:hidden}.lesson .spine{background:var(--cc);color:#fbf4e2;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 0;position:relative}.lesson .spine:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 2px,transparent 2px 6px)}.lesson .spine .min{font-family:var(--f-type);font-size:12px;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.08em}.lesson .body{padding:16px 20px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}.lesson .head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.lesson .head h3{color:var(--ink)}.lesson .head .tag{font-family:var(--f-sc);letter-spacing:.1em;font-size:12.5px;color:var(--cc)}.lesson .intro{color:var(--ink-2);font-size:15px}.parts{display:flex;flex-direction:column;border-top:1px solid var(--rule-2)}.part{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--rule-2)}.part .k{font-family:var(--f-sc);font-size:13.5px;letter-spacing:.05em;color:var(--muted)}.part .v{font-size:16px}.part .v small{display:block;color:var(--muted);font-size:13.5px}.session{background:var(--sheet-2);border:1px dashed var(--rule);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.session .t{font-family:var(--f-display);font-size:20px}.session dl{display:grid;grid-template-columns:92px minmax(0,1fr);gap:4px 10px;margin:0;font-size:15px}.session dt{font-family:var(--f-sc);color:var(--muted);font-size:13px;letter-spacing:.05em;padding-top:2px}.session dd{margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.note-back{border-left:3px solid var(--oxblood);background:#7c2f2a0f;padding:8px 12px;font-size:15px;color:var(--oxblood)}.note-back.ok{border-color:var(--ok);color:var(--ok);background:#2f6b450f}.form-inline{display:flex;flex-direction:column;gap:10px;background:#fffaf0;border:1px solid var(--rule);padding:12px 14px}.ledger{padding:0}.ledger header{padding:16px 18px 10px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}.ledger table{width:100%;border-collapse:collapse}.ledger td{border-top:1px solid var(--rule-2);padding:10px 12px;vertical-align:top;font-size:15.5px}.ledger td.when{font-family:var(--f-sc);font-size:12.5px;letter-spacing:.08em;color:var(--muted);width:58px;padding-left:18px}.ledger td.st{text-align:right;width:1%;white-space:nowrap;padding-right:18px}.ledger .desc{display:block;color:var(--muted);font-size:13.5px}.ledger .opt{display:inline-block;margin-top:4px;font-size:13px;color:var(--ink-blue);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.daybar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.daybar>div{padding:12px 16px;border-right:1px solid var(--rule-2);display:flex;flex-direction:column;gap:2px}.daybar>div:last-child{border-right:0}.daybar b{font-family:var(--f-body);font-weight:400;font-size:28px;line-height:1.1;font-variant-numeric:lining-nums}.progress-line{height:8px;background:var(--paper-2);border:1px solid var(--rule);position:relative}.progress-line i{position:absolute;inset:0 auto 0 0;background:var(--cc, var(--green))}.holiday{text-align:center;padding:34px 20px;display:flex;flex-direction:column;gap:8px;align-items:center}.week{width:100%;border-collapse:collapse;min-width:760px}.week th,.week td{border:1px solid var(--rule-2);padding:10px;vertical-align:top;text-align:left}.week th{font-family:var(--f-sc);font-weight:400;letter-spacing:.08em;background:var(--sheet-2);font-size:14px}.week th.today{background:#f3e2b5}.week td.rowh{font-family:var(--f-sc);color:var(--muted);font-size:13.5px;width:120px;letter-spacing:.05em}.week .cell-t{font-size:15px}.week .cell-s{font-size:13px;color:var(--muted)}.scroll-x{overflow-x:auto}.seq-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.seq-card{padding:16px 18px;display:flex;flex-direction:column;gap:8px;border-top:4px solid var(--cc)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{padding:16px 18px;display:flex;flex-direction:column;gap:4px}.stat b{font-family:var(--f-body);font-weight:400;font-size:40px;line-height:1;font-variant-numeric:lining-nums}.chart text{font-family:var(--f-type);font-size:11px;fill:var(--muted)}.heat{border-collapse:separate;border-spacing:3px}.heat td{width:18px;height:18px;padding:0;border:1px solid var(--rule-2);background:#fffaf0}.heat td.approved{background:var(--green);border-color:var(--green)}.heat td.pending{background:repeating-linear-gradient(45deg,var(--gold) 0 3px,#fffaf0 3px 6px);border-color:var(--gold-ink)}.heat td.rejected{background:var(--oxblood);border-color:var(--oxblood)}.heat td.skipped{background:var(--paper-2)}.heat th{font-weight:400;text-align:left;padding-right:10px;font-size:14.5px;white-space:nowrap}.heat .pct{font-family:var(--f-type);font-size:13px;padding-left:10px;color:var(--ink-2)}.bars{display:flex;flex-direction:column;gap:10px}.bars .bar-row{display:grid;grid-template-columns:160px minmax(0,1fr) 72px;gap:12px;align-items:center;font-size:15px}.bars .bar-row .v{font-family:var(--f-type);font-size:13px;text-align:right;color:var(--ink-2)}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);align-items:center}.legend i{display:inline-block;width:12px;height:12px;border:1px solid var(--rule);vertical-align:-1px;margin-right:5px}.filters{display:grid;grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr));gap:10px;align-items:end}.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.card-lib{background:#fbf3df;border:1px solid var(--rule);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;position:relative;background-image:linear-gradient(to right,transparent 0,transparent 34px,rgba(124,47,42,.35) 34px,rgba(124,47,42,.35) 35px,transparent 35px),repeating-linear-gradient(to bottom,transparent 0,transparent 23px,rgba(169,188,203,.4) 23px,rgba(169,188,203,.4) 24px);background-position:0 0,0 38px;padding:14px 16px 12px 46px}.card-lib:before{content:"";position:absolute;left:13px;top:14px;width:10px;height:10px;border-radius:50%;border:1px solid var(--rule);background:var(--paper)}.card-lib .src{font-family:var(--f-type);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.card-lib h4{font-size:18px;line-height:1.2}.card-lib .by{font-size:14px;color:var(--ink-2);font-style:italic}.card-lib .loc{font-family:var(--f-type);font-size:12.5px;color:var(--ink-blue);overflow-wrap:anywhere}.card-lib .meta{display:flex;gap:6px;flex-wrap:wrap}.card-lib .meta span{font-size:12px;border:1px solid var(--rule);padding:1px 6px;color:var(--ink-2);background:#fffaf099}.card-lib .rs{display:flex;gap:4px;margin-top:auto;padding-top:6px;flex-wrap:wrap}.card-lib .rs button{font-size:12.5px;padding:3px 8px;border:1px solid var(--rule);background:#fffaf0;cursor:pointer;border-radius:2px}.card-lib .rs button.on{background:var(--green);color:#fbf4e2;border-color:var(--green)}.card-lib .inplan{position:absolute;right:10px;top:10px;font-family:var(--f-sc);font-size:11px;letter-spacing:.1em;color:var(--oxblood);border:1px solid var(--oxblood);padding:1px 5px;transform:rotate(3deg)}.shelf-sum{display:flex;gap:8px;flex-wrap:wrap}.shelf-sum button{border:1px solid var(--rule);background:var(--sheet);padding:5px 10px;cursor:pointer;font-size:14px;border-radius:2px}.shelf-sum button.on{background:var(--ink);color:var(--sheet);border-color:var(--ink)}.queue{display:flex;flex-direction:column;gap:14px}.qitem{display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:0 16px;padding:14px 18px 14px 0;align-items:start}.qitem .bar{background:var(--cc);align-self:stretch}.qitem .what{display:flex;flex-direction:column;gap:4px}.qitem .ctrl{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:220px}.kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:2px 10px;font-size:15px}.kv .k{font-family:var(--f-sc);color:var(--muted);font-size:13px;letter-spacing:.05em;padding-top:2px}.tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);flex-wrap:wrap}.tabs button{background:none;border:1px solid transparent;border-bottom:0;padding:8px 14px;cursor:pointer;font-family:var(--f-sc);letter-spacing:.06em;color:var(--muted);font-size:15px;margin-bottom:-1px}.tabs button.on{background:var(--sheet);border-color:var(--rule);color:var(--ink)}.edit-table{width:100%;border-collapse:collapse}.edit-table td,.edit-table th{border-bottom:1px solid var(--rule-2);padding:6px;vertical-align:top;text-align:left}.edit-table th{font-family:var(--f-sc);font-weight:400;color:var(--muted);font-size:13px;letter-spacing:.06em}.edit-table input,.edit-table textarea{width:100%}.edit-table textarea{min-height:54px;font-size:14px}.edit-table tr.cur td{background:#e3b44c2e}.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.login{min-height:100%;display:grid;place-items:center;padding:30px max(16px,env(safe-area-inset-right,0px)) 30px max(16px,env(safe-area-inset-left,0px))}.login .card{width:min(880px,100%);display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.login .cover{background:var(--green);color:#f4e9cf;padding:38px 32px;display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden}.login .cover h1{color:#fbf3df;font-size:46px}.login .cover .emblem{color:#f4e9cf}.login .cover .fern{color:#f4e9cf;opacity:.16;right:-16px;bottom:-20px;width:170px}.login .cover .quote{font-style:italic;color:#e7dcbf;max-width:34ch;font-size:15.5px;border-left:1px solid rgba(244,233,207,.4);padding-left:12px}.login form{padding:34px 30px;display:flex;flex-direction:column;gap:14px}.err{color:var(--oxblood);border:1px solid var(--oxblood);background:#7c2f2a0f;padding:8px 12px;font-size:14.5px}.demo-note{font-family:var(--f-type);font-size:12.5px;background:#fff3cf;border:1px dashed var(--gold-ink);padding:8px 10px;color:#6b4d10}.seg{display:inline-flex;border:1px solid var(--ink-2);border-radius:2px;overflow:hidden}.seg button{border:0;background:var(--sheet);padding:7px 14px;cursor:pointer}.seg button.on{background:var(--ink);color:var(--sheet)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b22198c;display:grid;place-items:center;z-index:50;padding:20px}.timer{background:var(--sheet);border:1px solid var(--rule);box-shadow:var(--shadow);padding:28px 34px;text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center;min-width:min(380px,100%)}.timer .clock{font-family:var(--f-display);font-size:72px;line-height:1;font-variant-numeric:tabular-nums lining-nums}.modal{background:var(--sheet);border:1px solid var(--rule);box-shadow:var(--shadow);padding:22px 24px;width:min(640px,100%);max-height:90vh;overflow:auto;display:flex;flex-direction:column;gap:14px}.toast{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:max(18px,env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--sheet);padding:10px 16px;font-size:15px;z-index:60;box-shadow:var(--shadow)}.center{padding:60px 20px;text-align:center;color:var(--muted)}.demo-banner{background:#fff3cf;border-bottom:1px dashed var(--gold-ink);font-family:var(--f-type);font-size:12.5px;padding:6px max(16px,env(safe-area-inset-right,0px)) 6px max(16px,env(safe-area-inset-left,0px));color:#6b4d10;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.demo-banner button{font:inherit;background:none;border:0;color:var(--ink-blue);text-decoration:underline;cursor:pointer;padding:0}.tka-frame{padding:18px}@media (max-width: 1080px){.today-grid{grid-template-columns:1fr}.stats,.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters .q{grid-column:1 / -1}}@media (max-width: 860px){.app{grid-template-columns:1fr}.side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--rule);padding:14px max(16px,env(safe-area-inset-right,0px)) 12px max(16px,env(safe-area-inset-left,0px));gap:12px}.side .toc{flex-direction:row;flex-wrap:wrap;gap:4px}.side .toc .head{display:none}.toc a{grid-template-columns:auto auto;padding:5px 9px;font-size:15px}.toc a .lead,.toc a .rn{display:none}.side .who{margin-top:0;flex-direction:row;align-items:center;flex-wrap:wrap;padding-top:10px}.side .who select{width:auto}.two,.login .card{grid-template-columns:1fr}.login .cover{padding:26px 22px}.qitem{grid-template-columns:6px minmax(0,1fr)}.qitem .ctrl{grid-column:2;min-width:0}}@media (max-width: 560px){.part{grid-template-columns:1fr;gap:2px}.lesson{grid-template-columns:40px minmax(0,1fr)}.daybar{grid-template-columns:1fr}.daybar>div{border-right:0;border-bottom:1px solid var(--rule-2)}.bars .bar-row{grid-template-columns:110px minmax(0,1fr) 56px}.stats{grid-template-columns:1fr 1fr}.session dl,.kv,.filters{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.ledger .fern{right:-22px;top:30px;width:110px}.timer text{font-family:var(--f-body)!important}
