:root{--cream:#fff6d8;--yellow:#f3e6a8;--mint:#d2e8e3;--blue:#b7cde5;--ink:#15394c;--muted:#536d7d;--ease:cubic-bezier(.16,1,.3,1);font-family:"Noto Sans SC","Microsoft YaHei UI",sans-serif;font-size:15px;color:var(--ink);line-height:1.6}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 9% 18%,#fff9e7 0,transparent 46%),radial-gradient(ellipse at 86% 92%,#e5efeb66 0,transparent 38%),#fff8e2}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:transparent}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}svg.dog-mark{width:30px;height:30px;color:#688294;stroke-width:1.25}::selection{background:#d2e8e3;color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:#b7cde599 transparent}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#b7cde599;border-radius:10px}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #547b96;outline-offset:4px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #87aabf;outline-offset:2px}input,textarea{caret-color:#315e77}input::placeholder,textarea::placeholder{color:#627a88}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:550;line-height:1.35}h1{font-size:32px;letter-spacing:-.02em}h2{font-size:21px}h3{font-size:18px}p{max-width:75ch}small,.muted{color:var(--muted)}[lang=ko],.ko,.word-title,.flashcard-term,.example-ko,.lyric-line,.token{font-family:"Noto Sans KR","Malgun Gothic",sans-serif}.handwriting,.translation,.player-poem,.sidebar-poem,.brand span{font-family:"Segoe Print",cursive}.app{display:grid;grid-template-columns:246px minmax(0,1fr);grid-template-rows:50px minmax(0,1fr)auto;gap:16px 24px;height:calc(100dvh - 62px);margin:44px 18px 18px}.glass{position:relative;isolation:isolate;background:rgba(255,255,255,.61);backdrop-filter:blur(22px) saturate(1.06);-webkit-backdrop-filter:blur(22px) saturate(1.06);box-shadow:0 9px 28px #6175790a,inset 0 1px 1px #ffffffd9;border-radius:27px}.glass:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at var(--mx,50%) var(--my,30%),#fff9 0,transparent 58%);opacity:.11;pointer-events:none;transition:opacity 220ms var(--ease);z-index:-1}.glass:hover:before{opacity:.4}.sidebar{grid-row:1/4;display:flex;flex-direction:column;padding:22px 16px 16px;min-height:0;overflow:hidden}.brand{display:block;position:relative;flex:0 0 100px;margin:0 4px 10px}.brand img{position:absolute;left:3px;top:8px;width:80px;height:80px;object-fit:contain;transform-origin:50% 88%;animation:none}.brand span{position:absolute;left:75px;top:54px;font-size:23px;font-weight:700;letter-spacing:-.03em;white-space:nowrap;z-index:1;transform:rotate(-5deg)}.brand svg{position:absolute;right:18px;top:55px;width:18px;height:18px}body.page-hidden .brand img{animation-play-state:paused}#sidebarNav{overflow:auto;min-height:0;flex:1;padding:0 1px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;text-align:left;font-size:15px;min-height:44px;margin:3px 0;transition:background 150ms var(--ease)}.nav-item svg{width:19px;height:19px}.nav-item>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item.active{background:#d2e8e3a6}.nav-item:hover{background:#d2e8e367}.nav-item.child{padding-left:28px;font-size:14px}.nav-item.child svg{width:17px;height:17px}.nav-item.drag-over{background:#b7cde577;outline:1px dashed #668b9e}.nav-heading{display:flex;justify-content:space-between;align-items:center;color:var(--muted);padding:18px 12px 6px;font-size:13px}.nav-heading .icon-button{width:27px;height:27px}.sidebar-poem{font-size:18px;line-height:1.6;transform:rotate(-7deg);padding:22px 12px 18px;position:relative;flex-shrink:0}.sparkle{font-family:serif;position:absolute;right:15px;bottom:24px;font-size:24px;color:#6b8695}.settings-button{align-self:flex-start;margin:8px 4px 0;background:#ffffffb3!important;box-shadow:0 3px 9px #17394c08}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:16px}#breadcrumb{display:flex;align-items:center;gap:13px;font-size:15px;font-weight:500;min-width:0}#breadcrumb .crumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}#breadcrumb svg{width:14px;height:14px}.demo-badge{font-size:10px;line-height:1;padding:5px 7px;border-radius:6px;background:#d2e8e366;font-weight:400;color:#405d6a;flex-shrink:0}.top-copy{display:flex;align-items:center;gap:22px;font-size:16px;letter-spacing:.06em;white-space:nowrap}.workspace{min-width:0;overflow:hidden}#view{height:100%;overflow-y:auto;overflow-x:hidden;padding:38px 42px}.player{grid-column:2;display:flex;align-items:center;padding:10px 16px;gap:13px;min-width:0;border-radius:21px}.song-identity{display:flex;align-items:center;gap:12px;min-width:174px;max-width:220px;text-align:left;padding:0}.song-identity strong{display:block;font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-identity small{font-size:10px}.cover-art{display:block;width:52px;height:52px;border-radius:10px;background:linear-gradient(135deg,#d4e6e0,#dee2f1 50%,#bfd5e5);box-shadow:inset 0 0 16px #ffffff66;flex-shrink:0}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:7px;border-radius:11px;flex-shrink:0;transition:background 150ms var(--ease),transform 120ms var(--ease)}.icon-button:hover{background:#d2e8e366}.icon-button:active{transform:scale(.96)}.icon-button.active{background:#b7cde56e}.player-play{background:#b7cde59e!important;border-radius:50%;width:46px;height:46px}.time{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted)}#songSeek{flex:1;min-width:50px;height:4px;accent-color:#45667b;cursor:pointer}.player-poem{font-size:17px;line-height:1.4;transform:rotate(-6deg);padding:0 9px 0 25px;position:relative;white-space:nowrap;flex-shrink:0}.player-poem:before{content:"✦";font:25px serif;color:#6b8798;position:absolute;left:-9px;top:6px}.player audio{display:none}.home-screen{display:flex;flex-direction:column;gap:28px;min-height:100%}.home-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;min-height:232px}.home-hero{position:relative;padding-right:74px}.track-line{display:flex;align-items:center;gap:17px;color:#536f82;font-size:11px;letter-spacing:.12em;white-space:nowrap}.track-line span{border:1px solid #b9ccd3;padding:5px 13px;border-radius:20px}.track-line:after{content:"";height:1px;background:#b7cde588;flex:1}.hero-sentence{font-size:clamp(35px,3.55vw,58px);font-weight:650;letter-spacing:-.035em;line-height:1.3;margin-top:48px;white-space:nowrap}.hero-sentence .dog-mark{display:inline-block;width:34px;height:34px;margin-left:12px;vertical-align:middle}.hero-translation{font-size:26px;letter-spacing:.015em;margin-top:5px;color:#426478}.tomorrow{position:absolute;right:0;top:3px;font:14px/1.55 "Segoe Print",cursive;max-width:70px;transform:rotate(-2deg)}.tomorrow:after{content:"";display:block;width:40px;height:1px;background:#9cafbd;margin-top:20px}.home-chat{display:flex;flex-direction:column;gap:30px}.user-message{background:#d2e8e373;border-radius:15px;padding:15px 20px;font-size:14px;margin:0 0 24px}.assistant-copy{font-size:15px;line-height:2;padding:0 2px}.assistant-copy mark{background:#f3e6a85c;color:inherit;border-radius:4px;padding:1px 4px}.conversation-scroll{max-height:216px;overflow:auto}.conversation-message{padding:7px 0;font-size:14px;white-space:pre-wrap}.conversation-message.user{text-align:right;color:#496a7b}.home-notes{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px}.section-title{display:flex;align-items:center;gap:15px;margin-bottom:8px}.section-title h2{font-size:19px}.notebook-selector{display:flex;align-items:center;gap:9px;background:#e8e9e766;border-radius:11px;padding:7px 11px;font-size:12px;border:0;max-width:180px;cursor:pointer}.notebook-selector svg{width:16px;height:16px}.notebook-selector select{background:transparent;border:0;min-width:0;max-width:120px;font-size:12px;cursor:pointer}.selection-toolbar{display:flex;align-items:center;justify-content:space-between;margin:4px 0 9px;font-size:12px;color:var(--muted)}.toolbar-icons{display:flex;gap:4px}.toolbar-icons .icon-button{width:28px;height:28px;padding:4px}.toolbar-icons svg{width:19px;height:19px}.candidate{display:flex;align-items:center;gap:15px;min-height:67px;padding:12px 18px;margin-top:9px;background:#eef0ed8c;border-radius:13px}.candidate.selected{background:#d2e8e38c}.candidate input[type=checkbox],.note-card input[type=checkbox]{width:19px;height:19px;accent-color:#15394c;cursor:pointer;flex-shrink:0}.candidate-text{flex:1;min-width:0;cursor:pointer}.candidate-word{display:flex;align-items:center;gap:32px}.candidate-word strong{font:550 26px/1.4 "Noto Sans KR","Malgun Gothic",sans-serif;min-width:90px}.candidate-word span{font-size:16px}.saved-dot{font-size:11px;white-space:nowrap;color:#456d6b}.saved-dot:before{content:"";display:inline-block;width:7px;height:7px;background:#3e937c;border-radius:50%;margin-right:6px}.candidate .icon-button{width:27px;height:27px;padding:3px}.candidate-grammar{background:#f3e6a833;align-items:flex-start;min-height:96px}.candidate-grammar.selected{background:#f3e6a84d}.candidate-grammar input{margin-top:9px}.candidate-grammar strong{font:500 29px/1.35 "Noto Sans KR","Malgun Gothic",sans-serif;display:block}.candidate-grammar p{font-size:13px;margin-top:8px}.composer{border:1px solid #cad8e39e;border-radius:20px;background:#ffffff73;padding:11px 16px;margin-top:auto;position:relative}.composer textarea{width:100%;resize:none;min-height:35px;max-height:120px;display:block;padding:3px 0;border:0;background:transparent;outline:none!important;font-size:14px}.composer-tools{display:flex;align-items:center;gap:9px}.composer-tools .api-button{margin-left:auto;display:flex;align-items:center;gap:8px;border:1px solid #ccd9e58a;background:#fff8;padding:5px 13px;border-radius:20px;font-size:12px}.api-button svg{width:12px;height:12px}.send-button{background:#b7cde59e;border-radius:16px;width:44px;height:44px}.attachment-list{display:flex;flex-wrap:wrap;gap:7px}.attachment-chip{display:flex;align-items:center;gap:6px;background:#e6eeeb9e;padding:4px 7px;border-radius:8px;font-size:11px;max-width:220px}.attachment-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip img{width:28px;height:28px;object-fit:cover;border-radius:3px}.attachment-chip button{padding:0;display:flex}.attachment-chip svg{width:14px;height:14px}.plain-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #bccfd66e;background:#fff8;border-radius:11px;padding:7px 13px;font-size:13px;transition:background 150ms var(--ease),transform 120ms var(--ease)}.plain-button:hover{background:#e0ede7a6}.plain-button:active{transform:scale(.97)}.plain-button.primary{background:#b7cde58c;border-color:transparent}.plain-button svg{width:17px;height:17px}.context-menu{position:fixed;min-width:190px;max-height:85vh;overflow:auto;padding:6px;background:#fffffff2;backdrop-filter:blur(18px);border-radius:13px;box-shadow:0 10px 38px #15394c26;z-index:50}.context-menu button{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:9px 10px;border-radius:7px;font-size:13px}.context-menu button:hover{background:#d2e8e377}.context-menu button svg{width:16px;height:16px}.menu-separator{height:1px;background:#d5dfdf;margin:5px}.hover-preview{position:fixed;width:260px;padding:15px 17px;background:#fffffff0;backdrop-filter:blur(16px);border-radius:16px;box-shadow:0 10px 32px #15394c16;z-index:40;pointer-events:none}.hover-preview strong{display:block;font-size:14px}.hover-preview small{display:block;margin-top:7px;font-size:12px}.hover-preview .preview-terms{margin-top:10px;font-size:13px;color:#476574}.toast{position:fixed;bottom:110px;left:50%;transform:translateX(-35%);display:flex;align-items:center;gap:16px;padding:10px 17px;max-width:75vw;background:#f8fdfbf2;backdrop-filter:blur(15px);border-radius:13px;box-shadow:0 8px 28px #15394c1a;z-index:80;font-size:13px}.toast[hidden],.hover-preview[hidden],.context-menu[hidden]{display:none}.toast button{color:#2b7062;padding:3px}.toast a{text-decoration:underline}.feedback-ring{position:fixed;width:84px;height:84px;border:3px solid #4baf81;border-radius:50%;pointer-events:none;z-index:90;animation:ring .35s var(--ease) both}@keyframes ring{0%{opacity:0;transform:scale(.85)}30%{opacity:1}100%{opacity:0;transform:scale(1.1)}}.shake{animation:shake .18s ease-in-out}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}dialog{width:min(620px,calc(100vw - 48px));max-height:85vh;border:0;border-radius:23px;background:#fffcf4;padding:26px 30px;color:var(--ink);box-shadow:0 20px 70px #15394c30}dialog::backdrop{background:#24435127;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.dialog-head h2{font-size:22px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.field{display:block;font-size:13px;margin-top:14px}.field input,.field textarea,.field select{display:block;width:100%;background:#fff9;border:1px solid #c8d6dca1;border-radius:10px;padding:10px 12px;margin-top:6px}.field textarea{resize:vertical;min-height:70px}.dialog-note{font-size:12px;line-height:1.8;color:var(--muted);padding:10px 0}.dialog-content{font-size:14px;line-height:1.9}.empty-state{padding:60px 10px;text-align:center;color:var(--muted)}.empty-state h2{color:var(--ink);margin-bottom:12px}.empty-state .plain-button{margin-top:18px}.page-heading,.book-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.book-actions,.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.book-actions input,.book-actions select,.filter-input{border:0;background:#edf1ed91;padding:8px 12px;border-radius:10px;max-width:240px}.book-actions button,.mode-tabs button{padding:7px 12px;border-radius:10px;font-size:13px}.book-actions button.active,.mode-tabs button.active{background:#d2e8e38c}.mode-tabs{display:flex;gap:8px}.notebook-grid,.grammar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px;align-items:start}.note-card{position:relative;padding:19px 21px;border-radius:15px;background:#e5efe98a;min-width:0}.note-card:nth-child(3n+2){background:#f7edbc55}.note-card:nth-child(3n){background:#d7e3ef55}.note-card .note-top{display:flex;align-items:center;gap:12px}.note-card .word-title{font-size:30px;font-weight:550;cursor:pointer}.note-card .meaning{font-size:16px;margin-top:7px}.note-card .example-ko{font-size:17px;margin-top:14px}.note-card .translation{font-size:14px;margin-top:4px}.note-card .note-actions{display:flex;gap:4px;position:absolute;right:12px;top:12px}.grammar-detail{font-size:14px;line-height:1.9;margin-top:10px}.grammar-detail .formation{font-size:13px;background:#fff6;padding:5px 8px;border-radius:7px;display:inline-block;margin:8px 0}.notebook-toolbar{display:flex;align-items:center;justify-content:space-between;margin:12px 0 20px;gap:12px}.flashcard-shell{width:min(750px,100%);height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:26px auto;border-radius:22px;background:#d2e8e36b;padding:36px;text-align:center;cursor:pointer;overflow:hidden}.flashcard-term{font-size:clamp(28px,4vw,55px);font-weight:500;line-height:1.4;overflow-wrap:anywhere;max-width:100%}.flashcard-meta{font-size:14px;max-height:110px;overflow:auto;margin-top:16px;line-height:1.8}.card-controls{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:16px}.practice-area{max-width:800px;margin:18px auto}.practice-question,.question-prompt{font-size:34px;margin:26px 0 20px}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:18px 0}.choice{padding:20px;text-align:left;border-radius:14px;background:#d2e8e365;min-height:66px;border:1px solid transparent}.choice:hover{background:#d2e8e397}.choice.selected{border-color:#5c8194;background:#b7cde566}.choice.correct{background:#d2e8e3bb}.choice.incorrect{background:#f3e6a877}.practice-input{border:0;border-bottom:2px solid #8dabbb;background:transparent;padding:12px 8px;width:100%;font-size:22px}.answer-feedback{margin:20px 0;padding:16px 0;line-height:1.8;font-size:15px}.question-stack{display:grid;gap:20px}.question-card{padding:19px 21px;background:#e6eeeb60;border-radius:15px}.question-card h3{margin:6px 0 12px}.score-summary{padding:35px 0;font-size:23px}.score-number{font-size:48px}.practice-layout{max-width:950px;margin:auto}.expression-grid,.forms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.expression-card{background:#d2e8e34d;padding:22px;border-radius:15px;min-width:0}.expression-card .expression-word{font-size:26px}.expression-card .expression-stage{padding:15px 0;font-size:23px;line-height:1.5;cursor:pointer}.expression-card small{display:block;margin-top:4px}.form-row{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;gap:20px;border-bottom:1px solid #b7cde54a}.form-row:last-child{border-bottom:0}.form-row strong{font-size:22px;font-weight:500}.form-row p{font-size:13px;max-width:40ch}.sentence-goal{font:27px/1.5 "Segoe Print",cursive;margin:36px 0 24px}.sentence-line{display:flex;flex-wrap:wrap;gap:10px;align-items:center;min-height:90px;padding:15px 6px;border-bottom:2px solid #7897a8;margin:18px 0 24px}.sentence-line.drag-over{background:#d2e8e32e}.word-pool{display:flex;flex-wrap:wrap;gap:13px;min-height:86px;padding:19px 0}.token{padding:12px 19px;background:#d2e8e375;border-radius:11px;font-size:21px;cursor:grab;user-select:none}.token:active{cursor:grabbing}.token.dragging{opacity:.35}.token:focus-visible{outline:2px solid #63859c}.sentence-answer{font-size:22px;margin:12px 0}.sentence-feedback{margin:20px 0;font-size:14px;line-height:1.8}.song-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(230px,.8fr);gap:42px;height:100%;min-height:450px}.song-main{min-width:0;display:flex;flex-direction:column}.song-title{font:27px/1.6 "Segoe Print",cursive;margin-bottom:2px}.song-search{display:flex;gap:8px;align-items:center;margin-bottom:22px}.song-search input{background:transparent;border:0;border-bottom:1px solid #a9c1c9;padding:8px 4px;min-width:0;font-size:13px}.song-search input:first-child{flex:1}.song-search input:nth-child(2){width:140px}.lyric-scroll{overflow:auto;min-height:0;flex:1;padding:15px 14px 75px 0;scroll-behavior:smooth}.lyric-line{padding:17px 4px;color:#718796;transition:color 160ms var(--ease);cursor:pointer;font-size:25px;line-height:1.65}.lyric-line.current{color:#15394c;font-weight:500}.lyric-line.selected{border-radius:8px;background:#d2e8e344}.lyric-line .translation{display:block;font-size:16px;color:#718796;font-weight:400;line-height:1.8}.lyric-line.current .translation{color:#426578}.lyric-word{display:inline;background:transparent;border:0;padding:0;color:inherit;font:inherit;text-decoration-thickness:1px;text-underline-offset:5px}.lyric-word:hover{text-decoration:underline}.song-note{border-left:1px solid #bfd2d854;padding-left:25px;min-width:0;display:flex;flex-direction:column;gap:20px}.song-note h2{font-family:"Noto Sans KR","Malgun Gothic",sans-serif;font-size:30px}.song-note .composer{margin-top:auto;padding:10px 12px}.song-note .composer textarea{font-size:12px}.song-note .note-list{max-height:165px;overflow:auto}.mini-note{padding:10px 0;cursor:pointer;border-bottom:1px solid #cadad84d}.mini-note strong{font-size:17px}.mini-note small{display:block;font-size:12px}.song-note .note-copy{font-size:14px;line-height:1.9}.loop-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:12px 0}.loop-controls button{font-size:12px;padding:5px 9px;border-radius:8px;background:#e3ede85c}.loop-controls button.active{background:#b7cde580}.compact-notice{font-size:11px;color:#536d7d;margin:8px 0}.module-empty{padding:20px 0;color:var(--muted)}.list-select-all{display:flex;align-items:center;gap:8px;font-size:12px}input[type=checkbox]{accent-color:#15394c}
@media(max-width:1450px){.app{grid-template-columns:226px minmax(0,1fr);gap:14px 20px;margin-top:36px;height:calc(100dvh - 54px)}#view{padding:30px 32px}.home-top,.home-notes{gap:32px}.home-top{min-height:200px}.home-hero{padding-right:62px}.hero-sentence{font-size:43px;margin-top:39px}.hero-translation{font-size:23px}.home-screen{gap:22px}.candidate{min-height:62px;padding:11px 15px}.candidate-grammar{min-height:89px}.candidate-word{gap:16px}.candidate-word strong{min-width:65px;font-size:25px}.player{gap:10px}.song-identity{min-width:155px}.player-poem{font-size:15px;padding-left:13px}.player-poem:before{display:none}.song-layout{gap:25px}.lyric-line{font-size:23px}}
@media(max-width:1300px){.app{grid-template-columns:205px minmax(0,1fr);gap:13px 17px;margin-top:28px;height:calc(100dvh - 46px);grid-template-rows:44px minmax(0,1fr)auto}.sidebar{padding:17px 12px 14px}.brand{height:100px;flex-basis:100px}.brand img{width:72px;height:72px}.brand span{left:65px;top:49px;font-size:21px}.brand svg{right:9px;top:52px}#view{padding:26px 28px}.home-top{min-height:185px}.hero-sentence{font-size:36px;margin-top:36px}.hero-sentence .dog-mark{width:25px;height:25px;margin-left:7px}.tomorrow{font-size:12px;right:-3px}.home-hero{padding-right:53px}.home-top,.home-notes{gap:24px}.assistant-copy{font-size:13px}.user-message{font-size:12px;padding:12px 14px}.home-chat{gap:15px}.section-title{gap:9px}.section-title h2{font-size:17px}.candidate-word span{font-size:14px}.candidate-word strong{min-width:55px;font-size:23px}.saved-dot{font-size:10px}.candidate{gap:10px}.candidate-grammar strong{font-size:25px}.candidate-grammar p{font-size:12px}.player{gap:8px;padding:9px 12px}.song-identity{min-width:145px;gap:8px}.cover-art{width:44px;height:44px}.player-poem{font-size:13px;padding:0 2px 0 5px}.player .icon-button{width:31px;height:31px;padding:5px}.player .player-play{width:42px;height:42px}.top-copy{font-size:14px;gap:15px}.nav-item{font-size:14px}.nav-item.child{font-size:13px;padding-left:23px}.sidebar-poem{font-size:16px;padding:14px 9px}.flashcard-shell{height:310px}.song-layout{grid-template-columns:minmax(0,1.35fr) minmax(215px,.8fr);gap:20px}.song-note{padding-left:18px}.lyric-line{font-size:21px}.song-search input:nth-child(2){width:98px}.notebook-grid,.grammar-grid{gap:14px}.note-card{padding:16px}.topbar{padding:0 8px}}
@media(max-width:1000px){.app{grid-template-columns:180px minmax(0,1fr);gap:10px;margin:16px 12px;height:calc(100dvh - 32px)}.sidebar{padding:12px 9px}.brand img{width:65px;height:65px}.brand span{left:56px;top:42px;font-size:20px}.brand{flex-basis:85px}.brand svg{right:0;top:47px}.top-copy{display:none}#view{padding:24px}.home-top,.home-notes{grid-template-columns:1fr;gap:20px}.home-top{min-height:0}.home-hero{padding-right:78px}.hero-sentence{margin-top:24px;font-size:40px}.home-chat{gap:12px}.user-message{margin-bottom:10px}.conversation-scroll{max-height:130px}.home-screen{gap:24px}.player-poem,.player>.time:last-of-type,#previousLine,#nextLine{display:none}.song-identity{min-width:115px;max-width:145px}.song-identity strong{font-size:11px}.song-identity small{font-size:9px}.notebook-grid,.grammar-grid,.expression-grid,.forms-grid{grid-template-columns:1fr}.song-layout{grid-template-columns:1fr;height:auto}.song-note{border-left:0;padding-left:0;border-top:1px solid #cad9db;padding-top:18px}.lyric-scroll{max-height:380px}.page-heading,.book-head{align-items:flex-start;flex-direction:column;gap:12px}.choices{gap:10px}.topbar #breadcrumb{font-size:13px}.nav-item{padding:10px 8px;font-size:13px}.nav-item.child{padding-left:18px;font-size:12px}.sidebar-poem{font-size:15px}}
@media(max-width:650px){.app{grid-template-columns:120px minmax(0,1fr);grid-template-rows:44px minmax(0,1fr)66px;margin:10px 8px;height:calc(100dvh - 20px);gap:8px}.sidebar{border-radius:18px;padding:9px 5px}.brand{margin:0;flex-basis:87px}.brand img{left:6px;width:55px;height:55px}.brand span{left:43px;top:47px;font-size:17px}.brand svg{display:none}.nav-item{font-size:11px;gap:6px;padding:9px 5px}.nav-item.child{padding-left:8px;font-size:10px;gap:4px}.nav-item svg{width:15px;height:15px}.nav-heading{font-size:11px;padding-left:5px;padding-right:4px}.sidebar-poem{display:none}.settings-button{margin-top:16px}.workspace{border-radius:20px}#view{padding:20px 14px}.player{grid-column:1/3;border-radius:17px;gap:6px;padding:8px}.song-identity{min-width:100px}.cover-art{width:37px;height:37px}.hero-sentence{font-size:25px;white-space:normal}.hero-translation{font-size:18px}.home-hero{padding-right:38px}.tomorrow{font-size:9px;max-width:40px}.track-line{font-size:9px}.track-line span{padding:4px 7px}.candidate-word{flex-direction:column;align-items:flex-start;gap:2px}.candidate-word strong{font-size:23px}.candidate .saved-dot{display:none}.candidate{padding:10px;gap:8px}.section-title{flex-wrap:wrap}.notebook-selector{padding:6px 9px}.composer{padding:9px}.composer textarea{font-size:12px}.send-button{width:36px;height:36px}.flashcard-shell{height:300px;padding:22px 16px}.flashcard-term{font-size:29px}.choices{grid-template-columns:1fr}.page-heading h1,.book-head h1{font-size:25px}.song-search{flex-wrap:wrap}.song-search input:nth-child(2){width:90px}.lyric-line{font-size:19px}.sentence-goal{font-size:22px}.token{font-size:17px;padding:10px 14px}.hover-preview{display:none!important}.player-poem{display:none}.demo-badge{font-size:9px}#breadcrumb{gap:7px}#breadcrumb .crumb{max-width:95px}.toast{left:8px;right:8px;transform:none;max-width:none;font-size:12px}}
@media(prefers-reduced-motion:reduce){.brand img{animation:none}.glass:before{transition:none}.feedback-ring{animation:none;opacity:1}.shake{animation:none}.lyric-scroll{scroll-behavior:auto}button,.nav-item,.lyric-line{transition:none}}

/* Project practice and song pages: flat content inside the shared glass shell. */
.page-heading .eyebrow,.song-heading .eyebrow{font-size:11px;letter-spacing:.12em;color:var(--muted);margin-bottom:5px}
.quiet-select{border:0;border-radius:10px;background:#e7ede780;padding:9px 32px 9px 13px;min-width:125px;max-width:220px;cursor:pointer}
.empty-state{padding:65px 20px;text-align:center;display:grid;justify-items:center;gap:15px}
.empty-state .ko{font-size:34px}.empty-mark{font:35px serif;color:#809ba6}.empty-state .quiet-button{padding:8px 15px;background:#d2e8e36e;border-radius:10px;font-size:13px}
.demo-label{font-size:10px;color:var(--muted);line-height:1.6}.small{font-size:11px}
.expression-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(190px,.7fr);gap:35px;align-items:start;margin:30px 0 15px}
.expression-main{min-width:0;background:#d2e8e339;border-radius:20px;padding:23px 27px}
.step-dots{display:flex;align-items:center;justify-content:center;gap:28px;margin:0 0 28px}
.step-dots button{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:5px}
.step-dots button span{display:flex;align-items:center;justify-content:center;border:1px solid #9db6ba77;border-radius:50%;width:23px;height:23px;font-size:10px}
.step-dots button.active{color:var(--ink)}.step-dots button.active span{background:#d2e8e3;border-color:transparent}
.expression-content{min-height:230px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:14px;padding:28px 0;cursor:pointer;min-width:0}
.expression-content .ko{font-size:clamp(30px,3.1vw,47px);line-height:1.5;letter-spacing:-.015em;overflow-wrap:anywhere}
.expression-content .meaning{font:21px/1.7 "Segoe Print",cursive;color:#526f7d;overflow-wrap:anywhere}
.expression-nav{display:flex;gap:19px;align-items:center;justify-content:center;font-size:12px;color:var(--muted);margin-top:16px}
.practice-note{min-width:0;padding:37px 0 0 5px}.practice-note .eyebrow{font-size:11px;letter-spacing:.15em;color:var(--muted)}.practice-note p{font-size:14px;line-height:2;margin:15px 0 25px}
.form-intro{font-size:14px;line-height:1.9;color:var(--muted);max-width:76ch;margin-bottom:22px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px;align-items:start}
.form-grid .form-row{display:block;min-width:0;padding:21px 23px;border:0;background:#d2e8e344;border-radius:15px;cursor:pointer}
.form-grid .form-row:nth-child(3n+2){background:#f3e6a835}.form-grid .form-row:nth-child(3n){background:#b7cde535}
.form-label{font-size:11px;color:var(--muted)}.form-grid .form-row h2{font-size:30px;font-weight:500;margin:8px 0 12px;overflow-wrap:anywhere}.form-grid .form-row p{font-size:13px;line-height:1.9;max-width:none}
.sentence-workspace{max-width:890px;margin:18px auto;outline:none!important;min-width:0}.sentence-workspace .sentence-goal{margin:37px 0 28px;font-size:27px;overflow-wrap:anywhere}
.sentence-workspace .sentence-line{padding:19px 4px 12px;min-height:102px;border-bottom-width:1px;position:relative;gap:11px;margin-bottom:15px;min-width:0}
.sentence-token{font:500 22px/1.4 "Noto Sans KR","Malgun Gothic",sans-serif;background:#d2e8e375;border-radius:11px;padding:12px 19px;cursor:grab;user-select:none;max-width:100%;overflow-wrap:anywhere;touch-action:manipulation;transition:background 140ms var(--ease),transform 120ms var(--ease)}
.sentence-token:hover{background:#d2e8e3a3;transform:translateY(-1px)}.sentence-token:active{cursor:grabbing}.sentence-token.placed{background:#dbe7ef66}.sentence-token.dragging{opacity:.35}.sentence-token.drop-before{box-shadow:-3px 0 0 #7f9aab}
.sentence-line.answered-correct{border-bottom-color:#63a083}.sentence-result{display:block;color:#49866d;font-size:19px;margin:8px 0}.sentence-workspace .sentence-feedback{font-size:14px;line-height:1.9;margin:8px 0;min-height:0}
.sentence-workspace .sentence-reference{font-size:24px;margin:8px 0 6px}.sentence-hint{color:#496674;margin:6px 0}.sentence-actions{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:35px;font-size:12px}.sentence-actions .icon-button{background:#b7cde57d}.word-pool{min-width:0}
.song-heading{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:9px;min-width:0}.song-heading>div{min-width:0}.song-title{font-size:28px;overflow-wrap:anywhere}.song-artist{font:12px/1.6 "Segoe Print",cursive;color:var(--muted)}
.song-heading .song-search{margin:0;flex:0 1 285px;min-width:170px;align-self:flex-start;margin-top:16px}.song-heading .song-search input{width:100%;font-size:12px;max-width:100%}
.song-demo-note{margin:0 0 13px;font-size:10px}.song-search-result{font-size:11px;line-height:1.7;color:#49746b;padding:8px 0 12px}.song-search-result:empty{display:none}
.song-layout{grid-template-columns:minmax(0,1.7fr) minmax(225px,.8fr);gap:36px;height:auto;min-height:0;align-items:start}
.lyrics-column{min-width:0}.lyrics-column .lyrics-scroll{height:clamp(270px,calc(100dvh - 435px),560px);overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;padding:12px 18px 35px 0;min-width:0;overscroll-behavior:contain}
.lyrics-column .lyric-line{font-size:28px;line-height:1.65;letter-spacing:-.018em;padding:18px 1px 21px;color:#86969b;font-weight:400;overflow-wrap:anywhere}
.lyrics-column .lyric-line.current{color:#17394a;font-weight:500}.lyrics-column .lyric-line .ko{max-width:none}.lyric-token{display:inline;font:inherit;color:inherit;border:0;border-radius:0;padding:0;background:transparent;text-decoration-thickness:1px;text-underline-offset:5px}.lyric-token:hover{text-decoration:underline}
.lyric-translation{font:16px/1.8 "Segoe Print",cursive;color:#89979a;margin-top:5px;letter-spacing:0;font-weight:400}.lyric-line.current .lyric-translation{color:#526f7d}
.lyrics-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:9px 0 3px;font-size:11px}.lyrics-tools .quiet-button{padding:6px 8px;border-radius:8px;background:#e7ece760;font-size:11px;white-space:nowrap}.lyrics-tools .quiet-button.active{background:#d2e8e3a3}
.section-select{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.section-select select{border:0;background:#d2e8e347;border-radius:6px;padding:4px;font-size:11px;min-width:32px}
.song-note-column{border-left:1px solid #bfd2d869;padding:18px 0 0 25px;min-width:0;display:flex;flex-direction:column;gap:13px;max-height:calc(clamp(270px,100dvh - 435px,560px) + 55px);overflow-y:auto;overflow-x:hidden}
.song-note-column .song-note{border:0;padding:0;min-width:0;gap:14px}.song-note-tabs{display:flex;gap:15px;font-size:12px}.song-note-tabs button{padding:3px 0;color:var(--muted);border-bottom:1px solid transparent}.song-note-tabs button.active{color:var(--ink);border-bottom-color:#7798a4}
.song-note-body{cursor:pointer;line-height:1.9;min-width:0}.song-note-body h2{font-size:32px;font-weight:500;line-height:1.5;overflow-wrap:anywhere}.song-word-meaning{font:20px/1.7 "Segoe Print",cursive;color:#476878;margin:2px 0 10px}.song-note-body>p:not(.song-word-meaning){font-size:12px;margin-top:10px;overflow-wrap:anywhere}
.song-note-body .formation{font-size:11px;background:#f3e6a837;padding:5px 7px;border-radius:6px}.song-note-body .note{color:var(--muted)}.song-note-body .note-example{font-size:15px!important;color:#536d7d}
.song-note-picks{display:flex;flex-wrap:wrap;gap:6px;max-height:96px;overflow-y:auto;min-width:0}.song-note-picks button{font:12px/1.5 "Noto Sans KR","Malgun Gothic",sans-serif;border-radius:7px;background:#e9ede84d;padding:4px 7px}.song-note-picks button.active{background:#d2e8e3ab}
.song-note-footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.song-note-footer .quiet-button{display:flex;align-items:center;gap:7px;font-size:11px;padding:4px 0}.song-note-footer svg{width:16px;height:16px}
.song-chat-log{max-height:132px;overflow-y:auto;font-size:11px;line-height:1.9;white-space:pre-wrap;flex-shrink:0;overscroll-behavior:contain}.song-chat-log:empty{display:none}.song-chat-log p{padding:8px 0;overflow-wrap:anywhere}.song-chat-log .user{color:#497566;text-align:right}.song-chat-log .assistant{color:var(--muted)}
.song-followup{display:flex;align-items:center;border:1px solid #c9d7de6e;border-radius:13px;background:#ffffffe0;gap:5px;padding:7px 8px;min-width:0;flex-shrink:0;margin-top:auto}.song-followup input{font-size:11px;border:0;background:transparent;min-width:0;flex:1;width:100%;padding:3px}.song-followup .icon-button{width:27px;height:27px;padding:4px;background:#b7cde559}
@media(max-width:1450px){.expression-layout{gap:25px}.expression-content{min-height:205px}.song-layout{gap:28px;grid-template-columns:minmax(0,1.6fr) minmax(215px,.8fr)}.lyrics-column .lyric-line{font-size:25px}.song-note-column{padding-left:21px}.song-heading .song-search{flex-basis:250px}}
@media(max-width:1300px){.expression-layout{gap:20px;grid-template-columns:minmax(0,1.5fr) minmax(175px,.7fr)}.expression-main{padding:20px}.expression-content{min-height:190px}.expression-content .ko{font-size:36px}.expression-content .meaning{font-size:19px}.step-dots{gap:20px}.practice-note{padding-top:30px}.practice-note p{font-size:13px}.form-grid{gap:14px}.form-grid .form-row{padding:18px 20px}.form-grid .form-row h2{font-size:27px}.song-layout{grid-template-columns:minmax(0,1.55fr) minmax(220px,.85fr);gap:22px}.song-heading{gap:20px}.song-heading .song-search{flex-basis:235px;min-width:170px}.song-note-column{padding-left:19px}.song-title{font-size:26px}.lyrics-column .lyric-line{font-size:24px;padding:15px 0 18px}.lyric-translation{font-size:14px}.lyrics-column .lyrics-scroll{height:calc(100dvh - 437px);min-height:250px}.sentence-token{font-size:20px;padding:11px 17px}.sentence-workspace .sentence-goal{font-size:25px}}
@media(max-width:1000px){.expression-layout{grid-template-columns:1fr;gap:15px}.practice-note{padding:8px 3px}.practice-note p{margin:8px 0 10px}.form-grid{grid-template-columns:1fr}.song-heading{align-items:flex-start;flex-direction:column;gap:8px}.song-heading .song-search{align-self:stretch;flex-basis:auto;max-width:none;margin:0}.song-layout{grid-template-columns:1fr;height:auto;gap:20px}.lyrics-column .lyrics-scroll{height:340px;min-height:0}.song-note-column{border-left:0;border-top:1px solid #bfd2d869;padding:20px 0 0;max-height:none;overflow:visible}.song-note-column .song-note{border-top:0;padding:0}.song-note-picks{max-height:85px}.song-chat-log{max-height:170px}.song-followup{max-width:none}.sentence-workspace .sentence-goal{font-size:24px}}
@media(max-width:650px){.expression-main{padding:17px 12px}.step-dots{gap:9px}.step-dots button{gap:4px;font-size:10px}.expression-content .ko{font-size:29px}.expression-content .meaning{font-size:17px}.expression-content{min-height:185px}.form-grid .form-row{padding:18px}.form-grid .form-row h2{font-size:26px}.sentence-workspace .sentence-goal{font-size:22px;margin-top:24px}.sentence-token{font-size:18px;padding:10px 14px}.sentence-actions{font-size:10px;margin-top:20px}.song-title{font-size:24px}.lyrics-column .lyric-line{font-size:20px}.lyric-translation{font-size:13px}.lyrics-tools{gap:7px}.song-heading .song-search{min-width:0}.song-heading .song-search input{font-size:11px}}
@media(prefers-reduced-motion:reduce){.lyrics-column .lyrics-scroll{scroll-behavior:auto}.sentence-token{transition:none}.sentence-token:hover{transform:none}}

.book-page{min-width:0}.book-page .book-body{min-width:0;outline:0}.book-page .eyebrow{display:block;font-size:10px;letter-spacing:.18em;color:var(--muted);margin-bottom:9px}.book-page .book-head h1{margin:0;font-size:29px;font-weight:500}.book-page #book-title{text-align:left;font:inherit;padding:0}.book-page .book-modes{display:flex;gap:7px;flex-wrap:wrap}.book-page .book-modes button{padding:8px 15px;border-radius:11px;font-size:13px}.book-page .book-modes button.active{background:#d2e8e38c}.book-page .book-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:10px 0 22px;flex-wrap:wrap}.book-page .search-field{display:flex;align-items:center;gap:8px;background:#edf1ed70;padding:8px 12px;border-radius:11px;max-width:250px}.book-page .search-field svg{width:17px;height:17px;flex-shrink:0}.book-page .search-field input{min-width:0;width:100%;border:0;background:transparent;font-size:13px;outline:0}.book-page .select-all,.book-page .inline-check{display:inline-flex;align-items:center;gap:7px;font-size:12px}.book-page .book-actions .select-all input{padding:0;max-width:none}.book-page .row{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.book-page .note-select{display:flex;align-items:center;flex-shrink:0;align-self:start;padding-top:6px}.book-page .word-note{display:grid;grid-template-columns:22px minmax(0,1fr) 28px 28px;gap:7px;align-items:start}.book-page .word-note .icon-button,.book-page .note-card-head .icon-button{width:28px;height:28px;padding:5px}.book-page .word-note .note-copy{min-width:0}.book-page .word-line{display:flex;align-items:baseline;gap:19px;flex-wrap:wrap}.book-page .word-line .meaning{margin:0;color:#476574;font-size:15px;overflow-wrap:anywhere}.book-page .word-note .example-ko{font-size:16px;line-height:1.6;margin-top:13px}.book-page .word-note .translation{font-size:12px;line-height:1.7;color:var(--muted)}.book-page .note-card-head{display:flex;align-items:center;gap:9px}.book-page .note-card-head h2{flex:1;min-width:0;font-size:29px;font-weight:500;margin:0}.book-page .grammar-note{line-height:1.8}.book-page .grammar-explanation{font-size:14px;line-height:1.9;margin:15px 0 10px}.book-page .grammar-formation{font-size:12px;line-height:1.8;margin:8px 0}.book-page .grammar-formation span{background:#ffffff8c;border-radius:6px;padding:3px 6px;margin-right:4px}.book-page .grammar-note-text{font-size:12px;line-height:1.8;color:var(--muted);margin-top:12px}.book-page .text-button,.book-page .soft-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;border-radius:10px;padding:9px 14px}.book-page .text-button{background:transparent;padding:9px 0}.book-page .text-button svg,.book-page .soft-button svg{width:17px;height:17px}.book-page .soft-button{background:#d2e8e38c}.book-page .soft-button:hover{background:#d2e8e3c9}.book-page .empty-state .text-button{display:flex;margin:14px auto 0}.book-page .practice-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted);margin:17px 0;flex-wrap:wrap}.book-page .flashcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;width:100%;height:100%;min-height:0;background:transparent;padding:0;text-align:center;overflow:hidden}.book-page .flashcard-meta{font-size:10px;letter-spacing:.17em;color:var(--muted);margin:0;line-height:1.4;flex-shrink:0}.book-page .flashcard-term{display:block;max-width:100%;font-size:clamp(28px,3.8vw,52px);line-height:1.3;min-height:0;overflow:visible;overflow-wrap:anywhere}.book-page .flashcard-example{font-size:17px;line-height:1.6;overflow-wrap:anywhere}.book-page .flashcard .translation{font-size:13px;line-height:1.6}.book-page .flashcard-hint{font-size:11px;color:var(--muted)}.book-page .practice-term,.book-page .grammar-question{font-size:42px;font-weight:500;line-height:1.5;margin:35px 0 28px;overflow-wrap:anywhere}.book-page .grammar-question{font-size:32px}.book-page .choice{font-size:16px}.book-page .choice.answer-correct{background:#d2e8e3c9;border-color:#61a38b5e}.book-page .choice.answer-wrong{background:#f3e6a85c;border-color:#d0b76855}.book-page .answer-form{display:flex;align-items:center;gap:12px;border-bottom:1px solid #7897a8;margin:15px 0 23px;padding:8px 0}.book-page .answer-form input{background:transparent;border:0;flex:1;min-width:0;font-size:20px;padding:9px 4px;outline:0}.book-page .reference-answer{font-size:22px;font-weight:500;margin-bottom:12px}.book-page .round-complete,.book-page .test-setup{max-width:600px;margin:60px auto;text-align:center}.book-page .round-complete h2,.book-page .test-setup h2{font-size:29px;font-weight:500;line-height:1.5;margin:18px 0}.book-page .round-complete p{font-size:13px;color:var(--muted);margin-bottom:20px}.book-page .completion-mark{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:2px solid #70af94;border-radius:50%;color:#418f72}.book-page .completion-mark svg{width:23px;height:23px}.book-page .test-count{display:flex;align-items:center;justify-content:center;gap:14px;margin:28px 0;font-size:13px}.book-page .test-count input{width:74px;border:1px solid #b7cde58c;background:#fff9;border-radius:9px;padding:9px 11px}.book-page .question-heading{display:flex;gap:16px;align-items:center;margin-bottom:13px}.book-page .question-heading>span:first-child{font-size:11px;color:var(--muted)}.book-page .question-heading strong,.book-page .test-term{flex:1;text-align:left;font-size:29px;font-weight:500;line-height:1.5;padding:0;overflow-wrap:anywhere}.book-page .question-heading>span:last-child svg{width:18px;height:18px}.book-page .test-choices{margin:14px 0 3px}.book-page .test-choices .choice{display:flex;align-items:center;gap:12px;padding:13px 16px;min-height:53px;cursor:pointer}.book-page .test-choices input{flex-shrink:0;accent-color:#4d7c91}.book-page .test-input{width:100%;padding:11px 5px;font-size:18px;background:transparent;border:0;border-bottom:1px solid #8dabbb}.book-page .test-submit{display:flex;justify-content:flex-end;margin:23px 0 10px}.book-page .test-result{border:1px solid transparent}.book-page .test-result.is-correct{border-color:#79b2995c}.book-page .test-result.is-wrong{border-color:#d0b76866}.book-page .submitted-answer{font-size:13px;text-decoration:line-through;color:var(--muted);margin:8px 0}.book-page .speak-answer{display:inline-flex;gap:10px;align-items:center;font-size:18px;margin:8px 0 0;padding:0;text-align:left}.book-page .speak-answer svg{width:17px;height:17px}.book-page .score-summary{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.book-page .score-summary .eyebrow{width:100%;margin-bottom:0}.book-page .score-summary h2{font-size:48px;font-weight:500;line-height:1.2;margin:0}.book-page .score-summary h2 span{font-size:22px;color:var(--muted)}.book-page .grammar-practice .answer-feedback .grammar-explanation{font-size:14px}.book-page button:disabled{cursor:default}
@media(max-width:1300px){.book-page .book-head h1{font-size:27px}.book-page .word-line{gap:12px}.book-page .word-note{grid-template-columns:20px minmax(0,1fr) 26px 26px;gap:5px}.book-page .word-line .word-title{font-size:27px}.book-page .word-note .icon-button{width:26px;height:26px}.book-page .word-note .example-ko{font-size:15px}.book-page .flashcard-term{font-size:43px}.book-page .practice-term{font-size:37px}}
@media(max-width:1000px){.book-page .book-toolbar{align-items:flex-start}.book-page .practice-topline .row{gap:12px}.book-page .flashcard-term{font-size:36px}.book-page .practice-term{font-size:32px}.book-page .grammar-question{font-size:27px}.book-page .flashcard-example{font-size:15px}.book-page .question-heading strong,.book-page .test-term{font-size:25px}}
@media(max-width:650px){.book-page .book-head h1{font-size:25px}.book-page .book-modes{gap:4px}.book-page .book-modes button{padding:7px 10px;font-size:11px}.book-page .word-note{grid-template-columns:19px minmax(0,1fr);gap:8px}.book-page .word-note>.icon-button{position:absolute;top:12px;right:12px}.book-page .word-note>.icon-button:last-child{top:44px}.book-page .word-note .note-copy{padding-right:28px}.book-page .word-line{gap:6px}.book-page .word-line .word-title{font-size:26px}.book-page .word-line .meaning{font-size:13px}.book-page .card-controls{gap:7px}.book-page .flashcard-term{font-size:29px}.book-page .flashcard-example{font-size:13px}.book-page .flashcard .translation{font-size:11px}.book-page .practice-term{font-size:29px}.book-page .grammar-question{font-size:25px}.book-page .answer-form input{font-size:17px}.book-page .question-heading{gap:9px}.book-page .test-setup,.book-page .round-complete{margin:35px auto}.book-page .question-heading strong,.book-page .test-term{font-size:23px}}

/* Persistent composer and page-local song controls. */
#globalComposer{grid-column:2;margin:0;padding:13px 18px 12px;background:#ffffffa8;backdrop-filter:blur(18px);border-radius:23px;box-shadow:0 4px 20px #61757908;min-width:0}
#globalComposer .attachment-list{max-height:60px;overflow:auto}
#globalComposer .composer-tools{min-height:44px}
#songAudio,#speechAudio{display:none}
.sidebar-poem .bone-mark{position:absolute;right:12px;bottom:24px;width:28px;height:28px;transform:rotate(15deg)}
.answer-panel{position:absolute;z-index:25;top:14px;right:14px;bottom:14px;width:min(360px,calc(100% - 28px));background:#fffcf5f2;backdrop-filter:blur(18px);border:1px solid #c5d8da70;border-radius:21px;box-shadow:-8px 4px 28px #17394c0d;display:flex;flex-direction:column;padding:15px 17px}
.answer-panel[hidden]{display:none}.answer-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;font-size:14px;font-weight:500;padding-bottom:8px}.answer-head .icon-button{width:28px;height:28px;padding:5px}.answer-messages{overflow:auto;min-height:0;line-height:1.9;font-size:13px;overscroll-behavior:contain}.answer-message{margin:12px 0;padding:0 3px;overflow-wrap:anywhere;white-space:pre-wrap}.answer-message.user{background:#d2e8e36e;border-radius:13px;padding:11px 13px}.answer-message small{display:block;font-size:10px;color:#627a88;margin-bottom:4px}
.workspace:has(.cards-mode) #view{overflow:hidden;padding:26px 32px}.book-page.cards-mode{display:flex;flex-direction:column;height:100%;min-height:0}.cards-mode .book-head{flex-shrink:0;margin-bottom:10px}.cards-mode .book-body{flex:1;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)auto;gap:12px}.book-page.cards-mode .practice-topline{margin:4px 0 0}.book-page.cards-mode .flashcard-shell{height:100%;max-height:350px;min-height:0;margin:0 auto;width:min(780px,100%);padding:24px;align-self:center}.book-page.cards-mode .flashcard{gap:10px}.book-page.cards-mode .flashcard>span{flex-shrink:0}.book-page.cards-mode .flashcard-term{overflow:visible}.book-page.cards-mode .card-controls{margin:0;min-height:38px;gap:22px}.book-page.cards-mode .flashcard.card-condensed .flashcard-example,.book-page.cards-mode .flashcard.card-condensed .translation,.book-page.cards-mode .flashcard.card-condensed .flashcard-hint{display:none}.book-page.cards-mode .flashcard.card-condensed .flashcard-term{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--card-term-lines,3);overflow:hidden}.card-controls [data-card-detail]{width:32px;height:32px}.card-detail{font-size:22px;line-height:1.7;overflow-wrap:anywhere}.card-detail p{margin-top:12px}.card-detail .translation{font-size:16px}
.workspace:has(.song-layout) #view{padding:24px 32px;display:flex;flex-direction:column;overflow:hidden}.song-heading{flex-shrink:0;margin-bottom:9px;align-items:flex-start}.song-title{font-size:30px;line-height:1.35}.song-source{flex-shrink:0;margin-bottom:8px;font-size:11px;overflow-wrap:anywhere}.song-search-result:empty{display:none}.song-search-result{flex-shrink:0;font-size:12px;margin-bottom:9px}.song-layout{flex:1;min-height:0;align-items:stretch}.lyrics-column{display:flex;flex-direction:column;min-height:0}.lyrics-column .lyrics-scroll{flex:1;height:auto;min-height:0;padding:2px 10px 18px 0}.lyrics-column .lyric-line{position:relative;padding:16px 80px 16px 2px;font-size:25px;min-height:70px}.lyric-actions{position:absolute;right:1px;top:21px;display:flex;gap:4px;opacity:0;pointer-events:none;transition:opacity 150ms var(--ease)}.lyric-actions .icon-button{width:31px;height:31px;padding:7px}.lyric-actions svg{width:18px;height:18px}.lyric-original svg{fill:currentColor;stroke-width:1}.lyric-line:hover .lyric-actions,.lyric-line:focus-within .lyric-actions{opacity:1;pointer-events:auto}.lyrics-tools{flex-shrink:0;gap:9px;padding:8px 0;margin-top:0;flex-wrap:wrap}.song-note-column{max-height:none;min-height:0;padding-top:10px}.song-note-empty{font-size:13px;line-height:1.9;padding:14px 0}.song-note-empty .song-selected-text{font-size:25px;line-height:1.5;color:var(--ink);margin-bottom:13px}.song-player{flex-shrink:0;padding-top:12px;margin-top:6px;border-top:1px solid #bfd2d870}.song-audio-state{display:flex;align-items:center;gap:12px;margin-bottom:9px;font-size:11px;flex-wrap:wrap}.song-audio-file{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:9px;background:#d2e8e366;cursor:pointer;font-size:11px}.song-audio-file svg{width:15px;height:15px}.song-audio-state .small{overflow-wrap:anywhere;font-size:11px}.song-player-controls{display:flex;align-items:center;gap:5px;min-width:0}.song-player-controls .icon-button{width:28px;height:28px;padding:5px}.song-player-controls .player-play{width:38px;height:38px;margin:0 2px}.song-player-controls #songSeek{min-width:35px;margin:0 5px}.song-player-controls .time{font-size:10px}.song-player-poem{font:17px/1.4 "Segoe Print",cursive;transform:rotate(-5deg);margin-top:auto;padding-top:24px;color:#62818b}
@media(max-width:1300px){.workspace:has(.song-layout) #view{padding:22px 26px}.song-title{font-size:27px}.song-layout{grid-template-columns:minmax(0,1.5fr) minmax(190px,.8fr);gap:20px}.lyrics-column .lyric-line{font-size:23px}.song-player-controls{gap:3px}}
@media(hover:none){.lyric-actions{opacity:1;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.brand img{animation:none;transform:none}.lyric-actions{transition:none}.shake{animation:none;background:#f3e6a855}.feedback-ring{animation:none;opacity:1}.lyrics-column .lyrics-scroll{scroll-behavior:auto}}

.song-note-column{display:flex;flex-direction:column}.song-player-poem{display:flex;align-items:center;align-self:flex-start;gap:10px;flex-shrink:0;margin-bottom:14px}.song-player-poem .ear-mark{width:27px;height:27px}
.book-page .flashcard{border-radius:16px}

/* The logo follows the pointer only; no continuous decorative movement. */
#moonge{transform-origin:50% 88%;animation:none;will-change:transform}

body.page-hidden #moonge{animation-play-state:paused}
.notebook-selector span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.notebook-selector svg{flex-shrink:0}.notebook-selector svg:last-child{width:12px;height:12px}.notebook-selector[aria-expanded=true]{background:#d2e8e388}
.context-menu.notebook-menu{background:#fffcf5f5;border:1px solid #d0ded870;box-shadow:0 9px 28px #15394c16;min-width:195px;max-width:280px}.notebook-menu button{min-width:0}.notebook-menu button span{flex:1;overflow-wrap:anywhere}.notebook-menu button.selected,.notebook-menu button:focus-visible{background:#d2e8e37d}.notebook-menu button.selected>svg:last-child{width:14px;height:14px;margin-left:10px}.notebook-menu .menu-separator{background:#d2ded870}
.song-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;line-height:1.7;margin:8px 0}.song-status .plain-button{font-size:11px;padding:4px 8px}.song-search-option{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border-radius:10px;background:#d2e8e33d;padding:10px 12px;margin:5px 0;font-size:12px}.song-search-option:hover,.song-search-option:focus-visible{background:#d2e8e378}.song-search-option strong{font-weight:500}.song-search-option small{color:var(--muted)}
.song-transcription-grid{display:grid;grid-template-columns:112px 112px minmax(0,1fr);gap:7px;align-items:start;margin-top:9px}.song-transcription-grid input,.song-transcription-grid textarea{min-width:0;width:100%;border:1px solid #c8d6dc80;background:#fff9;border-radius:8px;padding:8px;font-size:12px}.song-transcription-grid textarea{resize:vertical;min-height:42px}.transcription-time{font-variant-numeric:tabular-nums}
.minute-second-field{display:flex;align-items:center;gap:3px;min-width:0;font-variant-numeric:tabular-nums}.minute-second-field input{width:38px;min-width:0;padding:8px 4px;text-align:center;appearance:textfield}.minute-second-field input:nth-of-type(2){width:50px}.minute-second-field input::-webkit-inner-spin-button,.minute-second-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.minute-second-field span{color:var(--muted);font-size:14px}.field .minute-second-field{margin-top:6px;padding:2px 5px;border:1px solid #c8d6dca1;border-radius:10px;background:#fff9}.field .minute-second-field input{margin:0;border:0;background:transparent}
@media(max-width:650px){.song-transcription-grid{grid-template-columns:1fr 1fr;gap:5px}.song-transcription-grid textarea{grid-column:1/-1}.song-search-option{flex-wrap:wrap}}

.top-copy .top-ear-mark{width:24px;height:24px;overflow:visible;stroke-width:1.4}.top-ear-mark g{transform-box:view-box;animation:ear-flap 5s cubic-bezier(.77,0,.175,1) infinite}.top-ear-left{transform-origin:37.5% 31.25%}.top-ear-mark .top-ear-right{transform-origin:62.5% 31.25%;animation-name:ear-flap-right;animation-delay:-2.5s}@keyframes ear-flap{0%,50%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(7deg)}}@keyframes ear-flap-right{0%,50%,100%{transform:rotate(0)}25%{transform:rotate(12deg)}75%{transform:rotate(-7deg)}}body.page-hidden .top-ear-mark g{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.top-copy .top-ear-mark g{animation:none;transform:none}}

/* Small dog details keep text entry and dragging familiar. */
:root{--paw-cursor:url("assets/paw-cursor.svg") 5 5,auto}
.app,.app *,dialog,dialog *,dialog::backdrop,.context-menu,.context-menu *,.toast,.toast *,.hover-preview,.hover-preview *{cursor:var(--paw-cursor)!important}
.app [draggable=true],.app [draggable=true] *,dialog [draggable=true],dialog [draggable=true] *{cursor:grab!important}
.app [draggable=true]:active,.app [draggable=true]:active *,.app .dragging,.app .dragging *{cursor:grabbing!important}
#sidebarNav [draggable=true]:not(input,textarea,select,[contenteditable=true]),#sidebarNav [draggable=true] :not(input,textarea,select,[contenteditable=true]){cursor:var(--paw-cursor)!important}
.app input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=button]):not([type=submit]),.app textarea,dialog input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=button]):not([type=submit]),dialog textarea,[contenteditable=true]{cursor:text!important}
#moonge{transition:transform 180ms var(--ease);will-change:auto}
.flashcard-shell{position:relative}.book-page .flashcard-hint{position:absolute;right:18px;bottom:12px;font-size:10px;color:#6b8594;opacity:.72;pointer-events:none;text-align:right;max-width:calc(100% - 36px)}
.book-page .choice.is-selected{background:#d2e8e391;border-color:#799e97;box-shadow:inset 0 0 0 1px #799e9740}.book-page .question-card.current-question{outline:1px solid #9abdb080;outline-offset:3px}
.song-import-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.song-import-fields .field{min-width:0}.song-import-fields .wide{grid-column:1/-1}.song-import-preview{width:100%;margin-top:18px}.song-import-options{display:flex;gap:18px;align-items:center;font-size:13px;margin:18px 0 0}.song-import-options label{display:flex;gap:7px;align-items:center}.song-import-progress{font-size:12px;line-height:1.8;min-height:22px;margin-top:12px}
@media(prefers-reduced-motion:reduce){#moonge{transition:none}}@media(max-width:650px){.song-import-fields{grid-template-columns:1fr}.song-import-fields .wide{grid-column:auto}}

.book-page .word-note{grid-template-columns:22px minmax(0,1fr) 28px 28px 28px}.book-page [data-action=extra-toggle][aria-pressed=true]{background:#d2e8e3bb;color:#36755b;border-radius:8px}

/* Compact content, with the established glass containers and palette. */
#view,.workspace:has(.song-layout) #view,.workspace:has(.cards-mode) #view{padding:24px}
h1,.book-page .book-head h1,.page-heading h1{font-size:26px}
.page-heading,.book-head{margin-bottom:18px;gap:16px}
.home-screen{gap:24px;min-height:0}.home-top,.home-notes{gap:24px}.home-top{min-height:170px}
.hero-sentence{font-size:clamp(30px,2.8vw,44px);margin-top:28px}.hero-translation{font-size:22px}
.home-chat{gap:16px}.user-message{margin-bottom:12px;padding:12px 16px}.assistant-copy{font-size:14px}
.candidate{min-height:58px;padding:10px 14px;gap:12px;margin-top:8px}.candidate-word{gap:20px}
.candidate-word strong,.candidate-grammar strong{font-size:24px}.candidate-word span{font-size:15px}
.candidate-grammar{min-height:80px}.candidate-grammar p{margin-top:5px}
.book-page .book-toolbar{margin:8px 0 16px}.notebook-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px}
.grammar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}
.note-card{padding:14px 16px}.book-page .word-line{gap:8px 13px}.book-page .word-line .word-title{font-size:24px}
.book-page .word-note{grid-template-columns:20px minmax(0,1fr) 26px 26px 26px;gap:5px}
.book-page .word-note .example-ko{font-size:15px;margin-top:9px}.book-page .word-note .translation{font-size:12px}
.book-page .note-card-head h2{font-size:24px}.book-page .grammar-explanation{margin:10px 0 7px}
.book-page .grammar-note-text{margin-top:8px}.book-page .eyebrow{margin-bottom:5px}
.book-page.cards-mode .flashcard-shell{width:min(640px,100%);height:100%;max-height:300px;padding:24px}
.book-page .practice-term{font-size:32px;margin:24px 0 20px}.book-page .grammar-question{font-size:27px;margin:24px 0 20px}
.practice-area{margin:14px auto;max-width:720px}.choices{gap:12px;margin:14px 0}.choice{min-height:52px;padding:13px 16px}
.book-page .round-complete,.book-page .test-setup{margin:32px auto}.question-stack{gap:16px}.question-card{padding:16px 18px}
.expression-layout{gap:24px}.expression-main{padding:20px 24px}.step-dots{margin-bottom:18px}
.expression-content{min-height:165px;padding:18px 0;gap:10px}.expression-content .ko{font-size:34px}
.expression-content .meaning{font-size:18px}.practice-note{padding-top:24px}.practice-note p{margin:10px 0 18px}
.form-grid{gap:16px 24px}.form-grid .form-row{padding:16px 18px}.form-grid .form-row h2{font-size:24px;margin:5px 0 8px}
.sentence-workspace{margin:14px auto;max-width:800px}.sentence-workspace .sentence-goal{font-size:24px;margin:22px 0 18px}
.sentence-workspace .sentence-line{min-height:82px;padding:14px 4px 12px;gap:8px}.sentence-token{font-size:19px;padding:10px 15px}
.word-pool{gap:10px;min-height:68px;padding:14px 0}.sentence-actions{margin-top:22px}
.song-layout{gap:24px}.song-title{font-size:26px}.lyrics-column .lyric-line{font-size:22px;padding:11px 76px 11px 2px;min-height:58px}
.lyric-actions{top:12px}.lyric-translation{font-size:14px}.song-note-column{padding-left:20px}.song-note-column .song-note{gap:14px}
.feedback-ring{width:128px;height:128px;border-width:4px;animation-duration:.4s}
.sidebar-poem{text-align:left;border:0;background:transparent;width:100%;font-family:"Segoe Print",cursive;font-size:18px;line-height:1.6}
.group-title{width:100%}.group-notebooks{margin-left:10px;padding-left:3px;border-left:1px solid #bfd2d860}
.group-nav{margin-bottom:5px}
.group-nav.drag-over>.group-title,.project-nav.drag-over>.project-title{background:#d2e8e391;outline:1px dashed #799e97}
.guide-tabs{display:flex;flex-wrap:wrap;gap:5px;border-bottom:1px solid #bfd2d86b;padding-bottom:12px}
.guide-tabs button{font-size:13px;border-radius:9px;padding:8px 12px;min-height:36px}
.guide-tabs button[aria-selected=true]{background:#d2e8e3a6}.guide-tabs button:hover{background:#d2e8e357}
.guide-panel{font-size:14px;line-height:1.9;min-height:170px}.guide-panel ul{padding-left:19px;margin:18px 0 0}
.guide-panel li{margin:9px 0}.guide-panel a{text-decoration:underline;text-underline-offset:3px;color:#416d7c}
.guide-panel code{font-size:12px;overflow-wrap:anywhere}
.combined-layout{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.7fr);gap:24px;align-items:start}
.combined-scope{padding:16px 18px;background:#d2e8e344;border-radius:15px;min-width:0}
.combined-scope-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.combined-scope-head h2{font-size:17px}.combined-scope input[type=checkbox]{width:16px;height:16px;accent-color:#496e66;flex-shrink:0}
.combined-group{margin:12px 0}.combined-notebook{margin:10px 0}.combined-parent,.combined-book{display:flex;align-items:center;gap:9px;padding:6px 0;cursor:pointer;min-height:34px}
.combined-parent span,.combined-book span{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere;font-size:14px}
.combined-parent svg,.combined-book svg{width:16px;height:16px}.combined-group-name{font-weight:550}
.combined-group>.combined-notebook,.combined-books{padding-left:18px}.combined-book small{margin-left:auto;white-space:nowrap;font-size:11px}
.combined-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.combined-modes{display:flex;gap:5px}.combined-modes button,.combined-controls .soft-button{border-radius:10px;padding:9px 12px;font-size:13px;min-height:36px}
.combined-modes button.active,.combined-controls .soft-button{background:#d2e8e38c}.combined-controls .soft-button{display:inline-flex;align-items:center;gap:7px}
.combined-amount{display:flex;align-items:center;gap:8px;font-size:12px;margin-left:auto}
.combined-amount input{width:60px;padding:6px;border:1px solid #b7cde577;border-radius:8px;background:#fff8}
.combined-main{min-width:0}.combined-available{margin:0 0 18px}.combined-main .sentence-workspace{margin-top:8px}
.particle-token{background:#f3e6a85c}.sentence-requirement{font-size:12px;color:var(--muted);margin-top:7px}
.sentence-auxiliary{font-size:12px;color:var(--muted);margin-top:8px}
@media(max-width:1300px){.notebook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{padding-right:70px}.hero-sentence{font-size:34px}.sidebar-poem{font-size:16px}.expression-content .ko{font-size:30px}.song-title{font-size:24px}.lyrics-column .lyric-line{font-size:20px}}
@media(max-width:1000px){.notebook-grid,.grammar-grid{grid-template-columns:1fr}.home-top,.home-notes{gap:18px}.group-notebooks{margin-left:5px}.sidebar-poem{font-size:15px}.book-page .word-line .word-title{font-size:23px}.combined-layout{grid-template-columns:1fr}.combined-scope{max-height:260px;overflow:auto}}
@media(max-width:650px){#view,.workspace:has(.cards-mode) #view,.workspace:has(.song-layout) #view{padding:18px 14px}.sidebar-poem{display:none}.guide-tabs button{padding:7px 9px}.candidate-word{gap:2px}.hero-sentence{font-size:25px}.book-page .word-note{grid-template-columns:19px minmax(0,1fr)}}

/* Compact navigation and semantic card content. */
:root{--body-font:"Noto Sans SC","Noto Sans KR","Microsoft YaHei UI","Microsoft YaHei",sans-serif}
[lang^=zh],.translation,.lyric-translation,.song-word-meaning,.song-title,.song-artist,.sentence-goal,.expression-content .meaning,.candidate-grammar strong,.song-note h2:not([lang=ko]),.song-note-picks button{font-family:var(--body-font)}
.book-page .grammar-note h2{font-family:var(--body-font);font-size:23px;overflow-wrap:anywhere}
.word-form{font-family:var(--body-font);font-size:12px;color:var(--muted);margin:7px 0;line-height:1.7;overflow-wrap:anywhere}
.word-form span[lang=ko]{color:var(--ink);margin-right:6px}
.sidebar-more{display:flex;align-items:center;gap:8px;width:100%;padding:7px 13px;color:var(--muted);font-size:12px;text-align:left;border-radius:9px;min-height:34px}
.sidebar-more:hover,.collection-entry:hover{background:#d2e8e367}.sidebar-more svg{width:18px;height:18px}
.sidebar-collapsed .app{grid-template-columns:76px minmax(0,1fr)}
.sidebar-collapsed .sidebar{padding:14px 10px 12px;overflow:hidden}
.sidebar-collapsed .brand{margin:0;flex-basis:72px;width:100%;min-height:66px}
.sidebar-collapsed .brand img{left:2px;top:5px;width:50px;height:50px}
.sidebar-collapsed .brand>span,.sidebar-collapsed .nav-item>span,.sidebar-collapsed .nav-heading>span{display:none}
.sidebar-collapsed .nav-item{justify-content:center;padding:10px 0;gap:0;min-height:44px}
.sidebar-collapsed .nav-item.child{padding-left:0}.sidebar-collapsed .nav-item svg{width:20px;height:20px}
.sidebar-collapsed .nav-item>svg~svg,.sidebar-collapsed .group-notebooks,.sidebar-collapsed .project-nav>.book-nav,.sidebar-collapsed .project-nav>.child{display:none}
.sidebar-collapsed .nav-heading{justify-content:center;padding:15px 0 4px}
.sidebar-collapsed .sidebar-more{justify-content:center;padding:7px 0;font-size:0;gap:0}
.sidebar-collapsed .sidebar-more span{display:none}.sidebar-collapsed .sidebar-more svg{width:20px;height:20px}
.sidebar-collapsed .sidebar-poem{display:block;transform:none;font-size:0;line-height:0;padding:8px;margin:10px auto 0;min-height:44px;width:44px}
.sidebar-collapsed .sidebar-poem .bone-mark{position:static;width:25px;height:25px}
.sidebar-collapsed .settings-button{align-self:center;margin:5px 0 0}
.sidebar-collapsed .group-nav{margin-bottom:0}.sidebar-collapsed #sidebarNav{padding:0;overflow-x:hidden}
.context-menu{max-height:calc(100dvh - 24px);overflow-y:auto}.context-menu>button>span{overflow-wrap:anywhere}
.collection-browser{min-width:0}.collection-search{width:100%;padding:10px 12px;background:#fff9;border:1px solid #bfd2d899;border-radius:11px;margin-bottom:12px}
.collection-results{max-height:min(440px,55dvh);overflow:auto;display:flex;flex-direction:column;gap:4px}
.collection-entry{display:flex;align-items:center;gap:11px;text-align:left;padding:10px 12px;min-height:44px;border-radius:10px;width:100%}
.collection-entry[hidden]{display:none}.collection-entry>span{min-width:0;overflow-wrap:anywhere}.collection-entry small{margin-left:auto;font-size:11px;white-space:nowrap}
.dialog-actions .danger{background:#f3e6a877;color:var(--ink)}
.home-notes>section:has(.candidate-sentence){grid-column:1/-1}.candidate-sentence{min-width:0}.candidate-sentence strong{display:block;font-size:20px;overflow-wrap:anywhere;font-family:"Noto Sans KR","Malgun Gothic",sans-serif}
.candidate-sentence>span{font-size:14px;color:var(--muted)}
.book-page .sentence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.book-page .sentence-note{min-width:0;padding:17px 18px;background:#d2e8e347;border-radius:16px;overflow-wrap:anywhere}
.book-page .sentence-note h2{font-size:22px;line-height:1.6;min-width:0}.sentence-note .sentence-meaning{font-size:14px;margin:7px 0;color:var(--muted)}
.sentence-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:8px 0}
.sentence-meta>span{border-radius:7px;padding:3px 7px;background:#fff7}.sentence-group-label{grid-column:1/-1;font-size:13px;color:var(--muted);margin:2px 0 -4px}
.grammar-details,.sentence-analysis,.song-note-detail{margin-top:10px;font-size:13px;line-height:1.8}
.grammar-details>summary,.sentence-analysis>summary,.song-note-detail>summary{width:fit-content;cursor:pointer;min-height:32px;color:var(--muted);font-size:12px;padding:5px 0}
.grammar-details>summary,.sentence-analysis>summary,.song-note-detail>summary{list-style:none}.grammar-details>summary::-webkit-details-marker,.sentence-analysis>summary::-webkit-details-marker,.song-note-detail>summary::-webkit-details-marker{display:none}
.grammar-details[open]>summary,.sentence-analysis[open]>summary,.song-note-detail[open]>summary{color:var(--ink)}
.sentence-meaning-zh{font-size:13px;color:var(--muted);margin:5px 0}.flashcard-context{font-size:13px;color:var(--muted)}
.sentence-analysis .sentence-link{display:flex;gap:8px;align-items:baseline;margin:4px 0;padding:5px 8px;background:#fff7;border-radius:7px;font-size:12px;text-align:left;max-width:100%}
.sentence-analysis .sentence-link span{font-family:var(--body-font);color:var(--muted);overflow-wrap:anywhere}
.song-details-button{display:inline-flex;align-items:center;gap:5px;font-size:12px;min-height:32px;color:var(--muted);padding:4px 0}
.song-details-button svg{width:16px;height:16px}
.song-note-tabs{flex-wrap:wrap}.song-sentence-save{margin-left:auto}.song-note-detail .example-ko{font-size:16px}
.revealed-answer,.skipped-answer{font-size:13px;color:var(--muted);margin-top:10px}.revealed-answer .reference-answer{color:var(--ink)}
.combined-modes{flex-wrap:wrap}.combined-controls{gap:10px}
@media(max-width:1000px){.book-page .sentence-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.sidebar-collapsed .app{transition:none}}

/* Scroll feedback overlays content instead of reserving a gutter. */
*{scrollbar-width:none;scrollbar-gutter:auto}::-webkit-scrollbar{width:0;height:0}
.overlay-scrollbar{position:fixed;width:5px;border-radius:8px;background:#7694aca0;z-index:65;opacity:0;pointer-events:none;transition:opacity 150ms ease-out;touch-action:none}
.overlay-scrollbar.visible{opacity:.65;pointer-events:auto;cursor:grab}.overlay-scrollbar:active{cursor:grabbing;opacity:.85}.overlay-scrollbar:focus-visible{outline-offset:3px}
.settings-subtitle{font-size:15px;margin:18px 0 12px}.front-order{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.front-order .active{background:#d2e8e3c4;border-color:#97b7ac88}
.settings-tabs{margin-bottom:18px}.manual-tabs{gap:5px}.api-example{font:12px/1.7 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#d2e8e332;border-radius:10px}
.book-page .choice{position:relative;padding-right:34px}.book-page .choice:disabled{opacity:1}.book-page .choice.answer-correct{background:#f3e6a8ad;border-color:#d6c47a80}.book-page .choice.answer-wrong{background:#b7cde5b3;border-color:#9ab5d780}
.choice-paw{position:absolute;right:10px;bottom:8px;display:flex;color:#406477}.choice-paw svg{width:17px;height:17px;stroke-width:1.2}
.review-label{font-size:11px;border-radius:7px;background:#f3e6a862;padding:2px 6px;display:inline-block;margin:5px 0}.original-note,.source-note{font-size:12px;line-height:1.8;margin-top:8px}.original-note summary,.source-note summary{cursor:pointer;color:var(--muted)}.original-note p,.source-note p{white-space:pre-wrap;margin:6px 0}
.song-import-notes{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);padding:6px 0}.song-import-notes svg{width:16px;height:16px}
.song-import-range{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.song-import-range[hidden]{display:none}
.song-notes-file{display:inline-flex;gap:8px;align-items:center}.song-notes-file svg{width:24px;height:24px}
.song-notes-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.song-notes-candidate{border:1px solid #bfd2d855;background:#fff5;border-radius:12px;padding:12px;min-width:0;font-size:13px}.song-notes-candidate input:not([type=checkbox]),.song-notes-candidate textarea{width:100%;font-size:14px}.song-notes-original{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8}.song-notes-candidate .field{margin-bottom:10px}
@media(max-width:650px){.song-notes-candidates,.song-import-range{grid-template-columns:1fr}}

/* Keep the approved surfaces; spend the space on the material and conversation. */
.app{grid-template-rows:36px minmax(0,1fr)auto;gap:12px 20px;margin:16px 18px 18px;height:calc(100dvh - 34px)}
.sidebar{padding:16px 14px 12px}.brand{height:88px;flex-basis:88px;margin:0 4px 4px}
.nav-item{min-height:40px;padding-top:8px;padding-bottom:8px;margin:2px 0}.nav-heading{padding-top:10px;padding-bottom:4px}
.sidebar-poem{padding-top:12px;padding-bottom:8px}.sidebar-poem .bone-mark{bottom:16px}
.sidebar-collapsed .nav-item{min-height:40px;padding:8px 0}.sidebar-collapsed .nav-heading{padding-top:10px}
.sidebar-collapsed .sidebar-poem .bone-mark{position:static}
.notebook-grid.masonry-layout,.grammar-grid.masonry-layout,.sentence-grid.masonry-layout,.form-grid.masonry-layout,.song-notes-candidates.masonry-layout,.chat-candidate-grid.masonry-layout{display:block;position:relative;min-height:1px}
.masonry-layout>*{position:absolute;margin:0;min-width:0}.masonry-layout>.sentence-group-label{padding:2px 0}
.overlay-scrollbar.visible{cursor:grab!important}.overlay-scrollbar:active{cursor:grabbing!important}
.chat-home{min-height:100%;display:flex;flex-direction:column;gap:16px}
.chat-bubbles{display:flex;flex-direction:column;gap:12px;align-items:flex-start;min-width:0}
.chat-bubble{position:relative;width:fit-content;max-width:min(68ch,90%);padding:12px 16px;border-radius:16px;background:#ffffffa6;font-size:15px;line-height:1.8;overflow-wrap:anywhere;text-align:left}
.chat-bubble.user{align-self:flex-end;background:#d2e8e385;border-bottom-right-radius:5px}
.chat-bubble.assistant{border-bottom-left-radius:5px}.chat-bubble-content{white-space:pre-wrap;min-width:0}
.chat-bubble:focus-visible{outline:2px solid #547b96;outline-offset:3px}.chat-empty{padding:40px 4px 12px;color:var(--muted);font-size:15px;line-height:1.8}
.chat-empty h1{color:var(--ink);font-size:24px;margin-bottom:12px}.chat-status{font-size:12px;line-height:1.8;color:var(--muted)}
.chat-source{font-size:12px;line-height:1.7;white-space:pre-wrap;color:var(--muted);margin-top:8px}
.chat-organize-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;margin:10px 0}
.chat-candidate-grid{min-width:0;margin:12px 0}.chat-candidate-grid .candidate{align-items:flex-start;padding:12px;gap:10px}
.chat-candidate-grid .candidate-text{min-width:0;overflow-wrap:anywhere}.chat-candidate-grid .candidate-word{display:block}
.chat-candidate-grid .candidate-word strong{display:block;min-width:0;font-size:22px}.chat-candidate-grid .candidate-word span{display:block;font-size:14px;margin-top:5px}
.chat-candidate-grid .candidate-grammar strong{font-size:21px;font-family:var(--body-font)}
.continue-prompt{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9;max-width:none}
.song-line-cards{display:flex;flex-direction:column;gap:12px;min-width:0}.song-note-card{padding:12px 14px;background:#d2e8e33b;border-radius:13px;min-width:0;overflow-wrap:anywhere}
.feedback-ring{left:50%;top:50%;margin:-64px 0 0 -64px}
.house-select{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;background:#f6f7f1;border:1px solid #d0ded870;border-radius:12px;padding:8px 12px;max-width:100%;min-height:38px;text-align:left}.house-select span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.house-select svg{width:16px;height:16px}.field .house-select{width:100%}select[data-house-select]{display:none!important}
.home-empty .workspace{grid-column:2;grid-row:2;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.home-empty .workspace:before{display:none}.home-empty .composer{grid-column:2;grid-row:2;align-self:center;justify-self:center;width:min(780px,calc(100% - 48px));margin:90px 0 0;z-index:5}.home-empty .chat-home,.home-empty .chat-bubbles{height:100%}.home-empty .chat-empty{height:100%;display:flex;align-items:center;justify-content:center;padding:0 0 160px}.recent-knowledge{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px;row-gap:3px;text-align:left;max-width:min(650px,100%);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.recent-knowledge strong{font-size:24px;font-weight:550}.recent-knowledge span{font-size:16px;color:var(--muted);max-width:60ch}.song-note-column{padding-top:0;gap:10px}.song-player-poem{margin-top:14px;padding-top:0}
.song-note-group-title{font-size:12px;font-weight:500;color:var(--muted);margin:8px 0 0}.song-current-line{font-size:17px;line-height:1.6}.song-current-translation{font-size:13px;color:var(--muted);margin:4px 0 8px}
.home-empty .chat-empty{width:100%;padding-bottom:200px}
.recent-knowledge .recent-label{font-size:14px}.home-empty .send-button{width:36px;height:36px;border-radius:12px;padding:7px}.home-empty .send-button svg{width:20px;height:20px}
.song-note-card h2{font-size:22px}.song-note-card .song-note-body{font-size:14px;line-height:1.8}.song-note-review{font-size:12px;line-height:1.8;margin-top:8px}

/* Compact study pages; word tables and form branches stay out of masonry. */
#breadcrumb .page-title{margin:0;font:inherit;letter-spacing:inherit}
#breadcrumb .page-title button{font:inherit;padding:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.book-head:has(.book-modes:empty){display:none}
.book-page .word-tables{display:grid;grid-template-columns:repeat(var(--word-table-columns,3),minmax(0,1fr));gap:12px;align-items:start}
.word-table-card{min-width:0;padding:4px 12px;border:1px solid #bfd2d840;border-radius:16px;background:#d2e8e344}
.word-table-card:nth-child(2){background:#f3e6a830}
.word-table-card:nth-child(3){background:#b7cde52b}
.word-table-card table{width:100%;table-layout:fixed;border-collapse:collapse}
.word-table-card th{width:50%;padding:10px 4px;text-align:left;font-size:12px;font-weight:500;color:var(--muted)}
.book-page .word-table-row{display:table-row;cursor:pointer}
.word-table-row td{padding:11px 4px;vertical-align:middle;border-top:1px solid #bfd2d846;overflow-wrap:anywhere}
.book-page .word-table-row .note-select{display:inline-flex;vertical-align:middle;padding:0;margin-right:9px}
.word-table-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);margin:0}
.word-table-row .word-title{font-size:24px;line-height:1.5;font-weight:500;vertical-align:middle}
.word-table-row .meaning{font-size:15px;line-height:1.6;color:#476574;margin:0}
.word-table-row:hover{background:#ffffff59}
.word-table-row:focus-visible{outline-offset:-2px}
.word-tables>.empty-state{grid-column:1/-1}
.practice-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:18px;min-width:0}
.practice-toolbar:empty{display:none}
.expansion-failures{margin-bottom:18px;padding:12px 16px;border-radius:12px;background:#f3e6a830;font-size:13px;line-height:1.8}.expansion-failures ul{padding-left:20px;margin-top:5px}
.expression-layout:has(.expression-chain){display:block;margin:0 auto;max-width:920px}
.expression-chain{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr) minmax(0,1.4fr);gap:22px;align-items:start}
.expression-stage{min-width:0;position:relative}
.expression-stage:not(:last-child):after{content:'→';position:absolute;right:-18px;top:44px;color:#78969e}
.expression-stage-label{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}
.expression-chain .expression-content{min-height:0;align-items:flex-start;justify-content:flex-start;text-align:left;gap:7px;padding:0}
.expression-chain .expression-content .ko{font-size:28px;line-height:1.6}
.expression-chain .expression-content .meaning{font:15px/1.8 var(--body-font,"Segoe UI",sans-serif)}
.expression-layout:has(.expression-chain) .practice-note{margin-top:16px;padding:14px 3px 0;border-top:1px solid #bfd2d866}
.expression-layout:has(.expression-chain) .practice-note p{margin:0 0 9px;font-size:14px;line-height:1.9}
.practice-auxiliary,.sentence-auxiliary{font-size:13px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}
.form-map{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,2fr);gap:38px;align-items:center;min-width:0}
.form-root{position:relative;border-radius:16px;background:#f3e6a842;padding:22px;min-width:0}
.form-root>.ko{font-size:30px;overflow-wrap:anywhere}.form-root>.meaning{font-size:15px;color:var(--muted)}
.form-root .form-intro{font-size:13px;line-height:1.9;margin:13px 0 0}
.form-root:after{content:'';position:absolute;left:100%;top:50%;width:20px;border-top:1px solid #9bbab7}
.form-branches{display:grid;gap:13px;border-left:1px solid #9bbab7;padding-left:18px;min-width:0}
.form-map .form-row{position:relative;display:block;padding:15px 19px;border:0;border-radius:14px;background:#d2e8e344;min-width:0;cursor:pointer}
.form-map .form-row:before{content:'';position:absolute;right:100%;top:50%;width:19px;border-top:1px solid #9bbab7}
.form-map .form-row:nth-child(3n+2){background:#f3e6a830}.form-map .form-row:nth-child(3n){background:#b7cde530}
.form-map .form-row h2{font-size:27px;font-weight:500;margin:4px 0 8px;overflow-wrap:anywhere}
.form-map .form-row p{font-size:13px;line-height:1.9;max-width:none;overflow-wrap:anywhere}
@media(max-width:1000px){.expression-chain{grid-template-columns:1fr;gap:18px}.expression-stage:not(:last-child):after{display:none}.form-map{grid-template-columns:1fr;gap:19px}.form-root:after{left:18px;top:100%;height:20px;width:0;border-top:0;border-left:1px solid #9bbab7}.form-branches{margin-left:18px}.expression-chain .expression-content .ko{font-size:25px}}
.management-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:7px 0;font-size:13px;color:var(--muted)}
.management-toolbar label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.management-toolbar input,.sidebar-select input{accent-color:var(--ink);width:16px;height:16px;margin:0}
.management-toolbar .plain-button{font-size:13px;padding:6px 9px;background:#fffcf580;border-radius:9px}.management-toolbar .plain-button:hover{background:#d2e8e373}
.group-nav,.project-nav,.book-nav{position:relative}.sidebar-select{display:inline-flex;align-items:center;justify-content:center;padding:5px;flex-shrink:0}.management-selecting>.sidebar-select{position:absolute;top:9px;left:0;z-index:1}.management-selecting>.nav-item{margin-left:25px;width:calc(100% - 25px);padding-left:9px}
.collection-row{display:flex;align-items:center;min-width:0}.collection-row>.sidebar-select{position:static}.collection-row>.collection-entry{min-width:0;flex:1}.collection-row[hidden]{display:none}
.house-tooltip{position:fixed;z-index:1500;max-width:min(320px,calc(100vw - 16px));padding:9px 13px;border:1px solid #bfd2d85e;border-radius:12px;background:#fffcf5fa;color:var(--ink);box-shadow:0 6px 22px #15394c17;font-size:13px;line-height:1.6;overflow-wrap:anywhere;pointer-events:none}
.house-tooltip[hidden]{display:none}.context-menu{background:#fffcf5f7;border:1px solid #bfd2d85e;border-radius:15px;box-shadow:0 9px 28px #15394c16}.dialog-note{overflow-wrap:anywhere;white-space:pre-wrap}.toast{overflow-wrap:anywhere}.word-table-row .word-title{font-size:22px}.word-table-row .meaning{font-size:14px}.study-order-status:empty{display:none}
.sidebar-delete-panel{position:fixed;z-index:60;width:230px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;padding:13px 16px;border:1px solid #bfd2d85e;border-radius:15px;background:#fffcf5f7;box-shadow:0 9px 28px #15394c16;color:var(--ink)}.sidebar-delete-panel .management-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0}.sidebar-delete-panel .management-toolbar>span{text-align:right}.sidebar-delete-panel .plain-button{white-space:nowrap;min-width:0}
.stop-all-button{width:36px;height:36px;padding:6px;border:0;background:transparent}.stop-all-button svg{width:24px;height:24px}#stopMediaPreview{margin-top:10px}
@media(max-width:1000px){.top-copy{display:flex;gap:0}.top-copy>span{display:none}}
@media(max-width:1000px){.app{margin:16px 12px;height:calc(100dvh - 32px);gap:12px}.brand{height:88px;flex-basis:88px}.chat-bubble{max-width:96%;font-size:14px}}
@media(max-width:650px){.app{margin:10px 8px;height:calc(100dvh - 20px);gap:8px}.brand{height:80px;flex-basis:80px}.sidebar{padding:12px 6px}.nav-item{min-height:38px}.chat-bubble{padding:10px 12px}}
.brand img,.brand>span{translate:0 -8px}
.nav-item>span:not(.expand-project){min-width:0}
.nav-item>.expand-project{display:flex;align-items:center;justify-content:flex-end;flex:0 0 19px;width:19px;margin-left:auto;overflow:visible}
.expand-project>svg,.group-title>svg:last-child{width:19px;height:19px;flex:0 0 19px}
@media(max-width:1300px){.brand{height:80px;flex-basis:80px}}
@media(max-width:1000px){.brand{height:73px;flex-basis:73px}}
@media(max-width:650px){.brand{height:63px;flex-basis:63px;margin-bottom:4px}}
.sidebar-collapsed .brand{height:59px;flex-basis:59px;min-height:59px;margin:0}
@media(max-width:1000px){.workspace:has(.song-layout) #view{display:block;overflow-y:auto}.song-layout{grid-template-columns:minmax(0,1fr);height:auto}.lyrics-column .lyrics-scroll{flex:none;height:340px}}
.scope-content{max-width:850px;margin:auto}.scope-content-section{margin:12px 0 24px}.scope-content-section h2{font-size:15px;color:var(--muted);margin-bottom:10px}
#breadcrumb .crumb-link{font:inherit;padding:4px 0;border-radius:5px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb-link:hover{color:#547b96}
.sentence-summary{grid-column:1/-1;padding:22px 24px}.sentence-summary>.small{margin:8px 0 14px}.summary-section{margin-top:24px}.summary-section>h3{font-size:18px;margin-bottom:12px}
.summary-subsection{font-size:15px;color:var(--muted);margin:16px 0 8px}
.sentence-term{white-space:pre-wrap}.sentence-reading-mode .book-head{margin-bottom:10px}.sentence-reading-mode .book-toolbar{margin:0 0 10px}.sentence-reading-mode .flashcard-shell{margin-top:12px}
.summary-entry{padding:18px 20px;background:#fff8;border-radius:13px;margin:10px 0;min-width:0;overflow-wrap:anywhere}.summary-entry:nth-of-type(even){background:#eef4ef9e}.summary-term{font-size:23px;line-height:1.65;font-weight:500;margin:0}.summary-entry>.meaning{font-size:15px;margin:3px 0 12px}
.summary-meta,.summary-auxiliary dl,.summary-explanations dl{display:grid;grid-template-columns:minmax(80px,auto) minmax(0,1fr);gap:6px 14px;margin:12px 0;font-size:13px;line-height:1.8}.summary-meta dt,.summary-auxiliary dt,.summary-explanations dt{color:var(--muted)}.summary-meta dd,.summary-auxiliary dd,.summary-explanations dd{margin:0;min-width:0;overflow-wrap:anywhere}.summary-auxiliary small,.summary-explanations small{display:block}
.summary-auxiliary{padding:10px 14px;background:#f8f1d872;border-radius:11px;margin:12px 0}.summary-auxiliary h4,.summary-explanations h4,.summary-dialogue h4{font-size:13px;font-weight:500;margin:8px 0}.summary-details,.summary-sources{font-size:13px;line-height:1.9;margin-top:10px}.summary-details>summary,.summary-sources>summary{cursor:pointer;color:var(--muted);padding:5px 0}.summary-note{font-size:13px;line-height:1.9;margin-top:12px}.summary-sources a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.summary-dialogue>div{padding:9px 12px;background:#d2e8e33d;border-radius:10px;margin:8px 0}.summary-dialogue p{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;font-size:13px}.summary-dialogue .plain-button{padding:3px 5px;font-size:15px}.summary-dialogue small{flex-basis:100%;padding-left:22px}
.summary-study-details,.sentence-reading-details{max-width:800px;margin:18px auto;padding-bottom:18px;text-align:left}.summary-study-details .summary-explanations,.sentence-reading-details .summary-explanations{margin-top:18px}.summary-study-details .summary-meta,.sentence-reading-details .summary-meta{background:transparent;padding:0;border-radius:0}.summary-dialogue{padding:12px 16px;background:#f8f1d872;border:1px solid #bfd2d840;border-radius:13px;margin-top:18px}.summary-dialogue>div{background:transparent;padding:9px 0;border-bottom:1px solid #bfd2d840;border-radius:0}.summary-dialogue>div:last-child{border-bottom:0}.summary-qa-words{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0;color:var(--muted);font-size:13px}.summary-qa-words dt,.summary-qa-words dd{display:inline;margin:0}.summary-qa-words dd{color:var(--ink);margin-left:8px}
.workspace:has(.summary-cards-mode) #view{overflow-y:auto}.book-page.summary-cards-mode{height:auto;min-height:100%}.summary-cards-mode .book-body{display:block}.book-page.summary-cards-mode .flashcard-shell{height:clamp(220px,35vh,300px);margin:16px auto}.summary-cards-mode .summary-study-details{width:min(800px,100%)}
@media(max-width:650px){#breadcrumb .crumb-link{max-width:95px}.sentence-summary{padding:16px 12px}.summary-entry{padding:14px 12px}.summary-term{font-size:20px}.summary-meta,.summary-auxiliary dl,.summary-explanations dl{grid-template-columns:1fr;gap:3px}.summary-meta dd,.summary-auxiliary dd,.summary-explanations dd{margin-bottom:8px}}
.combined-layout.combined-setup{display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:100%;max-width:850px;margin:0 auto;gap:0}.combined-settings-stack{display:grid;padding-right:24px;flex-shrink:0}.combined-setting-card{position:relative;min-width:0;padding:20px 24px;border:1px solid #bfd2d85e;border-radius:20px;background:#fffdf5ed;box-shadow:0 6px 24px #15394c0a;z-index:1}.combined-setting-card+ .combined-setting-card{margin-top:-6px}.combined-setting-card:nth-child(2){margin-left:12px;background:#edf4eeed;z-index:2}.combined-setting-card:nth-child(3){margin-left:24px;background:#faf4deed;z-index:3}
.combined-setting-label{display:flex;align-items:center;gap:12px;margin-bottom:8px;color:var(--muted);font-size:12px}.combined-setting-card h2{font-size:19px;color:var(--ink);margin-bottom:14px}.combined-scope-head h2{margin-bottom:0}.combined-setting-card #combinedScopeAdd{position:absolute;top:18px;right:18px;background:#d2e8e366}.combined-scope-summary{display:flex;flex-wrap:wrap;gap:7px;max-width:calc(100% - 30px);font-size:13px;line-height:1.7;overflow-wrap:anywhere}.combined-scope-summary>span{min-width:0;padding:4px 10px;border-radius:8px;background:#d2e8e344}.combined-selection-count{font-size:12px;color:var(--muted);margin-top:12px}.combined-mode-card .combined-modes{gap:7px;flex-wrap:wrap}.combined-mode-card .combined-modes button{border-radius:10px;padding:9px 12px;font-size:13px;border:1px solid transparent;background:#fff8}.combined-mode-card .combined-modes button.active{border-color:#89aaa65c;background:#d2e8e3aa}
.combined-count-card .combined-amount{display:flex;align-items:center;gap:18px;margin-left:0;font-size:14px}.combined-count-card input{width:76px;border:1px solid #bfd2d887;border-radius:10px;padding:8px 10px;background:#fffcf5}.combined-count-actions{justify-content:space-between;margin:0;gap:12px 20px}.combined-count-card .combined-available{margin:14px 0 0;line-height:1.7;overflow-wrap:anywhere}.combined-count-card #combinedStart{padding:11px 21px;background:#d2e8e3a6;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;flex-shrink:0}.combined-scope-picker input[type=search]{width:100%;margin-bottom:14px;background:#edf1ed70;border:1px solid #bfd2d85e;border-radius:10px;padding:10px 12px}.combined-scope-picker #combinedScopeTree{max-height:min(48vh,420px);overflow-y:auto;padding-right:9px}.combined-scope-picker .combined-group{margin-bottom:16px}.combined-session{display:flex;flex-direction:column;justify-content:center;min-height:100%;max-width:920px;margin:0 auto}.combined-session>div{flex-shrink:0;min-width:0}.combined-session-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-bottom:20px}.combined-session-head button{padding:7px 11px;background:#d2e8e35c;border-radius:9px}.combined-session .expression-layout,.combined-session .sentence-workspace{margin-bottom:0}.app:has(#sidebarNav [data-route=combined].active) #view[data-combined-view=test] .book-page{display:flex;flex-direction:column;justify-content:center;min-height:100%}.app:has(#sidebarNav [data-route=combined].active) #view[data-combined-view=test] .book-body{width:100%;max-width:800px;margin:0 auto}
.grammar-notes-page{max-width:1040px;margin:4px auto;padding:20px 28px 26px 36px;border:1px solid #bfd2d85e;border-radius:18px;background:linear-gradient(#b7cde522 1px,transparent 1px),linear-gradient(90deg,#b7cde522 1px,transparent 1px),#fffdf5cc;background-size:28px 28px;box-shadow:0 7px 25px #15394c06}.grammar-notes-section{margin-bottom:22px;padding-left:20px;border-left:1px solid #9bafb54d}.grammar-notes-section:last-child{margin-bottom:0}.grammar-notes-section>h2{font:500 22px/1.6 "KaiTi","STKaiti",var(--body-font);padding:2px 8px 4px;color:#496d7f;background:linear-gradient(transparent 44%,#d2e8e380 44%,#d2e8e380 87%,transparent 87%);width:fit-content;margin-left:-8px}.grammar-notes-page .grammar-note{background:transparent;box-shadow:none;border-radius:0;padding:14px 0;border-bottom:1px solid #bfd2d850;line-height:1.9}.grammar-notes-page .grammar-note:last-child{border-bottom:0}
.book-page .grammar-note-title{display:block;overflow:visible;max-height:none;font:500 23px/1.7 "KaiTi","STKaiti",var(--body-font);overflow-wrap:anywhere;cursor:pointer}.grammar-note-title:before{color:#658699;font-size:.85em}.grammar-note-core{font-size:15px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;max-height:none;overflow:visible;max-width:none;margin:8px 0 0 20px}.grammar-examples{font-size:13px;line-height:1.9;margin:10px 0 0 20px}.grammar-examples h4{font-weight:500;color:var(--muted)}.grammar-notes-page .grammar-examples .example-ko{font-size:18px;line-height:1.9;margin-top:4px}.grammar-notes-page .grammar-examples .translation{font-size:14px}.grammar-notes-page .grammar-note-text{white-space:pre-wrap;font-size:14px;line-height:1.9}
.grammar-note-content{white-space:pre-wrap;line-height:1.9;overflow-wrap:anywhere}.grammar-note-part h4{font-size:14px;font-weight:500;margin:8px 0 3px;color:var(--muted)}.grammar-note-part p{margin:0;white-space:pre-wrap}.grammar-term,.card-detail p{white-space:pre-wrap}.grammar-book-page .book-toolbar{margin-bottom:10px}.grammar-book-page .book-head{margin-bottom:12px}.grammar-book-page .book-toolbar .plain-button{padding:7px 12px;background:#d2e8e36b;border-radius:9px;white-space:nowrap}.grammar-quiz-notice{font-size:13px;color:var(--muted);line-height:1.8}.grammar-quiz-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.grammar-quiz-auxiliary{font-size:13px;background:#f8f1d872;padding:12px 16px;border-radius:12px;line-height:1.8}.grammar-quiz-auxiliary dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px}.grammar-quiz-auxiliary dd{margin:0}.grammar-quiz-auxiliary small{display:block;color:var(--muted)}
.grammar-note-title.has-source-number:before{content:none}
@font-face{font-family:"LXGW WenKai";src:url("assets/fonts/LXGWWenKai-Regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
.grammar-notes-page,.grammar-notes-page [lang=ko],.grammar-notes-page .translation{font-family:"LXGW WenKai","Noto Sans KR","Microsoft YaHei UI",sans-serif;color:#242323}
.grammar-notes-section>h2,.book-page .grammar-notes-page .grammar-note-title{font-family:inherit}.grammar-notes-section>h2,.grammar-note-part h4,.grammar-examples h4{color:#416c82}.grammar-note-part:nth-child(even)>h4{color:#427366}
.grammar-notes-page .grammar-examples,.grammar-source-supplement{position:relative;padding:13px 18px;margin:16px 0 8px 20px;border:1px solid #e4d69366;border-radius:2px 10px 10px 2px;background:#faf0cbd9;box-shadow:2px 4px 10px #15394c0a;overflow-wrap:anywhere}
.grammar-notes-page .grammar-examples:before,.grammar-source-supplement:before{content:"";position:absolute;left:25px;top:-7px;width:44px;height:14px;background:#b7cde575;transform:rotate(-3deg)}
.grammar-source-section{margin:0 0 22px;padding-left:12px;border-left:1px solid #9bafb54d}.grammar-source-heading{font-size:22px;line-height:1.8;color:#242323;overflow-wrap:anywhere}.grammar-source-heading[data-source-number]:before{content:attr(data-source-number);color:#416c82}.grammar-source-point{padding:6px 0 12px}.grammar-source-body,.grammar-source-subpoint{margin:5px 0 0 22px;white-space:pre-wrap;line-height:1.9;overflow-wrap:anywhere;max-width:none;font-size:17px}.grammar-source-subpoint[data-source-number]:before{content:attr(data-source-number);color:#427366}.grammar-source-table{border-collapse:collapse;margin:12px 0 8px 22px;max-width:calc(100% - 22px);table-layout:fixed;font-size:17px}.grammar-source-table td{border:1px solid #9bafb54d;padding:7px 12px;white-space:pre-wrap;overflow-wrap:anywhere}.grammar-source-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;font-family:"Noto Sans SC","Microsoft YaHei UI",sans-serif;color:var(--ink)}.grammar-source-toolbar button,.grammar-source-toolbar input{font-family:inherit}.grammar-source-page [data-grammar-source]{cursor:default}.grammar-source-page .grammar-note-title:before{content:none}
.grammar-source-toolbar:empty{display:none}.grammar-source-section{margin-bottom:12px}.grammar-notes-page .grammar-source-point{padding:8px 0}.book-page .grammar-notes-page .grammar-source-card-title{font-size:17px;line-height:1.9;font-weight:400}.grammar-source-page .grammar-source-heading[data-source-number]:before{content:attr(data-source-number) "、"}.grammar-source-page .grammar-source-subpoint[data-source-number]:before{content:"（" attr(data-source-number) "）"}.grammar-source-table table{width:100%;border-collapse:collapse;table-layout:fixed}.grammar-source-table th{font-weight:400;color:#427366;border:1px solid #9bafb54d;padding:7px 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.grammar-notes-section{--grammar-marker:#dfede0;--grammar-accent:#416c82}.grammar-notes-section>h2{background:var(--grammar-marker);color:#242323;border-radius:5px;padding:4px 12px;margin-bottom:8px}.grammar-notes-section .grammar-note-title[data-source-number]:before{content:attr(data-source-number) "、";color:var(--grammar-accent)}.grammar-notes-section .grammar-note-part>h4,.grammar-notes-section .grammar-examples>h4,.grammar-notes-section .grammar-source-table th{color:var(--grammar-accent)}.grammar-notes-section .grammar-note-title,.grammar-notes-section .grammar-source-body,.grammar-notes-section .grammar-note-core{color:#242323}.grammar-note-content.numbered-note{white-space:normal}.grammar-note-content .grammar-source-body{font-size:inherit;margin-left:0}.grammar-source-page .grammar-source-subpoint[data-source-number]:before,.grammar-note-content .grammar-source-subpoint[data-source-number]:before{content:"（" attr(data-source-number) "）";color:#416c82}.grammar-notes-page .grammar-bracket{color:#927227}.grammar-notes-page .grammar-eg{color:#416c82}
@media(max-width:650px){.grammar-source-section{padding-left:7px}.grammar-source-heading{font-size:20px}.grammar-source-body,.grammar-source-subpoint{font-size:16px;margin-left:12px}.grammar-source-table{font-size:15px;margin-left:12px;max-width:calc(100% - 12px)}.grammar-source-table td,.grammar-source-table th{padding:6px}.grammar-source-supplement{margin-left:12px;padding:12px}}
.credential-section{border-top:1px solid #cad8d7;margin-top:22px;padding-top:18px}.credential-section h3{margin-bottom:9px}.credential-actions{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0}.credential-section audio{width:100%;margin:8px 0}.credential-section .dialog-note{overflow-wrap:anywhere}
@media(max-width:650px){.combined-settings-stack{padding-right:0}.combined-setting-card{padding:18px 16px 24px}.combined-setting-card:nth-child(n){margin-left:0}.combined-setting-card+ .combined-setting-card{margin-top:10px}.combined-count-actions{align-items:stretch}.combined-count-card .combined-amount{justify-content:space-between;flex:1;gap:8px}.combined-count-card #combinedStart{width:100%}.combined-session-head{margin-bottom:16px}.grammar-notes-page{padding:18px 14px 22px 18px}.grammar-notes-section{padding-left:12px}.grammar-notes-section>h2{font-size:18px}.book-page .grammar-note-title{font-size:20px}.grammar-note-core{font-size:14px}}
