:root{--uk-bg:#fff;--uk-fg:#1b1b1f;--uk-muted:#6b6b76;--uk-surface:#f0f0f5;--uk-border:#d2d2dc;--uk-accent:#3b5bdb;--uk-on-accent:#fff;--uk-ok:#2b8a3e;--uk-bad:#c92a2a;--uk-warn:#e67700}@media (prefers-color-scheme:dark){:root{--uk-bg:#121216;--uk-fg:#ececf1;--uk-muted:#9a9aa8;--uk-surface:#23232b;--uk-border:#3a3a46;--uk-accent:#748ffc;--uk-on-accent:#121216;--uk-ok:#69db7c;--uk-bad:#ff8787;--uk-warn:#ffa94d}}.uk-keyboard,.uk-cloze,.uk-arrange{max-width:480px;color:var(--uk-fg);margin:0 auto}.uk-key-row{justify-content:center;gap:4px;margin-bottom:6px;display:flex}.uk-key{border:1px solid var(--uk-border);background:var(--uk-surface);min-width:30px;min-height:44px;color:var(--uk-fg);border-radius:6px;flex:1;font-size:18px}.uk-key-wide{flex:3}.uk-key-fn{flex:1.5}.uk-key-primary,.uk-btn-primary{background:var(--uk-accent);color:var(--uk-on-accent)}.uk-key:disabled,.uk-btn:disabled,.uk-card:disabled,.uk-chip:disabled,.uk-mic:disabled{opacity:.5}.uk-meaning{margin:8px 0;font-size:20px;font-weight:700}.uk-sentence{margin:8px 0;font-size:20px;line-height:1.6}.uk-sentence-ko{color:var(--uk-muted);margin:4px 0}.uk-blank{letter-spacing:.1em;border-bottom:2px solid var(--uk-accent);padding:0 2px;font-family:ui-monospace,monospace}.uk-blank-correct,.uk-blank-revealed{color:var(--uk-ok);border-color:var(--uk-ok)}.uk-blank-wrong{color:var(--uk-bad);border-color:var(--uk-bad);text-decoration:line-through}.uk-answer{color:var(--uk-ok);margin:0 4px;font-weight:700}.uk-sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.uk-btn{border:1px solid var(--uk-border);background:var(--uk-surface);min-width:44px;min-height:44px;color:var(--uk-fg);border-radius:8px;padding:0 16px;font-size:16px}.uk-arrange ul{background:var(--uk-surface);border-radius:8px;flex-wrap:wrap;gap:8px;min-height:60px;margin:8px 0;padding:8px;list-style:none;display:flex}.uk-answer-line.uk-result-correct{outline:2px solid var(--uk-ok)}.uk-answer-line.uk-result-wrong{outline:2px solid var(--uk-bad)}.uk-card{border:1px solid var(--uk-border);background:var(--uk-bg);min-height:44px;color:var(--uk-fg);border-radius:8px;padding:0 14px;font-size:16px}.uk-correct-order{color:var(--uk-ok);font-weight:700}.uk-speed{gap:6px;display:flex}.uk-chip{border:1px solid var(--uk-border);background:var(--uk-surface);min-width:44px;min-height:44px;color:var(--uk-fg);border-radius:22px}.uk-chip-on{background:var(--uk-accent);color:var(--uk-on-accent)}.uk-progress{background:var(--uk-surface);border-radius:4px;height:8px;overflow:hidden}.uk-progress-fill{background:var(--uk-accent);height:100%}.uk-badge{background:var(--uk-surface);color:var(--uk-fg);border-radius:10px;padding:2px 8px;font-size:12px;display:inline-block}.uk-badge-success{color:var(--uk-ok)}.uk-badge-warn{color:var(--uk-warn)}.uk-pill{background:var(--uk-surface);color:var(--uk-fg);border-radius:14px;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.uk-mic{border:1px solid var(--uk-border);background:var(--uk-surface);min-width:56px;min-height:56px;color:var(--uk-fg);border-radius:28px;font-size:18px}.uk-mic-on{background:var(--uk-bad);color:var(--uk-on-accent)}.m-screen{flex-direction:column;gap:12px;max-width:480px;margin:0 auto;padding:12px 16px 24px;display:flex}.m-screen h2{margin:0;font-size:1.15rem}.m-card{background:#fff;border:1px solid #d0d5dd;border-radius:12px;padding:12px}.m-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.m-tabs{gap:6px;display:flex}.m-muted{color:#475467;margin:0;font-size:.9rem}.m-notice{background:#fff7e0;border:1px solid #f0c36d;border-radius:8px;padding:8px 12px}.m-ok{color:#067647;font-weight:600}.m-bad{color:#b42318;font-weight:600}.m-hit{background:#d1fadf;border-radius:4px;padding:0 2px}.m-miss{background:#fee4e2;border-radius:4px;padding:0 2px;-webkit-text-decoration:underline wavy #b42318;text-decoration:underline wavy #b42318}.m-span{background:#e0eaff;border-radius:4px;padding:0 2px}.m-big{text-align:center;background:#eef4ff;border-radius:16px;padding:24px 8px;font-size:1.6rem;font-weight:700}.m-md p,.m-md ul{margin:4px 0}.m-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.m-input{font:inherit;box-sizing:border-box;border:1px solid #98a2b3;border-radius:8px;width:100%;padding:10px}.m-table{border-collapse:collapse;width:100%;font-size:.9rem}.m-table th,.m-table td{text-align:left;vertical-align:top;border:1px solid #d0d5dd;padding:6px}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{background:var(--uk-bg);color:var(--uk-fg);margin:0;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Noto Sans KR,sans-serif;line-height:1.5}a{color:var(--uk-accent)}.app-shell{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.app-header{padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;border-bottom:1px solid var(--uk-border)}.app-main{flex:1;padding:16px 16px 88px}.app-tabs{background:var(--uk-bg);border-top:1px solid var(--uk-border);max-width:560px;padding-bottom:env(safe-area-inset-bottom);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.app-tab{min-height:48px;color:var(--uk-muted);flex:1;justify-content:center;align-items:center;font-size:15px;text-decoration:none;display:flex}.app-tab-on{color:var(--uk-accent);border-top:3px solid var(--uk-accent);font-weight:700}.app-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:60dvh;padding:16px;display:flex}.app-muted{color:var(--uk-muted)}.app-card{border:1px solid var(--uk-border);background:var(--uk-surface);border-radius:12px;margin:12px 0;padding:14px}.app-card h2,.app-card h3{margin:0 0 6px;font-size:17px}.app-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.app-cta{text-align:center;background:var(--uk-accent);width:100%;min-height:52px;color:var(--uk-on-accent);border:0;border-radius:12px;font-size:18px;font-weight:700;line-height:52px;text-decoration:none;display:block}.app-link-btn{border:1px solid var(--uk-border);background:var(--uk-surface);min-height:44px;color:var(--uk-fg);border-radius:8px;padding:0 16px;line-height:44px;text-decoration:none;display:inline-block}.app-menu{gap:8px;margin:0;padding:0;list-style:none;display:grid}.app-menu a{border:1px solid var(--uk-border);min-height:56px;color:var(--uk-fg);background:var(--uk-surface);border-radius:12px;padding:12px 14px;text-decoration:none;display:block}.app-menu small{color:var(--uk-muted);display:block}.app-feedback-ok{color:var(--uk-ok);font-weight:700}.app-feedback-bad{color:var(--uk-bad);font-weight:700}.app-cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.app-cal-day{border:1px solid var(--uk-border);border-radius:8px;padding:6px 2px;font-size:13px}.app-cal-on{border-color:var(--uk-ok)}.app-dev{z-index:5;background:var(--uk-surface);border:1px solid var(--uk-border);border-radius:8px;padding:6px 10px;font-size:14px;position:fixed;bottom:56px;right:8px}.app-dev input{width:220px;min-height:40px;margin:4px 0;display:block}.app-field{margin:10px 0;display:block}.app-field input,.app-field select,.app-field textarea{border:1px solid var(--uk-border);background:var(--uk-bg);width:100%;min-height:44px;color:var(--uk-fg);border-radius:8px;padding:6px 10px;font-size:16px;display:block}.app-danger{background:var(--uk-bad);color:var(--uk-on-accent)}:focus-visible{outline:3px solid var(--uk-accent);outline-offset:2px}
