:root{--bg: #f5efe6;--panel: #fffdf8;--panel-strong: #fff8ec;--border: #d8cfc0;--border-strong: #c6b89e;--text: #1d1a16;--muted: #6c6257;--navy: #1f3a5f;--navy-soft: #e8eef8;--amber: #d58e1f;--amber-soft: #fff2d6;--green: #2f7d5b;--green-soft: #e6f5ee;--red: #b04a3a;--red-soft: #fdece8;--shadow: 0 12px 30px rgba(32, 22, 10, .08);--radius: 18px;--radius-sm: 12px;--font: "IBM Plex Sans KR", "Pretendard", "Noto Sans KR", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:radial-gradient(circle at top left,rgba(213,142,31,.18),transparent 28%),radial-gradient(circle at top right,rgba(31,58,95,.12),transparent 24%),linear-gradient(180deg,#f8f2e9,#f4ecdf)}button,input,select{font:inherit}button{border:0}.app-shell{min-height:100vh;padding:24px}.auth-shell{min-height:100vh;padding:24px;display:grid;place-items:center}.auth-card,.modal-card,.filter-panel,.paper-panel,.answer-card,.ad-card{background:#fffdf8eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(216,207,192,.9);box-shadow:var(--shadow)}.auth-card{width:min(760px,100%);border-radius:28px;padding:28px}.auth-kicker,.panel-kicker,.modal-kicker,.topbar-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.auth-card h1,.topbar h1,.modal-card h2{margin:8px 0 0;font-size:clamp(28px,4vw,42px);line-height:1.05;font-weight:800;color:var(--navy)}.auth-subtitle{margin:14px 0 24px;max-width:620px;line-height:1.7;color:var(--muted)}.auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field,.select-wrap,.search-wrap{display:flex;flex-direction:column;gap:7px}.field span,.field-label,.select-wrap span,.search-wrap span{font-size:12px;font-weight:700;color:var(--muted)}.field input,.select-wrap select,.search-wrap input{width:100%;min-height:46px;border:1px solid var(--border);border-radius:14px;background:#fff;padding:0 14px;color:var(--text);outline:none;transition:border-color .12s,box-shadow .12s}.field input:focus,.select-wrap select:focus,.search-wrap input:focus{border-color:var(--navy);box-shadow:0 0 0 4px #1f3a5f14}.plan-wrap{margin-top:18px}.plan-options{display:flex;gap:10px;flex-wrap:wrap}.plan-chip{background:#fff;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:10px 16px;cursor:pointer;transition:.12s ease}.plan-chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}.auth-notes{margin:20px 0;padding:16px 18px;background:var(--panel-strong);border:1px solid #eadfc9;border-radius:16px;color:var(--muted);display:grid;gap:8px;font-size:13px;line-height:1.6}.primary-btn,.ghost-btn{min-height:46px;border-radius:14px;padding:0 18px;cursor:pointer;transition:transform .12s ease,opacity .12s ease,background .12s ease}.primary-btn:hover,.ghost-btn:hover{transform:translateY(-1px)}.primary-btn{background:var(--navy);color:#fff;font-weight:700}.ghost-btn{background:#fff;color:var(--navy);border:1px solid var(--border)}.ghost-btn.danger{color:var(--red)}.auth-btn{width:100%}.floating-error{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--red);color:#fff;border-radius:999px;padding:10px 16px;box-shadow:var(--shadow)}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.student-pill,.plan-badge{border-radius:999px;padding:10px 14px;background:#ffffffb8;border:1px solid rgba(216,207,192,.9)}.student-pill{display:flex;gap:10px;align-items:center}.student-pill strong{color:var(--navy)}.student-pill span,.plan-badge{color:var(--muted);font-size:13px}.plan-badge.free{background:var(--amber-soft);color:#8c5a0b}.plan-badge.premium{background:var(--green-soft);color:#20573f}.filter-panel{border-radius:22px;padding:18px;margin-bottom:18px}.filter-row{display:grid;grid-template-columns:180px 180px 180px minmax(220px,1fr);gap:12px}.stats-strip{margin-top:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:4px}.stat-card strong{font-size:24px;line-height:1;color:var(--navy)}.stat-card span{font-size:12px;color:var(--muted)}.workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.95fr);gap:18px;align-items:start}.paper-panel{border-radius:24px;padding:18px}.answer-panel{display:grid;gap:14px}.panel-head,.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.paper-panel h2,.answer-card h3{margin:6px 0 0;font-size:24px;color:var(--navy)}.question-counter{background:var(--navy);color:#fff;padding:10px 14px;border-radius:999px;font-weight:700}.question-chip-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:14px}.question-chip{min-width:44px;height:44px;border-radius:14px;background:#fff;border:1px solid var(--border);cursor:pointer;color:var(--muted);font-weight:700}.question-chip.active{background:var(--navy);border-color:var(--navy);color:#fff}.question-chip.correct{background:var(--green-soft);border-color:#99ceb1;color:var(--green)}.question-chip.wrong{background:var(--red-soft);border-color:#efc0b8;color:var(--red)}.question-chip.done{background:var(--amber-soft);border-color:#eac58c;color:#8c5a0b}.document-card{background:#fff;border-radius:20px;border:1px solid var(--border);overflow:hidden}.document-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid #ebe2d4;background:linear-gradient(180deg,#fff8ed,#fffdfa)}.meta-stack{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.meta-badge{padding:6px 10px;border-radius:999px;background:var(--navy-soft);color:var(--navy);font-size:12px;font-weight:700}.meta-faint{color:var(--muted);font-size:12px}.passage-block,.question-block{padding:18px}.question-block{border-top:1px solid #f0e8dc}.section-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px}.passage-text{white-space:pre-wrap;line-height:1.82;font-size:15px;font-family:Iowan Old Style,Georgia,serif}.question-text{line-height:1.7;font-size:17px;font-weight:700}.option-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}.option-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;border-radius:14px;background:#faf7f1;border:1px solid #eee5d7;line-height:1.6}.option-index{width:34px;height:34px;border-radius:50%;background:#fff;display:grid;place-items:center;font-weight:700;color:var(--navy);border:1px solid var(--border)}.answer-card,.ad-card{border-radius:22px;padding:18px}.answer-button-grid{margin-top:14px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.answer-button{min-height:54px;border-radius:16px;background:#fff;border:1px solid var(--border);font-size:18px;font-weight:800;color:var(--navy);cursor:pointer}.answer-button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.submit-btn{width:100%;margin-top:12px}.result-box{margin-top:12px;padding:14px;border-radius:16px;background:#fff8ed;border:1px solid #edd9b0;color:#77501a;display:grid;gap:6px;line-height:1.5}.good{color:var(--green)}.bad{color:var(--red)}.ad-card strong{display:block;margin-top:10px;font-size:20px;color:#8c5a0b}.ad-card p{margin:8px 0 0;line-height:1.6;color:var(--muted)}.history-list,.wrong-list{margin-top:12px;display:grid;gap:8px}.history-row,.wrong-chip{width:100%;background:#fff;border:1px solid var(--border);border-radius:16px;padding:12px 14px;cursor:pointer;text-align:left}.history-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.history-row strong{display:block;color:var(--text);margin-bottom:4px}.history-row span{color:var(--muted);font-size:12px}.wrong-list{grid-template-columns:repeat(2,minmax(0,1fr))}.wrong-chip span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.wrong-chip strong{font-size:15px;color:var(--navy)}.history-empty,.empty-shell,.error-shell{background:#fffdf8eb;border:1px dashed var(--border-strong);border-radius:22px;padding:32px;color:var(--muted);text-align:center;box-shadow:var(--shadow)}.error-shell{color:var(--red)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1d1a1657;display:grid;place-items:center;padding:24px}.modal-card{width:min(640px,100%);border-radius:24px;padding:22px}.modal-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}@media (max-width: 1100px){.workspace{grid-template-columns:1fr}.answer-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.answer-panel>*:first-child{grid-column:1 / -1}.filter-row,.stats-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.app-shell,.auth-shell{padding:14px}.auth-grid,.filter-row,.stats-strip,.wrong-list,.answer-panel{grid-template-columns:1fr}.topbar,.modal-actions,.panel-head{flex-direction:column}.question-counter{align-self:flex-start}}
