:root{--bg:#f8f9fa;--surface:#ffffff;--surface-hover:#f1f3f5;--border:#e9ecef;--text:#212529;--text-dim:#6c757d;--accent:#5c7cfa;--accent-hover:#4c6ef5;--success:#12b886;--error:#fa5252;--cn-color:#339af0;--human-color:#20c997;--pinned-color:#fcc419;--llm-color:#845ef7;--unknown-color:#adb5bd}.dark,[data-theme=dark]{--bg:#0a0a0f;--surface:#141420;--surface-hover:#1a1a2e;--border:#2a2a3e;--text:#e0e0f0;--text-dim:#8888aa;--accent:#7c5cfc;--accent-hover:#6a4ce0;--success:#22c55e;--error:#ef4444;--cn-color:#60a5fa;--human-color:#22c55e;--pinned-color:#f59e0b;--llm-color:#a78bfa;--unknown-color:#6b7280}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.page{min-height:100vh;display:flex;flex-direction:column}.layout{display:flex;flex:1 1;overflow:hidden}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100vh;color:var(--text-dim);font-size:.9rem}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.login-container{display:flex;align-items:center;justify-content:center;height:100vh;padding:1rem}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem;width:100%;max-width:400px;display:flex;flex-direction:column;gap:1rem}.login-card h1{font-size:1.5rem;text-align:center}.login-card p{color:var(--text-dim);font-size:.85rem;text-align:center}.login-hint{font-size:.8rem!important}.login-hint code{background:var(--surface-hover);padding:.15em .4em;border-radius:4px;font-size:.85em}.login-error{background:#3b1111;color:var(--error);padding:.5rem;border-radius:6px;font-size:.85rem;text-align:center}.login-card input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;color:var(--text);font-size:.95rem;outline:none;transition:border-color .2s}.login-card input:focus{border-color:var(--accent)}.login-card button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.75rem;font-size:1rem;cursor:pointer;transition:background .2s}.login-card button:hover:not(:disabled){background:var(--accent-hover)}.login-card button:disabled{opacity:.5;cursor:not-allowed}.mobile-header{display:none}.sidebar{width:280px;min-width:280px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:1.25rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.sidebar-header h2{font-size:1.1rem}.sidebar-user{color:var(--accent);font-size:.85rem}.sidebar-filter{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.sidebar-filter label{display:block;font-size:.75rem;color:var(--text-dim);margin-bottom:.3rem}.sidebar-filter select{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.4rem;border-radius:6px;font-size:.85rem}.sidebar-categories{flex:1 1;overflow-y:auto;padding:.5rem 0}.category-group{margin-bottom:.5rem}.category-name{padding:.5rem 1rem;font-size:.75rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.field-item{padding:.4rem 1rem .4rem 1.5rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.85rem;transition:background .15s}.field-item:hover{background:var(--surface-hover)}.field-item.active{background:var(--accent);color:#fff;border-radius:0}.field-stats{display:flex;gap:.3rem}.badge{font-size:.7rem;padding:.1rem .4rem;border-radius:10px;font-weight:600;min-width:1.5rem;text-align:center}.badge.llm{background:rgba(167,139,250,.2);color:var(--llm-color)}.badge.human{background:rgba(34,197,94,.2);color:var(--human-color)}.badge.pinned{background:rgba(245,158,11,.2);color:var(--pinned-color)}.sidebar-footer{padding:1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.push-btn{width:100%;padding:.6rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s;display:flex;justify-content:center;align-items:center;gap:.4rem}.push-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.push-btn:active:not(:disabled){transform:translateY(0)}.push-btn:disabled{opacity:.6;cursor:not-allowed}.push-status{font-size:.75rem;color:var(--text-dim);text-align:center}.theme-container{display:flex;justify-content:space-between;align-items:center;padding:.25rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.8rem;color:var(--text-dim)}.theme-select{border:none;color:var(--text);outline:none;font-size:.8rem}.btn-logout,.theme-select{background:transparent;cursor:pointer}.btn-logout{width:100%;padding:.5rem;border:1px solid var(--border);color:var(--text-dim);border-radius:6px;font-size:.85rem}.btn-logout:hover{border-color:var(--error);color:var(--error)}.main{flex:1 1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.main-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem}.main-header h1{font-size:1.25rem}.entry-count{color:var(--text-dim);font-size:.85rem}.search-bar input{width:100%;background:var(--surface);border:1px solid var(--border);padding:.6rem 1rem;border-radius:8px;color:var(--text);font-size:.9rem;outline:none}.search-bar input:focus{border-color:var(--accent)}.empty{text-align:center;padding:4rem 1rem;color:var(--text-dim)}.empty p{font-size:1.1rem;margin-bottom:.5rem}.proof-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.proof-original{padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.proof-original label{font-size:.75rem;color:var(--text-dim);display:block;margin-bottom:.3rem}.proof-jp{font-size:1rem;line-height:1.6;white-space:pre-wrap}.proof-edit{padding:1rem 1.25rem}.proof-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.proof-edit-header label{font-size:.75rem;color:var(--text-dim)}.proof-nav{display:flex;gap:.3rem}.proof-nav button{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:.25rem .5rem;border-radius:4px;font-size:.75rem;cursor:pointer}.proof-nav button:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.proof-nav button:disabled{opacity:.3;cursor:not-allowed}.proof-textarea{width:100%;background:var(--bg);border:1px solid var(--border);padding:.75rem;border-radius:8px;color:var(--text);font-size:.95rem;line-height:1.5;resize:vertical;outline:none;font-family:inherit;transition:border-color .2s}.proof-textarea:focus{border-color:var(--accent)}.proof-textarea.gray{color:var(--text-dim)}.proof-actions{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.btn-cancel,.btn-pinned,.btn-save{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:opacity .2s}.btn-save{background:var(--success);color:#fff}.btn-pinned{background:var(--pinned-color);color:#000}.btn-cancel{background:var(--border);color:var(--text-dim)}.btn-cancel:hover,.btn-pinned:hover,.btn-save:hover{opacity:.85}.proof-hints{font-size:.75rem;color:var(--text-dim);margin-left:auto}.proof-hints kbd{background:var(--bg);border:1px solid var(--border);padding:.1rem .35rem;border-radius:3px;font-size:.7rem;margin:0 .15rem}.entry-list-wrapper{overflow-x:auto}.translation-table{width:100%;border-collapse:collapse;font-size:.85rem}.translation-table th{text-align:left;padding:.6rem .75rem;border-bottom:2px solid var(--border);color:var(--text-dim);font-weight:500;font-size:.75rem;position:-webkit-sticky;position:sticky;top:0;background:var(--bg)}.col-source{width:70px}.col-jp{width:40%}.entry-row{cursor:pointer;transition:background .1s;border-bottom:1px solid var(--border)}.entry-row:hover{background:var(--surface-hover)}.entry-row.row-active{background:rgba(124,92,252,.1)}.entry-row td{padding:.5rem .75rem;vertical-align:top}.jp-text{color:var(--text-dim)}.cn-text,.jp-text{word-break:break-all}.source-tag{display:inline-block;font-size:.7rem;padding:.1rem .4rem;border-radius:4px;font-weight:500}.source-tag.cn{background:rgba(96,165,250,.15);color:var(--cn-color)}.source-tag.human{background:rgba(34,197,94,.15);color:var(--human-color)}.source-tag.pinned{background:rgba(245,158,11,.15);color:var(--pinned-color)}.source-tag.llm{background:rgba(167,139,250,.15);color:var(--llm-color)}.source-tag.unknown{background:rgba(107,114,128,.15);color:var(--unknown-color)}select.source-tag{border:none;outline:none;cursor:pointer;background-color:transparent}.toast{position:fixed;top:1rem;right:1rem;padding:.6rem 1.2rem;border-radius:8px;font-size:.85rem;z-index:1000;animation:slideIn .3s ease-out}.toast.ok{background:#0a3d1f;color:var(--success);border:1px solid #166534}.toast.err{background:#3b1111;color:var(--error);border:1px solid #7f1d1d}@keyframes slideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:40}@media (max-width:768px){.mobile-header{display:flex;align-items:center;padding:.75rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);gap:.75rem}.hamburger{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:4px}.hamburger span{display:block;width:20px;height:2px;background:var(--text);border-radius:1px}.mobile-user{margin-left:auto;color:var(--accent);font-size:.8rem}.sidebar{position:fixed;left:-280px;top:0;bottom:0;z-index:50;transition:left .25s ease}.sidebar.open{left:0}.overlay,.sidebar-header h2{display:block}.main{padding:1rem}.proof-actions{flex-direction:column;align-items:stretch}.proof-hints{margin-left:0;text-align:center}}