@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}:root{--q-bg:#f2f5f4;--q-surface:#fff;--q-sunk:#e9eeec;--q-ink:#16211e;--q-muted:#586863;--q-line:#d3dbd8;--q-accent:#0e6a5b;--q-accent-ink:#fff;--q-accent-soft:#dbeee8;--q-good:#1c7439;--q-good-soft:#dff1e4;--q-warn:#8f5a05;--q-warn-soft:#f8ecd2;--q-bad:#b0241c;--q-bad-soft:#fbe6e3;--q-cat-1:#0e6a5b;--q-cat-2:#4a55c7;--q-cat-3:#b26a00;--q-cat-4:#c2376f;--q-cat-5:#1b7fb3;--q-cat-6:#7b4bc0;--q-side:#0f2f29;--q-side-ink:#eef5f3;--q-side-muted:#a5bfb7;--q-side-mark:#7fe0cb;--q-shadow:0 1px 2px #1028220f, 0 6px 20px #1028220f;--q-radius-lg:14px;--q-av-0:#0e6a5b;--q-av-1:#4a55c7;--q-av-2:#a85f00;--q-av-3:#c2376f;--q-av-4:#1b6f9e;--q-av-5:#7b4bc0;--q-av-6:#2f7a2a;--q-av-7:#b3401f;--q-floor:#f6f8f7;--q-desk:#ecdcc0;--q-desk-line:#c9b38c;--q-time:#b0241c;--q-grouping:#9a4d00;--q-grouping-soft:#fde9cf;--q-plan-line:#8f2a25;--q-band-0:#fbe1dd;--q-band-0-ink:#a11d16;--q-band-1:#fcefd0;--q-band-1-ink:#7d5200;--q-band-2:#eef2c9;--q-band-2-ink:#4f5d00;--q-band-3:#d9f0df;--q-band-3-ink:#176a33;--q-band-4:#bfe8cc;--q-band-4-ink:#0b5326;--q-font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "IBM Plex Sans", system-ui, sans-serif;--q-font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--q-font-data:"IBM Plex Mono", ui-monospace, Menlo, monospace;--q-text-xs:12px;--q-text-sm:13px;--q-text-md:15px;--q-text-lg:18px;--q-text-xl:26px;--q-leading:1.45;--q-space-1:4px;--q-space-2:8px;--q-space-3:12px;--q-space-4:16px;--q-space-6:24px;--q-space-8:32px;--q-radius:10px;--q-radius-pill:999px;--q-touch:44px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--q-bg:#0f1514;--q-surface:#171f1d;--q-sunk:#1e2826;--q-ink:#e5ecea;--q-muted:#98a8a3;--q-line:#2c3835;--q-accent:#5fc9b4;--q-accent-ink:#06211c;--q-accent-soft:#16332d;--q-good:#74d28e;--q-good-soft:#15301d;--q-warn:#e2b25c;--q-warn-soft:#352a12;--q-bad:#f29086;--q-bad-soft:#3a1c19;--q-cat-1:#5fc9b4;--q-cat-2:#9aa3ff;--q-cat-3:#e2b25c;--q-cat-4:#f08bb4;--q-cat-5:#6fc3ee;--q-cat-6:#b99af0;--q-side:#0a100f;--q-side-ink:#e5ecea;--q-side-muted:#8fa39d;--q-side-mark:#5fc9b4;--q-shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--q-av-0:#5fc9b4;--q-av-1:#9aa3ff;--q-av-2:#e2b25c;--q-av-3:#f08bb4;--q-av-4:#6fc3ee;--q-av-5:#b99af0;--q-av-6:#8ed486;--q-av-7:#f0a184;--q-floor:#121917;--q-desk:#4a3f2c;--q-desk-line:#6b5b40;--q-time:#f29086;--q-grouping:#f2b266;--q-grouping-soft:#3a2a12;--q-plan-line:#b5625c;--q-band-0:#47201c;--q-band-0-ink:#ffb1a8;--q-band-1:#40320f;--q-band-1-ink:#f0c670;--q-band-2:#343a12;--q-band-2-ink:#d3de7c;--q-band-3:#173522;--q-band-3-ink:#8adca1;--q-band-4:#1c4a2c;--q-band-4-ink:#a6efba;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--q-bg:#0f1514;--q-surface:#171f1d;--q-sunk:#1e2826;--q-ink:#e5ecea;--q-muted:#98a8a3;--q-line:#2c3835;--q-accent:#5fc9b4;--q-accent-ink:#06211c;--q-accent-soft:#16332d;--q-good:#74d28e;--q-good-soft:#15301d;--q-warn:#e2b25c;--q-warn-soft:#352a12;--q-bad:#f29086;--q-bad-soft:#3a1c19;--q-cat-1:#5fc9b4;--q-cat-2:#9aa3ff;--q-cat-3:#e2b25c;--q-cat-4:#f08bb4;--q-cat-5:#6fc3ee;--q-cat-6:#b99af0;--q-side:#0a100f;--q-side-ink:#e5ecea;--q-side-muted:#8fa39d;--q-side-mark:#5fc9b4;--q-shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--q-av-0:#5fc9b4;--q-av-1:#9aa3ff;--q-av-2:#e2b25c;--q-av-3:#f08bb4;--q-av-4:#6fc3ee;--q-av-5:#b99af0;--q-av-6:#8ed486;--q-av-7:#f0a184;--q-floor:#121917;--q-desk:#4a3f2c;--q-desk-line:#6b5b40;--q-time:#f29086;--q-grouping:#f2b266;--q-grouping-soft:#3a2a12;--q-plan-line:#b5625c;--q-band-0:#47201c;--q-band-0-ink:#ffb1a8;--q-band-1:#40320f;--q-band-1-ink:#f0c670;--q-band-2:#343a12;--q-band-2-ink:#d3de7c;--q-band-3:#173522;--q-band-3-ink:#8adca1;--q-band-4:#1c4a2c;--q-band-4-ink:#a6efba;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--q-bg);color:var(--q-ink);font-family:var(--q-font-body);font-size:var(--q-text-md);line-height:var(--q-leading)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--q-accent);outline-offset:2px}[hidden]{display:none!important}h2,h3{text-wrap:balance}.shell{grid-template-columns:236px minmax(0,1fr);min-height:100dvh;display:grid}.side{background:var(--q-side);color:var(--q-side-ink);flex-direction:column;gap:24px;height:100dvh;padding:20px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.side :focus-visible{outline-color:var(--q-side-mark)}.brand{font-family:var(--q-font-display);font-weight:700;font-size:var(--q-text-xl);letter-spacing:-.02em;align-items:center;gap:10px;margin:0;display:flex}.side .brand{color:var(--q-side-ink);padding:0 10px;font-size:22px}.side .brand svg{color:var(--q-side-mark);flex:none}.brand.mobile{font-size:18px;display:none}.tabs{flex-direction:column;gap:20px;display:flex}.tabgroup{flex-direction:column;gap:2px;display:flex}.navlabel{text-transform:uppercase;letter-spacing:.09em;color:var(--q-side-muted);padding:0 12px 6px;font-size:11px}.tabs button{width:100%;min-height:var(--q-touch);border-radius:var(--q-radius);color:var(--q-side-ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:8px 12px;font-weight:500;display:flex}.tabs button svg{opacity:.85;flex:none}.tabs button:hover{background:#ffffff14}.tabs button[aria-selected=true]{box-shadow:inset 3px 0 0 var(--q-side-mark);background:#ffffff24;font-weight:600}.tabs button[aria-selected=true] svg{opacity:1;color:var(--q-side-mark)}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:15;gap:var(--q-space-2) var(--q-space-4);padding:10px max(24px, env(safe-area-inset-right,0px)) 10px max(24px, env(safe-area-inset-left,0px));background:color-mix(in oklab, var(--q-bg) 86%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--q-line);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.content{width:100%;max-width:1320px;padding:20px max(24px, env(safe-area-inset-right,0px)) 64px max(24px, env(safe-area-inset-left,0px));gap:var(--q-space-4);flex-direction:column;display:flex}.classpick{font-family:var(--q-font-display);max-width:min(100%,340px);font-size:17px;font-weight:700}.pagehead{flex-direction:column;gap:2px;display:flex}.pagehead.row{flex-direction:row}.pagehead h2{font-family:var(--q-font-display);letter-spacing:-.02em;margin:0;font-size:26px;line-height:1.15}.hint{color:var(--q-muted);font-size:var(--q-text-sm);max-width:70ch;margin:0}.bottomnav{display:none}.shell{grid-template-columns:64px minmax(0,1fr)}.side{gap:14px;padding:14px 8px}.side .brand{justify-content:center;gap:0;padding:6px 0;font-size:0}.navlabel{display:none}.tabs{gap:8px}.tabgroup+.tabgroup{border-top:1px solid #ffffff24;padding-top:8px}.tabs button{justify-content:center;gap:0;min-height:42px;padding:8px;font-size:0;position:relative}.tabs button svg{width:21px;height:21px}.tabs button:hover:after,.tabs button:focus-visible:after{content:attr(title);z-index:40;white-space:nowrap;font-size:var(--q-text-sm);background:var(--q-ink);color:var(--q-bg);box-shadow:var(--q-shadow);pointer-events:none;border-radius:8px;padding:6px 10px;font-weight:500;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)}.side{overflow:visible}@media (max-width:640px){.shell{grid-template-columns:minmax(0,1fr)}.side{display:none}.brand.mobile{display:inline-flex}.topbar,.content{padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}.pagehead h2{font-size:22px}}.stack{gap:var(--q-space-3);flex-direction:column;display:flex}.row{gap:var(--q-space-2);flex-wrap:wrap;align-items:center;display:flex}.row.end{align-items:flex-end}.row.tight{flex-wrap:nowrap;gap:6px}.between{justify-content:space-between}.grow{flex:220px}.muted{color:var(--q-muted);font-size:var(--q-text-sm)}.warn{color:var(--q-warn);font-size:var(--q-text-sm);min-height:1.2em}.strong{font-weight:600}.mono{font-family:var(--q-font-data);font-size:var(--q-text-sm)}.gap-top{margin-top:var(--q-space-3)}ul.plain{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}select,.btn,.field{border:1px solid var(--q-line);background:var(--q-surface);border-radius:var(--q-radius);min-height:var(--q-touch);padding:8px 12px}.btn{cursor:pointer;justify-content:center;align-items:center;gap:6px;font-weight:500;text-decoration:none;transition:border-color .12s,background .12s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--q-muted)}.btn.primary{background:var(--q-accent);color:var(--q-accent-ink);border-color:var(--q-accent);font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--q-accent)}.btn.quiet{color:var(--q-accent);background:0 0;border-color:#0000;padding-inline:4px;text-decoration:underline}.btn:disabled{opacity:.5;cursor:not-allowed}.iconbtn{width:36px;height:36px;color:var(--q-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.iconbtn:hover:not(:disabled){background:var(--q-sunk);color:var(--q-ink)}.iconbtn:disabled{opacity:.3;cursor:default}.field{flex:160px;min-width:0}.field.narrow{flex:0 0 96px;width:96px}textarea.field{resize:vertical;width:100%;min-height:84px;line-height:var(--q-leading)}.seg{display:flex}.seg button{border:1px solid var(--q-line);background:var(--q-surface);min-height:var(--q-touch);cursor:pointer;margin-left:-1px;padding:8px 12px}.seg button:first-child{border-radius:var(--q-radius) 0 0 var(--q-radius);margin-left:0}.seg button:last-child{border-radius:0 var(--q-radius) var(--q-radius) 0}.seg button[aria-pressed=true]{background:var(--q-accent);color:var(--q-accent-ink);border-color:var(--q-accent);font-weight:600}.seg.small button{min-height:36px;font-size:var(--q-text-sm);padding:4px 12px}label.lbl{font-size:var(--q-text-sm);color:var(--q-muted);flex-direction:column;gap:4px;min-width:0;display:flex}label.lbl>input,label.lbl>select,label.lbl>textarea{color:var(--q-ink);font-size:var(--q-text-md)}label.lbl>.field,label.lbl>span>.field{flex:none}label.lbl small{color:var(--q-muted)}label.check{min-height:var(--q-touch);align-items:center;gap:8px;display:flex}label.check input{width:20px;height:20px;accent-color:var(--q-accent);flex:none}fieldset{border:1px solid var(--q-line);border-radius:var(--q-radius);min-width:0;margin:0;padding:8px 16px 14px}fieldset.stack{align-items:flex-start}fieldset.stack>ul,fieldset.stack>.row,fieldset.stack>small,fieldset.stack>p{align-self:stretch}legend{font-size:var(--q-text-sm);color:var(--q-muted);padding:0 4px}details>summary{cursor:pointer;min-height:28px;font-weight:600}details.wide-details{width:100%}details.wide-details>summary{color:var(--q-accent);font-weight:500}.dialog{border:1px solid var(--q-warn);background:var(--q-warn-soft);border-radius:var(--q-radius);padding:var(--q-space-3) var(--q-space-4)}.chip{border-radius:var(--q-radius-pill);font-size:var(--q-text-xs);background:var(--q-sunk);color:var(--q-ink);padding:2px 10px;font-weight:500;display:inline-block}.frame{border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);box-shadow:var(--q-shadow);overflow-x:auto}.pad{padding:var(--q-space-4)}.card{border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);padding:var(--q-space-4) 20px;box-shadow:var(--q-shadow);min-width:0}.card.flush{padding:0;overflow:hidden}.card h2,h3.sub{font-family:var(--q-font-display);align-items:center;gap:8px;margin:0;font-size:18px;display:flex}h3.sub{font-size:16px}details.card>summary{align-items:center;gap:8px;list-style:none;display:flex}details.card>summary::-webkit-details-marker{display:none}details.card>summary:after{content:"▾";color:var(--q-muted);margin-left:auto}details.card[open]>summary:after{content:"▴"}.welcome,.empty{border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);padding:var(--q-space-6);gap:var(--q-space-3);box-shadow:var(--q-shadow);flex-direction:column;align-items:flex-start;display:flex}.welcome h2{font-family:var(--q-font-display);margin:0;font-size:24px}.welcome p,.empty p{max-width:60ch;margin:0}.welcome form{width:100%;max-width:520px}.checklist{border:1px solid var(--q-accent);background:var(--q-accent-soft);border-radius:var(--q-radius);padding:var(--q-space-3) var(--q-space-4);flex-wrap:wrap;align-items:center;gap:4px 20px;display:flex}.checklist ol{flex-wrap:wrap;gap:4px 28px;margin:0;padding:0 0 0 20px;display:flex}.checklist li.done{color:var(--q-muted);text-decoration:line-through}.checklist li.next .btn{min-height:32px;padding-block:2px;font-weight:600}.toast{left:50%;bottom:max(16px, env(safe-area-inset-bottom,0px));z-index:30;align-items:center;gap:var(--q-space-2);border-radius:var(--q-radius);background:var(--q-ink);max-width:calc(100vw - 32px);color:var(--q-bg);padding:6px 8px 6px 16px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0000003d}.toast .btn.quiet{color:var(--q-bg);min-height:36px;font-weight:600}.avatar{--h:var(--q-av-0);object-fit:cover;letter-spacing:.02em;background:color-mix(in oklab, var(--h) 20%, var(--q-surface));color:color-mix(in oklab, var(--h) 72%, var(--q-ink));-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.avatar.h1{--h:var(--q-av-1)}.avatar.h2{--h:var(--q-av-2)}.avatar.h3{--h:var(--q-av-3)}.avatar.h4{--h:var(--q-av-4)}.avatar.h5{--h:var(--q-av-5)}.avatar.h6{--h:var(--q-av-6)}.avatar.h7{--h:var(--q-av-7)}.avatar.me{width:28px;height:28px;font-size:13px}.photobtn{cursor:pointer;vertical-align:middle;background:0 0;border:0;border-radius:50%;flex:none;padding:0;display:inline-flex}.photobtn:hover .avatar{box-shadow:0 0 0 2px var(--q-accent)}.who{align-items:center;gap:10px;min-width:0;display:flex}.status{font-size:var(--q-text-sm);color:var(--q-muted);align-items:center;gap:6px;display:inline-flex}.status svg{color:var(--q-good)}.status.pending svg{color:var(--q-warn)}.status.offline svg{color:var(--q-muted)}button.status{border-radius:var(--q-radius-pill);min-height:var(--q-touch);cursor:pointer;background:0 0;border:1px solid #0000;padding:8px 12px}button.status:hover:not(:disabled){border-color:var(--q-line);background:var(--q-surface)}button.status:disabled{cursor:default}.menu{position:relative}.menu>summary{border:1px solid var(--q-line);background:var(--q-surface);border-radius:var(--q-radius-pill);min-height:var(--q-touch);align-items:center;gap:8px;max-width:220px;padding:4px 12px 4px 6px;font-weight:500;list-style:none;display:flex}.menu>summary::-webkit-details-marker{display:none}.menu>summary:after{content:"▾";color:var(--q-muted)}.mename{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-body{z-index:20;gap:var(--q-space-2);min-width:280px;max-height:80vh;padding:var(--q-space-4);border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 12px 32px #0000002e}.menu-body .seg button{flex:1}.menu-body>.btn{justify-content:flex-start}.stats{gap:var(--q-space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat{border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);box-shadow:var(--q-shadow);min-width:0;padding:14px 18px}.stat b{font-family:var(--q-font-display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:28px;font-weight:700;line-height:1.15;display:block}.stat small{color:var(--q-muted);font-size:var(--q-text-xs);text-transform:uppercase;letter-spacing:.06em}.stat.alert b{color:var(--q-bad)}@media (max-width:640px){.stats{gap:var(--q-space-2);grid-template-columns:repeat(2,minmax(0,1fr))}}table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:100%}th,td{border-bottom:1px solid var(--q-line);border-right:1px solid var(--q-line);text-align:center;white-space:nowrap;padding:0}th{color:var(--q-muted);background:var(--q-sunk);padding:8px 10px;font-size:12.5px;font-weight:500}.first{z-index:1;text-align:left;background:var(--q-surface);text-overflow:ellipsis;min-width:170px;max-width:230px;padding:6px 12px;font-weight:500;position:sticky;left:0;overflow:hidden}th.first{background:var(--q-sunk);z-index:2}.last{text-align:left;border-right:0}tbody tr:last-child td{border-bottom:0}tbody tr:not(.avg):hover td:not(.final):not(.low):not(.high){background:color-mix(in oklab, var(--q-accent) 5%, var(--q-surface))}td.band,td.text{text-align:left;font-size:var(--q-text-sm);padding:6px 12px}td.num{font-family:var(--q-font-data);background:var(--q-sunk);padding:6px 12px}td.wrap{white-space:normal;min-width:200px}td.final{font-family:var(--q-font-data);background:var(--q-sunk);text-align:right;padding:6px 14px;font-size:15px;font-weight:500}th.finalhead{color:var(--q-ink);font-weight:600}tr.avg td{background:var(--q-sunk);font-family:var(--q-font-data);font-size:var(--q-text-sm);color:var(--q-muted);border-bottom:0;padding:10px}tr.avg td.first{font-family:var(--q-font-body)}th.cat{--cat:var(--q-accent);background:color-mix(in oklab, var(--cat) 22%, var(--q-surface));color:var(--q-ink);font-weight:600;font-size:var(--q-text-sm);border-top:3px solid var(--cat);vertical-align:top;padding:4px 8px 4px 4px}th.cat.d1{background:color-mix(in oklab, var(--cat) 14%, var(--q-surface));border-top:0;font-weight:500}th.cat.d2{background:color-mix(in oklab, var(--cat) 9%, var(--q-surface));border-top:0;font-weight:500}th.cat.d3{background:color-mix(in oklab, var(--cat) 6%, var(--q-surface));border-top:0;font-weight:500}.cathead{justify-content:space-between;align-items:center;gap:4px;display:flex}.catname{text-align:left;text-overflow:ellipsis;flex:1;overflow:hidden}.fold{cursor:pointer;width:32px;height:32px;color:var(--q-ink);background:0 0;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.fold:hover{background:color-mix(in oklab, var(--cat) 22%, transparent)}.catweight{font-family:var(--q-font-data);font-size:var(--q-text-xs);color:var(--q-muted);align-items:center;gap:3px;display:inline-flex}.catweight input{background:color-mix(in oklab, var(--q-surface) 70%, transparent);text-align:right;width:44px;min-height:30px;font-family:var(--q-font-data);font-size:var(--q-text-sm);color:var(--q-ink);border:1px solid #0000;border-radius:6px;padding:2px 6px}.catweight input:hover,.catweight input:focus{border-color:var(--q-line);background:var(--q-surface)}th.cat.folded .cathead{flex-direction:column;align-items:flex-start;gap:2px}th.cat.folded .catname{max-width:120px}th.coltitle{--cat:var(--q-accent);background:var(--q-surface);color:var(--q-ink);border-bottom:2px solid var(--cat);padding:2px 8px 2px 0;font-weight:500;position:relative}th.coltitle.dragging{z-index:5;box-shadow:var(--q-shadow);background:color-mix(in oklab, var(--cat) 14%, var(--q-surface))}.colhead{justify-content:center;align-items:center;gap:0;display:flex}.grip{width:26px;height:36px;color:var(--q-muted);cursor:grab;touch-action:none;opacity:.55;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.grip:hover,.grip:focus-visible{opacity:1;background:var(--q-sunk)}th.coltitle.dragging .grip{cursor:grabbing}td.cell{position:relative}td.cell.noted:after{content:"";border-style:solid;border-width:0 9px 9px 0;border-color:transparent var(--q-warn) transparent transparent;pointer-events:none;position:absolute;top:0;right:0}td.cell.current{box-shadow:inset 0 0 0 2px var(--q-accent)}td input.g{width:68px;min-height:var(--q-touch);text-align:center;font-family:var(--q-font-data);background:0 0;border:0;font-size:14px}td input.g.words{text-align:left;width:132px;padding:0 8px;font-family:inherit}td.cell.mark{text-align:center;padding:0}.markbtn{width:100%;min-width:56px;min-height:var(--q-touch);color:var(--q-ink);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.markbtn:hover{background:color-mix(in oklab, var(--q-accent) 8%, transparent)}.markbtn.on{color:var(--q-accent)}.markbtn.good,.iconpick.good{color:var(--q-good)}.markbtn.bad,.iconpick.bad{color:var(--q-bad)}.markbtn.warn,.iconpick.warn{color:var(--q-warn)}.markbtn.on.good{background:var(--q-good-soft)}.markbtn.on.bad{background:var(--q-bad-soft)}.markbtn.on.warn{background:var(--q-warn-soft)}.iconpanel{border:1px solid var(--q-line);border-radius:var(--q-radius);background:var(--q-surface);z-index:3;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex;position:sticky;top:0}.iconpanel>.muted{font-size:var(--q-text-sm);margin-right:4px}.iconpick{width:44px;height:44px;color:var(--q-ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.iconpick:hover{background:color-mix(in oklab, var(--q-accent) 8%, transparent)}.iconpick[aria-checked=true]{background:color-mix(in oklab, currentColor 12%, var(--q-surface));border-color:currentColor;box-shadow:inset 0 0 0 1px}td input.g:focus{background:var(--q-accent-soft);outline:0}td input.g.invalid{box-shadow:inset 0 0 0 2px var(--q-bad);background:var(--q-bad-soft)}td input.g.low{color:var(--q-bad);font-weight:500}td input.g.high{color:var(--q-good);font-weight:500}td.catres{--cat:var(--q-accent);font-family:var(--q-font-data);background:color-mix(in oklab, var(--cat) 9%, var(--q-surface));padding:6px 12px;font-weight:500}td.catres.low{color:var(--q-bad)}td.catres.high{color:var(--q-good)}.notebar{border:1px solid var(--q-accent);background:var(--q-accent-soft);border-radius:var(--q-radius);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.notebar svg{color:var(--q-accent);flex:none}.notewho{font-weight:600;font-size:var(--q-text-sm)}.notebar .field{flex:240px}.mark{width:48px;height:var(--q-touch);cursor:pointer;font-family:var(--q-font-data);background:0 0;border:0;font-size:14px;font-weight:500}.mark.p{color:var(--q-muted)}.legend{font-size:var(--q-text-sm);color:var(--q-muted);flex-wrap:wrap;gap:12px;display:flex}.legend b{font-family:var(--q-font-data);color:var(--q-ink);margin-right:4px}.login{gap:var(--q-space-4);flex-direction:column;max-width:412px;margin:8vh auto 0;padding:0 16px 32px;display:flex}.login.wide{max-width:492px}.login form{gap:var(--q-space-3);border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);padding:var(--q-space-6);box-shadow:var(--q-shadow);flex-direction:column;display:flex}.login h2{font-family:var(--q-font-display);margin:0;font-size:20px}.login .card{padding:var(--q-space-6)}.divider{text-align:center}.qr{width:210px;height:210px;image-rendering:pixelated;background:#fff;border-radius:8px;align-self:center}.setupkey{font-family:var(--q-font-data);letter-spacing:.06em;background:var(--q-sunk);border-radius:var(--q-radius);text-align:center;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;padding:10px;font-size:15px}.narrowform{max-width:400px}.invitebox{border:1px solid var(--q-accent);background:var(--q-accent-soft);border-radius:var(--q-radius);padding:var(--q-space-3) var(--q-space-4)}.week{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}@media (max-width:860px){.week{grid-template-columns:1fr}}.day{border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);min-width:0;box-shadow:var(--q-shadow);flex-direction:column;gap:8px;padding:12px;display:flex}.day.today{border-color:var(--q-accent);box-shadow:inset 0 3px 0 var(--q-accent), var(--q-shadow)}.day h3,.group h3{color:var(--q-muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:12.5px;font-weight:500}.slot{border-radius:var(--q-radius);background:var(--q-sunk);flex-direction:column;gap:6px;min-width:0;padding:8px;display:flex}.slot.mine{background:var(--q-accent-soft)}.slot small{font-family:var(--q-font-data);font-size:var(--q-text-xs);color:var(--q-muted)}.slot b{font-size:var(--q-text-sm);font-weight:600}.slot .field{flex:none;width:100%;padding:6px 8px}.attached li{background:var(--q-surface);border:1px solid var(--q-line);border-radius:var(--q-radius);font-size:var(--q-text-sm);justify-content:space-between;align-items:center;gap:4px;min-width:0;padding:0 0 0 10px;display:flex}.attached li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chipx{cursor:pointer;width:32px;height:32px;color:var(--q-muted);background:0 0;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.chipx:hover{background:var(--q-sunk);color:var(--q-ink)}select.mini{width:100%;min-height:36px;font-size:var(--q-text-sm);color:var(--q-accent);background:0 0;border-style:dashed;padding:4px 8px}.board{font-size:var(--q-text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--q-muted);text-align:center;border-bottom:3px solid var(--q-line);padding:8px}.board.bottom{border-bottom:0;border-top:3px solid var(--q-line)}.room{gap:8px;padding:12px;display:grid}.roomwrap{border:1px solid var(--q-line);border-radius:var(--q-radius)}.seat{border:1px solid var(--q-line);border-radius:var(--q-radius);background:var(--q-surface);text-align:left;cursor:pointer;flex-direction:column;gap:2px;min-width:0;min-height:68px;padding:8px;display:flex}.seat.empty{background:0 0;border-style:dashed}.seat.abs b{color:var(--q-muted);text-decoration:line-through}.seat.abs .avatar{filter:grayscale()}.seat b{font-size:var(--q-text-sm);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:500;overflow:hidden}.seat small{font-family:var(--q-font-data);font-size:var(--q-text-xs);color:var(--q-muted)}.pickstage{align-items:center;gap:20px;min-height:92px;display:flex}.picked{font-family:var(--q-font-display);letter-spacing:-.02em;text-wrap:balance;min-height:1.1em;font-size:clamp(32px,7vw,60px);font-weight:700;line-height:1.05}.roster{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;display:grid}.person{min-height:var(--q-touch);border:1px solid var(--q-line);border-radius:var(--q-radius);background:var(--q-surface);text-align:left;cursor:pointer;align-items:center;gap:8px;min-width:0;padding:5px 10px;display:flex}.person .pname{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.person.done{background:var(--q-accent-soft);border-color:var(--q-accent)}.person.now{box-shadow:0 0 0 2px var(--q-accent)}.person.away{cursor:default;border-style:dashed}.person.away .avatar{filter:grayscale()}.person.away .pname{color:var(--q-muted);text-decoration:line-through}.person.seatlike{flex-direction:column;align-items:flex-start;gap:2px;min-height:68px;padding:8px}.person.seatlike .pname{max-width:100%;font-size:var(--q-text-sm);flex:none}.tick{color:var(--q-accent);font-family:var(--q-font-data);font-size:var(--q-text-sm);align-items:center;gap:2px;font-weight:500;display:inline-flex}.groups{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.group{background:var(--q-sunk);border-radius:var(--q-radius);flex-direction:column;gap:8px;padding:12px;display:flex}.group li{align-items:center;gap:8px;display:flex}ul.cards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;display:grid}.resource{border-top:3px solid var(--q-cat-1);flex-direction:column;gap:8px;display:flex}.resource.k-activity{border-top-color:var(--q-cat-2)}.resource.k-resource{border-top-color:var(--q-cat-3)}.resource h3{font-family:var(--q-font-display);margin:0;font-size:18px;line-height:1.2}.resource p{font-size:var(--q-text-sm);margin:0}.kind{text-transform:uppercase;letter-spacing:.08em;color:var(--q-muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.resource .actions{margin-top:auto;padding-top:4px}.resource .actions .btn{min-height:40px}.formgrid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;display:grid}.span2{grid-column:span 2}.span3{grid-column:1/-1}@media (max-width:640px){.formgrid{grid-template-columns:minmax(0,1fr)}.span2{grid-column:auto}}.repfinal{flex-wrap:wrap;align-items:center;gap:16px 24px;display:flex}.repfinal small{font-size:var(--q-text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--q-muted);display:block}.repfinal b{font-family:var(--q-font-data);font-size:32px;font-weight:500;line-height:1.1;display:block}.repname{font-family:var(--q-font-display);font-size:22px;font-weight:700}.scroll{border-top:1px solid var(--q-line);overflow-x:auto}.lv{text-align:left;white-space:normal;width:100%;min-width:104px;min-height:48px;font-size:var(--q-text-sm);cursor:pointer;background:0 0;border:0;padding:8px 10px;display:block}.lv[aria-pressed=true]{background:var(--q-accent-soft);box-shadow:inset 0 0 0 2px var(--q-accent);font-weight:600}.result{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.result>b{font-family:var(--q-font-data);font-size:28px;font-weight:500}.result>span:first-child{font-size:var(--q-text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--q-muted)}input.inline{border:1px solid #0000;border-bottom:1px dashed var(--q-line);background:0 0;border-radius:6px 6px 0 0;width:100%;min-width:0;min-height:36px;padding:4px 6px;font-weight:500}input.inline:hover,input.inline:focus{border-color:var(--q-line);background:var(--q-surface)}td.edit{white-space:nowrap;min-width:280px;max-width:380px;padding:4px 8px}td.edit input.inline{width:calc(50% - 26px);margin-left:4px;display:inline-block}.dot{background:var(--cat,var(--q-accent));border-radius:50%;flex:none;width:10px;height:10px}.dot.sub{opacity:.6;width:6px;height:6px}ul.tree li{border-bottom:1px solid var(--q-line);flex-wrap:nowrap;gap:4px;min-height:40px}ul.tree li:last-child{border-bottom:0}ul.tree li input.inline{border-bottom-color:#0000;flex:140px;font-weight:500}ul.tree li input.inline.narrow{text-align:right;width:56px;font-family:var(--q-font-data);flex:0 0 56px}ul.tree li .btn.quiet{min-height:36px;font-size:var(--q-text-sm);white-space:nowrap}@media (max-width:640px){ul.tree li{flex-wrap:wrap}.seat small .wide{display:none}.menu-body{min-width:0;position:fixed;top:auto;left:16px;right:16px}.mename{max-width:96px}}.printonly{font-family:var(--q-font-display);margin:0;font-size:20px;display:none}@media print{body{color:#000;background:#fff}.shell{display:block}.side,.topbar,.bottomnav,.noprint,.dialog,.toast,.checklist,.hint,#report-student{display:none!important}.content{padding:0}.printonly{display:block}.frame,.card{box-shadow:none;border:0;overflow:visible}.first{position:static}}.roomwrap{border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);box-shadow:var(--q-shadow);overflow:hidden}.roomfit{background-color:var(--q-floor);background-image:radial-gradient(var(--q-line) 1px, transparent 1px);background-size:24px 24px;overflow:auto hidden}.roomcanvas{transform-origin:0 0;position:relative}.rtable{position:absolute}.rtable.dragging{filter:drop-shadow(0 10px 18px #00000038)}.surface{background:var(--q-desk);border:1.5px solid var(--q-desk-line);cursor:grab;touch-action:none;box-shadow:0 2px 0 var(--q-desk-line);border-radius:12px;position:absolute}.surface.round{border-radius:50%}.rtable.sel .surface{outline:2px solid var(--q-accent);outline-offset:3px}.tgrip{z-index:3;border:1px solid var(--q-desk-line);background:var(--q-surface);width:28px;height:28px;color:var(--q-muted);cursor:grab;touch-action:none;opacity:.75;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:-12px;left:-8px}.tgrip:hover,.tgrip:focus-visible,.rtable.sel .tgrip{opacity:1;color:var(--q-accent);border-color:var(--q-accent)}.seatslot{border-radius:12px;width:84px;height:76px;padding:3px;position:absolute}.seatslot.over{background:color-mix(in oklab, var(--q-accent) 22%, transparent)}.seatslot .seat,.traychip .seat{border:1px solid var(--q-line);background:var(--q-surface);text-align:center;cursor:grab;touch-action:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;height:100%;min-height:0;padding:5px 4px 3px;display:flex;position:relative;box-shadow:0 1px 2px #00000014}.seatslot .seat b,.traychip .seat b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:500;line-height:1.2;overflow:hidden}.seatslot .seat.empty{background:color-mix(in oklab, var(--q-surface) 55%, transparent);box-shadow:none;cursor:pointer;border-style:dashed}.seatslot span.seat.empty{cursor:default}.seat.sel{outline:2px solid var(--q-accent);outline-offset:-2px;background:var(--q-accent-soft)}.seat.dragging{cursor:grabbing;box-shadow:0 10px 22px #00000040}.tray{border:1.5px dashed var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);flex-wrap:wrap;align-items:center;gap:8px;min-height:64px;padding:8px 12px;display:flex}.tray.over{border-color:var(--q-accent);background:var(--q-accent-soft)}.traylabel{font-size:var(--q-text-sm);color:var(--q-muted);margin-right:4px}.traychip{flex:none;width:84px;height:72px}.tablebar{border:1px solid var(--q-accent);background:var(--q-accent-soft);border-radius:var(--q-radius);padding:6px 12px}.tablebar b{font-size:var(--q-text-sm);margin-right:auto}.tablebar .btn{min-height:36px;padding-block:4px}.seatslot .person.seatlike{text-align:center;justify-content:center;align-items:center;gap:1px;width:100%;height:100%;min-height:0;padding:4px;position:relative}.seatslot .person.seatlike .pname{font-size:12px}.seatslot .person.seatlike .tick{font-size:11px;position:absolute;top:2px;right:4px}.seatslot .person.seatlike .muted{display:none}.planbtn{min-height:36px;font-size:var(--q-text-sm);color:var(--q-accent);background:0 0;border-style:dashed;justify-content:flex-start;padding:4px 8px}.lessonplan h2{font-size:18px}.plangrid{border:2px solid var(--q-plan-line);border-radius:var(--q-radius);overflow:hidden}.planrow{border-top:1px solid var(--q-plan-line);grid-template-columns:52px minmax(0,3fr) minmax(0,2fr);display:grid}.planrow>*{border-left:1px solid var(--q-plan-line);min-width:0;padding:8px 10px}.planrow>:first-child{border-left:0}.planrow.head{background:color-mix(in oklab, var(--q-plan-line) 12%, var(--q-surface));font-weight:600;font-size:var(--q-text-sm);text-transform:uppercase;letter-spacing:.06em;border-top:0}.planempty{border-top:1px solid var(--q-plan-line);margin:0;padding:14px}.seq{font-family:var(--q-font-data);text-align:center;color:var(--q-muted);font-weight:500;padding-top:14px!important}.actcell,.matcell{flex-direction:column;gap:6px;display:flex}input.inline.acttitle{font-size:15px;font-weight:600}.actmeta{gap:6px}.timefield{color:var(--q-time);font-weight:600;font-size:var(--q-text-sm);background:var(--q-bad-soft);border-radius:var(--q-radius-pill);align-items:center;gap:4px;min-height:32px;padding:0 10px 0 8px;display:inline-flex}.timefield input{text-align:right;width:44px;color:var(--q-time);font-weight:600;font-family:var(--q-font-data);appearance:textfield;background:0 0;border:0;padding:2px}.timefield input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.timefield input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.copies input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.copies input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.timefield input::placeholder{color:var(--q-time);opacity:.6}.chip.time{background:var(--q-bad-soft);color:var(--q-time);align-items:center;gap:4px;padding-block:4px;font-weight:600;display:inline-flex}.chip.time.over{background:var(--q-time);color:var(--q-surface)}.chip.grouping{background:var(--q-grouping-soft);color:var(--q-grouping);align-items:center;gap:4px;padding-block:5px;font-weight:600;display:inline-flex}.btn.small{min-height:32px;font-size:var(--q-text-sm)}.chipbtn{border:1px solid var(--q-line);border-radius:var(--q-radius-pill);background:var(--q-surface);min-height:32px;color:var(--q-muted);font-size:var(--q-text-xs);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:2px 10px;font-weight:500;display:inline-flex}.choosegrouping .chipbtn.on{background:var(--q-grouping-soft);border-color:var(--q-grouping);color:var(--q-grouping);font-weight:600}.chipbtn.create.on{background:var(--q-warn-soft);border-color:var(--q-warn);color:var(--q-warn);font-weight:600}.chipbtn.print.on{background:var(--q-accent-soft);border-color:var(--q-accent);color:var(--q-accent);font-weight:600}.material{border-bottom:1px dashed var(--q-line);flex-wrap:wrap;align-items:center;gap:2px 6px;padding-bottom:4px;display:flex}.material input.inline{border-bottom-color:#0000;flex:120px}.copies{font-family:var(--q-font-data);font-size:var(--q-text-sm);color:var(--q-accent);align-items:center;gap:2px;display:inline-flex}.copies input{border:1px solid var(--q-line);background:var(--q-surface);text-align:right;width:46px;min-height:30px;font-family:var(--q-font-data);appearance:textfield;border-radius:6px;padding:2px 4px}.field.small{min-height:36px;font-size:var(--q-text-sm);padding:4px 8px}.prep{border-top:1px solid var(--q-line);padding-top:var(--q-space-3);flex-direction:column;gap:6px;display:flex}.prep ul{font-size:var(--q-text-sm);margin:4px 0 0;padding-left:18px}.row.top{align-items:flex-start;gap:12px 40px}@media (max-width:760px){.planrow{grid-template-columns:40px minmax(0,1fr)}.planrow.head>:last-child{display:none}.planrow .matcell{border-left:1px solid var(--q-plan-line);border-top:1px dashed var(--q-plan-line);grid-column:2}}.vh{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}th.coltitle{vertical-align:bottom;padding:2px 0 6px}.colhead{flex-direction:column-reverse;gap:2px}.vtitle{writing-mode:vertical-rl;text-align:left;flex-direction:column;gap:1px;max-height:150px;line-height:1.2;display:inline-flex;transform:rotate(180deg)}.vtitle>span{text-overflow:ellipsis;white-space:nowrap;max-height:150px;font-size:13px;font-weight:600;overflow:hidden}.vtitle>small{text-overflow:ellipsis;white-space:nowrap;max-height:150px;color:var(--q-muted);font-size:11px;font-weight:400;overflow:hidden}.grip{width:100%;min-width:30px;height:24px}.grip svg{transform:rotate(90deg)}td input.g{width:58px}select.mini.solid{width:auto;color:var(--q-ink);background:var(--q-surface);border-style:solid}.copies b{white-space:nowrap;font-weight:600}.copies{flex-wrap:wrap;gap:6px}ul.bases{gap:8px}.base{border-left:4px solid var(--q-cat-1);padding-block:12px}.base.f1{border-left-color:var(--q-cat-2)}.base.f2{border-left-color:var(--q-cat-3)}.base.f3{border-left-color:var(--q-cat-4)}.base.f4{border-left-color:var(--q-cat-5)}.base.f5{border-left-color:var(--q-cat-6)}details.card.base>summary{align-items:flex-start;gap:12px;font-weight:400}.basehead{flex-direction:column;gap:2px;min-width:0;display:flex}.basehead b{font-family:var(--q-font-display);font-size:18px;line-height:1.25}.basebody{border-top:1px solid var(--q-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 32px;margin-top:12px;padding-top:12px;display:grid}.basebody h3{font-size:var(--q-text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--q-muted);margin:0 0 4px;font-weight:600}.basebody p{max-width:65ch;margin:0 0 8px}.basebody ul{margin:0 0 8px;padding-left:18px}@media (max-width:760px){.basebody{grid-template-columns:minmax(0,1fr)}}.shell{--q-class:var(--q-accent)}.topbar{background:color-mix(in oklab, var(--q-class) 13%, var(--q-bg));box-shadow:inset 0 -3px 0 var(--q-class);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:0;padding-block:12px}.classdot{background:var(--q-class);width:14px;height:14px;box-shadow:0 0 0 4px color-mix(in oklab, var(--q-class) 22%, transparent);border-radius:50%;flex:none;margin-inline:4px 2px}.classpick{letter-spacing:-.02em;background:0 0;border-color:#0000;max-width:min(100%,420px);padding-left:6px;font-size:22px}.classpick:hover,.classpick:focus{background:var(--q-surface);border-color:var(--q-line)}.topbar .btn{background:color-mix(in oklab, var(--q-surface) 70%, transparent)}.pagehead h2{font-size:21px}.btn,.field,select{transition:border-color .12s,background .12s,box-shadow .12s}.btn:active:not(:disabled){transform:translateY(1px)}.field:focus,select:focus{border-color:var(--q-accent);box-shadow:0 0 0 3px color-mix(in oklab, var(--q-accent) 18%, transparent);outline:0}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.frame.grid{border-radius:var(--q-radius-lg);width:-moz-fit-content;width:fit-content;max-width:100%}.frame.grid table{width:auto}.frame.grid .first{min-width:210px;padding-block:5px}.frame.grid tbody tr:not(.avg) td{height:48px}.who .avatar{box-shadow:0 0 0 2px var(--q-surface), 0 0 0 3px color-mix(in oklab, var(--q-class) 35%, var(--q-line))}td.cell.b0,td.catres.b0{background:var(--q-band-0)}td.cell.b1,td.catres.b1{background:var(--q-band-1)}td.cell.b2,td.catres.b2{background:var(--q-band-2)}td.cell.b3,td.catres.b3{background:var(--q-band-3)}td.cell.b4,td.catres.b4{background:var(--q-band-4)}td.cell.b0 input.g,td.catres.b0{color:var(--q-band-0-ink)}td.cell.b1 input.g,td.catres.b1{color:var(--q-band-1-ink)}td.cell.b2 input.g,td.catres.b2{color:var(--q-band-2-ink)}td.cell.b3 input.g,td.catres.b3{color:var(--q-band-3-ink)}td.cell.b4 input.g,td.catres.b4{color:var(--q-band-4-ink)}td.cell[class*=\ b] input.g{font-weight:500}tbody tr:not(.avg):hover td.cell[class*=\ b]{filter:saturate(1.25)}td.final{background:var(--q-surface);padding-inline:10px}.finalpill{border-radius:var(--q-radius-pill);text-align:center;background:var(--q-sunk);min-width:52px;padding:5px 10px;font-weight:600;display:inline-block}.finalpill.b0{background:var(--q-band-0);color:var(--q-band-0-ink)}.finalpill.b1{background:var(--q-band-1);color:var(--q-band-1-ink)}.finalpill.b2{background:var(--q-band-2);color:var(--q-band-2-ink)}.finalpill.b3{background:var(--q-band-3);color:var(--q-band-3-ink)}.finalpill.b4{background:var(--q-band-4);color:var(--q-band-4-ink)}.chip.b1{background:var(--q-band-1);color:var(--q-band-1-ink)}.chip.b2{background:var(--q-band-2);color:var(--q-band-2-ink)}.chip.b0{background:var(--q-band-0);color:var(--q-band-0-ink)}.chip.b3{background:var(--q-band-3);color:var(--q-band-3-ink)}.chip.b4{background:var(--q-band-4-ink);color:var(--q-surface)}th.first,th.finalhead,thead th.last{background:var(--q-surface);color:var(--q-ink);font-weight:600;font-size:var(--q-text-sm)}tr.avg td{background:color-mix(in oklab, var(--q-class) 7%, var(--q-surface));border-top:2px solid var(--q-line)}.stats{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,2fr)}.stat.dist{flex-direction:column;gap:4px;display:flex}.bars{align-items:flex-end;gap:8px;height:84px;display:flex}.barcol{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;min-width:0;height:100%;display:flex}.barcol i{font-style:normal;font-family:var(--q-font-data);font-size:var(--q-text-xs)}.barcol em{color:var(--q-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10.5px;font-style:normal;overflow:hidden}.bar{background:var(--q-sunk);border-radius:6px 6px 2px 2px;width:100%;max-width:44px}.bar.b0{background:var(--q-band-0-ink)}.bar.b1{background:var(--q-band-1-ink)}.bar.b2{background:var(--q-band-2-ink)}.bar.b3{background:var(--q-band-3-ink)}.bar.b4{background:var(--q-band-4-ink)}@media (max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat.dist{grid-column:1/-1}}.mark{border-radius:50%;width:36px;height:36px;margin:4px 8px;font-weight:600}.mark.p{background:var(--q-band-3);color:var(--q-band-3-ink)}.mark.a{background:var(--q-band-0);color:var(--q-band-0-ink)}.mark.l{background:var(--q-band-1);color:var(--q-band-1-ink)}.mark.e{background:color-mix(in oklab, var(--q-av-1) 18%, var(--q-surface));color:color-mix(in oklab, var(--q-av-1) 75%, var(--q-ink))}.swatches{gap:8px}.swatch{--h:var(--q-av-0);border:2px solid var(--q-surface);background:var(--h);cursor:pointer;width:32px;height:32px;box-shadow:0 0 0 1px var(--q-line);border-radius:50%}.swatch[aria-checked=true]{box-shadow:0 0 0 3px var(--h)}.login{margin-top:0;padding-top:9vh;position:relative}.login:before{content:"";z-index:-1;background-color:var(--q-side);background-image:radial-gradient(#ffffff17 1px,#0000 1px);background-size:22px 22px;position:fixed;inset:0}.login>.brand{color:var(--q-side-ink);justify-content:center;font-size:34px}.login form,.login .card{border:0;border-radius:18px;box-shadow:0 24px 60px #00000059}.tabs button[aria-selected=true]{box-shadow:none;background:#ffffff29}.tabs button[aria-selected=true]:before{content:"";background:var(--q-side-mark);border-radius:0 4px 4px 0;width:4px;position:absolute;top:9px;bottom:9px;left:-8px}.basefig{grid-column:1/-1;margin:4px 0 8px}.basefig figcaption{font-size:var(--q-text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--q-muted);margin-bottom:6px;font-weight:600}.basefig img{border:1px solid var(--q-line);border-radius:var(--q-radius);background:#fff;width:100%;max-width:920px;height:auto;padding:10px;display:block}.topbar .status,.topbar .muted{color:var(--q-ink)}.bars{height:66px}.bar{opacity:.85}.login .row.tight>.field{flex:auto}th.coltitle.nocount .vtitle>span{color:var(--q-muted);font-weight:500;text-decoration:line-through}td.cell.nocount{background-image:repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in oklab, var(--q-muted) 10%, transparent) 6px 7px)}td.cell.auto{font-family:var(--q-font-data);padding-inline:8px;font-size:14px;font-style:italic}label.check.small{min-height:36px;font-size:var(--q-text-sm);gap:6px}.span-all{grid-column:1/-1;margin:0}.iconbtn.linked{color:var(--q-accent)}.linkrow{flex:100%}.copyrow{border-radius:var(--q-radius);background:var(--q-accent-soft);color:var(--q-accent);flex-wrap:wrap;flex:100%;align-items:center;gap:8px;padding:6px 10px;display:flex}.copylabel{font-size:var(--q-text-xs);font-weight:500}.seg.tiny button{min-width:30px;min-height:30px;font-family:var(--q-font-data);font-size:var(--q-text-sm);color:var(--q-ink);border-color:color-mix(in oklab, var(--q-accent) 35%, var(--q-line));padding:2px 8px}.seg.tiny button[aria-pressed=true]{color:var(--q-accent-ink)}.copynum{border:1px solid color-mix(in oklab, var(--q-accent) 35%, var(--q-line));background:var(--q-surface);width:56px;min-height:30px;color:var(--q-ink);text-align:right;font-family:var(--q-font-data);border-radius:8px;padding:2px 6px}.copyout{font-weight:700;font-size:var(--q-text-sm);background:var(--q-accent);color:var(--q-accent-ink);border-radius:var(--q-radius-pill);white-space:nowrap;margin-left:auto;padding:3px 12px}.rubricgrid table{table-layout:fixed;min-width:640px}.rubricgrid th.first,.rubricgrid td.first{white-space:normal;vertical-align:top;width:190px;min-width:190px}.rubricgrid th.lvhead{background:color-mix(in oklab, var(--q-class) 14%, var(--q-surface));color:var(--q-ink);white-space:normal;vertical-align:top}.rubricgrid th.lvhead b{font-size:var(--q-text-sm);display:block}.rubricgrid th.lvhead small{color:var(--q-muted)}.rubricgrid th.addcol{background:var(--q-surface);width:52px}.rubricgrid td.lvcell{vertical-align:top;white-space:normal;height:1px}.rubricgrid .lv{height:100%;min-height:64px;line-height:1.35}.rubricgrid .lv:hover:not(:disabled){background:color-mix(in oklab, var(--q-accent) 7%, var(--q-surface))}.descriptor{resize:vertical;width:100%;min-height:84px;font-size:var(--q-text-sm);background:0 0;border:0;padding:8px 10px;line-height:1.35;display:block}.descriptor.comment{min-height:56px;color:var(--q-ink);font-family:inherit;font-style:italic}.descriptor.comment:not(:placeholder-shown){font-style:normal}.rubricgrid th.commenthead{background:var(--q-surface);width:210px;color:var(--q-muted);white-space:nowrap;vertical-align:top;font-weight:600}.sidecell{flex-direction:column;gap:6px;padding:8px;display:flex}.sidecell .tick{border:1px solid var(--q-line);background:var(--q-surface);min-height:32px;color:var(--q-ink);font:inherit;font-size:var(--q-text-xs);cursor:pointer;border-radius:999px;align-self:flex-start;padding:4px 12px}.sidecell .tick[aria-pressed=true]{background:var(--q-accent-soft);border-color:var(--q-accent);box-shadow:inset 0 0 0 1px var(--q-accent);font-weight:600}.sidecell .descriptor.comment{border:1px dashed var(--q-line);background:var(--q-surface);color:var(--q-ink);border-radius:8px;font-family:inherit}.descriptor.comment::placeholder{color:var(--q-muted);opacity:1}.rubricgrid.singlepoint td.lvcell:not(.spside){background:color-mix(in oklab, var(--q-class) 7%, var(--q-surface))}.rubricgrid.singlepoint td.lvcell:not(.spside) .lv{font-size:var(--q-text-base,1rem)}.generalcomment{max-width:720px}.descriptor:focus{background:var(--q-accent-soft);box-shadow:inset 0 0 0 2px var(--q-accent);outline:0}.stack.tight{gap:2px}input.inline.narrow{text-align:right;width:56px;font-family:var(--q-font-data);flex:0 0 56px}.homebtn{width:44px;height:44px;color:var(--q-side-mark);cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.homebtn:hover,.homebtn[aria-pressed=true]{background:#ffffff24}button.brand.mobile{cursor:pointer;color:var(--q-ink);background:0 0;border:0;padding:0}.home{gap:22px}.hero{background:var(--q-side);color:var(--q-side-ink);background-image:radial-gradient(circle at 96% -20%, color-mix(in oklab, var(--q-side-mark) 60%, transparent) 0, transparent 48%), radial-gradient(circle at 108% 125%, color-mix(in oklab, var(--q-av-1) 65%, transparent) 0, transparent 46%), radial-gradient(circle at -8% 130%, color-mix(in oklab, var(--q-av-0) 55%, transparent) 0, transparent 40%);border-radius:24px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:24px;padding:34px 34px 36px;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 40px -22px #0828228c}.hero h2{font-family:var(--q-font-display);letter-spacing:-.035em;text-wrap:balance;margin:4px 0 8px;font-size:clamp(32px,4.4vw,52px);font-weight:700;line-height:1.02}.herodate{color:var(--q-side-mark);font-weight:600;font-size:var(--q-text-sm);letter-spacing:.01em;margin:0}.herodate:first-letter{text-transform:uppercase}.herosub{color:var(--q-side-ink);opacity:.88;font-size:var(--q-text-lg);max-width:46ch;margin:0}.heronow{flex-direction:column;gap:8px;min-width:0;display:flex}.heronow li{border:1px solid #ffffff29;border-left:5px solid var(--q-class);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff1a;border-radius:16px;align-items:center;gap:14px;min-width:0;padding:10px 12px 10px 14px;display:flex}.heronow .when{font-size:17px}.heronow .when small{color:var(--q-side-ink);opacity:.7;font-size:12px}.heronow .what span{opacity:.85;font-size:var(--q-text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.heronow .iconbtn{color:var(--q-side-ink);background:#ffffff1a;border-radius:12px}.heronow .iconbtn:hover{background:#ffffff38}.hero :focus-visible{outline-color:var(--q-side-mark)}@media (max-width:860px){.hero{border-radius:20px;grid-template-columns:minmax(0,1fr);padding:24px 20px 26px}}.dock{border:1px solid var(--q-line);background:var(--q-surface);box-shadow:var(--q-shadow);border-radius:22px;flex-direction:column;gap:12px;padding:20px;display:flex}.dock h3.sub{color:var(--q-muted);font-family:inherit;font-size:15px;font-weight:600}ul.tiles{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:1fr;gap:12px;display:grid}ul.tiles>li{display:flex}.tile{text-align:left;border:1px solid color-mix(in oklab, var(--q-tile) 22%, var(--q-line));background:color-mix(in oklab, var(--q-tile) 8%, var(--q-surface));width:100%;color:var(--q-ink);cursor:pointer;border-radius:18px;flex-direction:column;align-items:flex-start;gap:12px;padding:16px 16px 18px;transition:transform .16s,box-shadow .16s,background-color .16s;display:flex;position:relative;overflow:hidden}.tile:after{content:"";background:color-mix(in oklab, var(--q-tile) 14%, transparent);pointer-events:none;border-radius:50%;width:92px;height:92px;position:absolute;top:-26px;right:-26px}.tile:hover{background:color-mix(in oklab, var(--q-tile) 14%, var(--q-surface));box-shadow:0 14px 26px -14px color-mix(in oklab, var(--q-tile) 70%, transparent);transform:translateY(-3px)}.tileicon{background:var(--q-tile);width:52px;height:52px;color:var(--q-surface);box-shadow:0 8px 16px -8px var(--q-tile);border-radius:16px;flex:none;justify-content:center;align-items:center;display:inline-flex}.tiletext{flex-direction:column;gap:2px;min-width:0;display:flex}.tiletext b{font-family:var(--q-font-display);letter-spacing:-.01em;font-size:17px;line-height:1.15}.tiletext small{color:var(--q-muted);font-size:13px;line-height:1.3}@media (prefers-reduced-motion:reduce){.tile{transition:none}.tile:hover{transform:none}}@media (max-width:1100px){ul.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:860px){ul.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:520px){ul.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dock{border-radius:18px;padding:14px}.tile{gap:8px;padding:12px 12px 14px}.tileicon{border-radius:14px;width:44px;height:44px}}.homegrid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:22px;display:grid}@media (max-width:980px){.homegrid{grid-template-columns:minmax(0,1fr)}}.preplist li{border-bottom:1px dashed var(--q-line);flex-wrap:wrap;align-items:center;gap:12px;min-width:0;padding:8px 0;display:flex}.preplist li:last-child{border-bottom:0}.preplist .dot{background:var(--q-class)}.preplist .chipbtn{cursor:default}.when{font-family:var(--q-font-data);flex-direction:column;font-weight:600;line-height:1.2;display:flex}.when small{color:var(--q-muted);font-weight:400}.what{flex-direction:column;flex:1;min-width:0;display:flex}.what b,.what .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}ul.classcards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;display:grid}.classcard{text-align:left;border:1px solid var(--q-line);background:linear-gradient(160deg, color-mix(in oklab, var(--q-class) 9%, var(--q-surface)), var(--q-surface) 55%);width:100%;color:var(--q-ink);box-shadow:var(--q-shadow);cursor:pointer;border-radius:20px;flex-direction:column;align-items:stretch;gap:14px;padding:18px;transition:transform .14s,box-shadow .14s;display:flex;position:relative;overflow:hidden}.classcard:hover{box-shadow:0 16px 30px -16px color-mix(in oklab, var(--q-class) 65%, transparent);transform:translateY(-3px)}.classhead{align-items:center;gap:12px;min-width:0;display:flex}.classbadge{background:var(--q-class);width:46px;height:46px;color:var(--q-surface);font-family:var(--q-font-display);border-radius:14px;flex:none;justify-content:center;align-items:center;font-size:17px;font-weight:700;display:inline-flex}.classname{flex-direction:column;min-width:0;display:flex}.classname b{font-family:var(--q-font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:20px;overflow:hidden}.classname .muted{font-size:var(--q-text-sm)}.classfacts{color:var(--q-muted);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;font-size:11.5px;display:grid}.classfacts span{flex-direction:column;display:flex}.classfacts i{font-style:normal;font-family:var(--q-font-display);color:var(--q-ink);white-space:nowrap;font-size:22px;font-weight:700}.classmeter{background:color-mix(in oklab, var(--q-class) 16%, var(--q-surface));border-radius:999px;height:6px;display:block;overflow:hidden}.classmeter span{background:var(--q-class);border-radius:999px;height:100%;display:block}.groupsbtn{border-color:var(--q-grouping);min-height:32px;color:var(--q-grouping);background:var(--q-grouping-soft);padding:2px 10px;font-weight:600}.cal{--hour:76px;grid-template-columns:52px repeat(var(--days,5), minmax(0, 1fr));border:1px solid var(--q-line);border-radius:var(--q-radius-lg);background:var(--q-surface);box-shadow:var(--q-shadow);display:grid;overflow:hidden}.calaxis{border-right:1px solid var(--q-line);flex-direction:column;padding-top:40px;display:flex}.calaxis span{height:var(--hour);text-align:right;font-family:var(--q-font-data);color:var(--q-muted);padding:0 8px;font-size:11px;transform:translateY(-7px)}.calday{border-left:1px solid var(--q-line);min-width:0}.calday:nth-child(2){border-left:0}.calday h3{height:40px;color:var(--q-muted);border-bottom:1px solid var(--q-line);text-transform:capitalize;justify-content:center;align-items:center;margin:0;font-size:12.5px;font-weight:600;display:flex}.calday.today h3{color:var(--q-accent-ink);background:var(--q-accent)}.calbody{height:calc(var(--rows) * var(--hour));background-image:linear-gradient(var(--q-line) 1px, transparent 1px);background-size:100% var(--hour);background-position:0 -1px;position:relative}.calday.today .calbody{background-color:color-mix(in oklab, var(--q-accent) 4%, transparent)}.calnote{position:absolute;top:8px;left:8px}.cal .slot{top:calc(var(--top) * var(--hour) + 2px);height:calc(var(--len) * var(--hour) - 4px);left:calc(var(--lane) * (100% / var(--lanes)) + 3px);width:calc(100% / var(--lanes) - 6px);background:color-mix(in oklab, var(--q-class) 16%, var(--q-surface));border-left:4px solid var(--q-class);border-radius:10px;padding:0;position:absolute;overflow:hidden}.cal .slot.mine{background:color-mix(in oklab, var(--q-class) 30%, var(--q-surface));box-shadow:0 1px 3px #0000001f}.cal .slot.open{outline:2px solid var(--q-class);outline-offset:1px}.cal .planbtn{width:100%;height:100%;min-height:0;color:var(--q-ink);text-align:left;cursor:pointer;font-size:var(--q-text-sm);background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px;padding:6px 8px;line-height:1.25;display:flex;overflow:hidden}.cal .planbtn>*{flex:none}.lhead{flex-wrap:wrap;align-items:baseline;column-gap:8px;max-width:100%;max-height:2.5em;display:flex;overflow:hidden}.cal .planbtn:hover{background:color-mix(in oklab, var(--q-class) 12%, transparent)}.cal .planbtn small{font-family:var(--q-font-data);color:var(--q-ink);opacity:.8;white-space:nowrap;font-size:11px}.cal .planbtn b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.ltitle,.lmeta{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.lmeta{opacity:.85;font-size:11px}@media (max-width:760px){.cal{flex-direction:column;display:flex}.calaxis{display:none}.calday{border-left:0;border-top:1px solid var(--q-line)}.calday:nth-child(2){border-top:0}.calday h3{justify-content:flex-start;padding:0 12px}.calbody{background-image:none;flex-direction:column;gap:6px;height:auto;min-height:44px;padding:8px;display:flex}.calnote{position:static}.cal .slot{width:auto;height:auto;position:static}.cal .planbtn{min-height:56px}}.newclass fieldset{align-self:stretch}@media print{@page{margin:14mm}body[data-print] .pagehead,body[data-print] .checklist,body[data-print=plan] .planner>:not(.lessonplan),body[data-print=room] .seating>:not(.roomwrap):not(.printonly),body[data-print=room] .seating .tray,body[data-print=rubric] .rubricview>:not(.rubricgrid):not(.printonly):not(.result):not(.generalcomment),body[data-print] .iconbtn,body[data-print] .btn,body[data-print] form,body[data-print] select,body[data-print] .choosegrouping,body[data-print] .tgrip,body[data-print] .copyrow .seg,body[data-print] .copylabel{display:none!important}body[data-print] input,body[data-print] textarea{padding-inline:0;box-shadow:none!important;background:0 0!important;border:0!important}body[data-print] .lessonplan{padding:0}body[data-print] .lessonplan label.lbl{color:#000;font-size:16px}.planrow{break-inside:avoid}.plangrid,.roomwrap,.rubricgrid{box-shadow:none}.timefield,.chip.grouping,.chip.time,.copyout,.seat,.surface,.lv[aria-pressed=true],th.lvhead{-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact}body[data-print=room] .roomfit{background:0 0;overflow:visible;height:auto!important}body[data-print=room] .roomcanvas{margin-bottom:-36%;transform:scale(.64)!important}body[data-print=room] .seat.empty{visibility:hidden}.rubricgrid table{min-width:0}.rubricgrid .lv{min-height:0}}td.mailcell{white-space:nowrap;min-width:200px}td.mailcell input.inline{width:calc(100% - 44px);font-weight:400;display:inline-block}.droplow{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}@media (max-width:640px){.topbar{gap:6px 8px;padding-block:8px;position:static}.topbar>.row{display:contents}.topbar .classpick{flex:calc(100% - 130px);order:1;min-width:0;max-width:none;font-size:19px}.topbar .brand.mobile{color:var(--q-accent);order:0}.topbar .classdot{display:none}.topbar #account-menu{order:2}.topbar #account-menu .mename,.topbar #account-menu summary:after{display:none}.topbar #group-select{flex:0 auto;order:3;max-width:45%}.topbar .classbar>.btn{order:4;padding-inline:12px}.topbar .btnlabel{display:none}.topbar{justify-content:flex-start}.topbar #sync-button{white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;order:5;justify-content:flex-end;min-width:0;font-size:12px;overflow:hidden}.content{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}.bottomnav{z-index:20;overscroll-behavior-x:contain;scrollbar-width:none;padding:6px max(8px, env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px, env(safe-area-inset-left,0px));background:var(--q-side);gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto;box-shadow:0 -2px 12px #0000002e}.bottomnav::-webkit-scrollbar{display:none}.bottomnav button{min-width:68px;max-width:92px;min-height:52px;color:var(--q-side-ink);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;padding:4px 6px;font-size:11px;line-height:1.15;display:flex}.bottomnav button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottomnav button[aria-current=page]{background:#ffffff29;font-weight:600}.bottomnav button[aria-current=page] svg{color:var(--q-side-mark)}.bottomnav :focus-visible{outline-color:var(--q-side-mark)}.toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}.rubricgrid td.lvcell{position:relative}.whotags{pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex;position:absolute;bottom:6px;right:6px}.rubricgrid .lv{padding-bottom:26px}.whotags i,.chip.who{background:var(--q-surface);border:1px solid;border-radius:999px;padding:1px 8px;font-size:11px;font-style:normal;font-weight:600}.whotags i.t{color:var(--q-accent)}.whotags i.s,.chip.who.s{color:var(--q-av-1)}.whotags i.p,.chip.who.p{color:var(--q-av-3)}.chip.who{font-size:var(--q-text-sm);padding:3px 10px}.critlist{flex-direction:column;gap:2px;max-height:420px;display:flex;overflow-y:auto}.critgroup{font-size:var(--q-text-sm);color:var(--q-muted);max-width:90ch;margin:12px 0 4px}.critrow{border-top:1px solid var(--q-line);font-size:var(--q-text-sm);grid-template-columns:48px minmax(0,1fr) auto;align-items:start;gap:10px;padding:6px 0;display:grid}.critcode{font-family:var(--q-font-data);font-weight:500}.critlinks{flex-direction:column;gap:10px;display:flex}.critlinks li{flex-direction:column;gap:6px;display:flex}.critchips{flex-wrap:wrap;gap:6px;display:flex}.critchip{border:1px solid var(--q-line);background:var(--q-surface);min-width:44px;min-height:32px;color:var(--q-ink);font-family:var(--q-font-data);cursor:pointer;border-radius:999px;padding:2px 10px;font-size:12.5px}.critchip[aria-pressed=true]{background:var(--q-accent);border-color:var(--q-accent);color:var(--q-accent-ink);font-weight:600}.whatsnew{border:1px solid color-mix(in oklab, var(--q-accent) 40%, var(--q-line));background:var(--q-accent-soft);border-radius:16px;padding:4px 52px 4px 16px;position:relative}.whatsnew>.iconbtn{position:absolute;top:4px;right:6px}.whatsnew summary{min-height:var(--q-touch);cursor:pointer;align-items:center;gap:8px;list-style:none;display:flex}.whatsnew summary::-webkit-details-marker{display:none}.whatsnew summary:after{content:"▾";color:var(--q-muted)}.whatsnew details[open] summary:after{content:"▴"}.whatsnew ul{columns:2 320px;font-size:var(--q-text-sm);column-gap:32px;margin:4px 0 12px;padding-left:20px;line-height:1.45}.whatsnew li{break-inside:avoid;margin-bottom:4px}.sharebox{border:1px dashed var(--q-accent);border-radius:var(--q-radius);background:var(--q-accent-soft);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.narrowfield{width:84px}label.lbl.inlinelbl{flex-direction:row;align-items:center;gap:6px}.toolsview>.timer{order:5}.timerface{flex-direction:column;align-items:center;gap:10px;padding:8px 0;display:flex}#timer-display{font-family:var(--q-font-data);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(56px,12vw,120px);font-weight:500;line-height:1}.timer.big #timer-display{font-size:clamp(96px,26vw,320px)}.timerbar{background:color-mix(in oklab, var(--q-accent) 16%, var(--q-surface));border-radius:999px;width:min(100%,720px);height:10px;display:block;overflow:hidden}.timerbar span{background:var(--q-accent);border-radius:999px;height:100%;transition:width .25s linear;display:block}.timer.ending #timer-display,.timer.done #timer-display{color:var(--q-bad)}.timer.ending .timerbar span,.timer.done .timerbar span{background:var(--q-bad)}.timerset .btn[aria-pressed=true]{background:var(--q-accent);color:var(--q-accent-ink);border-color:var(--q-accent)}.allreports{display:none}@media print{.allreports{display:block}.allreports .sheet{break-after:page;padding:0 0 12px}.allreports .sheet:last-child{break-after:auto}.allreports h2{font-family:var(--q-font-display);margin:0 0 6px;font-size:20px}.allreports .sheetline{margin:0 0 12px}.allreports table{width:100%}}.markbtn.icons{flex-wrap:wrap;gap:6px;min-width:64px;padding:4px 6px}.stamp{align-items:center;gap:1px;display:inline-flex}.stamp.good{color:var(--q-good)}.stamp.bad{color:var(--q-bad)}.stamp.warn{color:var(--q-warn)}.stamp i{font-style:normal;font-family:var(--q-font-data);font-size:12px;font-weight:600}.sortpick{max-width:170px;min-height:30px;padding:2px 24px 2px 8px;font-size:12px;font-weight:400}@media print{.sortpick{display:none}}.attgrid thead th.last,.attgrid td.last{text-align:center}.attgrid thead th.last{background:var(--q-sunk);color:var(--q-muted);font-size:12.5px;font-weight:500}a.btn{color:var(--q-ink);text-decoration:none}a.btn.primary{color:var(--q-accent-ink)}input[type=file]{font:inherit;color:var(--q-muted);max-width:100%}input[type=file]::file-selector-button{font:inherit;min-height:var(--q-touch);border:1px solid var(--q-line);border-radius:var(--q-radius);background:var(--q-surface);color:var(--q-ink);cursor:pointer;margin-right:12px;padding:8px 14px;font-weight:600}input[type=file]::file-selector-button:hover{border-color:var(--q-accent)}#lesson-plan{scroll-margin-top:84px}
