:root{--sheet: #e4ebe3;--sheet-deep: #d6dfd5;--sheet-sunk: #cbd5ca;--ink: #111a16;--graphite: #333f3a;--rule: #a7b3a6;--faint: #6c7a70;--stamp: #b23a2e;--correct: #2c6650;--bar: #0e1512;--pending: #b08a2e;--rail: 22px;--tap: 44px;--font-sans: "IBM Plex Sans KR", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--sheet);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.55;-webkit-text-size-adjust:100%}.mono,input,button,.num{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--bar);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.score{text-align:center;padding:8px 0 4px}.score .big{font-family:var(--font-mono);font-size:46px;line-height:1;letter-spacing:-.02em}.score .of{color:var(--faint);font-size:15px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:6px;overflow:hidden;margin-bottom:12px}.stats div{background:var(--sheet-deep);padding:10px 8px;text-align:center}.stats .k{font-size:11px;color:var(--faint)}.stats .v{font-family:var(--font-mono);font-size:18px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:5px}.cell{aspect-ratio:1;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;border:1px solid var(--rule);background:var(--sheet);line-height:1.1}.cell b{font-size:14px;font-weight:500}.cell.correct{background:var(--correct);border-color:var(--correct);color:var(--sheet)}.cell.wrong{background:var(--stamp);border-color:var(--stamp);color:var(--sheet)}.cell.partial{background:var(--correct);border-color:var(--correct);color:var(--sheet);opacity:.6}.cell.pending{background:var(--pending);border-color:var(--pending);color:var(--sheet)}.cell.blank{background:var(--sheet-sunk);color:var(--faint)}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--faint);margin-top:8px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.rows{border:1px solid var(--rule);border-radius:6px;overflow:hidden}.rows>div{display:flex;gap:10px;padding:9px 12px;background:var(--sheet-deep);border-bottom:1px solid var(--rule);font-size:14px;align-items:center}.rows>div:last-child{border-bottom:none}.rows .k{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rows .v{font-family:var(--font-mono);color:var(--faint);flex:none}.rows .v.low{color:var(--stamp)}.bar{flex:none;width:72px;height:6px;background:var(--sheet-sunk);border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--graphite)}.bar i.low{background:var(--stamp)}h3.section{font-size:13px;color:var(--faint);font-weight:600;letter-spacing:.02em;margin:20px 0 8px}.notice{background:var(--sheet-deep);border-left:3px solid var(--pending);padding:10px 12px;font-size:13px;margin-bottom:12px;border-radius:0 4px 4px 0}.comments{background:var(--sheet-deep);border:1px solid var(--rule);border-radius:6px;padding:12px 14px;margin-bottom:12px}.comments li{margin:0 0 6px;font-size:14px;line-height:1.6}.comments li:last-child{margin-bottom:0}.comments ul{margin:0;padding-left:18px}.trend{display:flex;align-items:flex-end;gap:6px;height:96px;padding:8px 10px;background:var(--sheet-deep);border:1px solid var(--rule);border-radius:6px}.trend .col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px}.trend .col i{display:block;width:100%;max-width:34px;background:var(--graphite);border-radius:2px 2px 0 0;min-height:2px}.trend .col.now i{background:var(--bar)}.trend .col span{font-family:var(--font-mono);font-size:10px;color:var(--faint)}.app{max-width:560px;margin:0 auto;min-height:100dvh;padding-left:var(--rail);position:relative}.rail{position:fixed;top:0;bottom:0;left:max(0px,calc(50vw - 280px));width:var(--rail);background:var(--bar);z-index:5}.rail:after{content:"";position:absolute;left:5px;right:5px;top:0;height:var(--progress, 0%);background:var(--sheet);opacity:.85;transition:height .25s ease}.pad{padding:16px}.topbar{position:sticky;top:0;z-index:4;background:var(--bar);color:var(--sheet);padding:10px 16px;display:flex;align-items:baseline;gap:12px;font-size:14px}.topbar strong{font-size:15px;letter-spacing:-.01em}.topbar .spacer{margin-left:auto}.topbar .clock{font-family:var(--font-mono);font-size:18px;letter-spacing:.02em}.topbar button{background:none;border:1px solid rgba(228,235,227,.4);color:var(--sheet);border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer}.card{background:var(--sheet-deep);border:1px solid var(--rule);border-radius:6px;padding:14px 16px;margin-bottom:12px}.card h2{margin:0 0 4px;font-size:17px;letter-spacing:-.01em}.card .meta{color:var(--faint);font-size:13px;margin:0}.hint{color:var(--faint);font-size:13px;margin:6px 0 0}.empty{color:var(--faint);text-align:center;padding:40px 16px;font-size:14px}.btn{display:block;width:100%;min-height:var(--tap);border:1px solid var(--bar);background:var(--bar);color:var(--sheet);border-radius:5px;font-size:16px;font-family:inherit;cursor:pointer;padding:10px}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule)}.btn.inline{width:auto;padding:8px 14px;font-size:14px;min-height:36px}label.field{display:block;margin-bottom:12px}label.field span{display:block;font-size:13px;color:var(--faint);margin-bottom:4px}input[type=text],input[type=tel],textarea{width:100%;min-height:var(--tap);font-size:16px;font-family:inherit;padding:10px 12px;border:1px solid var(--rule);border-radius:5px;background:var(--sheet);color:var(--ink)}textarea{min-height:96px;resize:vertical;line-height:1.6}.error{color:var(--stamp);font-size:14px;margin:8px 0 0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}.chip{border:1px solid var(--rule);background:var(--sheet);color:var(--ink);border-radius:999px;padding:8px 14px;font-size:14px;font-family:inherit;min-height:38px;cursor:pointer}.chip[aria-pressed=true]{background:var(--graphite);border-color:var(--graphite);color:var(--sheet)}.sheet{padding-bottom:96px}.qrow{display:flex;align-items:flex-start;gap:10px;padding:8px 16px 8px 0;border-bottom:1px solid var(--rule)}.qrow .no{width:30px;flex:none;text-align:right;font-family:var(--font-mono);font-size:15px;color:var(--faint);padding-top:10px}.qrow.answered .no{color:var(--ink);font-weight:600}.qrow .body{flex:1;min-width:0}.qrow .pts{font-size:11px;color:var(--faint);padding-top:13px;flex:none;width:22px}.bubbles{display:flex;gap:6px}.bubble{width:var(--tap);height:var(--tap);border-radius:50%;border:1.5px solid var(--rule);background:var(--sheet);color:var(--faint);font-size:15px;font-family:var(--font-mono);cursor:pointer;padding:0}.bubble[aria-pressed=true]{background:var(--graphite);border-color:var(--graphite);color:var(--sheet)}.bubble.wide{width:auto;min-width:64px;border-radius:22px;font-family:inherit}.dock{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--sheet);border-top:1px solid var(--rule);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.dock .inner{max-width:560px;margin:0 auto;padding-left:var(--rail)}.grass{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.grass .wd{font-size:10px;color:var(--faint);text-align:center;padding-bottom:2px}.cellg{aspect-ratio:1;border-radius:3px;background:var(--sheet-deep);border:1px solid var(--rule)}.cellg.l0{background:var(--sheet);border-color:var(--sheet-deep)}.cellg.l1{background:var(--sheet-sunk)}.cellg.l2{background:var(--graphite);border-color:var(--graphite)}.cellg.l3{background:var(--bar);border-color:var(--bar)}.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:12px}.book{background:var(--sheet-deep);border:1px solid var(--rule);border-left:5px solid var(--graphite);border-radius:3px;padding:12px 10px;min-height:96px}.book .t{font-size:14px;font-weight:600;line-height:1.35}.book .p{font-size:11px;color:var(--faint);margin-top:3px}.book .n{font-size:12px;color:var(--faint);margin-top:6px;line-height:1.45}
