@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/98848575513c9742-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98848575513c9742-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/98848575513c9742-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit Fallback;src:local("Arial");ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.00%;size-adjust:99.82%}.__className_62de1f{font-family:Outfit,Outfit Fallback;font-style:normal}:root{--bg:#171717;--side:#111111;--card:#1c1c1c;--card-hover:#242424;--line:#2e2e2e;--text:#fafafa;--muted:#b4b4b4;--quiet:#898989;--accent:#3ecf8e;--accent-hover:#34b27b;--accent-pressed:#24966a;--accent-ink:#052016;--link:#3ecf8e;--focus:#3ecf8e;--ok:#3ecf8e;--warn:#f5a524;--bad:#ef4444;--input:#121212}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font-family:Outfit,ui-sans-serif,system-ui,sans-serif}.brand,.count,h1{font-weight:600;color:var(--text)}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.app{display:flex;min-height:100vh}.side{width:220px;flex:none;background:var(--side);border-right:1px solid var(--line);padding:20px 12px;gap:16px}.side,.side nav{display:flex;flex-direction:column}.side nav{gap:4px}.side nav a{color:var(--muted)}.side nav a.active{color:var(--text)}.tag{margin-top:auto;color:var(--quiet);font-size:13px;background:transparent;text-align:left}main{width:100%;margin:0;padding:32px 36px 64px}h1{margin:0 0 8px;font-size:30px}p{color:var(--muted);line-height:1.5;font-size:14px}.add-row{display:flex;gap:12px;align-items:end;margin:20px 0 28px}.add-row label,.login label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:14px;flex:1 1}.add-row input,.login input,.modal input,.popup input,.popup select{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--input);color:var(--text)}.add-row input:focus,.login input:focus,.popup input:focus,.popup select:focus{outline:2px solid var(--focus);border-color:var(--focus)}button{border:0;border-radius:8px;background:var(--accent);color:var(--accent-ink);padding:8px 14px;font-weight:500}button:hover{background:var(--accent-hover)}.login{display:grid;grid-gap:12px;gap:12px;max-width:360px;margin-top:20px}.err{color:var(--bad)}.ok{color:var(--ok)}.pencil{border:0;background:transparent;color:var(--quiet);padding:0 0 0 8px}.value{display:flex;align-items:center;font-weight:600}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center}.modal{width:360px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}table{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}th{color:var(--quiet);font-weight:500;font-size:12px}.sum td{font-weight:600;color:var(--text)}@media (max-width:800px){.app{flex-direction:column}.side{width:100%}.add-row{flex-direction:column;align-items:stretch}}.brand-logo{height:18px;width:92px;margin:2px 8px 12px}.brand-logo,.login-logo{max-width:100%;object-fit:contain;object-position:left center;display:block}.login-logo{height:28px;width:148px;margin:0 0 16px}.actions{display:flex;gap:10px;margin:18px 0}.ghost{border:1px solid var(--line);color:var(--text);background:transparent}.ghost:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.popup-back{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:20}.popup{width:min(440px,calc(100% - 32px));background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px}.popup,.popup h2{color:var(--text)}.popup h2{margin:0 0 14px;font-weight:600}.popup label{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px;color:var(--muted);font-size:14px}.field-plus{display:flex;gap:8px;align-items:center}.plus{width:36px;height:36px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:22px}.course-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.icon-btn{background:transparent;color:var(--quiet);padding:4px 6px}.popup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.go{background:var(--accent);color:var(--accent-ink)}.warn{color:var(--bad)}.list-box{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}.list-box.short{max-height:none;overflow:visible}.calendar{margin-top:28px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}.cal-grid,.cal-head{display:grid;grid-template-columns:repeat(7,1fr)}.cal-head span,.day{min-height:92px;border-right:1px solid var(--line);border-top:1px solid var(--line);padding:6px}.cal-nav{display:flex;justify-content:space-between;align-items:center;padding:10px 12px}.day b{color:var(--quiet)}.day b,.event{display:block;font-size:12px}.event{margin-top:4px;background:var(--ok);color:var(--accent-ink);border-radius:6px;padding:2px 4px}.side nav a{display:flex;align-items:center;gap:10px;color:#898989;text-decoration:none;padding:8px 12px;border-radius:8px;font-weight:500;font-size:14px}.side nav a svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.side nav a svg.donut{fill:currentColor;stroke:none}.side nav a:hover{background:#1f1f1f;color:#fafafa;text-decoration:none}.side nav a.active{background:#2a2a2a;color:#fafafa}.side nav a.active:hover{background:#323232}