:root{--font:"Pretendard", "Apple SD Gothic Neo", -apple-system, BlinkMacSystemFont, sans-serif;--mono:"SF Mono", ui-monospace, Menlo, monospace;--bg:#eef0f3;--bg-spot:#e4e8ee;--surface:#fff;--ink:#0b0d12;--muted:#667085;--faint:#98a2b3;--line:#e4e7ec;--line-strong:#d0d5dd;--accent:#0f9f9c;--accent-2:#3b82f6;--accent-3:#8b5cf6;--accent-soft:#0f9f9c24;--ok:#10b981;--ok-soft:#10b9811f;--bad:#f04343;--bad-soft:#f043431f;--cta:linear-gradient(135deg, #0f9f9c 0%, #2563eb 100%);--cta-solid:#0d9488;--cta-text:#fff;--subj-국어:#2563eb;--subj-수학:#0f9f9c;--subj-사회:#d97706;--subj-역사:#c2410c;--subj-과학:#059669;--subj-영어:#db2777;--radius:14px;--touch:52px;--pad-x:max(1.1rem, env(safe-area-inset-left));--pad-xr:max(1.1rem, env(safe-area-inset-right));--pad-b:max(1.1rem, env(safe-area-inset-bottom))}:root[data-theme=dark]{--bg:#0a0b0e;--bg-spot:#12141a;--surface:#15171d;--ink:#f5f6f8;--muted:#9aa3b2;--faint:#6b7382;--line:#2a2e38;--line-strong:#3a4050;--accent:#2dd4bf;--accent-2:#60a5fa;--accent-3:#c084fc;--accent-soft:#2dd4bf29;--ok:#34d399;--ok-soft:#34d39924;--bad:#ff6b6b;--bad-soft:#ff6b6b24;--cta:linear-gradient(135deg, #2dd4bf 0%, #3b82f6 100%);--cta-solid:#2dd4bf;--cta-text:#0a0b0e;--subj-국어:#60a5fa;--subj-수학:#2dd4bf;--subj-사회:#fbbf24;--subj-역사:#fb923c;--subj-과학:#34d399;--subj-영어:#f472b6}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overscroll-behavior:none;height:100%}html,body,#root{height:100%;min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font);background:radial-gradient(ellipse 95% 60% at -10% -5%, #0f9f9c38, transparent 52%), radial-gradient(ellipse 80% 50% at 110% 0%, #3b82f629, transparent 48%), radial-gradient(ellipse 70% 40% at 70% 100%, #db277714, transparent 50%), linear-gradient(180deg, var(--bg) 0%, var(--bg-spot) 100%);-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:pan-x pan-y;background-attachment:fixed;overflow:hidden}:root[data-theme=dark] body{background:radial-gradient(ellipse 95% 60% at -10% -5%, #2dd4bf2e, transparent 52%), radial-gradient(ellipse 80% 50% at 110% 0%, #60a5fa24, transparent 48%), radial-gradient(ellipse 70% 40% at 70% 100%, #f472b614, transparent 50%), linear-gradient(180deg, var(--bg) 0%, var(--bg-spot) 100%);background-attachment:fixed}#root{overscroll-behavior:none;-webkit-overflow-scrolling:touch;height:100dvh;overflow:hidden auto}button,input{font:inherit;-webkit-tap-highlight-color:transparent}.wrap{width:min(100%,430px);min-height:100dvh;padding:max(.85rem, env(safe-area-inset-top)) var(--pad-xr) calc(var(--pad-b) + 5.75rem) var(--pad-x);flex-direction:column;gap:1.15rem;margin:0 auto;display:flex}.wrap.isHistory{padding-bottom:calc(var(--pad-b) + 1.25rem);gap:.45rem}.topBar{justify-content:space-between;align-items:flex-start;gap:.75rem;animation:.4s cubic-bezier(.22,1,.36,1) both in;display:flex}.brandMark{flex-direction:column;gap:.35rem;min-width:0;display:flex}button.brandMark.brandButton,a.brandMark.brandButton{appearance:none;text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;padding:0;text-decoration:none}.brandLogo{background:linear-gradient(90deg, var(--accent), var(--accent-2), var(--accent-3));border-radius:999px;width:2.25rem;height:.4rem}.brandText{min-width:0}.title{letter-spacing:-.05em;margin:0;font-size:clamp(1.35rem,5.8vw,1.65rem);font-weight:800;line-height:1.15}.subtitle{color:var(--muted);letter-spacing:-.01em;margin:.25rem 0 0;font-size:.92rem;font-weight:500}.topActions{flex-shrink:0;gap:.4rem;display:flex}.iconBtn{border:1px solid var(--line);background:var(--surface);min-width:2.5rem;height:2.5rem;color:var(--muted);letter-spacing:-.02em;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 .85rem;font-size:.88rem;font-weight:700;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.iconBtn.iconOnly{width:2.5rem;padding:0}.iconBtn.active{color:var(--ink);border-color:var(--ink);background:var(--surface)}.themePair{background:color-mix(in srgb, var(--surface) 80%, transparent);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.3rem;padding:.2rem;display:inline-flex}.themePair .iconBtn{background:0 0;border:0;width:2.15rem;min-width:2.15rem;height:2.15rem}.themePair .iconBtn.active{background:var(--accent-soft);color:var(--accent);border:0}.statsRow{grid-template-columns:1fr 1fr 1fr;gap:.55rem;margin-bottom:-.5rem;animation:.45s cubic-bezier(.22,1,.36,1) 40ms both in;display:grid}.statPill{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:.15rem;padding:.75rem .7rem;display:flex;position:relative;overflow:hidden}button.statPill{appearance:none;font:inherit;text-align:left;color:inherit;cursor:pointer;width:100%;transition:border-color .15s,transform .12s}button.statPill:active{transform:scale(.98)}button.statPill:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.statPill:after{content:"";opacity:.55;pointer-events:none;border-radius:50%;width:5rem;height:5rem;position:absolute;inset:auto -20% -40% auto}.statPill[data-tone=solved]{border-color:color-mix(in srgb, var(--accent-2) 28%, var(--line));background:linear-gradient(160deg, color-mix(in srgb, var(--accent-2) 10%, var(--surface)), var(--surface))}.statPill[data-tone=solved]:after{background:var(--accent-2)}.statPill[data-tone=correct]{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 10%, var(--surface)), var(--surface))}.statPill[data-tone=correct]:after{background:var(--accent)}.statPill[data-tone=points]{border-color:color-mix(in srgb, var(--accent-3) 28%, var(--line));background:linear-gradient(160deg, color-mix(in srgb, var(--accent-3) 10%, var(--surface)), var(--surface))}.statPill[data-tone=points]:after{background:var(--accent-3)}.statPill[data-tone=solved] strong{color:var(--accent-2)}.statPill[data-tone=correct] strong{color:var(--accent)}.statPill[data-tone=points] strong{color:var(--accent-3)}.statPill strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;z-index:1;font-size:1.25rem;font-weight:800;position:relative}.statPill:before{content:attr(data-label);color:var(--faint);letter-spacing:.04em;text-transform:uppercase;z-index:1;font-size:.8rem;font-weight:600;position:relative}.panel{background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);flex-direction:column;flex:1;animation:.5s cubic-bezier(.22,1,.36,1) 80ms both in;display:flex;overflow:hidden}.panelBody{flex-direction:column;flex:1;gap:1.2rem;padding:1.2rem 1.15rem 1.35rem;display:flex}.parentPanel .panelBody{gap:.75rem;padding-top:.85rem}.subjectTrack{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;margin:-.15rem -1.15rem 0;padding:0 1.15rem;display:flex}.subjectChips{scrollbar-width:none;flex:1;gap:0;min-width:0;display:flex;overflow-x:auto}.subjectChips::-webkit-scrollbar{display:none}.subjectTypeBadge{flex-shrink:0;align-self:center}.subjectTrackBadges{flex-shrink:0;align-items:center;gap:.35rem;margin-left:auto;display:flex}.subjectChip{color:var(--faint);background:0 0;border:0;border-radius:0;flex:none;padding:.7rem .75rem .8rem;font-size:.92rem;font-weight:600;transition:color .15s;position:relative}.subjectChip.active{background:0 0;border:0;font-weight:800}.subjectChip[data-subject=국어].active{color:var(--subj-국어)}.subjectChip[data-subject=수학].active{color:var(--subj-수학)}.subjectChip[data-subject=사회].active{color:var(--subj-사회)}.subjectChip[data-subject=역사].active{color:var(--subj-역사)}.subjectChip[data-subject=과학].active{color:var(--subj-과학)}.subjectChip[data-subject=영어].active{color:var(--subj-영어)}.subjectChip.active:after{content:"";background:currentColor;border-radius:2px 2px 0 0;height:2.5px;position:absolute;bottom:-1px;left:.55rem;right:.55rem}.hero{flex-direction:column;flex:1;justify-content:flex-end;gap:.9rem;min-height:42vh;padding:1rem 0 .5rem;display:flex}.heroBrand{letter-spacing:-.06em;background:linear-gradient(120deg, var(--ink) 20%, var(--accent) 55%, var(--accent-2) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.1rem,9vw,2.7rem);font-weight:800;line-height:1.12}.heroLead{max-width:16.5rem;color:var(--muted);margin:0;font-size:1.08rem;font-weight:500;line-height:1.55}.heroStatus{background:var(--bg);color:var(--muted);border-radius:999px;align-self:flex-start;align-items:center;gap:.5rem;margin:.4rem 0 0;padding:.45rem .75rem;font-size:.92rem;font-weight:600;display:inline-flex}.heroStatus:before{content:"";background:var(--faint);border-radius:50%;width:6px;height:6px;animation:1.2s infinite blink}.heroStatus.ready{color:var(--accent);background:var(--accent-soft)}.heroStatus.ready:before{background:var(--accent);animation:none}.loadingBlock{min-height:36vh;color:var(--muted);flex:1;place-content:center;justify-items:center;gap:.85rem;font-size:1.05rem;font-weight:500;display:grid}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:1.5rem;height:1.5rem;animation:.65s linear infinite spin}.error{border-radius:var(--radius);background:var(--bad-soft);color:var(--bad);margin:0;padding:.85rem 1rem;font-size:1rem;font-weight:600;line-height:1.45}.quiz{flex-direction:column;gap:1.15rem;animation:.35s cubic-bezier(.22,1,.36,1) both in;display:flex}.meta{flex-wrap:wrap;gap:.4rem;display:flex}.badge{letter-spacing:.02em;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.4rem .7rem;font-size:.82rem;font-weight:700}.badge.faint{background:var(--bg);color:var(--muted)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.question{letter-spacing:-.04em;margin:0;font-size:clamp(1.35rem,5.6vw,1.65rem);font-weight:800;line-height:1.45}.choices{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.choice{width:100%;min-height:var(--touch);text-align:left;letter-spacing:-.02em;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;padding:.95rem 1.05rem;font-size:1.1rem;font-weight:600;line-height:1.4;transition:border-color .15s,background .15s,box-shadow .15s}.choice.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent)}.textInput{width:100%;min-height:var(--touch);letter-spacing:-.02em;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);color:var(--ink);outline:none;padding:.95rem 1.05rem;font-size:1.15rem;font-weight:600}.textInput:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.result{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);flex-direction:column;gap:.65rem;padding:1.1rem 1.15rem;animation:.3s both in;display:flex}.result.ok{background:var(--ok-soft);border-color:#0000}.result.bad{background:var(--bad-soft);border-color:#0000}.resultTitle{letter-spacing:-.03em;margin:0;font-size:1.28rem;font-weight:800}.result.ok .resultTitle{color:var(--ok)}.result.bad .resultTitle{color:var(--bad)}.resultAnswer{color:var(--muted);margin:0;font-size:1.02rem;font-weight:500;line-height:1.55}.explanation{color:var(--ink);margin:0;font-size:1.05rem;font-weight:500;line-height:1.65}.dock{width:min(100%,430px);padding:.85rem var(--pad-x) var(--pad-b);background:linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--bg) 88%, transparent) 35%, var(--bg) 70%);z-index:30;pointer-events:none;margin:0 auto;animation:.35s both fade;position:fixed;bottom:0;left:0;right:0}.dock .btn{pointer-events:auto}.btn{min-height:var(--touch);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);letter-spacing:-.03em;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:.8rem 1.2rem;font-size:1.08rem;font-weight:700;transition:transform .12s,opacity .15s,filter .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.primary{background:var(--cta);width:100%;color:var(--cta-text);border-color:#0000;box-shadow:0 10px 28px #2563eb47}.btn.ghost{border-color:var(--line);width:100%;min-height:2.6rem;color:var(--muted);background:0 0;margin-top:.35rem;font-size:.88rem}.historyHeader{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.historyTitle{letter-spacing:-.05em;margin:0;font-size:1.4rem;font-weight:800}.historyCount{color:var(--faint);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:600}.historyList{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.historyItem{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);padding:1rem 1.05rem}.historyItem.ok{box-shadow:inset 3px 0 0 var(--ok)}.historyItem.bad{box-shadow:inset 3px 0 0 var(--bad)}.historyMeta{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.55rem;display:flex}.historyWhen{color:var(--faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.72rem;font-weight:600}.historyQuestion{letter-spacing:-.03em;margin:0 0 .45rem;font-size:1.02rem;font-weight:700;line-height:1.4}.historyAnswers{color:var(--muted);margin:0 0 .4rem;font-size:.86rem;font-weight:500;line-height:1.5}.historyExplain{margin:0;font-size:.86rem;font-weight:500;line-height:1.55}.emptyHistory{text-align:center;color:var(--muted);margin:2.5rem 0;font-weight:500;line-height:1.55}.installBanner{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, var(--surface)), color-mix(in srgb, var(--accent-2) 8%, var(--surface)));align-items:center;gap:.65rem;padding:.85rem .95rem;animation:.4s both in;display:flex}.installBannerBody{flex:1;min-width:0}.installBannerTitle{letter-spacing:-.03em;margin:0;font-size:.92rem;font-weight:800}.installBannerHint{color:var(--muted);margin:.2rem 0 0;font-size:.78rem;font-weight:500;line-height:1.4}.installBannerActions{flex-shrink:0;align-items:center;gap:.3rem;display:flex}.btn.installBtn{background:var(--cta);min-height:2.35rem;color:var(--cta-text);border-color:#0000;border-radius:999px;padding:.45rem .9rem;font-size:.85rem}.parentEyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 .2rem;font-size:.72rem;font-weight:700}.parentSummary{grid-template-columns:1.2fr 1fr;gap:.55rem;display:grid}.parentSummaryCard{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line));background:linear-gradient(155deg, color-mix(in srgb, var(--accent) 12%, var(--surface)), var(--surface));flex-direction:column;gap:.45rem;padding:1rem;display:flex}.parentSummaryCard.faint{border-color:var(--line);background:var(--bg)}.parentSummaryLabel{color:var(--faint);letter-spacing:.03em;font-size:.72rem;font-weight:700}.parentSummaryValue{letter-spacing:-.05em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.85rem;font-weight:800}.parentSummaryValue.sm{color:var(--ink);font-size:1.35rem}.parentSummaryValue .slash{color:var(--faint);margin:0 .15rem;font-weight:600}.accBar{background:color-mix(in srgb, var(--line) 80%, transparent);border-radius:999px;height:6px;overflow:hidden}.accBarFill{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;transition:width .35s}.parentSection{flex-direction:column;gap:.7rem;display:flex}.parentSectionHead{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.parentSectionTitle{letter-spacing:-.03em;margin:0;font-size:.95rem;font-weight:800}.subjectStats{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.subjectStat{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);padding:.85rem .95rem}.subjectStat[data-subject=국어]{border-color:color-mix(in srgb, var(--subj-국어) 30%, var(--line))}.subjectStat[data-subject=수학]{border-color:color-mix(in srgb, var(--subj-수학) 30%, var(--line))}.subjectStat[data-subject=사회]{border-color:color-mix(in srgb, var(--subj-사회) 30%, var(--line))}.subjectStat[data-subject=역사]{border-color:color-mix(in srgb, var(--subj-역사) 30%, var(--line))}.subjectStat[data-subject=과학]{border-color:color-mix(in srgb, var(--subj-과학) 30%, var(--line))}.subjectStat[data-subject=영어]{border-color:color-mix(in srgb, var(--subj-영어) 30%, var(--line))}.subjectStatTop{justify-content:space-between;align-items:baseline;margin-bottom:.45rem;display:flex}.subjectStatName{letter-spacing:-.02em;font-weight:800}.subjectStat[data-subject=국어] .subjectStatName,.subjectStat[data-subject=국어] .subjectStatAcc{color:var(--subj-국어)}.subjectStat[data-subject=수학] .subjectStatName,.subjectStat[data-subject=수학] .subjectStatAcc{color:var(--subj-수학)}.subjectStat[data-subject=사회] .subjectStatName,.subjectStat[data-subject=사회] .subjectStatAcc{color:var(--subj-사회)}.subjectStat[data-subject=역사] .subjectStatName,.subjectStat[data-subject=역사] .subjectStatAcc{color:var(--subj-역사)}.subjectStat[data-subject=과학] .subjectStatName,.subjectStat[data-subject=과학] .subjectStatAcc{color:var(--subj-과학)}.subjectStat[data-subject=영어] .subjectStatName,.subjectStat[data-subject=영어] .subjectStatAcc{color:var(--subj-영어)}.subjectStatAcc{font-variant-numeric:tabular-nums;font-weight:800}.subjectStatMeta{color:var(--muted);margin:.4rem 0 0;font-size:.8rem;font-weight:500}.parentChildTabs{gap:.5rem;margin:0;padding:0;display:flex}.parentChildTab{border-radius:var(--radius-sm,.65rem);border:1px solid var(--line);background:var(--surface);min-height:3rem;color:var(--ink);cursor:pointer;text-align:left;flex-direction:column;flex:1;align-items:flex-start;gap:.1rem;padding:.65rem .85rem;font-weight:700;display:flex}.parentChildTab.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.parentChildGrade{color:var(--muted);font-size:.75rem;font-weight:600}.parentTableWrap{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);margin:0;overflow:hidden}.parentTable{table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.68rem}.parentTable th,.parentTable td{text-align:center;border-bottom:1px solid var(--line);text-overflow:clip;white-space:nowrap;padding:.5rem .1rem;overflow:hidden}.parentTable thead th{color:var(--muted);background:color-mix(in srgb, var(--surface) 70%, var(--bg));letter-spacing:-.04em;font-size:.62rem;font-weight:700}.parentTable tbody th{text-align:center;font-weight:700}.parentTable thead th:first-child,.parentTable tbody th:first-child{width:16%}.parentTable thead th:nth-child(2),.parentTable tbody td:nth-child(2){width:11%}.parentTable tbody tr:last-child th,.parentTable tbody tr:last-child td{border-bottom:0}.parentTable tbody tr:hover td,.parentTable tbody tr:hover th{background:var(--accent-soft)}.parentTable td[data-empty="1"]{color:var(--faint)}.parentTablePct{color:var(--faint);margin-left:.05rem;font-size:.58rem;font-weight:600}.parentTableDay{appearance:none;color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:.12em;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.parentTableDay:hover{color:var(--ink)}.parentTableHint{color:var(--muted);margin:.75rem 0 0;font-size:.78rem;font-weight:500}.parentTable tbody tr[data-empty-day="1"] td,.parentTable tbody tr[data-empty-day="1"] th .parentTableDay{color:var(--faint)}.parentMoreBtn{width:100%;margin-top:.85rem}.historyDialog{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--surface);width:min(28rem,100% - 1.5rem);height:90dvh;max-height:90dvh;color:var(--ink);box-sizing:border-box;margin:auto;padding:0;position:fixed;inset:0;box-shadow:0 16px 48px #0b0d1238}.historyDialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0b0d1273}.historyDialogInner{box-sizing:border-box;flex-direction:column;gap:.85rem;height:100%;max-height:100%;padding:1.1rem;display:flex;overflow:hidden}.historyDialogList{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex:auto;min-height:0;margin:0;overflow-y:auto}.historyDialogLoading{margin:1rem 0}.historyDialogInner .btn.ghost{margin-top:0}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.periodTabs{border:1px solid var(--line);background:var(--bg);border-radius:999px;gap:.15rem;padding:.2rem;display:inline-flex}.periodTab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.4rem .75rem;font-size:.78rem;font-weight:700}.periodTab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0b0d1214}.periodList{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.periodItem{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .95rem;display:flex}.periodItemBtn{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;appearance:none}.periodItemBtn:hover{border-color:var(--accent);background:var(--accent-soft)}.periodItemBtn:active{transform:scale(.99)}.periodLeft{flex-direction:column;gap:.15rem;min-width:0;display:flex}.periodLabel{letter-spacing:-.03em;font-weight:800}.periodMeta{color:var(--muted);font-size:.78rem;font-weight:500}.periodRight{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.35rem;width:6.25rem;padding-right:.85rem;display:flex;position:relative}.periodChevron{color:var(--faint);font-size:1.25rem;font-weight:400;line-height:1;position:absolute;top:50%;right:-.15rem;transform:translateY(-50%)}.periodRight strong{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.95rem;font-weight:800}.periodRight .accBar{width:100%}.userPicker{gap:.85rem}.userPickerLead{margin:0}.userList{flex-direction:column;gap:.65rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.userCard{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);width:100%;min-height:4.25rem;color:var(--ink);cursor:pointer;text-align:left;align-items:center;gap:.85rem;padding:.95rem 1.05rem;transition:border-color .15s,background .15s,transform .1s;display:flex}.userCard:active{transform:scale(.99)}.userCard:hover,.userCard.selected{border-color:var(--accent);background:var(--accent-soft)}.userCardCheck{color:var(--accent);flex-shrink:0;margin-left:auto;font-size:.75rem;font-weight:700}.userCardIndex{background:var(--cta);width:2rem;height:2rem;color:var(--cta-text);border-radius:999px;flex-shrink:0;place-items:center;font-size:.9rem;font-weight:800;display:grid}.userCardBody{flex-direction:column;gap:.15rem;min-width:0;display:flex}.userCardName{letter-spacing:-.03em;font-size:1.15rem;font-weight:800}.userCardGrade{color:var(--muted);font-size:.85rem;font-weight:600}@keyframes in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes blink{0%,to{opacity:.35}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=480px){.wrap,.dock{width:min(100%,460px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
