:root{color-scheme:dark;--bg: #101418;--bg-soft: #171c22;--card: #1c232b;--border: #2b343f;--text: #e6e9ee;--muted: #8b96a3;--accent: #4fae8e;--accent-strong: #63c9a5;--danger: #e06c75;--warn: #d8a657;--radius: 10px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}#root{min-height:100vh}.boot{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--muted)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:340px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;display:flex;flex-direction:column;gap:12px}.login-card h1{margin:0;font-size:1.6rem;color:var(--accent-strong)}.login-card .muted{margin:0 0 8px}input,select,button,textarea{font:inherit;color:var(--text)}input,select,textarea{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:9px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;width:100%}.btn{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:9px 14px;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#0c1210;font-weight:600}.btn.primary:hover{background:var(--accent-strong)}.btn.ghost{background:transparent}.btn.small{padding:3px 8px;font-size:.85rem}.btn:disabled{opacity:.5;cursor:default}.btn.danger{background:var(--danger);border-color:var(--danger);color:#14090a;font-weight:600}.btn.danger-text{color:var(--danger);border-color:#e06c7566}.muted{color:var(--muted)}.pad{padding:12px}.center{text-align:center}.small-hint{font-size:.8rem}.error{color:var(--danger)}.banner{border-radius:8px;padding:8px 12px;margin:10px 0;font-size:.92rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.banner.error,.banner.err{background:#e06c751f;border:1px solid rgba(224,108,117,.4)}.banner.ok{background:#4fae8e1f;border:1px solid rgba(79,174,142,.4)}.banner.conflict{background:#d8a6571f;border:1px solid rgba(216,166,87,.5)}.page{max-width:860px;margin:0 auto;padding:0 16px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:5}.brand{font-size:1.25rem;font-weight:700;color:var(--accent-strong)}.topbar-actions{display:flex;gap:8px;flex-wrap:wrap}.controls{padding:14px 0 4px;display:flex;flex-direction:column;gap:10px}.search-row{display:flex;gap:8px}.search{flex:1}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select{flex:1;min-width:120px}.quickadd{padding:6px 0 0;display:flex;flex-direction:column;gap:10px}.quickadd-row{display:flex;gap:8px;flex-wrap:wrap}.quickadd-row input{flex:1 1 140px;min-width:0}.quickadd-row select{flex:0 0 auto}.quickadd-col{display:flex;flex-direction:column;gap:8px}.tabs{display:flex;gap:6px}.tab{background:transparent;border:1px solid var(--border);border-radius:999px;padding:5px 14px;cursor:pointer;color:var(--muted)}.tab.active{color:var(--accent-strong);border-color:var(--accent);background:#4fae8e1a}.letters{display:flex;gap:4px;flex-wrap:wrap}.letter{min-width:34px;text-align:center}.bulk-input{width:100%;font-family:inherit}.suggest-chip{align-self:flex-start;background:#4fae8e1f;border:1px dashed var(--accent);border-radius:999px;padding:4px 12px;cursor:pointer;color:var(--accent-strong)}.suggest-chip .muted{color:var(--muted);font-size:.8rem}.report details{margin:6px 0}.report summary{cursor:pointer;color:var(--warn)}.report ul{margin:6px 0;padding-left:20px}.report li{margin:2px 0;font-size:.9rem}.list{margin-top:14px;display:flex;flex-direction:column;gap:8px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.card-main{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.card-word .tat{font-size:1.12rem;font-weight:600}.card-word .ru{color:var(--muted);margin-left:6px}.card-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.card-comment{margin-top:6px;color:var(--muted);font-size:.92rem}.badge{font-size:.75rem;border:1px solid var(--border);border-radius:999px;padding:2px 9px;color:var(--muted)}.badge.type-verb{color:var(--accent-strong);border-color:#4fae8e80}.badge.type-affix{color:var(--warn);border-color:#d8a65780}.badge.status-learned{color:var(--accent-strong)}.badge.status-learning{color:var(--warn)}.forms{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px}.form-row{display:flex;justify-content:space-between;gap:10px;font-size:.92rem}.form-name{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:40px 0}.flash .card{animation:flash 1.6s ease-out}@keyframes flash{0%{border-color:var(--accent-strong);box-shadow:0 0 0 2px #63c9a566}to{border-color:var(--border);box-shadow:none}}.spotlight{margin-top:12px;border:1px solid var(--accent);border-radius:var(--radius);background:#4fae8e12;padding:10px}.spotlight-head{display:flex;justify-content:space-between;align-items:center;color:var(--accent-strong);font-size:.85rem;margin-bottom:6px}.spotlight .card{background:transparent;border:none;padding:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;justify-content:center;align-items:flex-start;padding:8vh 12px 12px;z-index:60;overflow-y:auto}.modal{width:100%;max-width:520px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;font-size:1.15rem}.form-grid{display:flex;flex-direction:column;gap:10px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:.88rem;color:var(--muted)}.form-grid input,.form-grid select,.form-grid textarea{color:var(--text)}.form-row-2{display:flex;gap:10px}.form-row-2 label{flex:1}.modal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.modal-actions .spacer{flex:1}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:60}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(400px,100%);background:var(--card);border-left:1px solid var(--border);padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.theme-list{display:flex;flex-direction:column;gap:6px}.theme-item{border:1px solid var(--border);border-radius:8px;overflow:hidden}.theme-row{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:none;padding:10px 12px;cursor:pointer;color:var(--text);text-align:left}.theme-row:hover{background:#4fae8e14}.theme-edit{border-top:1px dashed var(--border);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.theme-edit label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}.merge-row{display:flex;gap:8px}.merge-row select{flex:1}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;justify-content:center;align-items:flex-start;padding:12vh 12px 12px;z-index:50}.palette{width:100%;max-width:540px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.palette input{border:none;border-bottom:1px solid var(--border);border-radius:0;background:var(--bg-soft);padding:14px 16px;font-size:1.05rem}.palette-results{max-height:320px;overflow-y:auto}.palette-item{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;background:transparent;border:none;padding:10px 16px;cursor:pointer}.palette-item .ru{color:var(--muted)}.palette-item.active{background:#4fae8e29}.palette-foot{border-top:1px solid var(--border);padding:8px 16px;font-size:.78rem}@media (max-width: 560px){.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:space-between}.topbar-actions .btn{flex:1;font-size:.88rem;padding:8px 6px}.card-main{flex-direction:column;gap:6px}.quickadd-row{flex-direction:column}.quickadd-row input,.quickadd-row select{width:100%}.filters,.form-row-2{flex-direction:column}}
