:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#f6f3fb;--gradient-bg:linear-gradient(160deg, #efe6fc 0%, #f6f3fb 45%, #e8eefc 100%);--color-surface:#fff;--color-surface-2:#efe9f8;--color-text:#1f1a2e;--color-muted:#625b78;--color-border:#ded5ee;--color-primary:#7c4dcc;--color-primary-hover:#6a3db8;--color-on-primary:#fff;--color-primary-text:#6f40c4;--color-primary-soft:#ebe2fa;--color-focus:#7c4dcc;--color-neutral-fill:#cfc7e0;--color-good:#1f7a4d;--color-good-soft:#e0f3e8;--color-bad:#b8322a;--color-bad-soft:#fae5e2;--color-good-fill:#1f7a4d;--color-good-fill-hover:#1a6b43;--color-bad-fill:#b8322a;--color-bad-fill-hover:#a62c25;--color-on-fill:#fff;--color-overlay:#140c2873;--shadow-soft:0 1px 2px #3c1e6e0f, 0 4px 14px #3c1e6e0f;--shadow-btn:0 1px 3px #3c1e6e2e;--shadow-card:0 2px 10px #3c1e6e1a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-s:10px;--radius-m:16px;--radius-l:24px;--touch:44px;--font:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-heading:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--nav-height:64px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#15111f;--gradient-bg:linear-gradient(160deg, #241a3d 0%, #15111f 50%, #14172b 100%);--color-surface:#211b30;--color-surface-2:#2b2340;--color-text:#f0ecf8;--color-muted:#aaa2c2;--color-border:#3a3150;--color-primary:#7a4fd6;--color-primary-hover:#8655e0;--color-on-primary:#fff;--color-primary-text:#b79cf5;--color-primary-soft:#33284f;--color-focus:#b79cf5;--color-neutral-fill:#4d4468;--color-good:#5ccf93;--color-good-soft:#1b3328;--color-bad:#ff8a80;--color-bad-soft:#3d1f1d;--color-bad-fill:#c63a31;--color-overlay:#0009;--shadow-soft:0 1px 2px #0000004d, 0 4px 14px #00000040;--shadow-btn:0 1px 3px #00000080;--shadow-card:0 2px 12px #0006}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--color-text);background:var(--color-bg);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;letter-spacing:-.005em;-webkit-tap-highlight-color:transparent;margin:0;font-size:17px;line-height:1.4}h1,h2,h3{margin:0 0 var(--space-3);font-family:var(--font-heading);letter-spacing:-.02em;font-weight:700;line-height:1.2}h1{margin-bottom:var(--space-5);font-size:28px}h2{font-size:21px}h3{font-size:17px}p{margin:0 0 var(--space-3)}a{color:var(--color-primary-text)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.app{background:var(--gradient-bg);height:100%;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex}.app-main{padding:var(--space-4) max(var(--space-4), env(safe-area-inset-left)) var(--space-5) max(var(--space-4), env(safe-area-inset-right));flex:1;overflow-y:auto}.page{max-width:760px;margin:0 auto}.nav{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-1) env(safe-area-inset-right) calc(var(--space-1) + env(safe-area-inset-bottom)) env(safe-area-inset-left);justify-content:space-around;display:flex}.nav a{min-height:var(--touch);padding:var(--space-1) 0;color:var(--color-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;text-decoration:none;display:flex}.nav a[aria-current=page]{color:var(--color-primary-text);font-weight:600}.nav svg{width:24px;height:24px}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-2) var(--space-4);border-radius:var(--radius-m);background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;border:1px solid #0000;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s;display:inline-flex}@media (hover:hover){.btn:hover:not(:disabled){background:linear-gradient(180deg, var(--color-primary-hover), var(--color-primary));box-shadow:var(--shadow-btn)}.btn-secondary:hover:not(:disabled){background:linear-gradient(180deg, var(--color-surface), var(--color-primary-soft))}.btn-good:hover:not(:disabled){background:linear-gradient(180deg, var(--color-good-fill), var(--color-good-fill-hover))}.btn-bad:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:linear-gradient(180deg, var(--color-bad-fill), var(--color-bad-fill-hover))}}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-primary-text);border-color:var(--color-border)}.btn-danger,.btn-bad{background:var(--color-bad-fill);color:var(--color-on-fill)}.btn-good{background:var(--color-good-fill);color:var(--color-on-fill)}.btn-icon svg{width:22px;height:22px}.btn-back{min-height:var(--touch);padding:var(--space-1) var(--space-4) var(--space-1) var(--space-2);margin-bottom:var(--space-4);font-weight:500}.btn-back svg{width:20px;height:20px}.btn-big{min-height:56px;padding:var(--space-3) var(--space-5);font-size:18px}.btn-icon{min-width:var(--touch);padding:var(--space-2)}.field{margin-bottom:var(--space-4);flex-direction:column;gap:6px;display:flex}.field>span{color:var(--color-muted);font-size:14px;font-weight:600}.input{min-height:48px;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-m);background:var(--color-surface);box-shadow:var(--shadow-soft);width:100%;font-size:17px;line-height:1.3}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23625b78' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:18px;padding-right:44px}@media (prefers-color-scheme:dark){select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23aaa2c2' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}}.hint{margin:0 0 var(--space-4);color:var(--color-muted);font-size:15px}.hint strong{color:var(--color-text)}.file-picker{align-items:center;gap:var(--space-3);min-height:60px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-soft);display:flex}.file-picker .btn{flex:none}.file-picker .btn svg{width:20px;height:20px}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;overflow:hidden}code{background:var(--color-primary-soft);overflow-wrap:anywhere;border-radius:6px;padding:1px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);padding:var(--space-4);margin-bottom:var(--space-3);box-shadow:var(--shadow-soft)}.list{margin:0 0 var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-soft);padding:0;list-style:none;overflow:hidden}.list>li{align-items:center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-2) var(--space-3);display:flex}.list>li+li{border-top:1px solid var(--color-border)}.list .grow{flex:1;min-width:0}.list a.row-link,.list .row-button{min-width:0;color:inherit;padding:var(--space-1) 0;flex:1;text-decoration:none;display:block}.row-button{border-radius:var(--radius-s);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.muted{color:var(--color-muted)}.small{font-size:14px}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.stack>*+*{margin-top:var(--space-3)}.group-title{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin:var(--space-5) 0 var(--space-2);font-size:14px}.chip{padding:2px var(--space-2);background:var(--color-primary-soft);color:var(--color-text);border-radius:999px;font-size:13px;display:inline-block}.chip-good{background:var(--color-good-soft);color:var(--color-good)}.segmented{gap:var(--space-1);padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-soft);display:flex}.segmented button{border-radius:var(--radius-s);cursor:pointer;background:0 0;border:0;flex:1;min-height:44px;font-size:17px}.segmented button[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary);font-weight:600}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);background:var(--color-primary-soft);margin-bottom:var(--space-3)}.notice-bad{background:var(--color-bad-soft)}.empty{text-align:center;padding:var(--space-6) var(--space-4);color:var(--color-muted)}.empty h1{color:var(--color-text)}.empty img{width:96px;height:96px;margin-bottom:var(--space-3)}dialog{width:min(92vw,520px);max-height:90vh;padding:var(--space-5);border-radius:var(--radius-l);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-card);border:0}dialog::backdrop{background:var(--color-overlay)}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.update-banner{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-on-primary);display:flex}.update-banner .btn{background:var(--color-on-primary);color:var(--color-primary)}.update-banner :focus-visible,.app-error :focus-visible{outline-color:var(--color-on-primary)}.app-error{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-bad-fill);color:var(--color-on-fill);display:flex}.app-error .btn{background:var(--color-on-fill);color:var(--color-bad-fill);flex:none}.error-screen{min-height:100%;padding:var(--space-6) max(var(--space-4), env(safe-area-inset-right)) max(var(--space-6), env(safe-area-inset-bottom)) max(var(--space-4), env(safe-area-inset-left));text-align:center;background:var(--gradient-bg);flex-direction:column;justify-content:center;align-items:center;display:flex}.error-screen p{max-width:440px;color:var(--color-muted)}.learn{gap:var(--space-4);flex-direction:column;max-width:640px;min-height:100%;margin:0 auto;display:flex}.progress-row{align-items:center;gap:var(--space-3);display:flex}.progress-bar{background:var(--color-surface-2);border-radius:999px;flex:1;height:10px;overflow:hidden}.progress-bar>div{background:var(--color-primary);border-radius:999px;height:100%;transition:width .25s}.flip{perspective:1200px;cursor:pointer;flex:1;min-height:280px;max-height:420px;animation:.28s ease-out card-in}.flip-inner{width:100%;height:100%;min-height:inherit;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .45s;position:relative}.flip.is-flipped .flip-inner{transform:rotateY(180deg)}.face{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-l);box-shadow:var(--shadow-card);backface-visibility:hidden;flex-direction:column;display:flex;position:absolute;inset:0}.face-back{background:var(--color-primary-soft);transform:rotateY(180deg)}.face .label{letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted);font-size:13px}.face .word{overflow-wrap:anywhere;font-size:clamp(28px,6vw,42px);font-weight:700}.face .example{color:var(--color-muted);font-size:19px;font-style:italic}.say-row{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.speak{width:var(--touch);height:var(--touch);background:var(--color-surface);color:var(--color-primary-text);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.speak svg{width:24px;height:24px}.speak-small{background:0 0}.speak-small svg{width:18px;height:18px}.answer-buttons{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.stat-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.stat{padding:var(--space-4);border-radius:var(--radius-m);text-align:center}.stat strong{font-size:40px;line-height:1.1;display:block}.stat-good{background:var(--color-good-soft);color:var(--color-good)}.stat-bad{background:var(--color-bad-soft);color:var(--color-bad)}.preview-table{border-collapse:collapse;width:100%;font-size:15px}.preview-table td,.preview-table th{text-align:left;padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border)}.queue-item{flex-wrap:wrap}.queue-error{color:var(--color-bad);display:block}.chip-warn{background:var(--color-bad-soft);color:var(--color-bad)}.review-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.review-row{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-soft);display:flex}.row-uncertain{border-color:var(--color-bad);background:var(--color-bad-soft)}.row-uncertain .input{background:var(--color-surface)}.review-fields{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.review-fields .input{box-shadow:none}.sticker{filter:drop-shadow(0 2px 4px #3c1e6e40);display:block}.sticker-locked{--sticker:var(--color-neutral-fill);filter:none}.sticker-locked .badge{fill:var(--color-neutral-fill);stroke:var(--color-surface)}.sticker-locked .emblem{opacity:.45}.sticker-locked .emblem [fill=\#fff]{fill:var(--color-muted)}.sticker-locked .emblem [stroke=\#fff]{stroke:var(--color-muted)}.sticker-grid{gap:var(--space-3);margin:0 0 var(--space-4);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));padding:0;list-style:none;display:grid}.sticker-grid li{display:flex}.sticker-tile{align-items:center;gap:var(--space-1);width:100%;min-height:160px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-m);background:var(--color-surface);box-shadow:var(--shadow-soft);text-align:center;cursor:pointer;flex-direction:column;display:flex}.sticker-detail{text-align:center;flex-direction:column;align-items:center;display:flex}.unlock{text-align:center}.unlock-list{justify-content:center;gap:var(--space-4);margin:0 0 var(--space-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.unlock-list li{align-items:center;gap:var(--space-1);flex-direction:column;max-width:180px;animation:.6s cubic-bezier(.2,1.4,.4,1) both sticker-in;display:flex}.switch-row{align-items:center;gap:var(--space-3);min-height:var(--touch);color:var(--color-text);font-size:17px;font-weight:400;display:flex}.switch-row input{width:48px;height:28px;accent-color:var(--color-primary);flex:none}@keyframes sticker-in{0%{opacity:0;transform:scale(.3)rotate(-14deg)}70%{opacity:1;transform:scale(1.12)rotate(3deg)}to{transform:scale(1)rotate(0)}}@keyframes card-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}to{opacity:0;transform:translate(-50%,-80%)scale(1)}}.burst{z-index:5;background:var(--color-good-fill);width:84px;height:84px;color:var(--color-on-fill);pointer-events:none;border-radius:50%;justify-content:center;align-items:center;font-size:44px;font-weight:700;animation:.8s ease-out forwards burst;display:flex;position:fixed;top:40%;left:50%}.filters{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filters .input{flex:220px}.filters .segmented{flex:280px}.card h2{margin-bottom:var(--space-3)}.kpi-row{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.kpi{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-soft);flex-direction:column;gap:2px;display:flex}.kpi-flat{box-shadow:none;background:var(--color-primary-soft);border-color:#0000}.kpi strong{font-size:28px;line-height:1.15}.kpi span{color:var(--color-muted);font-size:14px}.stacked{border-radius:999px;gap:2px;height:14px;display:flex;overflow:hidden}.legend{gap:var(--space-2) var(--space-5);margin:var(--space-3) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:var(--space-2);display:flex}.swatch{border-radius:3px;width:12px;height:12px}.chart{margin:0}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart-readout{align-items:baseline;gap:var(--space-2);min-height:28px;font-size:20px;display:flex}.chart-grid{stroke:var(--color-border);stroke-width:1px}.chart-tick,.chart-label{fill:var(--color-muted);font-size:13px}.chart-label-active{fill:var(--color-text);font-weight:600}.chart-value{fill:var(--color-text);font-size:14px;font-weight:600}.chart-hit{fill:#0000;cursor:pointer;outline:none}.chart-hit:focus-visible{stroke:var(--color-focus);stroke-width:2px;rx:6}.rank{margin:0;padding:0;list-style:none}.rank li{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.rank li+li{border-top:1px solid var(--color-border)}.rank .grow{flex:1;min-width:0}.rank-number{background:var(--color-primary-soft);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:600;display:inline-flex}.flip-compact{min-height:200px;max-height:300px}.write-form{gap:var(--space-3);flex-direction:column;display:flex}.write-input{width:100%;min-height:84px;padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-l);background:var(--color-surface);box-shadow:var(--shadow-soft);text-align:center;font-size:32px}.write-input:focus{border-color:var(--color-focus);outline:none}.verdict{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);flex-direction:column;font-size:18px;display:flex}.verdict-good{background:var(--color-good-soft);color:var(--color-good)}.verdict-bad{background:var(--color-bad-soft);color:var(--color-bad)}.verdict-near{background:var(--color-primary-soft)}.diff-row{flex-direction:column;gap:2px;display:flex}.diff{overflow-wrap:anywhere;font-size:28px;font-weight:700}.diff mark{background:var(--color-bad-soft);color:var(--color-bad);border-radius:4px;padding:0 2px;text-decoration:underline}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
