:root{--bg:#0b0d10;--surface:#12151a;--surface-2:#181c22;--ink:#e9e9e3;--ink-soft:#aeb4bb;--ink-faint:#767f88;--line:#232830;--line-strong:#313742;--accent:#7ee3da;--accent-ink:#0b0d10;--accent-soft:#7ee3da1f;--success:#6fb894;--success-soft:#6fb89424;--warn:#e0a059;--warn-soft:#e0a05924;--critical:#db8c7c;--critical-soft:#db8c7c24;--font-display:"Source Serif 4", Georgia, "Times New Roman", serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:600}p{color:var(--ink-soft);max-width:70ch;margin:0 0 1em}a{color:var(--accent)}code,.mono{font-family:var(--font-mono)}button{font-family:inherit}.eyebrow{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:500}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}@media (max-width:900px){.shell{grid-template-columns:1fr}.rail{display:none}}.rail{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;gap:24px;height:100vh;padding:28px 20px;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{flex-direction:column;gap:2px;display:flex}.rail-brand .mark{font-family:var(--font-display);font-size:19px;font-weight:600}.rail-brand .sub{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.04em;font-size:11px}.rail nav{flex-direction:column;gap:2px;display:flex}.rail nav a,.rail nav button.navlink{color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;width:100%;padding:7px 10px;font-size:13.5px;text-decoration:none;display:block}.rail nav a:hover,.rail nav button.navlink:hover{color:var(--ink);background:var(--surface-2)}.rail nav a.active,.rail nav button.navlink.active{color:var(--accent);background:var(--accent-soft)}.rail-progress{border-top:1px solid var(--line);margin-top:auto;padding-top:16px}.rail-progress .label{font-family:var(--font-mono);color:var(--ink-faint);justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.rail-progress .track{background:var(--surface-2);border-radius:3px;height:5px;overflow:hidden}.rail-progress .fill{background:var(--accent);height:100%;transition:width .3s}.rail-user{color:var(--ink-faint);flex-direction:column;gap:8px;font-size:12px;display:flex}.rail-user button{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:12px}.rail-user button:hover{border-color:var(--line-strong);color:var(--ink)}main{padding:0}.wrap{max-width:900px;margin:0 auto;padding:48px 40px 120px}@media (max-width:640px){.wrap{padding:32px 20px 80px}}section.block{padding-top:56px;scroll-margin-top:24px}section.block:first-child{padding-top:0}.block-head{align-items:baseline;gap:14px;margin-bottom:8px;display:flex}.block-num{font-family:var(--font-mono);color:var(--accent);font-size:13px;font-weight:600}.block-head h2{font-size:24px}hr.rule{border:none;border-top:1px solid var(--line);margin:48px 0}.check-section{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-top:20px;overflow:hidden}.check-section-head{background:var(--surface-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.check-section-head h4{font-size:13.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:500}.check-progress{font-family:var(--font-mono);color:var(--ink-faint);font-size:11.5px}.check-item{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.check-item:last-child{border-bottom:none}.check-item:hover{background:var(--surface-2)}.check-item input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex:none;margin-top:3px}.check-item .txt{color:var(--ink);font-size:13.5px}.check-item .txt .sub{color:var(--ink-faint);margin-top:2px;font-size:12px;display:block}.check-item.done .txt{color:var(--ink-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.check-item.saving{opacity:.55}.role-tabs{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.role-tabs a{font-family:var(--font-mono);letter-spacing:.03em;border:1px solid var(--line);color:var(--ink-soft);border-radius:20px;padding:7px 14px;font-size:12px;text-decoration:none}.role-tabs a.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.role-badge{font-family:var(--font-mono);background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line);border-radius:20px;padding:4px 10px;font-size:11px}.auth-shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;width:100%;max-width:380px;padding:32px 28px}.auth-card h1{margin-bottom:4px;font-size:22px}.auth-card .lede{color:var(--ink-faint);margin-bottom:24px;font-size:13.5px}.field{margin-bottom:16px}.field label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-size:11px;display:block}.field input{background:var(--surface-2);border:1px solid var(--line);width:100%;color:var(--ink);font-size:14px;font-family:var(--font-body);border-radius:8px;padding:10px 12px}.field input:focus{border-color:var(--accent);outline:none}.btn-primary{background:var(--accent);width:100%;color:var(--accent-ink);cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:11px 16px;font-size:14px;font-weight:600}.btn-primary:hover{opacity:.92}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.auth-error{background:var(--critical-soft);border:1px solid var(--critical);color:var(--critical);border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:12.5px}.auth-note{background:var(--success-soft);border:1px solid var(--success);color:var(--success);border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:12.5px}.auth-switch{text-align:center;color:var(--ink-faint);margin-top:18px;font-size:13px}.auth-switch a{cursor:pointer}footer.portal-footer{text-align:center;font-family:var(--font-mono);color:var(--ink-faint);border-top:1px solid var(--line);padding:32px;font-size:11px}
