@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--color-red-50:#fef2f2;--color-red-200:#ffcaca;--color-red-700:#bf000f;--color-amber-50:#fffbeb;--color-amber-200:#fee685;--color-amber-700:#b75000;--color-emerald-50:#ecfdf5;--color-emerald-200:#a4f4cf;--color-emerald-700:#007956;--color-slate-50:#f8fafc;--color-slate-200:#e2e8f0;--color-slate-700:#314158;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-50:lab(96.5005% 4.18508 1.52328);--color-red-200:lab(86.017% 19.8815 7.75869);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-amber-50:lab(98.6252% -.635922 8.42309);--color-amber-200:lab(91.7203% -.505269 49.9084);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-emerald-50:lab(97.8462% -6.94966 1.85487);--color-emerald-200:lab(90.2247% -31.039 9.47084);--color-emerald-700:lab(44.4871% -41.0396 11.0361);--color-slate-50:lab(98.1434% -.369519 -1.05966);--color-slate-200:lab(91.7353% -.998765 -4.76968);--color-slate-700:lab(26.9569% -1.47016 -15.6993)}}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.min-h-7{min-height:calc(var(--spacing) * 7)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.items-center{align-items:center}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-amber-200{border-color:var(--color-amber-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-red-200{border-color:var(--color-red-200)}.border-slate-200{border-color:var(--color-slate-200)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-red-50{background-color:var(--color-red-50)}.bg-slate-50{background-color:var(--color-slate-50)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-amber-700{color:var(--color-amber-700)}.text-emerald-700{color:var(--color-emerald-700)}.text-red-700{color:var(--color-red-700)}.text-slate-700{color:var(--color-slate-700)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.driver-active .driver-overlay,.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:.2s ease-in-out animate-fade-in}.driver-fade .driver-popover{animation:.2s animate-fade-in}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,Apple Color Emoji,Helvetica,Arial,sans-serif}.driver-popover-title{zoom:1;margin:0;font:700 19px/1.5 sans-serif;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font:400 14px/1.5 sans-serif}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer button{all:unset;box-sizing:border-box;text-shadow:1px 1px #fff;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font:12px/1.3 sans-serif;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}:not(body):has(>.driver-active-element){overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer button:hover,.driver-popover-footer button:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center{display:none}.driver-popover-arrow-side-left.driver-popover-arrow-align-start,.driver-popover-arrow-side-right.driver-popover-arrow-align-start{top:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-start,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-start{left:15px}.driver-popover-arrow-align-end.driver-popover-arrow-side-left,.driver-popover-arrow-align-end.driver-popover-arrow-side-right{bottom:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-end,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-end{right:15px}.driver-popover-arrow-side-left.driver-popover-arrow-align-center,.driver-popover-arrow-side-right.driver-popover-arrow-align-center{margin-top:-5px;top:50%}.driver-popover-arrow-side-top.driver-popover-arrow-align-center,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-center{margin-left:-5px;left:50%}.driver-popover-arrow-none{display:none}:root{--background:#0b0b0f;--surface:#16161d;--surface-soft:#1e1e27;--text:#ededf2;--text-body:#c7c7d1;--muted:#8a8a99;--line:#24242e;--line-subtle:#2e2e3a;--primary:#7c5cff;--primary-strong:#6a4ae6;--primary-soft:#7c5cff1f;--danger:#f87171;--success:#34d399}*{box-sizing:border-box}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;font-family:inherit}html,body{min-height:100%;margin:0}body{background:var(--background);color:var(--text);font-family:Universal Sans Text,-apple-system,BlinkMacSystemFont,Arial,sans-serif;font-size:14px;line-height:1.43}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{min-height:100vh}.route-progress{z-index:1000;pointer-events:none;opacity:0;width:100%;height:2px;transition:opacity .16s;position:fixed;top:0;left:0}.route-progress-active{opacity:1}.route-progress-bar{transform-origin:0;background:var(--primary);width:100%;height:100%;transition:transform .18s ease-out;transform:scaleX(0)}.topbar{z-index:20;border-bottom:1px solid var(--line);background:var(--surface);position:relative}.topbar-inner{justify-content:space-between;align-items:center;gap:20px;width:min(100%,1280px);margin:0 auto;padding:16px 48px;display:flex}.brand{gap:2px;min-width:0;display:grid}.brand-title{letter-spacing:.12em;color:var(--text);font-family:Universal Sans Display,-apple-system,Arial,sans-serif;font-size:17px;font-weight:500}.brand-subtitle{color:var(--muted);font-size:12px}.nav-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.nav-placeholder{min-height:40px}.nav-skeleton{border:1px solid var(--line);background:var(--surface-soft);border-radius:4px;width:80px;height:40px}.nav-skeleton-primary{background:var(--primary-soft);width:96px}.page{width:min(100%,1440px);margin:0 auto;padding:48px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:4px}.hero-panel{border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-soft);border-radius:0;gap:28px;padding:64px 28px;display:grid}.hero-copy{align-content:center;display:grid}.hero-copy-centered{justify-items:start}.hero-copy-centered .lead{max-width:880px}.hangul-practice{border:1px solid var(--line-subtle);background:var(--surface);border-radius:4px;outline:none;width:min(100%,1240px);margin:0 auto;padding:20px;transition:border-color .33s cubic-bezier(.5,0,0,.75),background-color .33s cubic-bezier(.5,0,0,.75);display:grid}.hangul-practice-focused{border-color:var(--primary)}.hangul-practice-mobile{border:1px solid var(--line-subtle);background:var(--surface);border-radius:4px;padding:24px;display:none}.practice-shell{grid-template-columns:minmax(420px,520px) minmax(440px,1fr);align-items:stretch;gap:20px;display:grid}.practice-main{gap:14px;min-width:0;display:grid}.practice-levels{border:1px solid var(--line);background:var(--surface-soft);border-radius:4px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.practice-level{min-width:0;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;gap:2px;padding:8px;display:grid}.practice-level:hover,.practice-level-active{border-color:var(--primary);background:var(--surface);color:var(--text)}.practice-level span{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.practice-level small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px;line-height:1.25;overflow:hidden}.keyboard-guide{border:1px solid var(--line-subtle);background:var(--surface);border-radius:4px;gap:12px;padding:14px;display:grid}.keyboard-guide-header{justify-content:space-between;align-items:start;gap:10px;display:flex}.keyboard-guide-header h2{margin-bottom:0;font-size:17px}.keyboard-frame{border:1px solid var(--line);background:var(--surface-soft);border-radius:4px;gap:6px;padding:10px;display:grid}.keyboard-row{justify-content:center;gap:5px;display:flex}.keyboard-row-2{padding-left:18px;padding-right:18px}.keyboard-row-3{padding-left:48px;padding-right:48px}.keyboard-key{border:1px solid var(--line-subtle);background:var(--surface);width:38px;min-height:46px;color:var(--text);cursor:pointer;border-radius:4px;align-content:center;gap:4px;padding:5px;transition:background-color .2s,border-color .2s,color .2s;display:grid}.keyboard-key:hover,.keyboard-key-active{border-color:var(--primary);background:var(--primary-soft)}.keyboard-key-wide{width:124px}.keyboard-letter{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:600;line-height:1.1}.keyboard-jamo{color:var(--text);font-size:15px;font-weight:500;line-height:1.2}.keyboard-shift{color:var(--primary);margin-left:2px;font-size:11px;font-weight:500}.practice-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.practice-header h2{margin-bottom:0;font-size:20px}.practice-kicker{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:500}.practice-lesson{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:4px;padding:6px 8px;font-size:12px;font-weight:500}.practice-target{min-height:58px;color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;font-family:Universal Sans Display,-apple-system,Arial,sans-serif;font-size:40px;font-weight:500;line-height:1.15;display:flex}.target-char{color:var(--muted);border-bottom:2px solid #0000;transition:border-color .2s,color .2s}.target-char-active{border-color:var(--primary);color:var(--text)}.target-char-complete{color:var(--primary)}.practice-output{border:1px solid var(--line);background:var(--surface-soft);min-height:56px;color:var(--text);overflow-wrap:anywhere;border-radius:4px;align-items:center;padding:0 16px;font-size:24px;font-weight:500;display:flex}.practice-output-error{color:var(--danger);background:#f871711a;border-color:#f8717166}.key-sequence{flex-wrap:wrap;gap:6px;display:flex}.keycap{border:1px solid var(--line-subtle);background:var(--surface);min-width:30px;height:32px;color:var(--text-body);border-radius:4px;justify-content:center;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:14px;font-weight:600;display:inline-flex}.keycap-active{border-color:var(--primary);background:var(--primary-soft);color:#b6a3ff}.keycap-correct{color:#b6a3ff;background:#7c5cff1a;border-color:#7c5cff4d}.keycap-error{color:var(--danger);background:#f871711f;border-color:#f8717166}.practice-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.practice-stats div{gap:4px;padding:10px;display:grid}.practice-stats div+div{border-left:1px solid var(--line)}.practice-stats span{color:var(--muted);font-size:12px;font-weight:500}.practice-stats strong{color:var(--text);font-size:18px;font-weight:500}.practice-footer{justify-content:space-between;align-items:end;gap:12px;display:flex}.practice-actions{justify-content:flex-end;gap:8px;display:flex}.practice-status{color:var(--muted);text-align:right;white-space:nowrap;margin-bottom:0;font-size:12px;font-weight:500}.practice-status-error{color:var(--danger)}.eyebrow{width:fit-content;color:var(--muted);align-items:center;gap:8px;margin-bottom:16px;font-size:12px;font-weight:500;display:inline-flex}.status-dot{background:var(--success);border-radius:50%;width:7px;height:7px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:normal;color:var(--text);margin-bottom:14px;font-family:Universal Sans Display,-apple-system,Arial,sans-serif;font-size:40px;font-weight:500;line-height:1.2}h2{letter-spacing:normal;margin-bottom:12px;font-family:Universal Sans Display,-apple-system,Arial,sans-serif;font-size:24px;font-weight:500;line-height:1.2}h3{letter-spacing:normal;margin-bottom:8px;font-size:17px;font-weight:500}.lead{max-width:640px;color:var(--text-body);margin-bottom:0;font-size:14px;line-height:1.6}.button{border:1px solid var(--line-subtle);background:var(--surface);min-height:40px;color:var(--text-body);cursor:pointer;text-align:center;white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:500;transition:background-color .33s cubic-bezier(.5,0,0,.75),border-color .33s cubic-bezier(.5,0,0,.75),color .33s cubic-bezier(.5,0,0,.75);display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.4}.button:hover{background:var(--surface-soft);border-color:#3a3a48}.button:disabled:hover{background:var(--surface);border-color:var(--line-subtle)}.button-primary{border-color:var(--primary);background:var(--primary);color:#fff}.button-primary:hover{border-color:var(--primary-strong);background:var(--primary-strong)}.button-primary:disabled:hover{border-color:var(--primary);background:var(--primary)}.button-danger{color:var(--danger);background:#f871711a;border-color:#f8717159}.button-danger:hover{background:#f871712e}.button-danger:disabled:hover{background:#f871711a;border-color:#f8717159}.button-small{min-height:32px;padding:0 12px;font-size:13px}.button-full{width:100%}.stack{gap:16px;display:grid}.card-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.card-list li{border:1px solid var(--line);background:var(--surface-soft);border-radius:4px;padding:16px}.card-list p{color:var(--text-body);margin-bottom:0;font-size:14px;line-height:1.6}.auth-page{background:var(--surface-soft);place-items:center;min-height:calc(100vh - 65px);padding:48px 24px;display:grid}.auth-card{width:min(100%,440px);padding:32px}.form{gap:16px;display:grid}.compact-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end}.field{gap:6px;display:grid}.field label{color:var(--text-body);font-size:13px;font-weight:500}.field input{border:1px solid var(--line-subtle);background:var(--surface);width:100%;min-height:40px;color:var(--text);border-radius:4px;padding:0 12px;transition:border-color .33s cubic-bezier(.5,0,0,.75)}.field input::placeholder{color:#8e8e8e}.field input:focus{border-color:var(--primary);outline:none}.prose{color:var(--text-body);gap:12px;line-height:1.7;display:grid}.prose h2{color:var(--text);margin:8px 0 0;font-size:17px;font-weight:600}.prose h3{color:var(--text);margin:4px 0 0;font-size:14px;font-weight:600}.prose p,.prose ul,.prose table{margin:0;font-size:14px}.prose ul{gap:4px;padding-left:20px;display:grid}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:8px 12px;font-size:14px}.prose th{background:var(--surface-soft);font-weight:600}.field-checkbox{align-items:center;gap:10px;display:flex}.field-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.field-checkbox label{color:var(--text-body);cursor:pointer;font-size:13px;line-height:1.5}.message{border:1px solid var(--line);color:var(--text-body);border-radius:4px;padding:12px 16px;font-size:14px;line-height:1.6}.message-success{color:#6ee7b7;background:#34d39914;border-color:#34d3994d}.message-error{color:var(--danger);background:#f871711a;border-color:#f8717159}.muted{color:var(--muted)}.dashboard-grid{grid-template-columns:280px minmax(0,1fr);gap:18px;display:grid}.sidebar,.content-panel{padding:24px}.admin-tabs{border:1px solid var(--line);background:var(--surface);border-radius:4px;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:6px;display:grid}@media (max-width:1080px){.admin-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}.admin-tab{min-height:40px;color:var(--muted);border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;font-weight:500;display:flex}.admin-tab:hover,.admin-tab-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.meta-table{gap:12px;margin:0;display:grid}.meta-row{gap:3px;display:grid}.meta-row dt{color:var(--muted);font-size:12px;font-weight:500}.meta-row dd{color:var(--text);overflow-wrap:anywhere;margin:0;font-weight:500}.admin-card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.admin-card{border:1px solid var(--line);background:var(--surface);border-radius:4px;align-content:start;gap:10px;padding:20px;display:grid}.admin-card h3{margin:0;font-size:15px;font-weight:600}.admin-card p{color:var(--muted);margin:0;font-size:14px}.admin-card-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.visits-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.admin-studio-link{justify-content:flex-end;padding:8px 16px 0;display:flex}.chart-pc{display:block}.chart-mobile{display:none}@media (max-width:820px){.chart-pc{display:none}.chart-mobile{display:block}}.admin-headbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.admin-headbar-main{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.admin-headbar-title{margin:0;font-size:18px}.admin-chips{flex-wrap:wrap;gap:8px;display:flex}.admin-chip{border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:99px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.admin-chip-label{color:var(--muted);font-size:12px;font-weight:500}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.kpi-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;gap:4px;padding:16px;display:grid}.kpi-value{color:var(--text);font-family:Universal Sans Display,-apple-system,Arial,sans-serif;font-size:24px;font-weight:700;line-height:1.1}.kpi-label{color:var(--muted);font-size:12px;font-weight:500}.todo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.todo-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:4px;padding:20px}.todo-card p{color:var(--text-body);margin-bottom:0;font-size:14px;line-height:1.6}.table-wrap{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:720px;font-size:14px}.visit-table{min-width:1040px}.data-table th,.data-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px 10px}.data-table th{color:var(--muted);font-size:12px;font-weight:500}.mono-cell{color:var(--muted);overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.inline-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline-error{color:var(--danger);font-size:12px}.loading-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite loading-spin}.button-small .loading-spinner{width:12px;height:12px}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (max-width:1100px){.practice-shell{grid-template-columns:1fr}.keyboard-guide{width:100%;max-width:560px;margin:0 auto}.practice-main{width:100%;max-width:640px;margin:0 auto}}@media (max-width:820px){.hero-panel,.dashboard-grid,.todo-grid,.compact-form{grid-template-columns:1fr}h1{font-size:28px}h2{font-size:20px}.topbar-inner{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}.brand-title,.brand-subtitle{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.nav-actions .button,.nav-actions button{width:100%;min-height:40px;padding:0 10px}.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.page{padding:32px 16px}.hero-panel{padding:40px 24px}.hangul-practice-desktop{display:none}.hangul-practice-mobile{gap:10px;display:grid}.practice-target{font-size:34px}.practice-stats{grid-template-columns:1fr}.practice-stats div+div{border-left:none;border-top:1px solid var(--line)}}.stage-card{-webkit-tap-highlight-color:transparent;transition:border-color .2s}.stage-card:hover,.stage-card-vowels:hover,.stage-card-syllables:hover{border-color:#7c5cff!important}.stage-card-kpop:hover{border-color:#a78bfa!important}.choice-btn{-webkit-tap-highlight-color:transparent}.choice-btn:hover:not(:disabled){color:#fff!important;background:#1e1e27!important;border-color:#7c5cff!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
