:root{--bg: #0f1420;--panel: #171e2e;--panel-2: #1e2740;--border: #2a3550;--text: #e6ebf5;--muted: #8b98b8;--accent: #5b8cff;--tech: #4ecdc4;--consulting: #c084fc;--build: #ffb454;--good: #4ade80;--bad: #f87171}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:20px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar h1{font-size:18px;margin:0 8px 20px}.sidebar .brand-sub{color:var(--muted);font-size:12px;font-weight:400;display:block;margin-top:2px}.nav-group{margin-bottom:16px}.nav-group-title{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:4px 8px}.nav-link{display:flex;justify-content:space-between;align-items:center;padding:7px 8px;border-radius:6px;color:var(--text);font-size:14px;margin:1px 0}.nav-link:hover{background:var(--panel-2);text-decoration:none}.nav-link.active{background:var(--accent);color:#fff}.nav-link .wk{color:var(--muted);font-size:11px}.nav-link.active .wk{color:#dbe4ff}.nav-link.upcoming{opacity:.55}.content{flex:1;padding:32px 40px;max-width:1100px}.content h2{margin-top:0}.page-sub{color:var(--muted);margin-top:-8px}.progress{background:var(--panel-2);border-radius:999px;height:10px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);transition:width .3s}.progress.sm{height:6px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}@media(max-width:800px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}.phase-card{display:block;color:var(--text)}.phase-card:hover{border-color:var(--accent);text-decoration:none}.phase-card .pct{font-size:28px;font-weight:700}.muted{color:var(--muted)}.small{font-size:13px}.banner{background:linear-gradient(90deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.pill.ahead{background:#4ade8026;color:var(--good)}.pill.behind{background:#f8717126;color:var(--bad)}.track-section{margin-bottom:28px}.track-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.track-dot{width:10px;height:10px;border-radius:3px}.track-dot.tech{background:var(--tech)}.track-dot.consulting{background:var(--consulting)}.track-dot.build{background:var(--build)}.item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;background:var(--panel)}.item.done{opacity:.7}.item input[type=checkbox]{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color:var(--accent)}.item-main{flex:1;min-width:0}.item-title{font-weight:500}.item.done .item-title{text-decoration:line-through;color:var(--muted)}.item-meta{color:var(--muted);font-size:12px;margin-top:2px}.item-desc{color:var(--muted);font-size:13px;margin-top:4px}.notes-toggle{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:4px 0}textarea,input[type=text],input[type=url],input[type=date],input[type=password]{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px;margin-top:6px}textarea{resize:vertical;min-height:60px}button.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}button.btn:hover{filter:brightness(1.1)}button.btn.ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}button.btn:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-block;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:12px}.badge.good{color:var(--good);border-color:var(--good)}.quiz-option{display:block;width:100%;text-align:left;padding:12px 16px;margin:8px 0;background:var(--panel);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;font-size:15px}.quiz-option:hover{border-color:var(--accent)}.quiz-option.selected{border-color:var(--accent);background:var(--panel-2)}.quiz-option.correct{border-color:var(--good);background:#4ade801a}.quiz-option.wrong{border-color:var(--bad);background:#f871711a}.qprogress{color:var(--muted);font-size:13px;margin-bottom:8px}.result-line{padding:12px 0;border-bottom:1px solid var(--border)}.result-line .exp{color:var(--muted);font-size:13px;margin-top:4px}.header-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.header-row h2{margin-bottom:4px}.spacer{height:24px}.center{text-align:center}.big-score{font-size:48px;font-weight:800}.upcoming-note{background:#ffb4541a;border:1px solid var(--build);color:var(--build);padding:8px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;display:inline-block}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;color:var(--muted)}.auth-card{display:flex;flex-direction:column;gap:12px;width:320px;max-width:100%}.auth-card h1{margin:0;font-size:22px;color:var(--text)}.auth-card input{margin-top:0}.auth-card .btn{margin-top:4px}.auth-error{color:var(--bad);font-size:13px}.sidebar-footer{margin-top:auto;padding:12px 8px 4px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar{display:flex;flex-direction:column}.sidebar-footer .user-name{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer .user-name:hover{color:var(--accent);text-decoration:none}.account-form{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.account-form h3{margin:0}.account-form label{width:100%}.auth-ok{color:var(--good);font-size:13px}.logout-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer;flex-shrink:0}.logout-btn:hover{border-color:var(--accent)}
