*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#4f46e5;--primary-hover:#4338ca;--bg:#f4f6f8;--surface:#fff;--text:#1a1a2e;--muted:#312e81;--border:#ddd;--radius:10px;--header:60px}[data-theme=dark]{--bg:#111;--surface:#1e1e1e;--text:#e0e0e0;--muted:#888;--border:#333}body{background:var(--bg);color:var(--text);padding-top:var(--header);font-family:Segoe UI,Arial,sans-serif}header{height:var(--header);z-index:100;background:#111;align-items:center;gap:20px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.lang-switcher{color:#aaa;cursor:pointer;background:0 0;border:1px solid #333;border-radius:6px;outline:none;padding:4px 6px;font-size:.8rem}.lang-switcher:hover{color:#fff;border-color:#555}.theme-toggle{cursor:pointer;align-items:center;margin-left:auto;display:flex}.theme-toggle input{display:none}.theme-track{background:#222;border-radius:11px;width:38px;height:22px;transition:background .3s;position:relative}.theme-thumb{background:#555;border-radius:50%;width:16px;height:16px;transition:transform .3s;position:absolute;top:3px;left:3px}.theme-toggle input:checked+.theme-track{background:#312e81}.theme-toggle input:checked+.theme-track .theme-thumb{transform:translate(16px)}.page-avatar{object-fit:cover;z-index:50;border-radius:50%;width:42px;height:42px;animation:10s ease-in-out infinite avatar-vanish;position:fixed;bottom:16px;left:16px;-webkit-mask-image:radial-gradient(circle,#000 45%,#0000 72%);mask-image:radial-gradient(circle,#000 45%,#0000 72%)}@keyframes avatar-vanish{0%,50%{clip-path:inset(0% 0 round 50%)}67%{clip-path:inset(0% 0 100% round 50%)}68%{clip-path:inset(100% 0 0% round 50%)}85%{clip-path:inset(0% 0 round 50%)}to{clip-path:inset(0% 0 round 50%)}}.avatar-menu{cursor:pointer;flex-shrink:0;position:relative}.header-avatar{object-fit:cover;border-radius:50%;width:36px;height:36px;display:block}.avatar-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:200;min-width:120px;display:none;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 4px 16px #00000026}.avatar-menu.open .avatar-dropdown{display:block}.avatar-dropdown button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;padding:10px 16px;font-size:.9rem}.avatar-dropdown button:hover{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.header-title{letter-spacing:.05em;background:linear-gradient(90deg,#ff0080,#ff8c00,#ffe600,#00ff80,#00e5ff,#bf00ff,#ff0080) 0 0/300% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.2rem;font-weight:800;animation:4s linear infinite wave-colors;position:absolute;left:50%;transform:translate(-50%)}@keyframes wave-colors{0%{background-position:0 0}to{background-position:300% 0}}header a{color:#fff;border-radius:6px;padding:5px 10px;font-size:.95rem;text-decoration:none;transition:background .15s}header a:hover{background:#ffffff14}header a.active{background:#ffffff26}#app{height:calc(100vh - var(--header));justify-content:center;padding:24px 20px;display:flex;overflow:hidden}.page{flex-direction:column;gap:20px;width:fit-content;max-width:100%;height:100%;display:flex}.page--scroll{height:auto;min-height:100%;overflow-y:auto}h1{font-size:2rem}.muted{color:var(--muted);font-size:.9rem}#results{flex:1;width:0;min-width:100%;overflow-y:auto}.input-stack{flex-direction:column;flex-shrink:0;gap:8px;width:fit-content;max-width:100%;display:flex}.input-row{gap:8px;width:100%;display:flex}input{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);outline:none;padding:12px 16px;font-size:1rem;transition:border-color .2s}input:focus{border-color:var(--primary)}button{color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:#312e81;border:2px solid #0000;flex-shrink:0;padding:12px 24px;font-size:1rem;transition:background .2s}button:hover{background:#1e1b6e}.card{background:var(--surface);border-radius:14px;flex-direction:column;gap:12px;width:100%;padding:24px;display:flex;box-shadow:0 2px 12px #00000014}.card h2{text-transform:capitalize;font-size:1.5rem}.word-langs{opacity:.6;margin:-8px 0 8px;font-size:.85rem}.word-detail-wrap{flex-direction:column;flex:1;gap:20px;width:min(600px,100%);margin:0 auto;display:flex;overflow-y:auto}.word-detail-bar{align-items:center;gap:8px;display:flex}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.7rem}.card ul{list-style:none}.card ul li{border-bottom:1px solid var(--border);padding:6px 0;font-size:.95rem;line-height:1.5}.card ul li:last-child{border-bottom:none}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:color-mix(in srgb, var(--primary) 15%, var(--surface));color:var(--primary);border-radius:20px;padding:4px 12px;font-size:.85rem}.message{color:var(--muted);font-size:.95rem}select{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;outline:none;padding:12px 10px;font-size:.9rem}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.ss-wrap{position:relative}.ss-input{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;outline:none;width:100%;min-width:210px;padding:12px 10px;font-size:.9rem}.ss-input:focus{border-color:var(--primary);cursor:text}.ss-list{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);z-index:200;width:clamp(100%,600px,100vw - 40px);max-height:240px;display:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.ss-list.ss-open{display:block}.ss-option{cursor:pointer;white-space:nowrap;padding:7px 12px;font-size:.9rem}.ss-option:hover,.ss-option.ss-hi{background:color-mix(in srgb, var(--primary) 12%, var(--surface));color:var(--primary)}.ss-option.ss-sel{font-weight:600}.words-controls{width:fit-content;max-width:100%}.words-controls .input-row{align-items:flex-end}.word-list{flex-direction:column;gap:2px;width:0;min-width:100%;display:flex}.word-row{background:var(--surface);border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font-size:.95rem;display:flex}.word-row:hover{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.word-check{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.selection-bar{flex-shrink:0;align-items:center;gap:16px;width:0;min-width:100%;display:flex}.selection-bar a{color:var(--primary);white-space:nowrap;font-size:.9rem;text-decoration:none}.selection-bar a:hover{text-decoration:underline}.selection-bar button{padding:8px 16px}.word-row.locked{opacity:.45;cursor:default}.word-row.locked:hover{background:var(--surface)}.sub-banner{border-radius:var(--radius);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;width:0;min-width:100%;padding:12px 16px;font-size:.9rem;display:flex}.sub-banner--active{background:color-mix(in srgb, var(--primary) 6%, var(--surface));border:1px solid color-mix(in srgb, var(--primary) 25%, transparent)}.sub-banner--free{background:color-mix(in srgb, var(--primary) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--primary) 35%, transparent);flex-direction:column;align-items:flex-start}.sub-banner-top{align-items:center;gap:12px;width:100%;display:flex}.sub-banner button{flex-shrink:0;padding:8px 16px}.sub-banner--info{border:1px solid var(--border);color:var(--muted);background:0 0;justify-content:center;padding:6px 16px;font-size:.82rem}.sub-banner-note{color:var(--muted);font-size:.82rem}.btn-danger-outline{color:#c0392b;cursor:pointer;border-radius:var(--radius);background:0 0;border:1px solid #c0392b}.btn-danger-outline:hover{background:#c0392b1a}.upgrade-banner{background:color-mix(in srgb, var(--primary) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--primary) 35%, transparent);border-radius:var(--radius);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;width:0;min-width:100%;padding:12px 16px;display:flex}.upgrade-banner p{font-size:.9rem}.upgrade-banner button{flex-shrink:0;padding:8px 16px}.word-text{flex:1}.word-date{color:var(--muted);font-size:.85rem}.word-meta{color:var(--muted);font-size:.8rem;font-weight:400}.modal-overlay{z-index:1000;opacity:0;background:#00000080;justify-content:center;align-items:center;padding:20px;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal-overlay.modal-visible{opacity:1}.modal-card{background:var(--surface);border-radius:18px;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:360px;padding:32px 28px;transition:transform .25s cubic-bezier(.34,1.56,.64,1);display:flex;transform:scale(.9)translateY(12px);box-shadow:0 20px 60px #00000040}.modal-overlay.modal-visible .modal-card{transform:scale(1)translateY(0)}.modal-icon{font-size:2.2rem;line-height:1}.modal-title{color:var(--text);text-align:center;font-size:1.15rem;font-weight:700}.modal-message{color:var(--muted);text-align:center;font-size:.9rem;line-height:1.5}.modal-actions{gap:10px;width:100%;margin-top:8px;display:flex}.modal-cancel{white-space:normal;background:var(--bg);min-width:0;color:var(--text);border:1.5px solid var(--border);flex:1}.modal-cancel:hover{background:var(--border)}.modal-confirm{white-space:normal;background:#dc2626;flex:1;min-width:0}.modal-confirm:hover{background:#b91c1c}.pagination{justify-content:center;align-items:center;gap:12px;width:0;min-width:100%;display:flex}.sug-filter-bar{flex-shrink:0;gap:8px;width:0;min-width:100%;display:flex}.sug-filter-btn{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 16px;font-size:.875rem}.sug-filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.sug-filter-btn:hover:not(.active){background:var(--bg)}.sug-badge{border-radius:20px;flex-shrink:0;padding:2px 7px;font-size:.75rem;font-weight:600}.sug-badge--done{color:#065f46;background:#d1fae5}.sug-badge--ignored{color:#6b7280;background:#f3f4f6}[data-theme=dark] .sug-badge--done{color:#6ee7b7;background:#064e3b}[data-theme=dark] .sug-badge--ignored{color:#9ca3af;background:#374151}.sug-status-row{border-top:1px solid var(--border);gap:20px;margin-top:20px;padding-top:16px;display:flex}.sug-status-check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.9rem;display:flex}.pagination button:disabled{opacity:.4;cursor:default}.signin-page{justify-content:center;align-items:center}.signin-card{gap:16px}.signin-error{color:#c62828;font-size:.9rem}[data-theme=dark] .signin-error{color:#ef9a9a}.account-list{flex-direction:column;gap:8px;display:flex}.account-btn{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:10px 14px;transition:border-color .15s,background .15s;display:flex}.account-btn:hover{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 6%, var(--bg))}.account-info{flex-direction:column;gap:2px;display:flex}.account-name{font-size:.95rem;font-weight:600}.account-email{color:var(--muted);font-size:.8rem}.signin-divider{border:none;border-top:1px solid var(--border);margin:4px 0}.signin-providers{flex-direction:column;gap:8px;display:flex}.btn-github,.btn-google{border-radius:var(--radius);cursor:pointer;color:#fff;border:none;justify-content:center;align-items:center;gap:12px;width:100%;padding:12px 20px;font-size:.95rem;font-weight:500;transition:background .15s,border-color .15s;display:flex}.btn-github{background:#24292e}.btn-google{color:#3c4043;background:#fff;border:1px solid #dadce0}.btn-github:hover{background:#1a1e22}.btn-google:hover{background:#f8f9fa}[data-theme=dark] .btn-github{background:#333}[data-theme=dark] .btn-github:hover{background:#444}[data-theme=dark] .btn-google{color:#e8eaed;background:#3c4043;border-color:#5f6368}[data-theme=dark] .btn-google:hover{background:#4a4d51}.sug-lang-select{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);cursor:pointer;outline:none;padding:12px 16px;font-size:1rem;transition:border-color .2s}.sug-lang-select:focus{border-color:var(--primary)}.sug-textarea{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-width:600px;min-height:100px;color:var(--text);resize:vertical;outline:none;padding:12px 16px;font-family:inherit;font-size:1rem;transition:border-color .2s}.sug-textarea:focus{border-color:var(--primary)}.stats-grid{flex-wrap:wrap;flex-shrink:0;gap:16px;display:flex}.stat-card{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:4px;min-width:110px;padding:10px 16px;display:flex;box-shadow:0 2px 8px #0000000f}.stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.68rem}.stat-value{color:var(--primary);font-size:1.4rem;font-weight:700;line-height:1}.admin-tabs{border-bottom:2px solid var(--border);flex-shrink:0;gap:0;display:flex}.admin-tab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 20px;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--text)}.admin-tab--active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.admin-tab-panels{flex:1;min-height:0;position:relative;overflow:hidden}.admin-tab-panel{flex-direction:column;gap:12px;display:flex;position:absolute;inset:0;overflow:hidden}.cost-add-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.btn-small{padding:4px 10px;font-size:.8rem}.btn-danger{color:#fff;border-radius:var(--radius);cursor:pointer;background:#ef4444;border:none;transition:background .15s}.btn-danger:hover{background:#dc2626}#ban-overlay{z-index:9999;background:var(--bg);justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.ban-box{text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:480px;display:flex}.ban-icon{font-size:3rem;line-height:1}.ban-box h2{color:var(--color-danger,#ef4444);font-size:1.4rem}.ban-box p{color:var(--muted);line-height:1.6}.pdf-lang-bar{gap:8px;margin-bottom:16px;display:flex}.pdf-lang-bar .ss-wrap{flex:1;min-width:0}.pdf-counter-row{justify-content:center;align-items:center;gap:12px;display:flex}.pdf-counter{text-align:center;color:var(--muted);flex-shrink:0;font-size:.85rem}.pdf-change-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:.8rem}.pdf-change-btn:hover{color:var(--fg);border-color:var(--fg)}.pdf-btn-spacer{flex-shrink:0;height:72px}.pdf-canvas{max-width:100%;display:block}.pdf-page-input{text-align:center;border:1px solid var(--border);background:var(--surface);width:56px;color:var(--text);border-radius:6px;padding:4px 6px;font-size:.9rem}.pdf-drop-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;color:var(--muted);border-radius:8px;padding:48px 24px;transition:border-color .15s}.pdf-drop-zone:hover{border-color:var(--primary)}.pdf-pagination-fixed{z-index:50;pointer-events:none;justify-content:center;gap:16px;display:flex;position:fixed;bottom:20px;left:0;right:0}.pdf-pagination-fixed button{pointer-events:all;box-shadow:0 2px 10px #0003}.page--pdf{width:min(900px,100vw - 48px);max-width:none}.pdf-content{flex:1;max-width:100%;min-height:0;margin:0 auto;padding-bottom:80px;padding-right:8px;overflow-y:auto}.pdf-page{border-bottom:1px solid var(--border);margin-bottom:40px;padding-bottom:40px}.pdf-page-num{text-align:center;color:var(--muted);letter-spacing:.05em;margin-bottom:14px;font-size:.78rem}.pdf-page-text p{margin:0 0 3px;font-size:1rem;line-height:1.75}.pdf-popup{z-index:999;background:var(--surface,#fff);border:1px solid var(--border);border-radius:10px;width:280px;padding:14px 16px 12px;position:absolute;box-shadow:0 6px 24px #0000001f}.pdf-popup-close{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:.8rem;position:absolute;top:8px;right:8px}.pdf-popup-close:hover{background:var(--border)}.pdf-popup-word{margin-bottom:8px;padding-right:22px;font-size:1.05rem;font-weight:600;display:block}.pdf-popup-defs{margin:0 0 8px;padding-left:16px;font-size:.88rem;line-height:1.5}.pdf-popup-defs li{margin-bottom:3px}.pdf-popup-syns{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.pdf-popup-loading,.pdf-popup-empty{color:var(--muted);font-size:.88rem}
