*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--clr-bg: #f5f7f5;--clr-surface: #ffffff;--clr-surface-alt: #e8ece8;--clr-border: #c5cfc5;--clr-text: #1a2e1a;--clr-text-muted: #5a6e5a;--clr-accent: #44aa02;--clr-accent-hover: #3d9902;--clr-accent-light: rgba(68, 170, 2, .1);--clr-danger: #dc3545;--clr-badge: #e67e00;--radius: 10px;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.6;color:var(--clr-text);background:var(--clr-bg);-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}:root.dark{--clr-bg: #0e1a0e;--clr-surface: #162016;--clr-surface-alt: #243024;--clr-border: #354a35;--clr-text: #e4f0e4;--clr-text-muted: #8faa8f;--clr-accent: #5ecc1e;--clr-accent-hover: #74e038;--clr-accent-light: rgba(94, 204, 30, .1);--clr-danger: #f87171;--clr-badge: #fbbf24}body{min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlay-in .2s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:min(94vw,600px);max-height:85vh;overflow-y:auto;padding:2rem 2.25rem 2.25rem;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:14px;box-shadow:0 20px 60px #00000040;animation:modal-in .25s ease;color:var(--clr-text)}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal__close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;color:var(--clr-text-muted);background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.modal__close:hover{background:var(--clr-surface-alt);border-color:var(--clr-border);color:var(--clr-text)}.modal__title{font-size:1.3rem;font-weight:700;margin-bottom:1.25rem;color:var(--clr-accent)}.modal__body h3{font-size:.95rem;font-weight:600;margin-top:1.25rem;margin-bottom:.4rem;color:var(--clr-text)}.modal__body h3:first-child{margin-top:0}.modal__body p{font-size:.88rem;color:var(--clr-text-muted);line-height:1.65;margin-bottom:.5rem}.modal__body ul,.modal__body ol{margin:.5rem 0 .75rem 1.1rem;font-size:.86rem;color:var(--clr-text-muted);line-height:1.7}.modal__body li{margin-bottom:.3rem}.modal__body li strong{color:var(--clr-text)}.modal__body a{color:var(--clr-accent);text-decoration:none;font-weight:500}.modal__body a:hover{text-decoration:underline}.modal__tip{margin-top:1.25rem;padding:.85rem 1rem;border-radius:8px;background:var(--clr-accent-light);border-left:3px solid var(--clr-accent);font-size:.86rem;color:var(--clr-text-muted);line-height:1.6}.modal__tip strong{color:var(--clr-accent)}.modal::-webkit-scrollbar{width:6px}.modal::-webkit-scrollbar-track{background:transparent}.modal::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:3px}.modal::-webkit-scrollbar-thumb:hover{background:var(--clr-text-muted)}.app{display:flex;flex-direction:column;min-height:100vh;max-width:960px;margin:0 auto;padding:2rem 1.25rem}.app__header{text-align:center;margin-bottom:2rem}.app__brand{display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.app__logo{width:1.2em;height:1.2em;flex-shrink:0;vertical-align:-.16em}.app__title{display:inline-flex;align-items:center;gap:.28em;font-size:2rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--clr-accent),#2d8c00);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.dark .app__title{background:linear-gradient(135deg,var(--clr-accent),#8aee4a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.app__subtitle{color:var(--clr-text-muted);font-size:.95rem;margin-top:.25rem}.app__header-actions{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:.9rem}@media(max-width:700px){.app__logo{width:1.05em;height:1.05em}.app__title{font-size:1.7rem}.app__subtitle{font-size:.88rem}.app__header-actions{margin-top:.75rem}}.app__main{flex:1}.app__toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;padding:.85rem 1rem;background:var(--clr-surface);border-radius:var(--radius);border:1px solid var(--clr-border)}.app__file{font-size:.9rem;color:var(--clr-text-muted)}.app__reset{padding:.4rem .85rem;font-size:.82rem;font-weight:500;color:var(--clr-text);background:var(--clr-surface-alt);border:1px solid var(--clr-border);border-radius:6px;cursor:pointer;transition:background .15s}.app__reset:hover{background:var(--clr-accent)}.app__processing{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:4rem 0;color:var(--clr-text-muted)}.app__estimate{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.app__estimate-badge{display:inline-block;font-size:.82rem;font-weight:600;padding:.2rem .65rem;border-radius:5px;background:var(--clr-accent-light);color:var(--clr-accent)}.app__elapsed{font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--clr-text-muted)}.app__footer{display:none}.theme-toggle,.instructions-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;font-size:1.1rem;font-weight:700;line-height:1;color:var(--clr-text-muted);background:transparent;border:1.5px solid var(--clr-border);border-radius:50%;cursor:pointer;transition:color .2s,border-color .2s,background .2s;flex-shrink:0}.theme-toggle:hover,.instructions-btn:hover{color:var(--clr-accent);border-color:var(--clr-accent);background:var(--clr-accent-light)}.dark .theme-toggle,.dark .instructions-btn{color:var(--clr-text-muted);border-color:var(--clr-border)}.dark .theme-toggle:hover,.dark .instructions-btn:hover{color:var(--clr-accent);border-color:var(--clr-accent);background:var(--clr-accent-light)}.vocab-tip{display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.85rem;color:var(--clr-text-muted);background:var(--clr-accent-light);border:1px solid var(--clr-border);border-left:3px solid var(--clr-accent);border-radius:var(--radius);line-height:1.5}.vocab-tip__icon{font-size:1.1rem;flex-shrink:0;color:var(--clr-accent)}.vocab-tip a{color:var(--clr-accent);font-weight:600;text-decoration:none}.vocab-tip a:hover{text-decoration:underline}.spinner{width:36px;height:36px;border:3px solid var(--clr-surface-alt);border-top-color:var(--clr-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;border:2px dashed var(--clr-border);border-radius:var(--radius);background:var(--clr-surface);transition:border-color .2s,background .2s;cursor:pointer}.dropzone:focus-visible{outline:3px solid var(--clr-accent-light);outline-offset:3px;border-color:var(--clr-accent)}.dropzone--active,.dropzone:hover{border-color:var(--clr-accent);background:var(--clr-accent-light)}.dropzone__inner{display:flex;flex-direction:column;align-items:center;gap:.75rem;pointer-events:none}.dropzone__icon{width:48px;height:48px;color:var(--clr-accent)}.dropzone__label{font-size:.92rem;color:var(--clr-text-muted)}.dropzone__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dropzone__error{margin-top:.75rem;font-size:.85rem;color:var(--clr-danger)}.slider{margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--clr-surface);border-radius:var(--radius);border:1px solid var(--clr-border)}.slider__label{display:block;font-size:.88rem;color:var(--clr-text-muted);margin-bottom:.5rem}.slider__range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--clr-surface-alt);outline:none}.slider__range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--clr-accent);cursor:pointer;border:2px solid var(--clr-bg)}.slider__presets{display:flex;gap:.5rem;margin-top:.65rem;flex-wrap:wrap}.slider__btn{padding:.25rem .7rem;font-size:.78rem;font-weight:500;color:var(--clr-text-muted);background:var(--clr-surface-alt);border:1px solid transparent;border-radius:5px;cursor:pointer;transition:all .15s}.slider__btn:hover{color:var(--clr-text);border-color:var(--clr-accent)}.slider__btn--active{background:var(--clr-accent);color:#fff}.wordlist__heading{font-size:.92rem;font-weight:500;color:var(--clr-text-muted);margin-bottom:.75rem}.wordlist__grid{border:1px solid var(--clr-border);border-radius:var(--radius);overflow:hidden}.wordlist__row{display:grid;grid-template-columns:50px 1fr 110px 55px 130px;align-items:center;padding:.5rem 1rem;font-size:.85rem;border-bottom:1px solid var(--clr-border)}.wordlist__row:last-child{border-bottom:none}.wordlist__row--header{background:var(--clr-surface);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--clr-text-muted)}.wordlist__row--name{opacity:.65}.wordlist__row:not(.wordlist__row--header):hover{background:var(--clr-accent-light)}.wordlist__rank{color:var(--clr-text-muted);font-variant-numeric:tabular-nums}.wordlist__word{font-weight:500;display:flex;align-items:center;gap:.35rem}.wordlist__name-flag{font-size:.72rem}.wordlist__diff{display:flex;align-items:center;gap:.35rem;font-size:.78rem;text-transform:capitalize;color:var(--clr-text-muted)}.wordlist__diff-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.wordlist__occ{font-variant-numeric:tabular-nums;color:var(--clr-text-muted);font-size:.8rem}.wordlist__freq{text-align:right;font-variant-numeric:tabular-nums;color:var(--clr-text-muted)}.wordlist__badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.15rem .45rem;border-radius:4px;background:#fbbf2426;color:var(--clr-badge)}.filters{margin-bottom:1rem;padding:1rem 1.25rem;background:var(--clr-surface);border-radius:var(--radius);border:1px solid var(--clr-border)}.filters__title{font-size:.88rem;font-weight:600;margin-bottom:.75rem;color:var(--clr-text)}.filters__body{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1.25rem;align-items:start}.filters__field{display:flex;flex-direction:column;gap:.3rem}.filters__label{font-size:.78rem;color:var(--clr-text-muted)}.filters__label-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.filters__clear{padding:0;font-size:.76rem;color:var(--clr-accent);background:transparent;border:none;cursor:pointer}.filters__clear:hover{text-decoration:underline}.filters__input,.filters__select{padding:.4rem .6rem;font-size:.82rem;border-radius:5px;border:1px solid var(--clr-border);background:var(--clr-bg);color:var(--clr-text);outline:none}.filters__input:focus,.filters__select:focus{border-color:var(--clr-accent)}.filters__choices{display:flex;flex-wrap:wrap;gap:.45rem}.filters__choice{padding:.32rem .62rem;font-size:.78rem;color:var(--clr-text-muted);background:var(--clr-bg);border:1px solid var(--clr-border);border-radius:999px;cursor:pointer;transition:all .15s}.filters__choice:hover{border-color:var(--clr-accent);color:var(--clr-text)}.filters__choice--active{color:#fff;background:var(--clr-accent);border-color:var(--clr-accent)}.filters__range{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:3px;background:var(--clr-surface-alt);outline:none}.filters__range::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--clr-accent);cursor:pointer;border:2px solid var(--clr-bg)}.filters__checks{display:flex;flex-direction:column;gap:.35rem;grid-column:1 / -1}.filters__check{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--clr-text-muted);cursor:pointer}.filters__check input[type=checkbox]{accent-color:var(--clr-accent)}.export{margin-bottom:1.25rem;padding:.85rem 1.1rem;background:var(--clr-surface);border-radius:var(--radius);border:1px solid var(--clr-border)}.export__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.export__title{font-size:.88rem;font-weight:600;color:var(--clr-text)}.export__actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.export__select{padding:.3rem .5rem;font-size:.78rem;border-radius:5px;border:1px solid var(--clr-border);background:var(--clr-bg);color:var(--clr-text);outline:none}.export__btn{padding:.3rem .7rem;font-size:.78rem;font-weight:500;color:var(--clr-text);background:var(--clr-accent);border:none;border-radius:5px;cursor:pointer;transition:background .15s}.export__btn:hover{background:var(--clr-accent-hover)}.export__btn--ghost{background:transparent;border:1px solid var(--clr-border)}.export__btn--ghost:hover{border-color:var(--clr-accent)}.export__preview{margin-top:.75rem;padding:.75rem;background:var(--clr-bg);border:1px solid var(--clr-border);border-radius:6px;font-size:.78rem;font-family:Fira Code,Cascadia Code,monospace;color:var(--clr-text-muted);max-height:220px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}@media(max-width:700px){.app{padding:1rem .75rem}.wordlist__row{grid-template-columns:36px 1fr 80px 45px 90px;font-size:.78rem;padding:.4rem .5rem}.app__toolbar{flex-direction:column;align-items:flex-start}.filters__body{grid-template-columns:1fr}.export__header{flex-direction:column;align-items:flex-start}}
