:root{
  --bg:#0a0b0d; --panel:#14161a; --line:#22252b; --input-bg:#1a1d22;
  --txt:#e8e9eb; --txt2:#9aa0a8; --muted:#6b7280; --dim:#4b5259;
  --accent:#3b82f6; --accent-dim:rgba(59,130,246,.15);
  --good:#3ecf8e; --danger:#ff5247; --amber:#e0b04a;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:14px;min-height:100vh}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}

.btn{background:var(--input-bg);border:1px solid var(--line);color:var(--txt);
  border-radius:8px;padding:8px 14px;font-size:13px;transition:.15s}
.btn:hover{border-color:var(--accent)}
.btn.go{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.btn.go:hover{opacity:.9}
.btn.tiny{padding:3px 8px;font-size:11px}

/* ── lock screen ── */
.lock{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.lock-box{width:100%;max-width:320px;background:var(--panel);border:1px solid var(--line);
  border-radius:16px;padding:32px 28px;text-align:center}
.brand{font-size:18px;font-weight:700;letter-spacing:.06em;margin-bottom:4px}
.sub{color:var(--txt2);font-size:12px;margin-bottom:24px}
.lock-box input{width:100%;padding:12px 14px;background:var(--input-bg);
  border:1px solid var(--line);border-radius:8px;color:var(--txt);font-size:16px;
  text-align:center;letter-spacing:.2em;margin-bottom:14px;outline:none}
.lock-box input:focus{border-color:var(--accent)}
.lock-box .btn{width:100%}
.err{color:var(--danger);font-size:12px;margin-top:12px;min-height:16px}

/* ── dashboard ── */
.dash{max-width:720px;margin:0 auto;padding:0 16px 60px}
header{display:flex;align-items:center;justify-content:space-between;padding:18px 0;
  border-bottom:1px solid var(--line);margin-bottom:20px}
main{display:flex;flex-direction:column;gap:4px}
.hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.title{font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.title.small{font-size:12px;color:var(--muted)}

.cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.cat{padding:5px 12px;border:1px solid var(--line);border-radius:20px;font-size:12px;
  color:var(--txt2);cursor:pointer;transition:.15s}
.cat.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}

.form{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:18px 20px;margin-bottom:18px}
.form-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);margin-bottom:12px}
.form input,.form select,.form textarea{display:block;width:100%;margin-bottom:10px;
  padding:9px 12px;background:var(--input-bg);border:1px solid var(--line);color:var(--txt);
  border-radius:8px;font-size:13px;outline:none;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--accent)}
.gen{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.gen select{width:auto;margin-bottom:0}
.gen .btn{margin-bottom:0;white-space:nowrap}
.gen-hint{font-size:11px;color:var(--muted)}
.btn-row{display:flex;gap:8px}

.list{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px}
.badge{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:3px 8px;border-radius:5px;background:var(--input-bg);color:var(--txt2);
  border:1px solid var(--line);flex:0 0 auto;margin-top:2px}
.badge.api-key{color:var(--accent);border-color:rgba(59,130,246,.3)}
.badge.password{color:var(--danger);border-color:rgba(255,82,71,.3)}
.badge.token{color:var(--amber);border-color:rgba(224,176,74,.3)}
.badge.note{color:var(--good);border-color:rgba(62,207,142,.3)}
.item-name{font-weight:600;font-size:13px}
.item-notes{color:var(--txt2);font-size:12px;margin-top:2px}
.item-meta{font-size:10px;color:var(--dim);margin-top:4px}
.item-val{display:none;margin-top:8px;padding:8px 10px;background:var(--input-bg);
  border-radius:6px;font-family:ui-monospace,monospace;font-size:12px;word-break:break-all;
  color:var(--good)}
.actions{display:flex;gap:4px;flex:0 0 auto}
.empty{color:var(--muted);font-size:12px;padding:14px;text-align:center}

.audit-hdr{display:flex;align-items:center;gap:12px;margin-bottom:12px;
  border-top:1px solid var(--line);padding-top:18px}
table{width:100%;border-collapse:collapse;font-size:11px}
th{padding:4px 8px;font-weight:500;color:var(--muted);text-align:left}
td{padding:5px 8px;border-top:1px solid var(--line)}

@media(max-width:480px){
  .dash{padding:0 10px 40px}
}
