@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/62492e45f348cf87-s.3gua8xictboza.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/8f9704ed0c18c9e0-s.2utp9m0-kbg7n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/c73d4b34880585a8-s.3-_lg5umlo0tj.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/f00b8cc54454926d-s.190-b0rnunf57.woff2)format("woff2");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:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/741805f5bd1ef272-s.41q8r466ocsbj.woff2)format("woff2");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:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/ea3421846039b7f3-s.p.3d58dkudqlgaq.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/20aee433927f7d4b-s.2u46yrlpkdxrh.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/256e1f7f180674ba-s.444m1fhac1z6e.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/be3bf58b83159894-s.1298pfel08g2l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/753b6407f468151f-s.1wcle8r8k1a_g.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/292081311a6a8abc-s.3irbj1um1c5rd.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/68d403cf9f2c68c5-s.p.42000xkkqj0am.woff2)format("woff2");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:"Source Serif 4 Fallback";src:local(Times New Roman);ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.0%;size-adjust:117.91%}.source_serif_4_cb3b5f13-module__nNdGza__className{font-family:"Source Serif 4","Source Serif 4 Fallback"}.source_serif_4_cb3b5f13-module__nNdGza__variable{--font-serif:"Source Serif 4", "Source Serif 4 Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_12302e96-module__GiCnuq__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_12302e96-module__GiCnuq__variable{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.3zhtymus0wdqb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.1da667lu-u79a.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1i05ju5aeyhye.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.1dgcou5jor5q_.woff2)format("woff2");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 Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.31-2bzhq1gx_9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.2taws-qdxmzlf.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0htwiiqufp3l9.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.28xcb7557rbh2.woff2)format("woff2");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 Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.2ontrj8z1-o25.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.33iiebxkijmxa.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.2nzetymcmw3t7.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.0_f09-l1omku8.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.0fcfx2a-jndc5.woff2)format("woff2");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 Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_6f6b10a4-module__31zpZq__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_6f6b10a4-module__31zpZq__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--ink:#17211b;--paper:#f4f3ec;--card:#fff;--accent:#2f5a45;--accent-deep:#244636;--muted:#5a6560;--line:#dfe2db;--hairline:#eceee8;--wash:#eaf0eb;--wash-2:#e6efe8;--brass:#9a6b34;--brass-text:#8a5f2e;--serif:var(--font-serif),Georgia,"Times New Roman",serif;--sans:var(--font-sans),-apple-system,BlinkMacSystemFont,Arial,sans-serif;--mono:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,monospace;--nav-h:calc(69px + env(safe-area-inset-bottom,0px));--reading-max:680px;--reading-pad:20px}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;line-height:1.5}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{flex-direction:column;max-width:920px;min-height:100vh;margin:auto;display:flex}@supports (min-height:100dvh){.shell{min-height:100dvh}}main{padding:20px;padding-bottom:calc(20px + var(--nav-h));flex:1}.hero{background:var(--accent);color:#fff;border-radius:20px;margin-bottom:16px;padding:16px 24px}.hero h1{margin:4px 0;font-size:28px}.kicker{letter-spacing:.12em;text-transform:uppercase;opacity:.8;font-size:12px;font-weight:800}.card{border:1px solid var(--line);background:#fff;border-radius:18px;margin:12px 0;padding:18px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800}.room{color:var(--accent);font-size:44px;font-weight:900}.big{font-size:19px;line-height:1.45}.btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:11px;padding:11px 14px;font-weight:700;text-decoration:none;display:inline-block}.btn.secondary{color:var(--ink);background:#e9ede9}input,select{width:100%;font:inherit;border:1px solid #ccd3cc;border-radius:10px;padding:11px}.field{gap:6px;margin:12px 0;display:grid}.muted{color:var(--muted)}ol,ul{line-height:1.55}.action{border-left:4px solid var(--accent);margin:13px 0;padding-left:12px}.stack{flex-wrap:wrap;gap:9px;display:flex}table{border-collapse:collapse;background:#fff;width:100%}td,th{border-bottom:1px solid var(--line);text-align:left;padding:9px}.rooms{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:700px){.grid,.rooms{grid-template-columns:1fr}main{padding:14px;padding-bottom:calc(14px + var(--nav-h))}.hero{padding:14px 20px}}.admin-shell{display:contents}.admin-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.metric{margin-top:4px;font-size:28px;font-weight:900}.admin-toolbar{grid-template-columns:1fr auto;align-items:center;gap:14px;display:grid}.status-line{border-top:1px solid var(--line);color:var(--muted);grid-column:1/-1;padding-top:10px;font-size:14px;font-weight:700}.roster-list{margin-top:10px}.roster-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.roster-row:last-child{border-bottom:0}.tag{color:var(--accent);white-space:nowrap;background:#e9f0eb;border-radius:999px;align-items:center;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.muted-tag{color:var(--muted);background:#f0f0ed}.assignment-summary{background:#edf3ee;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 10px;padding:12px 14px;display:flex}.assignment-summary span{color:var(--muted);font-size:13px}.roomcard-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.roomcard-head h3{margin:0}.room-members{gap:8px;margin-top:10px;display:grid}.member-row{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:8px;padding-top:8px;display:grid}.member-row select{width:82px;padding:7px 8px;font-size:13px}.member-controls{align-items:center;gap:8px;display:flex}.lock-toggle{border:1.5px solid var(--line);min-width:62px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-family:inherit;font-size:11px;font-weight:800;display:inline-flex}.lock-toggle:hover{border-color:var(--accent);color:var(--accent)}.lock-toggle.is-locked{border-color:var(--accent);color:var(--accent);background:#e9f0eb}.lock-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tiny{font-size:12px}@media (max-width:760px){.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-toolbar{grid-template-columns:1fr}.admin-toolbar .stack{width:100%}.admin-toolbar .toolbar-action{flex:1}.assignment-summary{flex-direction:column;align-items:flex-start}}@media (min-width:701px){.shell{max-width:none}main{width:100%;max-width:var(--reading-max);padding:28px var(--reading-pad);margin-inline:auto}.shell:has(>.admin-shell){--reading-max:920px}.shell>header,.shell>nav{max-width:none;padding-inline:max(var(--reading-pad), calc((100% - var(--reading-max)) / 2 + var(--reading-pad)))}.shell>header{order:-2}.shell>nav{order:-1}.shell>header{border-bottom:0}}
.btn{transition:background-color .14s,border-color .14s,transform .14s;color:var(--ink)!important;border:1.5px solid var(--line)!important;box-shadow:none!important;background:0 0!important;font-weight:700!important}.btn:hover{background:#1630220f!important;border-color:#1630223d!important}.btn:active{transform:translateY(1px)}.btn.secondary{color:var(--ink)!important;border:1.5px solid var(--line)!important;background:0 0!important}
.btn,button.btn,a.btn,input.btn{letter-spacing:0!important;box-sizing:border-box!important;justify-content:center!important;align-items:center!important;min-height:46px!important;font-family:inherit!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important;text-decoration:none!important;display:inline-flex!important}.btn.secondary,button.btn.secondary,a.btn.secondary{font-size:16px!important;font-weight:700!important;line-height:1.2!important}@media (max-width:760px){.btn,button.btn,a.btn,input.btn,.btn.secondary,button.btn.secondary,a.btn.secondary{font-size:16px!important;line-height:1.2!important}}
.SiteHeader-module__Tkw0gW__top{background:var(--ink);color:#fff;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:flex-end;gap:14px;padding:16px 14px 14px;display:flex}.SiteHeader-module__Tkw0gW__brand{flex-direction:column;gap:3px;min-width:0;display:flex}.SiteHeader-module__Tkw0gW__lockup{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#fff;font-size:12px;font-weight:600;line-height:1.1}.SiteHeader-module__Tkw0gW__platform{font-family:var(--mono);letter-spacing:.12em;color:#ffffff9e;font-size:11px;font-weight:400;line-height:1.1}.SiteHeader-module__Tkw0gW__context{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#ffffff9e;flex:none;font-size:11px;font-weight:400;line-height:1.1}
.MainNav-module__kc8RwW__bar{width:100%;max-width:920px;height:var(--nav-h);z-index:20;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));background:var(--ink);border-top:1px solid #ffffff14;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;margin-inline:auto;display:grid;position:fixed;bottom:0;left:0;right:0}.MainNav-module__kc8RwW__tab{color:#ffffff9e;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:52px;padding:6px 4px;text-decoration:none;transition:background-color .14s,color .14s;display:flex}.MainNav-module__kc8RwW__tab:hover{color:#fff;background:#ffffff14}.MainNav-module__kc8RwW__tab:focus-visible{outline-offset:2px;outline:2px solid #fff}.MainNav-module__kc8RwW__marker{height:5px;display:block}.MainNav-module__kc8RwW__dot{background:var(--brass);border-radius:999px;width:5px;height:5px;margin:0 auto;display:block}.MainNav-module__kc8RwW__label{font-size:13px;font-weight:500;line-height:1.1}.MainNav-module__kc8RwW__tab.MainNav-module__kc8RwW__active{color:#fff;background:#ffffff1a}.MainNav-module__kc8RwW__tab.MainNav-module__kc8RwW__active .MainNav-module__kc8RwW__label{font-weight:700}@media (min-width:701px){.MainNav-module__kc8RwW__bar{z-index:auto;border-top:0;border-bottom:1px solid #ffffff14;justify-content:flex-start;gap:4px;height:auto;padding-block:0 8px;display:flex;position:static}.MainNav-module__kc8RwW__tab{padding:6px 14px}}
