:root{--purple-900:#3b0a63;--purple-700:#6d28d9;--purple-600:#7c3aed;--purple-500:#8b5cf6;--purple-400:#a78bfa;--indigo-500:#6366f1;--pink-500:#c026d3;--bg-lav:#f6f3fd;--bg-lav-2:#efe9fb;--text-dark:#1a1425;--text-mid:#5c5468;--text-light:#8a8296;--white:#fff;--border:#eae6f5;--green:#16a34a;--red:#dc2626;--orange:#f59e0b;--blue:#2563eb;--radius-lg:18px;--radius-md:12px}.dash-page *,.dash-page :before,.dash-page :after{box-sizing:border-box;margin:0;padding:0}.dash-page{color:var(--text-dark);background:var(--bg-lav);-webkit-font-smoothing:antialiased;min-height:100vh;padding-top:1.5rem;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;overflow-x:hidden}.dash-page a{color:inherit;text-decoration:none}.dash-page button{cursor:pointer;font-family:inherit}.dash-page .container{max-width:100%;margin:0 auto;padding:0 1rem}@media (min-width:640px){.dash-page .container{max-width:90rem;padding:0 1.5rem}}@media (min-width:1024px){.dash-page .container{max-width:85rem;padding:0 2rem}}@media (min-width:1440px){.dash-page .container{max-width:1360px;padding:0 28px}}.dash-greeting-wrap{padding:4rem 0 0}.dash-greeting-card{border-radius:var(--radius-lg);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:22px 28px;display:flex;box-shadow:0 6px 20px #5a28b40f}.dash-greeting-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.4px;font-size:12.5px;font-weight:700}.dash-greeting-title{margin-top:4px;font-size:20px;font-weight:800}.dash-greeting-date{color:var(--text-light);margin-top:3px;font-size:12.5px}.dash-greeting-stats{background:var(--bg-lav);border-radius:16px;align-items:center;gap:26px;padding:12px 28px;display:flex}.dash-greeting-stat{color:var(--purple-600);align-items:center;gap:8px;font-size:19px;font-weight:800;display:flex}.dash-greeting-stat .gs-label{color:var(--text-light);margin-left:2px;font-size:11px;font-weight:600}.dash-section{margin-top:38px}.dash-section h2{margin-bottom:18px;font-size:22px;font-weight:800}.qs-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.qs-card{border-radius:var(--radius-lg);background:#fff;align-items:center;gap:14px;padding:18px;display:flex;box-shadow:0 4px 16px #5a28b40d}.qs-icon{border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:19px;display:flex}.qs-icon.purple{color:var(--purple-600);background:#f2ebfe}.qs-icon.orange{color:var(--orange);background:#fef3e2}.qs-icon.red{color:#e11d48;background:#fde8ec}.qs-icon.blue{color:var(--blue);background:#e6f0fe}.qs-icon.green{color:var(--green);background:#e4f8ee}.qs-icon.indigo{color:var(--indigo-500);background:#eae8fe}.qs-value{font-size:20px;font-weight:800;line-height:1.1}.qs-label{color:var(--text-light);margin-top:3px;font-size:12px}.po-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.po-card{border-radius:var(--radius-lg);background:#fff;padding:20px;box-shadow:0 4px 16px #5a28b40d}.po-label{color:var(--text-light);margin-bottom:8px;font-size:12.5px}.po-value{margin-bottom:12px;font-size:24px;font-weight:800}.po-track{background:var(--bg-lav-2);border-radius:5px;height:7px;margin-bottom:10px;overflow:hidden}.po-fill{background:linear-gradient(90deg,#8b3bf0,#c026d3);border-radius:5px;height:100%}.po-delta{font-size:11.5px;font-weight:700}.po-delta.up{color:var(--green)}.po-delta.down{color:var(--red)}.cal-card{border-radius:var(--radius-lg);background:#fff;padding:22px;box-shadow:0 4px 16px #5a28b40d}.cal-top{color:var(--text-light);justify-content:space-between;align-items:center;margin-bottom:16px;font-size:13px;display:flex}.cal-top .active-days{color:var(--purple-600);font-weight:700}.cal-grid{grid-template-columns:repeat(15,1fr);gap:6px;margin-bottom:14px;display:grid}.cal-cell{aspect-ratio:1;background:var(--bg-lav-2);border-radius:5px}.cal-cell.l1{background:#e3d4fb}.cal-cell.l2{background:#c4a4f5}.cal-cell.l3{background:#9c5eeb}.cal-cell.l4{background:#6d28d9}.cal-legend{color:var(--text-light);align-items:center;gap:6px;font-size:11.5px;display:flex}.cal-legend .leg-box{border-radius:3px;width:12px;height:12px}.dash-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:26px;margin-top:38px;display:grid}.dash-main{flex-direction:column;gap:0;display:flex}.dash-sidebar{flex-direction:column;gap:26px;display:flex;position:sticky;top:90px}.lb-card{border-radius:var(--radius-lg);background:#fff;overflow:hidden;box-shadow:0 4px 16px #5a28b40d}.lb-card-head{justify-content:space-between;align-items:center;padding:20px 20px 14px;display:flex}.lb-card-head h2{margin:0;font-size:17px;font-weight:800}.lb-card-head .lb-badge{color:var(--purple-600);background:var(--bg-lav);border-radius:10px;padding:4px 10px;font-size:11px;font-weight:700}.lb-list{flex-direction:column;display:flex}.lb-row{border-left:3px solid #0000;border-top:1px solid var(--border);align-items:center;gap:10px;padding:11px 20px;display:flex}.lb-row:first-child{border-top:none}.lb-row.me{background:var(--bg-lav);border-left-color:var(--purple-600)}.lb-rank{color:var(--text-light);flex-shrink:0;width:22px;font-size:11.5px;font-weight:700}.lb-rank.top3{color:var(--purple-600)}.lb-avatar{color:#fff;background:linear-gradient(135deg,#8b3bf0,#c026d3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11.5px;font-weight:800;display:flex}.lb-info{flex:1;min-width:0}.lb-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.lb-level{color:var(--text-light);font-size:11px}.lb-xp{color:var(--purple-600);white-space:nowrap;align-items:center;gap:4px;font-size:12.5px;font-weight:700;display:flex}.ut-card{border-radius:var(--radius-lg);background:#fff;padding:20px;box-shadow:0 4px 16px #5a28b40d}.ut-card h2{margin-bottom:14px;font-size:17px;font-weight:800}.ut-item{border-top:1px solid var(--border);padding:14px 0}.ut-item:first-child{border-top:none;padding-top:0}.ut-item-title{margin-bottom:6px;font-size:13.5px;font-weight:700}.ut-item-meta{color:var(--text-light);flex-wrap:wrap;gap:10px;margin-bottom:10px;font-size:11.5px;display:flex}.btn-join{color:#fff;background:linear-gradient(135deg,#8b3bf0,#c026d3);border:none;border-radius:9px;justify-content:center;align-items:center;gap:6px;width:100%;padding:9px;font-size:12.5px;font-weight:700;display:flex}.table-card{border-radius:var(--radius-lg);background:#fff;overflow-x:auto;box-shadow:0 4px 16px #5a28b40d}.attempts-table{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}.attempts-table thead th{text-align:left;color:var(--text-light);letter-spacing:.4px;text-transform:uppercase;background:var(--bg-lav);white-space:nowrap;padding:14px 16px;font-size:10.5px;font-weight:800}.attempts-table tbody td{border-top:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:14px 16px}.attempts-table tbody tr:hover{background:var(--bg-lav)}.q-name{font-weight:700}.q-breakdown{gap:6px;font-size:11.5px;font-weight:700;display:flex}.q-breakdown .ok{color:var(--green)}.q-breakdown .bad{color:var(--red)}.q-breakdown .skip{color:var(--orange)}.q-accuracy{color:var(--purple-600);font-weight:700}.status-chip{color:var(--green);background:#e4f8ee;border-radius:10px;padding:4px 11px;font-size:11px;font-weight:700}.row-actions{gap:6px;display:flex}.row-icon-btn{background:var(--bg-lav);width:28px;height:28px;color:var(--text-mid);border:none;border-radius:8px;justify-content:center;align-items:center;font-size:12px;display:flex}.attempts-list{flex-direction:column;gap:16px;padding:16px;display:none}.attempt-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff;flex-direction:column;gap:14px;padding:16px;display:flex;box-shadow:0 4px 20px #1a142e0d}.attempt-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.attempt-name{margin:0;font-size:15px;font-weight:800}.attempt-subject{color:var(--text-light);font-size:12px}.attempt-date{color:var(--text-light);font-size:12px;font-weight:600}.attempt-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.attempt-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.attempt-value{margin:0;font-size:15px;font-weight:800}.attempt-breakdown{gap:8px;font-size:12px;font-weight:700;display:flex}.attempt-card-actions{gap:8px;display:flex}.rp-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.rp-card{border-radius:var(--radius-lg);text-align:center;background:#fff;padding:20px;box-shadow:0 4px 16px #5a28b40d}.rp-icon{border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 14px;font-size:21px;display:flex}.rp-icon.pink{color:#e11d48;background:#fde8ec}.rp-icon.purple{color:var(--purple-600);background:#f2ebfe}.rp-icon.orange{color:var(--orange);background:#fef3e2}.rp-icon.blue{color:var(--blue);background:#e6f0fe}.rp-card h3{margin-bottom:6px;font-size:14.5px;font-weight:800}.rp-card p{color:var(--text-light);margin-bottom:16px;font-size:12px;line-height:1.4}.btn-start-sm{background:var(--bg-lav);color:var(--purple-600);border:none;border-radius:9px;align-items:center;gap:6px;padding:8px 18px;font-size:12.5px;font-weight:700;display:inline-flex}.ach-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.ach-card{border-radius:var(--radius-lg);text-align:center;border:2px solid var(--border);opacity:.55;background:#fff;padding:20px}.ach-card.unlocked{opacity:1;border-color:var(--purple-400);box-shadow:0 6px 20px #8b3bf01f}.ach-icon{background:var(--bg-lav);width:48px;height:48px;color:var(--text-light);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:20px;display:flex}.ach-card.unlocked .ach-icon{color:#fff;background:linear-gradient(135deg,#8b3bf0,#c026d3)}.ach-card h3{margin-bottom:5px;font-size:13.5px;font-weight:800}.ach-card p{color:var(--text-light);margin-bottom:12px;font-size:11px;line-height:1.4}.ach-status{border-radius:9px;padding:4px 10px;font-size:10.5px;font-weight:700}.ach-status.locked{background:var(--bg-lav);color:var(--text-light)}.ach-status.unlocked-tag{color:var(--green);background:#e4f8ee}.pt-card{border-radius:var(--radius-lg);background:#fff;padding:22px;box-shadow:0 4px 16px #5a28b40d}.pt-row{border-top:1px solid var(--border);padding:14px 0}.pt-row:first-child{border-top:none;padding-top:0}.pt-row-head{justify-content:space-between;align-items:center;margin-bottom:9px;font-size:13.5px;font-weight:700;display:flex}.pt-row-head .pt-subject{align-items:center;gap:9px;display:flex}.pt-track{background:var(--bg-lav-2);border-radius:5px;height:8px;overflow:hidden}.pt-fill{background:linear-gradient(90deg,#8b3bf0,#c026d3);border-radius:5px;height:100%}.lg-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.lg-card{border-radius:var(--radius-lg);background:#fff;padding:20px;box-shadow:0 4px 16px #5a28b40d}.lg-head{align-items:center;gap:9px;margin-bottom:14px;font-size:14px;font-weight:700;display:flex}.lg-track{background:var(--bg-lav-2);border-radius:5px;height:8px;margin-bottom:8px;overflow:hidden}.lg-fill{background:linear-gradient(90deg,#8b3bf0,#c026d3);border-radius:5px;height:100%}.lg-count{color:var(--text-light);text-align:right;font-size:12px}.qa-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;display:grid}.qa-card{border-radius:var(--radius-lg);text-align:center;background:#fff;padding:22px 14px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 16px #5a28b40d}.qa-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px #5a28b41f}.qa-icon{border-radius:14px;justify-content:center;align-items:center;width:46px;height:46px;margin:0 auto 12px;font-size:20px;display:flex}.qa-icon.purple{color:var(--purple-600);background:#f2ebfe}.qa-icon.orange{color:var(--orange);background:#fef3e2}.qa-icon.green{color:var(--green);background:#e4f8ee}.qa-icon.blue{color:var(--blue);background:#e6f0fe}.qa-icon.indigo{color:var(--indigo-500);background:#eae8fe}.qa-icon.red{color:#e11d48;background:#fde8ec}.qa-card span{font-size:12.5px;font-weight:700}@media (max-width:1180px){.dash-grid{grid-template-columns:1fr}.dash-sidebar{position:static}}@media (max-width:900px){.cal-grid{grid-template-columns:repeat(10,1fr)}}@media (max-width:768px){.dash-grid{gap:20px}.cal-grid{grid-template-columns:repeat(7,1fr)}.attempts-table{display:none}.attempts-list{display:flex}}@media (max-width:640px){.dash-page .container{padding:0 18px}.dash-greeting-card{flex-direction:column;align-items:flex-start}.dash-greeting-stats{justify-content:space-between;width:100%;padding:12px 16px}.attempt-card-grid{grid-template-columns:1fr}}@media (max-width:480px){.dash-greeting-stats{flex-wrap:wrap;gap:12px}}
