:root{--color-text:#445;--color-text-strong:#223;--color-muted:#889;--color-bg:#f2f2f7;--color-surface:#fff;--color-surface-alt:#f7f7fc;--color-surface-glass:#fff;--color-card-bg:#fff;--color-border:#e0e0ea;--color-border-strong:#ccc;--color-input-bg:#f9f9fc;--color-cyan:#3af;--color-purple:#86c;--color-pink:#f6a;--color-blue:#3af;--color-orange:#fa3;--color-success:#7b0;--color-warning:#fa3;--color-danger:#e45;--shadow-soft:0 4px 12px #0000000d;--shadow-strong:0 8px 24px #0000001a;--radius-card:16px;--radius-pill:999px;--sidebar-width:260px;--bg-gradient:#f2f2f7;--bg-grid-line:transparent;--hero-bg:#fff;--dropzone-bg:#f9f9fc;--code-bg:#f2f2f7;--meter-track:#e0e0ea;--cyan-tint:#33aaff26;--cyan-tint-light:#33aaff40;--cyan-preview:#33aaff1a;--purple-tint:#8866cc26;--purple-band:transparent;--cyan-band:transparent;--ring-circle:#ff66aa26;--pdf-bg:#fff;--video-bg:#ff66aa1a;--preview-border:#3af;--result-ok-bg:#fff;--band-border:transparent}*{box-sizing:border-box}html{color:var(--color-text);letter-spacing:0;background:url(https://colorfulstage.com/img/bg_lottie_pc.jpg) 50%/cover fixed;font-family:Montserrat,Avenir Next,ui-rounded,Trebuchet MS,sans-serif}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button{border:0}button:disabled{cursor:not-allowed;opacity:.55}table{border-collapse:collapse;width:100%}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid;position:relative;overflow:hidden}.single-page{min-height:100vh;position:relative;overflow:hidden}.sidebar,.workspace,.page-frame{z-index:1;position:relative}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);min-height:100vh;padding:28px 18px}.brand{align-items:center;gap:12px;padding:10px;display:flex}.brand-mark{border-radius:12px;place-items:center;width:60px;height:60px;display:grid;overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%}.brand strong,.brand small{display:block}.brand strong{color:var(--color-text-strong)}.brand small{color:var(--color-muted);font-size:.78rem}.nav-list{gap:8px;margin-top:34px;display:grid}.nav-item{border-radius:var(--radius-card);min-height:42px;color:var(--color-text);align-items:center;gap:10px;padding:0 12px;font-weight:700;display:flex}.workspace{width:100%;max-width:1440px;padding:28px}.page-frame{width:min(1180px,100% - 48px);margin:0 auto;padding:28px 0}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.topbar.standalone{margin-bottom:28px}.topbar h1{color:var(--color-text-strong);margin:0;font-size:2.1rem;line-height:1.1}.topbar-actions,.hero-actions,.import-actions,.problem-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.eyebrow{color:var(--color-pink);text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:900}.primary-action,.secondary-action,.icon-button{border-radius:var(--radius-pill);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;font-weight:900;transition:transform .18s,background-color .18s,color .18s;display:inline-flex}.primary-action,.secondary-action{color:var(--color-text-strong);background:var(--color-surface-alt);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);transition:all .2s}.primary-action{color:#fff;background:var(--color-pink);transition:all .2s;box-shadow:0 4px 10px #f6a6}.primary-action:hover{filter:brightness(1.1);transform:translateY(-1px)}.secondary-action{color:var(--color-text-strong);background:var(--color-surface-alt);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);transition:all .2s}.secondary-action:hover{color:var(--color-text-strong);background:#faf4fcf5;border-color:#f05d9b3d;transform:translateY(-1px)}.icon-button{width:44px;color:var(--color-text);background:var(--color-card-bg);box-shadow:var(--shadow-soft)}.hero-panel{border-radius:var(--radius-card);background:var(--hero-bg);min-height:330px;box-shadow:var(--shadow-strong);grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:28px;padding:34px;display:grid;position:relative;overflow:hidden}.hero-panel:after{border:24px solid var(--ring-circle);content:"";border-radius:50%;width:240px;height:240px;position:absolute;bottom:-70px;right:-70px}.hero-copy{z-index:1;align-self:center;position:relative}.hero-copy h2{max-width:660px;color:var(--color-text-strong);margin:0;font-size:3rem;line-height:1.03}.hero-copy p:not(.eyebrow){max-width:610px;color:var(--color-muted);margin:18px 0 24px;font-size:1.05rem}.progress-orbit{z-index:1;place-items:center;min-height:260px;display:grid;position:relative}.progress-ring{border:18px solid var(--color-cyan);border-right-color:var(--color-pink);border-bottom-color:var(--color-purple);background:var(--color-card-bg);width:184px;height:184px;box-shadow:var(--shadow-soft);border-radius:50%;place-items:center;display:grid}.progress-ring span{color:var(--color-text-strong);font-size:3.4rem;font-weight:900;line-height:1}.progress-ring small{color:var(--color-muted);margin-top:-34px;font-weight:900}.orbit-card{border-radius:var(--radius-pill);background:var(--color-card-bg);min-height:42px;box-shadow:var(--shadow-soft);color:var(--color-text-strong);align-items:center;gap:8px;padding:0 14px;font-weight:900;display:inline-flex;position:absolute}.orbit-card-one{top:24px;right:22px}.orbit-card-two{bottom:26px;left:18px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0;display:grid}.metric-card{border-radius:var(--radius-card);background:var(--color-card-bg);box-shadow:var(--shadow-soft);border-top:5px solid var(--color-cyan);padding:20px}.metric-card small,.metric-card strong{display:block}.metric-card small{color:var(--color-muted);font-weight:800}.metric-card strong{color:var(--color-text-strong);margin-top:8px;font-size:2rem;line-height:1}.accent-purple{border-top-color:var(--color-purple)}.accent-pink{border-top-color:var(--color-pink)}.accent-orange{border-top-color:var(--color-orange)}.content-grid,.problem-layout,.import-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start;gap:18px;display:grid}.panel{border-radius:var(--radius-card);background:var(--color-surface-alt);box-shadow:var(--shadow-soft)}.panel-header{justify-content:space-between;align-items:center;gap:16px;padding:20px 20px 0;display:flex}.panel-header h2{color:var(--color-text-strong);margin:0;font-size:1.35rem;line-height:1.2}.text-link{color:var(--color-blue);font-weight:900}.set-list,.topic-stack,.validation-list,.check-list{gap:10px;padding:20px;display:grid}.set-row{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg);justify-content:space-between;align-items:center;gap:14px;min-height:64px;padding:10px 12px;display:flex}.set-row:hover{border-color:var(--color-cyan);transform:translateY(-1px)}.set-main{align-items:center;gap:12px;display:flex}.set-main strong,.set-main small{display:block}.set-main strong{color:var(--color-text-strong)}.set-main small{color:var(--color-muted)}.status-dot{background:var(--color-muted);border-radius:50%;width:12px;height:12px}.status-solved{background:var(--color-success)}.status-attempted{background:var(--color-warning)}.status-not-started{background:var(--color-blue)}.status-review{background:var(--color-danger)}.score-pill{border-radius:var(--radius-pill);background:var(--cyan-tint-light);min-width:58px;color:var(--color-text-strong);text-align:center;padding:6px 10px;font-weight:900}.topic-bar{gap:8px;display:grid}.topic-label{color:var(--color-text-strong);justify-content:space-between;font-weight:800;display:flex}.meter{border-radius:var(--radius-pill);background:var(--meter-track);height:12px;overflow:hidden}.meter-fill{border-radius:inherit;height:100%;display:block}.fill-cyan{background:var(--color-cyan)}.fill-purple{background:var(--color-purple)}.fill-pink{background:var(--color-pink)}.fill-orange{background:var(--color-orange)}.table-panel{margin-top:18px}.table-wrap{padding:12px 20px 20px;overflow-x:auto}th,td{border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap;padding:14px 12px}th{color:var(--color-muted);text-transform:uppercase;font-size:.82rem}td{color:var(--color-text-strong);font-weight:700}.import-panel,.import-spec,.statement-panel,.answer-panel{padding-bottom:20px}.dropzone{border-radius:var(--radius-card);background:var(--dropzone-bg);cursor:pointer;text-align:center;border:2px dashed #45a0ff73;place-items:center;min-height:230px;margin:20px;display:grid}.dropzone input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dropzone strong,.dropzone span{display:block}.dropzone strong{color:var(--color-text-strong);font-size:1.35rem}.dropzone span{color:var(--color-muted);font-size:.92rem;font-weight:800}.validation-row{color:var(--color-text-strong);align-items:center;gap:10px;font-weight:800;display:flex}.validation-row.ok svg{color:var(--color-success)}.validation-row.fail svg{color:var(--color-danger)}.import-actions,.problem-actions{justify-content:flex-end;padding:0 20px}.dry-run-result{gap:12px;margin:20px 20px 0;display:grid}.result-error,.issue-row,.preview-card{border-radius:var(--radius-card);background:var(--color-card-bg)}.result-error{color:var(--color-danger);margin:0;padding:12px 14px;font-weight:900}.preview-card{border:1px solid var(--preview-border);gap:14px;padding:14px;display:grid}.preview-heading{align-items:center;gap:10px;display:flex}.preview-heading strong,.preview-heading small{display:block}.preview-heading strong{color:var(--color-text-strong)}.preview-heading small{color:var(--color-muted);font-weight:800}.preview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}.preview-grid div{border-radius:var(--radius-card);background:var(--cyan-preview);padding:10px}.preview-grid dt{color:var(--color-muted);text-transform:uppercase;font-size:.74rem;font-weight:900}.preview-grid dd{color:var(--color-text-strong);margin:3px 0 0;font-weight:900}.preview-files{flex-wrap:wrap;gap:8px;display:flex}.preview-files span{border-radius:var(--radius-pill);background:var(--purple-tint);color:var(--color-text-strong);padding:6px 10px;font-size:.82rem;font-weight:900}.issue-list{gap:8px;display:grid}.issue-row{min-height:38px;color:var(--color-text-strong);align-items:center;gap:8px;padding:0 12px;font-size:.88rem;font-weight:800;display:flex}.issue-row.ok svg{color:var(--color-success)}.issue-row.warning svg{color:var(--color-warning)}.issue-row.error svg{color:var(--color-danger)}.import-spec pre{border-radius:var(--radius-card);background:var(--color-text);color:var(--color-cyan);margin:20px;padding:18px;font-size:.95rem;line-height:1.55;overflow-x:auto}.check-list span{border-radius:var(--radius-pill);background:var(--purple-tint);min-height:38px;color:var(--color-text-strong);align-items:center;padding:0 12px;font-weight:900;display:inline-flex}.pdf-placeholder{border-radius:var(--radius-card);background:var(--pdf-bg);min-height:420px;color:var(--color-text-strong);text-align:center;place-items:center;margin:20px;display:grid}.pdf-placeholder strong,.pdf-placeholder span{display:block}.problem-statement-list{gap:14px;margin:20px;display:grid}.problem-statement-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-alt);grid-template-columns:52px minmax(0,1fr);gap:14px;padding:16px;display:grid}.statement-number{background:var(--cyan-tint);width:40px;height:40px;color:var(--color-text-strong);border-radius:12px;place-items:center;font-weight:900;display:grid}.statement-text{color:var(--color-text-strong);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:1rem;line-height:1.65}.video-strip{border-radius:var(--radius-card);background:var(--video-bg);min-height:50px;color:var(--color-text-strong);align-items:center;gap:10px;margin:0 20px;padding:0 14px;font-weight:900;display:flex}.answer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:20px;display:grid}.answer-cell{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg);grid-template-columns:46px minmax(0,1fr);align-items:center;min-height:58px;display:grid;overflow:hidden}.answer-cell span{background:var(--cyan-tint);height:100%;color:var(--color-text-strong);place-items:center;font-weight:900;display:grid}.answer-cell input{width:100%;min-height:56px;color:var(--color-text-strong);border:0;outline:none;padding:0 14px}.answer-cell input:focus{box-shadow:inset 0 0 0 2px var(--color-blue)}.answer-cell.graded{cursor:default}.answer-cell.correct{border-color:var(--color-success)}.answer-cell.incorrect{border-color:var(--color-danger)}.graded-answer{min-height:56px;color:var(--color-text-strong);justify-content:space-between;align-items:center;padding:0 10px;font-weight:700;display:flex}.grade-icon{flex-shrink:0}.correct-icon{color:var(--color-success)}.incorrect-icon{color:var(--color-danger)}.score-result{align-items:center;gap:20px;padding:24px 20px;display:flex}.score-ring{border:12px solid var(--color-success);border-right-color:var(--color-danger);background:var(--color-card-bg);width:110px;height:110px;box-shadow:var(--shadow-soft);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.score-ring span{color:var(--color-text-strong);font-size:2rem;font-weight:900;line-height:1}.score-ring small{color:var(--color-muted);margin-top:-20px;font-size:.82rem;font-weight:900}.score-details strong,.score-details p{display:block}.score-details strong{color:var(--color-text-strong);font-size:1.3rem}.score-details p{color:var(--color-muted);margin:4px 0 0;font-weight:800}.fill-count{color:var(--color-muted);margin-right:auto;font-size:.88rem;font-weight:900}.import-result-card{border-radius:var(--radius-card);border:2px solid var(--color-success);background:var(--result-ok-bg);gap:14px;margin:20px;padding:18px;display:grid}.result-header{color:var(--color-success);align-items:center;gap:10px;display:flex}.result-header strong,.result-header small{display:block}.result-header strong{color:var(--color-text-strong)}.result-header small{color:var(--color-muted);font-weight:800}.result-links{flex-wrap:wrap;gap:10px;display:flex}.slug-code{border-radius:var(--radius-card);background:var(--code-bg);color:var(--color-text-strong);padding:4px 8px;font-size:.82rem;font-weight:800}.status-badge{border-radius:var(--radius-pill);text-transform:uppercase;color:#fff;align-items:center;min-height:28px;padding:0 12px;font-size:.78rem;font-weight:900;display:inline-flex}.status-badge.status-not-started{background:var(--color-blue)}.status-badge.status-solved{background:var(--color-success)}.status-badge.status-attempted{background:var(--color-warning)}.status-badge.status-review{background:var(--color-danger)}.empty-state{text-align:center;min-height:300px;color:var(--color-muted);place-items:center;gap:12px;padding:40px;display:grid}.empty-state strong{color:var(--color-text-strong);font-size:1.3rem}.empty-state p{max-width:360px;margin:0}.form-grid{gap:16px;padding:20px;display:grid}.form-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.form-field{gap:6px;display:grid}.form-label{color:var(--color-muted);text-transform:uppercase;font-size:.78rem;font-weight:900}.form-input{border:1px solid var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-input-bg);min-height:44px;color:var(--color-text-strong);font:inherit;padding:0 12px;font-weight:700}.form-input:focus{border-color:var(--color-blue);outline:none;box-shadow:0 0 0 3px #45a0ff2e}.form-textarea{resize:vertical;padding:12px}.form-select{cursor:pointer}.form-error{color:var(--color-danger);font-size:.88rem;font-weight:900}.form-success{color:var(--color-success);align-items:center;gap:6px;font-size:.88rem;font-weight:900;display:inline-flex}.problem-number{background:var(--color-cyan);width:32px;height:32px;color:var(--color-text-strong);border-radius:50%;flex-shrink:0;place-items:center;font-size:.82rem;font-weight:900;display:grid}.topic-chips{color:var(--color-muted);font-size:.82rem;font-weight:800}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-icon{animation:1s linear infinite spin}.theme-toggle{position:relative}@media (prefers-color-scheme:dark){html:not(.light){--color-text:#b0b0cc;--color-text-strong:#e4e4f0;--color-muted:#8888a8;--color-bg:#0e0e1a;--color-surface:#181828;--color-surface-alt:#181828f2;--color-surface-glass:#181828d9;--color-card-bg:#1e1e32;--color-border:#b4b4dc1f;--color-border-strong:#b4b4dc2e;--color-input-bg:#14141f;--shadow-soft:0 5px 15px #00000073;--shadow-strong:0 18px 50px #45a0ff1f;--bg-gradient:#0e0e1a;--bg-grid-line:#b4b4dc0a;--hero-bg:#1e1e32;--dropzone-bg:#1e1e32;--code-bg:#b4b4dc14;--meter-track:#b4b4dc1a;--cyan-tint:#78eedd26;--cyan-tint-light:#78eedd33;--cyan-preview:#78eedd1a;--purple-tint:#b97bff1f;--purple-band:#b97bff14;--cyan-band:#78eedd14;--ring-circle:#b97bff26;--pdf-bg:#1e1e32;--video-bg:#ff7cc11a;--preview-border:#78eedd40;--result-ok-bg:#1e1e32;--band-border:#ffffff14;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}html.dark{--color-text:#ccc;--color-text-strong:#fff;--color-muted:#889;--color-bg:#111116;--color-surface:#222228;--color-surface-alt:#2a2a33;--color-surface-glass:#222228;--color-card-bg:#222228;--color-border:#33333d;--color-border-strong:#445;--color-input-bg:#1a1a20;--shadow-soft:0 4px 12px #0006;--shadow-strong:0 8px 24px #0009;--bg-gradient:#111116;--bg-grid-line:transparent;--hero-bg:#222228;--dropzone-bg:#1a1a20;--code-bg:#1a1a20;--meter-track:#33333d;--cyan-tint:#3af3;--cyan-tint-light:#33aaff4d;--cyan-preview:#33aaff26;--purple-tint:#86c3;--purple-band:transparent;--cyan-band:transparent;--ring-circle:#f6a3;--pdf-bg:#222228;--video-bg:#ff66aa26;--preview-border:#3af;--result-ok-bg:#222228;--band-border:transparent;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.dark .secondary-action:hover,html:not(.light) .secondary-action:hover{color:var(--color-text-strong)}html.dark .nav-item:hover,html.dark .nav-item.active,html:not(.light) .nav-item:hover,html:not(.light) .nav-item.active{color:var(--color-text-strong);background:#f05d9b26;border-color:#f05d9b33}html.dark .import-spec pre,html:not(.light) .import-spec pre{background:#0a0a14}html.dark .answer-cell input,html:not(.light) .answer-cell input{background:var(--color-input-bg);color:var(--color-text-strong)}@media (max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);min-height:100vh;padding:28px 18px}.nav-list{grid-template-columns:repeat(5,minmax(0,1fr))}.nav-item{justify-content:center}.hero-panel,.content-grid,.problem-layout,.import-layout{grid-template-columns:1fr}}@media (max-width:760px){.workspace,.page-frame{width:100%;padding:18px}.topbar{flex-direction:column;align-items:flex-start}.topbar h1{font-size:1.7rem}.hero-panel{padding:24px}.hero-copy h2{font-size:2rem}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-list{grid-template-columns:1fr 1fr}.nav-item{justify-content:flex-start}.answer-grid,.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.metric-grid,.answer-grid{grid-template-columns:1fr}.primary-action,.secondary-action{color:var(--color-text-strong);background:var(--color-surface-alt);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);transition:all .2s}}.heatmap-section{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;margin-bottom:24px;padding:24px}.accuracy-card:hover{border-color:var(--color-muted)}.accuracy-pct{font-size:1.5rem;font-weight:900}.accuracy-card small{color:var(--color-muted);font-size:.75rem}.level-success{border-left:3px solid var(--color-success)}.level-warning{border-left:3px solid var(--color-warning)}.level-danger{border-left:3px solid var(--color-danger)}@media (max-width:600px){.heatmap-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.heatmap-grid{grid-template-columns:1fr}}.heatmap-section{margin-top:24px}.heatmap-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:16px;display:grid}.accuracy-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;gap:6px;padding:16px;transition:transform .15s,box-shadow .15s;display:flex}.accuracy-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.accuracy-card strong{font-size:.85rem;font-weight:800}.accuracy-pct{letter-spacing:-.02em;font-size:1.5rem;font-weight:900}.accuracy-card small{color:var(--color-muted);font-size:.72rem;font-weight:600}.level-success{border-color:#00d2b440}.level-warning{border-color:#ffaa3240}.level-danger{border-color:#ff506440}.level-success .accuracy-pct{color:var(--color-success)}.level-warning .accuracy-pct{color:var(--color-warning)}.level-danger .accuracy-pct{color:var(--color-danger)}.topbar-actions{align-items:center;gap:10px;display:flex}.secondary-action.compact{padding:6px 12px;font-size:.78rem}@media (max-width:640px){.heatmap-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.heatmap-grid{grid-template-columns:1fr}.topbar-actions{flex-direction:column;width:100%}}:root{--color-text:#48516b;--color-text-strong:#1d2640;--color-muted:#7d89a4;--color-bg:#eef3fb;--color-surface:#fffffff5;--color-surface-alt:#f8f9ff;--color-surface-glass:#ffffffeb;--color-card-bg:#fff;--color-border:#d8e0f1;--color-border-strong:#c4d0e8;--color-input-bg:#fbfcff;--color-cyan:#2fb9e8;--color-purple:#8874ff;--color-pink:#f05d9b;--color-blue:#4b88ff;--color-orange:#ffbd63;--color-success:#23b678;--color-warning:#f1b44f;--color-danger:#de5d63;--shadow-soft:0 16px 38px #3d4f7814;--shadow-strong:0 30px 72px #3d4f7824;--radius-card:14px;--radius-pill:999px;--sidebar-bg:#fff;--sidebar-border:#c4d0e8e0;--sidebar-text:#32405f;--sidebar-muted:#8592ad;--landing-bg:#eef3fb;--card-bg:var(--color-card-bg);--card-border:var(--color-border)}body{color:var(--color-text);background:var(--color-bg)}.app-shell{background:var(--color-bg)}.workspace{max-width:none;padding:32px}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);flex-direction:column;gap:18px;padding:24px 18px;display:flex;box-shadow:inset -1px 0 #ffffffb3}.sidebar-footer{margin-top:auto}.brand{border-radius:16px}.brand-on-dark strong{color:var(--color-text-strong)}.brand-on-dark small{color:var(--sidebar-muted)}.brand-mark{border-radius:14px}.nav-list{gap:10px}.nav-item{min-height:46px;color:var(--sidebar-text);border:1px solid #0000;border-radius:12px;padding:0 14px;font-weight:800;transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s}.nav-item:hover,.nav-item.active{color:var(--color-text-strong);background:#f05d9b1a;border-color:#f05d9b33}.topbar h1{font-size:2.3rem}.eyebrow{color:var(--color-pink);letter-spacing:.08em}.topbar-actions,.hero-actions,.import-actions,.problem-actions{gap:10px}.primary-action,.secondary-action,.icon-button{border-radius:12px;min-height:46px;padding:0 16px}.primary-action{background:var(--color-pink);color:#fff;border:0;box-shadow:0 4px 12px #f05d9b4d}.primary-action:hover{box-shadow:0 20px 38px #8974ff3d}.secondary-action{border:1px solid var(--color-border);color:var(--color-text-strong);background:#ffffffeb}.secondary-action:hover{color:var(--color-text-strong);background:#faf4fcf5;border-color:#f05d9b3d}.secondary-action.compact{min-height:38px;padding:0 13px}.icon-button{border:1px solid var(--color-border);background:#ffffffeb;width:46px;padding:0}.panel,.metric-card,.set-row,.preview-card,.issue-row,.result-error,.score-result,.import-result-card,.accuracy-card,.heatmap-section{box-shadow:var(--shadow-soft);border:1px solid #3d4f7814}.panel{background:var(--color-card-bg)}.hero-panel{background:var(--color-card-bg);border:1px solid #3d4f7814;min-height:340px}.hero-panel:after{border-width:18px;width:220px;height:220px;bottom:-50px;right:-30px}.hero-copy h2{max-width:700px;font-size:3rem}.progress-ring{border-width:16px;border-color:#2fb9e829;border-top-color:var(--color-pink);border-right-color:var(--color-blue);border-bottom-color:var(--color-purple);background:var(--color-card-bg)}.orbit-card{border:1px solid var(--color-border)}.metric-card{border-top:0;border-left:4px solid var(--color-cyan);background:#fffffff5}.accent-purple{border-left-color:var(--color-purple)}.accent-pink{border-left-color:var(--color-pink)}.accent-orange{border-left-color:var(--color-orange)}.text-link{color:var(--color-blue)}.set-row:hover,.accuracy-card:hover{transform:translateY(-1px);box-shadow:0 18px 38px #3d4f781a}.score-pill,.preview-files span,.check-list span,.status-badge,.topic-chips,.domain-pill,.session-badge{border-radius:10px}.score-pill{color:var(--color-text-strong);background:#eef2ff}.table-wrap{padding-top:16px}.dropzone{background:var(--color-surface-alt);border:1.5px dashed #4b88ff61}.import-spec pre{color:#93ecff;background:#1a2440;border:1px solid #ffffff1f}.check-list span,.preview-files span,.status-badge{border:1px solid #3d4f7814}.pdf-placeholder{border:1px solid var(--color-border);background:var(--color-surface)}.video-strip{background:#f05d9b14;border:1px solid #f05d9b1f}.muted-strip{color:var(--color-muted)}.file-meta-row{color:var(--color-muted);gap:12px;padding:12px 20px 0;font-size:.88rem;font-weight:700;display:flex}.answer-cell{border-radius:12px}.answer-cell span{background:#f05d9b1a}.answer-cell input,.form-input{background:var(--color-input-bg)}.form-input,.form-select,.form-textarea{border-radius:10px}.heatmap-section{background:#fffffff0;margin-top:20px;padding:24px}.accuracy-card{background:#fffffff0}.auth-session,.auth-actions,.bypass-group{display:flex}.auth-session{flex-wrap:wrap;align-items:center;gap:10px}.session-badge{min-height:36px;color:var(--color-text-strong);background:#1d26400f;align-items:center;padding:0 12px;font-size:.82rem;font-weight:800;display:inline-flex}.auth-actions{flex-direction:column;gap:10px;width:100%}.auth-actions-inline{flex-direction:row;align-items:center;width:auto}.bypass-group{flex-wrap:wrap;gap:10px}.landing-shell{background:var(--landing-bg);min-height:100vh;padding:24px}.login-stage{flex-direction:column;gap:30px;width:min(1080px,100%);min-height:calc(100vh - 48px);margin:0 auto;display:flex}.login-topbar{justify-content:space-between;align-items:center;gap:18px;padding-top:4px;display:flex}.login-brand{padding-left:0}.login-layout{flex:1;grid-template-columns:minmax(0,1fr) minmax(360px,420px);align-items:center;gap:54px;display:grid}.login-copy{align-content:center;gap:16px;max-width:560px;display:grid}.login-copy h1{color:var(--color-text-strong);margin:0;font-size:4.2rem;line-height:.95}.login-copy-text{max-width:520px;color:var(--color-muted);margin:0;font-size:1.05rem;line-height:1.7}.login-card{background:var(--color-card-bg);box-shadow:var(--shadow-strong);border:1px solid #c4d0e8e0;border-radius:18px;gap:14px;padding:30px 28px 26px;display:grid;position:relative;overflow:hidden}.login-card:before{background:var(--color-pink);content:"";width:100%;height:4px;position:absolute;top:0;left:0}.login-card-head{gap:4px;margin-bottom:4px;display:grid}.login-card-head h2{color:var(--color-text-strong);margin:0;font-size:2rem;line-height:1.02}.judge-field{border:1px solid var(--color-border);background:var(--color-input-bg);border-radius:12px;gap:6px;padding:14px 16px;display:grid;box-shadow:inset 0 1px #fffc}.judge-field span{color:var(--color-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:900}.judge-field strong{color:var(--color-text-strong);font-size:.96rem;font-weight:800}.auth-cta{color:#fff;background:#fff;border:1px solid #536795c2;border-radius:14px;justify-content:center;width:100%;min-height:52px;position:relative;box-shadow:inset 0 1px #ffffff14,0 18px 36px #171f3233}.auth-cta:hover{filter:brightness(1.04);transform:translateY(-1px)}.auth-bypass{flex:160px}.landing-footnote{align-items:center;gap:8px;margin-top:4px;display:flex}.landing-footnote span{color:var(--color-muted);margin:0;font-size:.9rem;font-weight:700}.landing-footnote svg{color:var(--color-pink)}.login-note{min-height:24px;color:var(--color-muted);justify-content:center;align-items:center;gap:10px;font-size:.9rem;font-weight:700;display:flex}.login-note svg{color:var(--color-purple)}.empty-inline-state{gap:6px;padding:20px;display:grid}.empty-inline-state strong{color:var(--color-text-strong)}.empty-inline-state small{color:var(--color-muted);font-size:.88rem;font-weight:700}html.dark{--color-text:#d0d9ef;--color-text-strong:#f3f6ff;--color-muted:#9ba8c6;--color-bg:#141c2b;--color-surface:#171f30f0;--color-surface-alt:#1b2438;--color-surface-glass:#182132eb;--color-card-bg:#1a2235;--color-border:#9cabcd2e;--color-border-strong:#9cabcd4d;--color-input-bg:#161e31;--shadow-soft:0 16px 38px #00000047;--shadow-strong:0 30px 72px #00000057;--sidebar-bg:#1a2235;--sidebar-border:#9cabcd2e;--sidebar-text:#d8e0f4;--sidebar-muted:#9ba8c6;--landing-bg:#141c2b;--card-bg:var(--color-card-bg);--card-border:var(--color-border)}html.dark body{background:var(--color-bg)}html.dark .panel,html.dark .metric-card,html.dark .set-row,html.dark .preview-card,html.dark .issue-row,html.dark .result-error,html.dark .score-result,html.dark .import-result-card,html.dark .accuracy-card,html.dark .heatmap-section,html.dark .icon-button,html.dark .secondary-action,html.dark .dropzone,html.dark .pdf-placeholder,html.dark .judge-field{border-color:var(--color-border);color:var(--color-text-strong);background:#182132f0}html.dark .hero-panel{background:var(--color-card-bg)}html.dark .nav-item:hover,html.dark .nav-item.active{color:var(--color-text-strong);background:#f05d9b26;border-color:#f05d9b33}html.dark .secondary-action:hover{color:var(--color-text-strong);background:#ffffff1f;border-color:#ffffff1f}html.dark .score-pill{color:#f4f7ff;background:#4b88ff24}html.dark .session-badge{color:#fff;background:#ffffff14}html.dark .answer-cell span{background:#f05d9b26}html.dark .video-strip{background:#f05d9b1a}html.dark .login-card{background:var(--color-card-bg);border-color:#9cabcd33}html.dark .login-note,html.dark .landing-footnote span,html.dark .judge-field span{color:var(--color-muted)}@media (max-width:1120px){.login-layout{grid-template-columns:1fr;gap:32px}.login-copy h1{font-size:3.4rem}.login-card{max-width:460px}}@media (max-width:1050px){.sidebar{min-height:auto}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.workspace{padding:22px 18px 28px}.landing-shell{padding:16px}.login-stage{min-height:calc(100vh - 32px)}.login-copy h1{font-size:2.8rem}.bypass-group,.auth-session,.auth-actions-inline{flex-direction:column;align-items:stretch}.auth-bypass{flex-basis:auto}}@media (max-width:560px){.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.login-topbar,.topbar{flex-direction:column;align-items:flex-start}.login-layout{gap:24px}.login-card{padding:24px 20px 22px}.login-card-head h2{font-size:1.72rem}.login-copy h1{font-size:2.4rem}.hero-copy h2{font-size:2.3rem}}@keyframes tri-float-1{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-18px)rotate(12deg)}}@keyframes tri-float-2{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-14px)rotate(-8deg)}}@keyframes tri-float-3{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-22px)rotate(15deg)}}.confetti-triangles{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.confetti-triangles span{opacity:.18;border-style:solid;width:0;height:0;position:absolute}.tri-1{border-width:0 14px 24px;border-color:transparent transparent var(--color-pink) transparent;animation:6s ease-in-out infinite tri-float-1;top:8%;left:6%}.tri-2{border-width:0 10px 18px;border-color:transparent transparent var(--color-pink) transparent;opacity:.14;animation:8s ease-in-out infinite tri-float-2;top:22%;right:12%}.tri-3{border-width:0 8px 14px;border-color:transparent transparent var(--color-pink) transparent;animation:7s ease-in-out infinite tri-float-3;bottom:30%;left:14%}.tri-4{border-width:0 12px 20px;border-color:transparent transparent var(--color-cyan) transparent;opacity:.15;animation:9s ease-in-out infinite tri-float-1;top:35%;right:5%}.tri-5{border-width:0 9px 16px;border-color:transparent transparent var(--color-cyan) transparent;animation:7s ease-in-out infinite tri-float-2;bottom:18%;left:28%}.tri-6{border-width:0 11px 19px;border-color:transparent transparent var(--color-cyan) transparent;opacity:.12;animation:10s ease-in-out infinite tri-float-3;top:12%;left:40%}.tri-7{border-width:0 13px 22px;border-color:transparent transparent var(--color-purple) transparent;animation:8s ease-in-out infinite tri-float-2;bottom:10%;right:8%}.tri-8{border-width:0 7px 12px;border-color:transparent transparent var(--color-purple) transparent;opacity:.13;animation:11s ease-in-out infinite tri-float-1;top:55%;left:8%}.tri-9{border-width:0 10px 17px;border-color:transparent transparent var(--color-orange) transparent;opacity:.16;animation:9s ease-in-out infinite tri-float-3;top:45%;right:22%}.tri-10{border-width:0 8px 14px;border-color:transparent transparent var(--color-orange) transparent;opacity:.12;animation:7s ease-in-out infinite tri-float-1;bottom:40%;right:35%}.tri-11{border-width:0 11px 19px;border-color:transparent transparent var(--color-blue) transparent;opacity:.14;animation:10s ease-in-out infinite tri-float-2;top:70%;left:50%}.tri-12{border-width:0 9px 15px;border-color:transparent transparent var(--color-blue) transparent;animation:6s ease-in-out infinite tri-float-3;top:5%;right:30%}html.dark .confetti-triangles span{opacity:.08}@media (max-width:760px){.confetti-triangles span{opacity:.1}html.dark .confetti-triangles span{opacity:.05}}.feedback-filters{flex-wrap:wrap;gap:8px;padding:0 20px 12px;display:flex}.filter-chip{border:1px solid var(--color-border);background:var(--color-card-bg);min-height:34px;color:var(--color-text);cursor:pointer;border-radius:10px;align-items:center;padding:0 14px;font-size:.82rem;font-weight:800;transition:all .16s;display:inline-flex}.filter-chip:hover{border-color:var(--color-pink);color:var(--color-text-strong)}.filter-chip.active{border-color:var(--color-pink);color:var(--color-text-strong);background:#f05d9b1f}.admin-note-input{border:1px solid var(--color-border);background:var(--color-input-bg);width:100%;min-height:36px;color:var(--color-text-strong);font:inherit;border-radius:8px;padding:6px 10px;font-size:.85rem}.resolve-actions{align-items:center;gap:6px;display:flex}.btn-sm{cursor:pointer;border:1px solid var(--color-border);background:var(--color-card-bg);min-height:30px;color:var(--color-text-strong);border-radius:8px;align-items:center;gap:4px;padding:0 10px;font-size:.78rem;font-weight:800;transition:all .16s;display:inline-flex}.btn-sm.btn-success{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-sm.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-sm.btn-warning{background:var(--color-warning);border-color:var(--color-warning);color:#fff}.type-badge{text-transform:uppercase;border-radius:6px;align-items:center;min-height:24px;padding:0 8px;font-size:.72rem;font-weight:900;display:inline-flex}.type-badge.type-wrong_answer_key{color:var(--color-danger);background:#de5d631f}.type-badge.type-wrong_solution{color:var(--color-warning);background:#f1b44f1f}.type-badge.type-typo{color:var(--color-blue);background:#4b88ff1f}.type-badge.type-unclear{color:var(--color-purple);background:#8874ff1f}.type-badge.type-other{color:var(--color-muted);background:#7d89a41f}.typewriter-greeting{font-size:inherit;font-weight:inherit;color:inherit;line-height:inherit;display:inline}.typewriter-cursor{color:var(--color-pink);margin-left:1px;font-weight:300;transition:opacity .1s}.hero-copy h2 .typewriter-greeting{min-height:1.2em}.hero-copy h2{min-height:3.6em}.create-set-shell{max-width:960px;margin:0 auto;padding:2rem 1.5rem 6rem}.create-set-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.create-set-header h1{color:var(--color-text-strong);font-size:1.8rem;font-weight:900}.create-set-header-actions{align-items:center;gap:.75rem;display:flex}.create-set-alert{border-radius:var(--radius-card);align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:.85rem 1.2rem;font-size:.92rem;font-weight:600;display:flex}.create-set-alert-error{color:var(--color-danger);background:#ef4b6c1a;border:1px solid #ef4b6c40}.create-set-alert-success{color:var(--color-success);background:#1bbf891a;border:1px solid #1bbf8940}.create-set-meta,.create-set-problems{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:1.5rem;padding:1.5rem}.create-set-meta h2,.create-set-problems-head h2{color:var(--color-text-strong);align-items:center;gap:.5rem;margin-bottom:1.2rem;font-size:1.1rem;font-weight:800;display:flex}.create-set-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-field-full{grid-column:1/-1}.form-field-sm{max-width:100px}.form-field label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;display:flex}.slug-toggle{color:var(--color-pink);cursor:pointer;text-transform:uppercase;background:0 0;border:none;font-size:.72rem;font-weight:700}.form-field input,.form-field textarea,.form-field select{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-bg);color:var(--color-text-strong);padding:.65rem .85rem;font-family:inherit;font-size:.92rem;transition:border-color .15s}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--color-pink);outline:none}.form-field input[readonly]{opacity:.6}.form-hint{color:var(--color-muted);font-size:.78rem;font-style:italic}.video-preview{border-radius:var(--radius-card);border:1px solid var(--color-border);margin-top:.75rem;overflow:hidden}.create-set-problems-head{justify-content:space-between;align-items:center;display:flex}.problem-card{border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:1rem;overflow:hidden}.problem-card-head{background:var(--color-bg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.65rem 1rem;display:flex}.problem-number{color:var(--color-pink);align-items:center;gap:.5rem;font-size:.95rem;font-weight:900;display:flex}.grip-icon{color:var(--color-muted);cursor:grab}.problem-card-actions{gap:.4rem;display:flex}.icon-button-sm{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg);width:30px;height:30px;color:var(--color-muted);cursor:pointer;place-items:center;transition:all .15s;display:grid}.icon-button-sm:hover{border-color:var(--color-pink);color:var(--color-pink)}.icon-button-danger:hover{border-color:var(--color-danger);color:var(--color-danger)}.problem-card-body{flex-direction:column;gap:.85rem;padding:1rem;display:flex}.problem-answer-row{grid-template-columns:1fr 1fr auto;align-items:start;gap:1rem;display:grid}.problem-extra-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.latex-preview{background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius-card);min-height:2.5rem;margin-top:.5rem;padding:1rem;overflow-x:auto}.latex-placeholder{color:var(--color-muted);font-size:.85rem;font-style:italic}.latex-error{color:var(--color-danger);font-size:.85rem;font-weight:600}.add-problem-btn{border:2px dashed var(--color-border);border-radius:var(--radius-card);width:100%;color:var(--color-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.85rem;font-size:.92rem;font-weight:700;transition:all .15s;display:flex}.add-problem-btn:hover{border-color:var(--color-pink);color:var(--color-pink)}.create-set-footer{background:var(--color-card-bg);border-top:1px solid var(--color-border);z-index:50;justify-content:space-between;align-items:center;padding:.85rem 2rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #00000014}.create-set-footer-count{color:var(--color-muted);font-size:.88rem;font-weight:600}@media (max-width:700px){.create-set-grid,.problem-answer-row,.problem-extra-row{grid-template-columns:1fr}.create-set-header{flex-direction:column}}.default-avatar{background:var(--color-pink);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:96px;height:96px;font-size:2.5rem;font-weight:900;line-height:1;display:grid}.default-avatar-sm{width:36px;height:36px;font-size:.9rem}.settings-shell{max-width:640px;margin:0 auto;padding:2rem 1.5rem 4rem}.settings-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.settings-header h1{color:var(--color-text-strong);font-size:1.8rem;font-weight:900}.settings-loading{text-align:center;color:var(--color-muted);padding:4rem 0}.settings-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:2rem}.settings-avatar-section{border-bottom:1px solid var(--color-border);align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.settings-avatar-preview{flex-shrink:0}.settings-avatar-img{object-fit:cover;border:3px solid var(--color-pink);border-radius:50%;width:96px;height:96px}.settings-avatar-info h3{color:var(--color-text-strong);font-size:1.3rem;font-weight:900}.settings-role-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--color-pink);background:#e85d951f;border-radius:9999px;margin-top:.3rem;padding:.15rem .6rem;font-size:.72rem;font-weight:800;display:inline-block}.settings-form{flex-direction:column;gap:1.2rem;display:flex}.settings-row{flex-direction:column;gap:.3rem;display:flex}.settings-row label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;display:flex}.settings-row input{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-bg);color:var(--color-text-strong);padding:.65rem .85rem;font-family:inherit;font-size:.92rem;transition:border-color .15s}.settings-row input:focus{border-color:var(--color-pink);outline:none}.settings-readonly{opacity:.55;cursor:not-allowed}.settings-save{align-self:flex-start;margin-top:.5rem}.settings-clear-avatar{width:fit-content}.theme-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.theme-choice-button{border:1px solid var(--color-border);background:var(--color-bg);min-height:42px;color:var(--color-text-strong);font:inherit;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:0 .9rem;font-weight:800;transition:background-color .16s,border-color .16s,color .16s,transform .16s;display:inline-flex}.theme-choice-button:hover,.theme-choice-button.active{color:var(--color-text-strong);background:#f05d9b1f;border-color:#f05d9b52}.theme-choice-button:hover{transform:translateY(-1px)}html.dark .theme-choice-button:hover,html.dark .theme-choice-button.active{color:var(--color-text-strong);background:#f05d9b29;border-color:#f05d9b4d}.users-shell{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}.users-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.users-header h1{color:var(--color-text-strong);align-items:center;gap:.5rem;font-size:1.8rem;font-weight:900;display:flex}.users-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.user-card-link{color:inherit;text-decoration:none}.user-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);align-items:center;gap:1rem;padding:1rem 1.2rem;transition:all .15s;display:flex}.user-card:hover{border-color:var(--color-pink);transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.user-card-avatar{flex-shrink:0}.user-card-img{object-fit:cover;border:2px solid var(--color-border);border-radius:50%;width:48px;height:48px}.user-card-info{flex:1;min-width:0}.user-card-info h3{color:var(--color-text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:800;overflow:hidden}.user-card-role{text-transform:uppercase;color:var(--color-muted);font-size:.72rem;font-weight:700}.user-card-stats{color:var(--color-muted);flex-direction:column;align-items:flex-end;gap:.2rem;font-size:.82rem;font-weight:700;display:flex}.profile-shell{max-width:720px;margin:0 auto;padding:2rem 1.5rem 4rem}.profile-header{margin-bottom:1.5rem}.profile-hero{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;padding:2rem;display:flex}.profile-avatar-img{object-fit:cover;border:3px solid var(--color-pink);border-radius:50%;width:96px;height:96px}.profile-identity h1{color:var(--color-text-strong);margin-bottom:.2rem;font-size:1.6rem;font-weight:900}.profile-realname{color:var(--color-muted);margin-bottom:.5rem;font-size:.92rem}.profile-badges{gap:.5rem;margin-bottom:.6rem;display:flex}.profile-role-badge,.profile-group-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:9999px;padding:.15rem .6rem;font-size:.72rem;font-weight:800;display:inline-block}.profile-role-badge{color:var(--color-pink);background:#e85d951f}.profile-group-badge{color:var(--color-cyan);background:#2fb9e81f}.profile-username,.profile-joined{color:var(--color-muted);align-items:center;gap:.4rem;margin-top:.3rem;font-size:.85rem;display:flex}.profile-stats-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.profile-stat{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;align-items:center;padding:1rem;display:flex}.profile-stat-value{color:var(--color-text-strong);font-size:1.5rem;font-weight:900}.profile-stat-label{text-transform:uppercase;color:var(--color-muted);font-size:.78rem;font-weight:700}.profile-section{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:1.5rem}.profile-section h2{color:var(--color-text-strong);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.05rem;font-weight:800;display:flex}.profile-solved-grid{flex-wrap:wrap;gap:.6rem;display:flex}.profile-solved-chip{color:var(--color-success);background:#1bbf8914;border:1px solid #1bbf8933;border-radius:9999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.82rem;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.profile-solved-chip:hover{background:#1bbf8926}.profile-solved-pct{opacity:.7;font-size:.75rem}.leaderboard-shell{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}.leaderboard-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.leaderboard-header h1{color:var(--color-text-strong);align-items:center;gap:.5rem;font-size:1.8rem;font-weight:900;display:flex}.leaderboard-table-wrap{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.leaderboard-table{border-collapse:collapse;width:100%}.leaderboard-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:.85rem 1rem;font-size:.78rem;font-weight:800}.leaderboard-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-strong);padding:.75rem 1rem;font-size:.92rem}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-top-1{background:#ffd7000f}.leaderboard-top-2{background:#c0c0c00f}.leaderboard-top-3{background:#cd7f320f}.rank-badge{font-size:1.2rem;font-weight:900}.rank-num{color:var(--color-muted);font-size:.88rem}.leaderboard-user{color:inherit;align-items:center;gap:.6rem;text-decoration:none;display:flex}.leaderboard-user:hover .leaderboard-name{color:var(--color-pink)}.leaderboard-avatar{object-fit:cover;border:2px solid var(--color-border);border-radius:50%;width:32px;height:32px}.leaderboard-name{font-weight:700;transition:color .15s}.leaderboard-role-tag{text-transform:uppercase;color:var(--color-muted);background:#7d89a41a;border-radius:4px;padding:.1rem .4rem;font-size:.68rem;font-weight:700}.score-color{font-weight:700}.score-high{color:var(--color-success)}.score-mid{color:var(--color-warning)}.score-low{color:var(--color-danger)}@media (max-width:640px){.profile-hero{text-align:center;flex-direction:column;align-items:center}.profile-badges,.profile-username,.profile-joined{justify-content:center}.settings-avatar-section{text-align:center;flex-direction:column;align-items:center}}
