:root{--bg:#080f20;--panel:#111a2d;--line:#243047;--text:#f0f3fa;--muted:#8793aa;--header:#10182a;--accent:#a7c7fc;--hover:#17233a;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{transition:background .2s,transform .2s,color .2s}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.4;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}header{height:85px;border-bottom:1px solid var(--line);background:var(--header)}.topbar{max-width:1160px;height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 28px}.brand{display:flex;align-items:center;gap:12px;font-family:Manrope,sans-serif;font-size:13px;line-height:1.5}.brand b{display:block;font-size:15px}.brandicon{width:44px;height:44px;display:grid;place-items:center;border:1px solid #41618b;border-radius:13px;background:#1c3355;color:#a9cbff}nav{display:flex;align-items:center;gap:20px}.navlabel{font-size:10px;color:var(--muted);letter-spacing:1.6px;margin-right:16px}.iconbutton{padding:8px;display:grid;place-items:center;color:var(--muted)}.loginbutton,.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:11px 17px;font-weight:600}.loginbutton{border:1px solid #3a4d6b;background:#19273e}.loginbutton:hover,.secondary:hover{background:var(--hover)}main{max-width:1160px;padding:0 28px;margin:auto}.breadcrumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;padding-top:30px}.breadcrumb span{color:#42506b}.intro{display:flex;justify-content:space-between;align-items:center;padding:45px 0 48px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent);display:flex;align-items:center;gap:8px}.eyebrow span{height:5px;width:5px;background:#9ec5ff;border-radius:50%}h1{font-family:Manrope,sans-serif;font-size:48px;line-height:1.18;letter-spacing:-2px;margin:18px 0}h1 span{color:#93a7c7}.intro p{color:var(--muted);font-size:14px;margin:0}.schoolseal{color:#5c7499;display:flex;flex-direction:column;align-items:center;margin-right:35px;gap:16px}.schoolseal span{font-size:8px;letter-spacing:2px}.schoolseal small{font-size:11px;color:var(--muted);margin-top:-6px}.workspace{border-top:1px solid var(--line);padding-top:29px}.sectionhead{display:flex;align-items:center;gap:16px}.sectionhead>div{flex:1}h2{font-family:Manrope,sans-serif;font-size:21px;font-weight:700;margin:0}h2>span{font-family:'DM Sans',sans-serif;font-size:11px;background:#1e2b43;padding:4px 7px;border-radius:5px;color:#9fafc8;vertical-align:middle;margin-left:7px}.sectionhead p{font-size:12px;color:var(--muted);margin:8px 0 0}.search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:11px 13px;color:var(--muted);width:255px}.search input{width:100%;min-width:0;background:none;border:0;color:var(--text);outline:none;font-size:12px}.search kbd{border:1px solid var(--line);border-radius:4px;padding:0 5px}.filters{display:flex;gap:6px;flex-wrap:wrap;margin:24px 0}.filters button{font-size:12px;padding:8px 13px;border-radius:6px;color:var(--muted);display:flex;align-items:center;gap:5px}.filters .active{background:#243653;color:#bfd4f5}.filters button:hover{color:var(--text)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid article{position:relative;border:1px solid var(--line);border-radius:13px;background:var(--panel);transition:transform .2s,border-color .2s;overflow:hidden}.grid article:hover{transform:translateY(-3px);border-color:#4a5f82}.favorite{position:absolute;right:16px;top:16px;color:#61708a;padding:5px;z-index:1}.favorite:hover,.favorite.selected{color:#e3b760}.appcontent{display:block;padding:25px 25px 18px}.appicon{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;color:white;box-shadow:inset 0 1px 0 #ffffff30;overflow:hidden}.appicon img{width:100%;height:100%;object-fit:cover}.appcontent h3{font-family:Manrope,sans-serif;font-size:17px;margin:19px 0 7px}.appcontent p{font-size:12px;color:var(--muted);margin:0;min-height:18px}.cardbottom{border-top:1px solid var(--line);margin-top:23px;padding-top:13px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px;align-items:center}.cardbottom span{letter-spacing:.4px}.cardbottom small{font-size:10px}.hint{margin-top:26px;border:1px solid var(--line);border-radius:10px;padding:19px 21px;display:flex;align-items:center;gap:15px;background:linear-gradient(100deg,#15223866,transparent)}.hintstar{color:#a6b9da;background:#20304b;width:39px;height:39px;border-radius:10px;display:grid;place-items:center}.hint strong{font-size:12px;font-weight:500}.hint p{font-size:11px;color:var(--muted);margin:5px 0 0}.hint>button{margin-left:auto;color:var(--muted)}footer{max-width:1104px;margin:52px auto 0;padding:22px 0 25px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px}footer>span,footer a{display:flex;align-items:center;gap:8px}.statusdot{height:5px;width:5px;border-radius:50%;background:#72b898}.overlay{position:fixed;inset:0;z-index:10;background:#020716c7;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.modal{background:var(--panel);border:1px solid #35445f;border-radius:21px;width:470px;padding:34px;position:relative;box-shadow:0 35px 100px #0006;max-height:92vh;overflow:auto}.close{position:absolute;right:16px;top:16px;color:var(--muted);padding:5px}.modalsymbol{width:50px;height:50px;background:#22395d;border-radius:13px;display:grid;place-items:center;color:#b2ceff;margin-bottom:25px}.modal h2{font-size:26px;line-height:1.3;margin:13px 0}.modal>p{color:var(--muted);font-size:13px}.loginlinks{display:grid;gap:10px;margin-top:25px}.loginlinks>a{padding:17px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between}.loginlinks>a:hover{background:var(--hover);border-color:#667ea3}.loginlinks b{font-size:13px;display:flex;align-items:center;gap:6px}.loginlinks small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.loginlinks .dashboardlogin{background:#1f3353;border-color:#3d5b86}.modalfoot{font-size:10px;color:var(--muted);text-align:center;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.signout{font-size:12px;display:block;margin-top:16px;text-decoration:underline}.warning{color:#ebc783!important}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#e4ecfa;color:#16243b;border-radius:12px;padding:15px 20px;z-index:20;box-shadow:0 10px 40px #0006;display:flex;align-items:center;gap:20px;font-size:13px;max-width:90vw}.adminbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0 22px;gap:12px}.adminbar span{color:var(--muted);display:flex;align-items:center;gap:5px;font-size:12px}.primary{background:#a9c9ff;color:#13233e}.primary:hover{background:#c1d8ff}.secondary{border:1px solid var(--line);font-size:12px}.edittools{border-top:1px solid var(--line);display:flex;justify-content:flex-end;padding:5px 12px;gap:5px}.edittools button{padding:7px;color:var(--muted)}.edittools button:hover{color:var(--text)}.editor{width:550px}.editor>label,.formrow label{display:flex;flex-direction:column;gap:7px;font-size:12px;margin:16px 0}.editor input:not([type=file]),.editor select{width:100%;background:var(--bg);border:1px solid var(--line);padding:11px 12px;border-radius:7px;color:var(--text)}.editor small{color:var(--muted);font-size:10px}.uploadrow{display:flex;align-items:center;gap:18px;margin:22px 0}.upload{font-size:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px}.upload input{font-size:11px;max-width:270px}.formrow{display:grid;grid-template-columns:1.5fr .6fr 1fr;gap:12px}.editor input[type=color]{height:41px;padding:5px}.formactions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:10px}.empty{text-align:center;border:1px dashed var(--line);padding:50px 20px;border-radius:12px;color:var(--muted)}.empty svg{margin:auto}.empty .secondary{margin-top:12px}[data-theme=light]{--bg:#f3f5fa;--panel:#fff;--line:#dce3ee;--text:#18273f;--muted:#66758c;--header:#fff;--accent:#4775b8;--hover:#eaf0f9;color-scheme:light}[data-theme=light] .loginbutton,[data-theme=light] .filters .active{background:#e6eefb;color:#23446f}[data-theme=light] .dashboardlogin{background:#eaf1fc}[data-theme=light] .hint{background:#eaf0fa} @media(min-width:1500px){main,.topbar{max-width:1240px}.intro{padding-top:60px;padding-bottom:60px}h1{font-size:55px}footer{max-width:1184px}.appcontent{padding:30px}}@media(max-width:750px){.navlabel,.schoolseal{display:none}.topbar{padding:0 20px}nav{gap:8px}main{padding:0 20px}.intro{padding:35px 0}h1{font-size:39px}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.sectionhead{flex-wrap:wrap}.search{width:100%;margin-top:5px}.appcontent{padding:20px 16px 14px}.appcontent h3{font-size:15px}.appcontent p{font-size:11px;min-height:30px}.appicon{width:54px;height:54px;border-radius:13px}.filters{gap:0}.filters button{padding:8px 10px;font-size:11px}.hint p{line-height:1.6}.hintstar{flex-shrink:0}footer{margin:30px 20px 0;gap:15px;flex-wrap:wrap}footer small{display:none}.modal{padding:28px 22px}.modal h2{font-size:23px}.adminbar{align-items:flex-start}.adminbar span{max-width:160px}.uploadrow{flex-wrap:wrap}.formrow{grid-template-columns:1fr 1fr}.formrow label:first-child{grid-column:1/-1}.brand{font-size:11px}.brand b{font-size:12px}.loginbutton{padding:9px 12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.accountform label{display:flex;flex-direction:column;gap:7px;margin:15px 0;font-size:12px}.accountform p,.help{font-size:12px;color:var(--muted);line-height:1.6}.accountbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.accountbar>span{margin-right:auto;color:var(--muted);font-size:12px}.userrow{border:1px solid var(--line);padding:14px;border-radius:8px;margin:10px 0}.userrow small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.userrow details{margin-top:10px}.userrow summary{cursor:pointer;color:var(--accent);font-size:12px}hr{border:0;border-top:1px solid var(--line);margin:25px 0}.accountform .checkrow{flex-direction:row;align-items:center}.checkrow input{width:auto!important}.loginlinks>button{padding:17px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--text)}.loginlinks>button:hover{border-color:#667ea3}
.announcement{padding:18px 22px;margin:0 0 25px;border:1px solid #527198;border-left:4px solid #8fbaff;border-radius:10px;background:var(--panel)}.announcement strong{color:var(--accent);font-size:12px}.announcement p{white-space:pre-wrap;line-height:1.7;margin-bottom:0}.viewbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.importbutton{cursor:pointer}.importbutton input{display:none}.grid.compact{grid-template-columns:repeat(4,1fr)}.compact .appcontent{padding:16px}.compact .appcontent p{display:none}.compact .appicon{width:42px;height:42px}.compact .appicon svg{width:25px}.compact .appcontent h3{font-size:14px}.apptoggles{display:grid;gap:12px;padding:14px 0}.apptoggles label{display:flex;gap:9px;align-items:center;font-size:12px}.editor .apptoggles input{width:auto;padding:0}.hiddenbadge{display:inline-block;color:#e9c383;border:1px dashed #8b724c;border-radius:5px;padding:3px 6px;margin-bottom:8px}.accountform textarea{font:inherit;resize:vertical;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);padding:10px}.edittools{flex-wrap:wrap}@media(max-width:750px){.grid.compact{grid-template-columns:repeat(2,1fr)}}