@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@400;600;700&family=Space+Grotesk:wght@400;500;600&display=swap";:root{--sand: #f5efe6;--sunset: #f9d29d;--rust: #b85c38;--ink: #1e2a32;--sea: #21407a;--mint: #d6efe3;--white: #ffffff;--shadow: rgba(20, 30, 40, .12)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,sans-serif;color:var(--ink);background:linear-gradient(135deg,var(--sand),#f3f7f9);min-height:100vh}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;background:linear-gradient(180deg,#14243d,#0a111b);color:var(--white);padding:32px 24px;display:flex;flex-direction:column;gap:32px;position:sticky;top:0;height:100vh}.brand{font-family:Fraunces,serif;font-size:48px;letter-spacing:1px;display:flex;align-items:center;gap:10px}.brand-mark{font-weight:700}.brand-sub{font-size:28px;opacity:.7;text-transform:lowercase}.brand-logo{width:92px;height:auto;border-radius:12px;background:var(--white);padding:4px;object-fit:contain}.nav{display:flex;flex-direction:column;gap:12px}.nav a{padding:12px 16px;border-radius:16px;background:#ffffff14;transition:transform .2s ease,background .2s ease;display:flex;align-items:center;gap:10px}.sidebar-button{border:none;background:#ffffff14;color:var(--white);padding:12px 16px;border-radius:16px;font-weight:600;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px}.sidebar-button img{width:18px;height:18px;filter:invert(100%)}.nav a.active{background:var(--sunset);color:#3e2a18;font-weight:600}.nav img{width:18px;height:18px;filter:invert(100%)}.nav a.active img{filter:none}.nav a:hover{transform:translate(4px)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:16px}.user-chip{display:flex;align-items:center;gap:12px;background:#ffffff1f;padding:8px 10px;border-radius:16px}.user-avatar{width:42px;height:42px;background:var(--sunset);color:#3e2a18;border-radius:14px;display:grid;place-items:center;font-weight:600}.user-email{display:none}.main-content{flex:1;padding:40px 56px 64px}.page{display:flex;flex-direction:column;gap:24px;animation:fadeIn .4s ease}.page-header{display:flex;align-items:center;justify-content:space-between;gap:24px}.page-header h1{font-family:Fraunces,serif;font-size:32px;margin:0 0 6px}.page-header p{margin:0;opacity:.7}.card{background:var(--white);border-radius:24px;padding:24px;box-shadow:0 12px 30px var(--shadow)}.card.wide{width:100%}.grid{display:grid;gap:24px}.grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.auto-fit{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));justify-items:stretch}.topic-card{border:none;background:var(--white);border-radius:20px;padding:20px;text-align:left;box-shadow:0 10px 24px var(--shadow);cursor:pointer;transition:transform .2s ease}.topic-card:hover{transform:translateY(-4px)}.topic-icon img{width:46px;height:46px}.topic-placeholder{width:46px;height:46px;border-radius:12px;background:var(--mint)}.topic-name{font-weight:600;margin-top:12px}.topic-level{font-size:13px;opacity:.65;margin-top:6px}.topic-subject{font-size:12px;opacity:.6}.primary-button{border:none;background:var(--sea);color:var(--white);padding:12px 20px;border-radius:14px;font-weight:600;cursor:pointer}.primary-button.full-width{width:100%}.ghost-button{border:1px solid rgba(0,0,0,.1);background:transparent;color:var(--ink);padding:12px 20px;border-radius:14px;font-weight:500;cursor:pointer}.hero{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:center;background:radial-gradient(circle at top left,var(--mint),transparent 60%),var(--white);border-radius:28px;padding:32px;box-shadow:0 20px 40px var(--shadow)}.hero-text h1{font-family:Fraunces,serif;font-size:36px;margin-bottom:8px}.hero-actions{display:flex;gap:12px;margin-top:20px}.hero-card{background:var(--ink);color:var(--white);padding:24px;border-radius:20px}.hero-card-title{opacity:.7;margin-bottom:12px}.hero-card-subtitle{opacity:.7;margin-top:10px}.counter{font-size:32px;font-weight:600;font-family:Fraunces,serif}.tab-row{display:flex;gap:12px;flex-wrap:wrap}.tab-button{border:none;background:#0000000f;padding:10px 16px;border-radius:999px;cursor:pointer}.subject-tab{font-size:15px;font-weight:600}.tab-button.active{background:var(--sunset);font-weight:600}.table{display:grid;gap:10px}.table-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.06)}.table.two-columns .table-row{grid-template-columns:repeat(2,minmax(0,1fr))}.table.three-columns .table-row{grid-template-columns:repeat(3,minmax(0,1fr))}.table-row.head{font-weight:600;border-bottom:1px solid rgba(0,0,0,.15)}.table-row.promotion-zone{background-color:#fff3cd;border-left:4px solid #ffc107;padding-left:8px}.table-row.demotion-zone{background-color:#f8d7da;border-left:4px solid #dc3545;padding-left:8px}.table-row.current-user{background-color:#d1ecf1;border-left:4px solid #17a2b8;padding-left:8px;font-weight:600}.table-row.promotion-zone.current-user{background-color:#d4edda;border-left:4px solid #28a745}.league-legend{display:flex;gap:20px;margin-top:16px;padding:12px;background-color:#f8f9fa;border-radius:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px}.legend-color{width:16px;height:16px;border-radius:3px}.legend-color.promotion{background-color:#ffc107}.legend-color.demotion{background-color:#dc3545}.legend-color.current-user{background-color:#17a2b8}.link-row{background:none;border:none;text-align:left;cursor:pointer}.metric-row{display:flex;gap:24px}.metric-row div{display:flex;flex-direction:column;gap:6px}.metric-row strong{font-size:26px}.stat-card{background:var(--white);border-radius:20px;padding:22px;box-shadow:0 10px 24px var(--shadow)}.stat-label{opacity:.6;font-size:12px;text-transform:uppercase;letter-spacing:1px}.stat-sub{opacity:.6}.exercise-message{font-size:22px;font-weight:600;color:#000}.question-page{gap:16px}.question-card{background:var(--white);border-radius:24px;padding:28px;box-shadow:0 16px 32px var(--shadow)}.question-header{display:flex;justify-content:space-between;font-size:13px;opacity:.6;margin-bottom:12px}.question-card h1{font-size:28px;margin-top:0}.diagram{margin:16px 0}.math-diagram{display:flex;justify-content:center;background:#00000005;padding:12px;border-radius:18px}.answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.answer-button{border:1px solid rgba(0,0,0,.1);background:var(--sand);padding:22px 20px;border-radius:16px;cursor:pointer;text-align:left}.answer-button.answer-correct{background:#d6efe3;border-color:#6fcf97}.answer-button.answer-incorrect{background:#3b3f45;border-color:#2b2f34;color:#f5f5f5}.answer-button span{font-size:28px}.answer-button:disabled{opacity:.5;cursor:not-allowed}.progress-strip{display:flex;gap:8px}.progress-dot{width:14px;height:14px;border-radius:50%;background:#0000001f}.progress-dot.success{background:#4bbf73}.progress-dot.fail{background:#d64545}.topic-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;background:var(--white);padding:24px;border-radius:24px;box-shadow:0 12px 30px var(--shadow)}.topic-hero-icon img{width:56px;height:56px}.subtext{font-size:12px;opacity:.6;margin-top:6px}.list{display:flex;flex-direction:column;gap:12px}.list-item{border:none;background:#0000000a;padding:12px 14px;border-radius:14px;display:flex;justify-content:space-between;cursor:pointer}.list-muted{opacity:.6}.share-code{font-size:36px;letter-spacing:4px;font-family:Fraunces,serif}.inline-form{display:flex;gap:12px;margin-top:16px}.inline-form input{flex:1}input,select,textarea{width:100%;border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:10px 12px;font-family:inherit}.stacked-form{display:flex;flex-direction:column;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-error{background:#fce4e4;color:#8a1f1f;padding:10px 12px;border-radius:12px}.form-info{background:#e0f3ec;color:#1f4e3b;padding:10px 12px;border-radius:12px}.auth-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.auth-panel{padding:64px;background:var(--white);display:flex;flex-direction:column;justify-content:center}.auth-panel h1{font-family:Fraunces,serif;font-size:32px}.auth-splash{background:radial-gradient(circle at top right,var(--sunset),transparent 60%),linear-gradient(135deg,#182b45,#101a2b);color:var(--white);display:grid;place-items:center}.auth-splash-card{background:#ffffff1a;padding:32px;border-radius:24px;max-width:320px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-subtitle{opacity:.7}.auth-footer{margin-top:16px}.levelup{align-items:center}.levelup-card{background:var(--white);padding:32px;border-radius:28px;box-shadow:0 20px 40px var(--shadow);max-width:560px;width:100%}.question-editor{margin-bottom:16px}.question-editor textarea{min-height:90px}.answer-edit-row{display:flex;gap:8px;align-items:center;margin-top:8px}.mastery .table-row{grid-template-columns:minmax(160px,2fr) repeat(4,minmax(0,1fr));align-items:center}.mastery-topic{word-break:break-word}.mastery-on,.mastery-off{display:block;width:18px;height:18px;border-radius:6px}.mastery-on{background:var(--sea)}.mastery-off{background:#00000014}.muted{opacity:.6}.loading{font-size:18px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 800px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;flex-direction:column;position:static;align-items:flex-start;padding:16px 20px}.nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:8px;width:100%}.nav a{white-space:nowrap}.sidebar-footer{margin-top:0;flex-direction:row;align-items:center;display:none}}@media (max-width: 900px){.main-content{padding:24px}.grid.two-columns,.grid.three-columns,.hero,.auth-layout{grid-template-columns:1fr}.auth-splash{display:none}.answer-grid{grid-template-columns:1fr}.brand{font-size:36px}.user-email{display:none}.user-chip{padding:8px 10px}}@media (max-width: 480px){.main-content{padding:16px}.brand{width:100%;justify-content:center}.nav{justify-content:space-between;overflow-x:visible;width:100%}.nav a{padding:8px 10px}.mastery .table-row{grid-template-columns:minmax(120px,1fr) repeat(4,18px)}.mastery .table-row.head span{font-size:11px}.mastery-topic{font-size:13px}.nav a span{display:none}.sidebar{gap:12px;flex-direction:column;align-items:flex-start}.sidebar-footer{display:none}}
