:root[data-theme=dark]{--bg:#1a1d2e;--surface:#252840;--surface-hover:#2e3156;--text:#e0e0f0;--text-muted:#9090b0;--accent:#7c83f5;--accent-hover:#9499f7;--border:#3a3d5c;--error:#ff6b6b;--success:#51cf66;--star-filled:#ffd43b;--star-empty:#3a3d5c;--badge-bg:#2e3156}:root[data-theme=light]{--bg:#f5f5f5;--surface:#fff;--surface-hover:#f0f0f0;--text:#1a1a2e;--text-muted:#555570;--accent:#5c63d8;--accent-hover:#4a51c0;--border:#d0d0e0;--error:#c00;--success:#2d9e3f;--star-filled:#f59f00;--star-empty:#d0d0e0;--badge-bg:#eeeef8}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;transition:background .2s,color .2s}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{cursor:pointer;border:none;border-radius:6px;min-height:44px;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;transition:background .15s,transform .1s}button:active{transform:scale(.97)}input,textarea,select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;width:100%;min-height:44px;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}textarea{resize:vertical;min-height:100px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover)}.btn-danger{color:var(--error);border:1px solid var(--error);background:0 0}.btn-danger:hover{background:var(--error);color:#fff}.error-msg{color:var(--error);margin-top:.25rem;font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem;transition:background .15s}.badge{background:var(--badge-bg);color:var(--text-muted);border:1px solid var(--border);border-radius:12px;padding:.2rem .6rem;font-size:.75rem;display:inline-block}.page{max-width:900px;margin:0 auto;padding:1.5rem 1rem}.form-group{flex-direction:column;gap:.3rem;margin-bottom:1rem;display:flex}.form-group label{color:var(--text-muted);font-size:.85rem;font-weight:500}@media (width<=600px){.page{padding:1rem .75rem}button{min-height:48px}}
