.start-actions{display:flex;align-items:center;gap:10px;margin:30px 0 15px}.start-actions .primary{min-width:230px;display:flex;justify-content:space-between;gap:30px}.small-facts{display:flex;gap:20px;font-size:0.75rem;color:var(--muted)}.small-facts span:before{content:'✓';margin-right:5px;color:var(--accent)}.home-stats{display:flex;gap:40px;margin:38px 0 25px}.home-stats strong{display:block;font-size:1.75rem;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.home-stats span{display:block;font-size:0.75rem;color:var(--muted);margin-top:7px}.intro .local-note{font-size:0.75rem;line-height:1.8;color:var(--muted)}.inline-button{border:0;border-bottom:1px solid #9eae98;background:none;color:var(--accent);font-size:inherit;padding:0}.card-top{display:flex;justify-content:space-between;align-items:center;gap:14px}.sample-no{font-size:0.75rem;color:#768474}.sample-topic{margin-top:30px;font-size:0.8125rem;font-weight:600;color:var(--muted)}.sample-topic .badge{margin-left:10px}.sample-input{font-size:0.875rem;color:#788674}.sample-card h2{margin-top:16px}.sample-bottom{display:flex;justify-content:space-between;gap:7px;padding-top:18px;border-top:1px solid var(--line);font-size:0.75rem;color:#586d58}.sample-bottom span:first-child{color:var(--accent);font-weight:700}.sample-foot{font-size:0.75rem;margin-top:25px;color:var(--muted)}.bank-map{grid-column:1/-1;display:flex;gap:40px;align-items:center;border-top:1px solid var(--line);padding-top:30px}.bank-map h2{font-size:1.125rem;letter-spacing:-.03em;line-height:1.6}.category-list{display:flex;gap:8px;flex-wrap:wrap;flex:1}.category-list span{font-size:0.75rem;background:#e8eddf;border-radius:7px;padding:9px 11px}.category-list b{margin-left:7px;color:var(--accent)}#app.single-view{display:block;max-width:960px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-heading h1,.wide-section>h1{font-size:2rem;margin:8px 0 28px}.quiz-shell{max-width:800px;margin:auto}.progress-meta{display:flex;justify-content:space-between;font-size:0.8125rem;margin:8px 0 12px;color:var(--muted)}.progress-meta strong{color:#293f32;font-size:1rem}.progress-meta strong span{font-weight:400;color:var(--muted)}progress{height:5px;width:100%;display:block;border:0;border-radius:5px;background:#dce4d3;margin-bottom:26px}progress::-webkit-progress-bar{background:#dce4d3;border-radius:5px}progress::-webkit-progress-value{background:var(--accent);border-radius:5px}progress::-moz-progress-bar{background:var(--accent)}.question-card{background:white;border:1px solid var(--line);border-radius:20px;padding:34px 38px;box-shadow:0 12px 35px #354c230a}.category-label{font-size:0.8125rem;font-weight:700;color:var(--accent);background:#e8efdf;padding:7px 10px;border-radius:7px}.question-card h2{font-size:1.5625rem;line-height:1.65;letter-spacing:-.035em;margin:25px 0 30px;word-break:keep-all;overflow-wrap:anywhere}.answer-label{font-size:0.875rem;font-weight:700;display:flex;justify-content:space-between;margin:0 0 12px;gap:12px}.answer-label small{font-size:0.75rem;font-weight:400;color:var(--muted)}textarea{width:100%;resize:vertical;min-height:145px;max-height:600px;background:#fcfcf7;border:1px solid #d5deca;border-radius:12px;padding:17px;line-height:1.8;font-size:1rem;color:#263c32}textarea::placeholder{color:#788474}textarea[readonly]{background:#f1f4eb}.input-foot{display:flex;justify-content:space-between;font-size:0.75rem;color:var(--muted);margin-top:9px;gap:12px}.save-error{color:var(--red);font-weight:700}.reveal-row{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:15px}.reveal-row p{font-size:0.75rem;color:var(--muted)}.answer-panel{margin-top:30px;border-top:1px solid var(--line);padding-top:25px}.answer-panel>p{white-space:pre-wrap;font-size:1.0625rem;line-height:1.85;margin:14px 0}.keywords{display:flex;flex-wrap:wrap;gap:7px}.keywords span{padding:5px 10px;border-radius:6px;background:#e8efdf;font-size:0.8125rem;color:#32634d;font-weight:600}.answer-panel .explanation,.explanation{background:#f0f3e9;border-left:3px solid #abc3a0;border-radius:0 8px 8px 0;padding:13px 17px;color:#596f59;font-size:0.875rem;line-height:1.8}.self-rating{margin-top:25px}.self-rating h3{font-size:1rem;margin-bottom:8px}.self-rating>p{font-size:0.8125rem;color:var(--muted);margin-top:0}.rating-buttons{display:flex;gap:10px}.rating{flex:1;padding:13px 10px;border:1px solid var(--line);background:white;border-radius:10px;font-size:0.875rem;font-weight:700}.correct{color:var(--green)}.partial{color:#946300}.wrong{color:var(--red)}.rating.correct.selected{background:#e6f7f0;border-color:#0d8363}.rating.partial.selected{background:#fff3d5;border-color:#b58412}.rating.wrong.selected{background:#fff0f1;border-color:#bf4655}.sources{margin-top:25px;font-size:0.75rem;color:var(--muted);line-height:1.8;border-top:1px solid #e6eadd;padding-top:16px}.sources summary{cursor:pointer;color:#627a5e}.sources p{font-size:0.75rem;line-height:1.8}.sources ul{padding-left:18px}.sources li{overflow-wrap:anywhere;margin:7px 0}.sources small{font-size:0.75rem}.quiz-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:22px 0}.quiz-controls>span{font-size:0.75rem;color:var(--muted)}.question-dots{display:grid;grid-template-columns:repeat(15,1fr);gap:6px;margin-top:26px}.question-dots button{border:1px solid var(--line);background:white;border-radius:6px;padding:7px 0;font-size:0.75rem}.question-dots .correct{background:#e4f5ed;border-color:#c4e7d9}.question-dots .partial{background:#fff2cf;border-color:#ead9a9}.question-dots .wrong{background:#ffecee;border-color:#efcfd3}.question-dots .current{outline:2px solid var(--accent);outline-offset:1px;font-weight:800}.empty-state{text-align:center;padding:70px 20px;background:white;border:1px solid var(--line);border-radius:18px;margin:20px 0}.empty-state h2{font-size:1.375rem}.empty-state p{font-size:0.9375rem;color:var(--muted);margin-bottom:25px}.empty-icon{font-size:2.625rem;color:var(--accent)}.empty-state.compact{padding:30px 20px}.history-toolbar{display:flex;gap:15px;align-items:center;font-size:0.875rem}.history-toolbar select{padding:12px 36px 12px 14px;border:1px solid var(--line);border-radius:10px;background:white;min-width:240px;max-width:100%;color:inherit}.filter-tabs{display:flex;gap:8px;margin:24px 0}.filter-tabs button{border:1px solid var(--line);background:transparent;border-radius:8px;padding:9px 17px;font-size:0.875rem;color:var(--muted)}.filter-tabs button.active{background:#32634d;border-color:#32634d;color:white}.record-count{font-size:0.8125rem;color:var(--muted)}.record{border:1px solid var(--line);border-radius:13px;background:white;margin:12px 0;overflow:hidden}.record>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 25px}.record>summary::-webkit-details-marker{display:none}.record>summary:after{content:'+';color:var(--muted)}.record[open]>summary:after{content:'−'}.record-title{flex:1;min-width:0}.record-meta{display:block;font-size:0.75rem;color:var(--muted);margin-bottom:9px}.record-title strong{font-size:1rem;line-height:1.7;font-weight:650;display:block;word-break:keep-all;overflow-wrap:anywhere}.record-title .badge{margin-top:10px}.result-label{font-size:0.75rem;font-weight:700;white-space:nowrap;padding:6px 9px;background:#eff2e8;border-radius:6px}.result-label.correct{background:#e5f6ee}.result-label.partial{background:#fff3d7}.result-label.wrong{background:#fff0f1}.record-body{padding:2px 25px 25px;border-top:1px solid var(--line)}.record-body h3{font-size:0.8125rem;color:var(--accent);margin:22px 0 8px}.record-body p{font-size:0.9375rem;white-space:pre-wrap;overflow-wrap:anywhere}.my-answer{padding:16px;background:#f1f4eb;border-radius:10px;min-height:55px}.score-row{display:flex;gap:15px;margin:20px 0}.score{flex:1;border:1px solid var(--line);border-radius:15px;padding:24px;background:white;text-align:center}.score strong{display:block;font-size:2.0625rem}.score span{display:block;font-size:0.8125rem;margin-top:10px}.result-heading{text-align:center;padding-top:25px}.result-heading h1{font-size:2.25rem}.result-heading p{color:var(--muted);font-size:0.875rem}.result-actions{display:flex;justify-content:center;gap:12px;margin:30px 0}.result-preview{max-width:700px;margin:35px auto}.result-preview p{font-size:0.875rem;line-height:1.8}.result-preview .result-label{margin-right:10px}.session-overview{display:flex;align-items:center;gap:25px}.session-overview .score-row{flex:1}.session-overview .score{padding:15px}.session-overview .score strong{font-size:1.5rem}.lead{font-size:1rem;color:var(--muted)}.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.panel{background:white;border:1px solid var(--line);border-radius:17px;padding:30px}.panel-symbol{display:grid;place-items:center;background:#e8efdf;border-radius:12px;width:44px;height:44px;color:var(--accent);font-size:1.5625rem}.panel h2{font-size:1.375rem;margin-top:25px}.panel p{color:var(--muted);font-size:0.9375rem}.panel small{display:block;font-size:0.75rem;color:var(--muted);margin-top:15px}.file-picker{display:inline-block;position:relative;border:1px solid var(--line);padding:14px 22px;border-radius:12px;font-weight:700;font-size:0.9375rem;cursor:pointer;overflow:hidden}.file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.file-picker:focus-within{outline:3px solid #719b78;outline-offset:4px}.info-note{padding:22px 25px;background:#e8eedf;border-radius:14px;margin-top:28px;font-size:0.875rem}.info-note p{margin-bottom:0;color:var(--muted)}.storage-warning{grid-column:1/-1;line-height:1.8;font-size:0.875rem;background:#fff0d6;color:#764800;border:1px solid #eac88e;border-radius:12px;padding:16px 20px;margin-bottom:20px}.storage-warning button{border:1px solid #cdb584;border-radius:6px;color:inherit;background:#fff;padding:5px 10px;margin-left:8px;font-size:0.8125rem}.backup-section{max-width:900px;margin:auto}button{transition:background .15s,border-color .15s}
@media(min-width:1500px){#app{padding-top:70px;padding-bottom:55px}}@media(max-width:1000px){#app.single-view{margin:0 28px}}@media(max-width:720px){.home-stats{gap:35px}.start-actions{flex-wrap:wrap}.sample-card{margin-top:0}.bank-map{display:block}.category-list{margin-top:20px}.single-view .section-heading h1,.wide-section>h1{font-size:1.6875rem}#app.single-view{margin:0 16px}.question-card{padding:24px 20px;border-radius:15px}.question-card h2{font-size:1.3125rem}.card-top{align-items:flex-start}.answer-label{display:block}.answer-label small{display:block;margin-top:7px;font-size:0.75rem}.answer-panel>p{font-size:1rem}.reveal-row{align-items:flex-end}.reveal-row p{max-width:120px}.quiz-controls{gap:8px;flex-wrap:wrap}.quiz-controls>span{display:none}.quiz-controls button{padding:12px 18px}.question-dots{grid-template-columns:repeat(10,1fr);gap:8px}.rating-buttons{gap:6px}.rating{font-size:0.8125rem;padding:12px 5px}.backup-grid{grid-template-columns:1fr;gap:15px}.panel{padding:25px}.record>summary{padding:20px 16px;gap:10px}.record-body{padding:0 16px 20px}.record-title strong{font-size:0.9375rem}.record>summary:after{display:none}.filter-tabs button{padding:9px 13px;font-size:0.8125rem}.score{padding:20px 10px}.score-row{gap:9px}.score strong{font-size:1.75rem}.session-overview{display:block}.result-heading h1{font-size:1.75rem}.result-actions{flex-wrap:wrap}.history-toolbar select{min-width:0;flex:1}.section-heading{align-items:flex-start}.section-heading>.secondary{padding:10px 12px;font-size:0.8125rem}.badge{font-size:0.75rem}.sources{font-size:0.75rem}.local-note{font-size:0.75rem}.progress-meta{font-size:0.75rem}}
nav{flex-wrap:wrap}.question-card h2{white-space:pre-line}.rating{overflow-wrap:anywhere}.bank-map>div{min-width:0}.brand-mark{font-size:0;background:var(--accent) url('favicon.svg') center/100% no-repeat}.question-dots{grid-template-columns:repeat(auto-fit,minmax(2.1rem,1fr))}.sample-bottom{flex-wrap:wrap}.home-stats{flex-wrap:wrap}.backup-grid>*{min-width:0}button{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* A quiet, green notebook: shared visual treatment, no learning-state changes. */
body{background-image:radial-gradient(ellipse at 90% 8%,#e7eddd80,transparent 55%)}
h1,.brand{font-family:"Batang","AppleMyungjo","Noto Serif KR",serif;letter-spacing:-.045em}
h1{font-weight:700}.brand{letter-spacing:-.035em}.brand small{font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;letter-spacing:0}
.sample-card,.question-card,.panel,.record,.score,.empty-state{background:#fffef9;box-shadow:0 12px 36px #3b4f2510}
.sample-card{border-radius:12px 25px 25px 12px;border-left:4px solid #abc39b;transform:rotate(-1deg);box-shadow:8px 10px 0 -3px #e7ebdf,0 22px 55px #3b4f2512}
.category-list span{border:1px solid #dce4d1;background:#edf1e6}.nav-button.active{box-shadow:inset 0 0 0 1px #d3dfc8}
.primary{box-shadow:0 5px 14px #32634d20}.secondary,.rating,.question-dots button,.history-toolbar select{background:#fffef9}
textarea:focus{border-color:#719b78}.badge{background:#f3edcc;color:#795f22}
::selection{background:#d6e5c7;color:#254f3c}
@media(max-width:720px){.sample-card{transform:none}}
.study-home>h1{margin-bottom:12px}.study-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.part-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:32px 0}.part-card{background:#fffef9;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 8px 28px #3b4f2508}.part-card h2{font-size:1.25rem;line-height:1.5;margin:12px 0}.part-card p{font-size:.875rem;color:var(--muted)}.part-card progress{margin:20px 0}.part-card button{width:100%;padding:12px}.lesson-list{display:grid;gap:18px}.lesson-list .panel h2{margin-top:12px}.lesson-list .study-actions{margin-bottom:0}.lesson-status{font-weight:700}.concept-card h1{font-size:2rem;line-height:1.4;margin:18px 0 16px}.concept-card h2{font-size:.9375rem;color:var(--accent);margin:17px 0 7px}.concept-card p{font-size:1rem;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere;margin:8px 0 12px}.concept-card .keywords{margin:8px 0 14px}.concept-card .exam-answer{margin:8px 0 16px}.concept-more{border-top:1px solid var(--line);margin:20px 0 12px;padding-top:14px}.concept-more summary{cursor:pointer;color:var(--accent);font-size:.875rem;font-weight:700;line-height:1.6}.concept-more summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.concept-more .example-box{margin:15px 0}.concept-more .explanation{font-size:.875rem;line-height:1.75}.example-box{background:#f0f3e9;padding:1px 20px 12px;border-radius:12px;margin:22px 0}.example-box small{display:inline-block;font-weight:400;font-size:.75rem;margin-left:8px;color:var(--muted)}.exam-answer{border-left:3px solid #abc3a0;padding-left:18px}.concept-links{display:flex;flex-wrap:wrap;gap:8px}.concept-links button{border:1px solid var(--line);background:#fffef9;line-height:1.6}.concept-links [aria-current]{border-color:var(--accent);color:var(--accent);font-weight:700}.concept-card .local-note,.study-home .local-note{font-size:.875rem;color:var(--muted)}.read-toggle{margin-top:12px}.read-toggle:disabled{opacity:1;color:var(--accent);background:#e8efdf}.concept-card .sources p{font-size:.8125rem}.lesson-list .panel p{overflow-wrap:anywhere}
@media(max-width:900px){.part-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.part-grid{grid-template-columns:1fr;gap:14px}.part-card{padding:22px}.study-actions>*{width:100%}.concept-card h1{font-size:1.625rem}.concept-card{padding:24px 20px}.quiz-shell .section-heading{flex-wrap:wrap}.progress-meta{gap:12px}.progress-meta strong{min-width:0}.progress-meta>span{white-space:nowrap}}

.sql-answer{width:100%;background:#fcfcf7;border:1px solid #d5deca;border-radius:12px;padding:16px 17px;font-size:1.25rem;font-weight:700;letter-spacing:.08em;color:#263c32;text-transform:uppercase}
.sql-answer::placeholder{font-size:1rem;font-weight:400;letter-spacing:0;text-transform:none;color:#788474}
.sql-answer[readonly]{background:#f1f4eb}
.sql-answer:focus-visible{outline:3px solid #719b78;outline-offset:4px}
.sql-hint{margin:14px 0 0;padding:12px 15px;background:#fff3d5;border-radius:9px;color:#71521a;font-size:.875rem;line-height:1.6}
.sql-feedback{font-size:.9375rem;font-weight:700}
.sql-correct-answer{font-size:1.5rem!important;font-weight:700;letter-spacing:.08em;color:var(--accent)}
.sql-drill-shell .question-dots{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:560px){.sql-drill-shell .answer-label{flex-wrap:wrap}.sql-drill-shell .reveal-row{flex-wrap:wrap}.sql-drill-shell .reveal-row button{width:100%}.sql-drill-shell .quiz-controls{flex-wrap:wrap}.sql-drill-shell .quiz-controls>span{order:-1;width:100%}}

.term-answer{min-height:88px;max-height:180px}
.term-question .answer-panel>p{font-size:1.4rem;font-weight:700;color:var(--accent);margin:10px 0 16px}
.term-question .concept-more{margin:14px 0;padding-top:12px}

.term-question h2{white-space:pre-wrap}
.term-question .answer-panel>p{white-space:pre-wrap;line-height:1.7}
.sql-code{margin:0 0 22px;padding:18px;background:#f1f4eb;border:1px solid #d9dfd2;border-radius:12px;color:#263c32;font:0.875rem/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;overflow-x:auto}
.sql-code-question h2{margin-bottom:16px}
@media(max-width:560px){.sql-code{font-size:.75rem;padding:14px}}

.english-term{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;color:#32634d;line-height:1.55;overflow-wrap:anywhere}
.english-term span{font-size:.75rem;font-weight:700;letter-spacing:.02em;color:var(--muted)}
.english-term strong{font-size:.9375rem;font-weight:600;overflow-wrap:anywhere}
.concept-card .english-term{margin:-4px 0 18px}
.answer-panel .english-term,.record-body .english-term{margin:8px 0 16px}

/* Exam word banks and authored UML illustration; wrap on narrow screens. */
.exam-choices{margin:1.25rem 0;padding:1rem 1.2rem;border:1px solid var(--line,#cdd6c4);border-radius:10px}
.exam-choices ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.65rem 1rem;margin:.75rem 0 0;padding-left:1.2rem}
.exam-choices li{overflow-wrap:anywhere}
.exam-diagram{margin:1.25rem 0;padding:1rem;border:1px solid var(--line,#cdd6c4);border-radius:10px}
.exam-diagram svg{display:block;width:100%;height:auto;max-width:620px;margin:auto}
.exam-diagram figcaption{margin-top:.75rem;font-size:.85rem;color:var(--muted,#596956)}

.history-filters{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0}.history-filters label{display:grid;gap:.5rem;flex:1;min-width:12rem}.history-filters select{width:100%;min-width:0;padding:.7rem}.part-practice{margin-top:1.5rem}
