:root{--bg:#0f1115;--surface:#171a21;--border:#2a2e37;--text:#e7e9ee;--text-dim:#9aa0ab;--accent:#4f8cff;--danger:#e5484d}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}main{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem}h1{margin:0 0 1.25rem;font-size:1.4rem}input[type=text],input[type=password]{border:1px solid var(--border);width:100%;color:var(--text);background:#0f1115;border-radius:6px;margin-bottom:.9rem;padding:.6rem .7rem;font-size:.95rem}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.6rem 1rem;font-size:.95rem}button:disabled{opacity:.6;cursor:default}button.secondary{border:1px solid var(--border);color:var(--text);background:0 0}button.danger{border:1px solid var(--danger);color:var(--danger);background:0 0}.error{color:var(--danger);margin-bottom:.75rem;font-size:.9rem}.top-bar{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.dropzone{border:2px dashed var(--border);text-align:center;color:var(--text-dim);cursor:pointer;border-radius:10px;margin-bottom:1.5rem;padding:2rem}.dropzone.active{border-color:var(--accent);color:var(--text)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .5rem;font-size:.9rem}th{color:var(--text-dim);font-weight:500}.row-actions{gap:.5rem;display:flex}.row-actions button{padding:.35rem .7rem;font-size:.85rem}.empty{color:var(--text-dim);text-align:center;padding:2rem 0}
