:root{
  --purple:#6600f0; --purple-deep:#5200c0; --gold:#f6c54c;
  --ink:#1a1a22; --ink-soft:#6b6b76;
  --line:#e2e2e7; --paper:#f7f7fb; --card:#ffffff;
  --ok:#1f6f45; --ok-bg:#eaf4ed; --bad:#b42318; --bad-bg:#fdecea;
  --warn-text:#8a5a00; --warn-bg:#fdf3dd;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink); background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--purple)}

/* ---------- login (acelasi tipar ca billing/acte) ---------- */
body.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}
.card{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px 32px;
  width:100%;max-width:360px;box-shadow:0 10px 40px rgba(20,10,50,.06);
}
.logo-wrap{text-align:center;margin-bottom:22px}
.logo-wrap img{height:56px}
.card h1{font-size:16px;margin:18px 0 2px;text-align:center;font-weight:650}
.card p.sub{margin:0 0 24px;text-align:center;color:var(--ink-soft);font-size:13px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:6px;font-weight:500}
input[type=text],input[type=password]{
  width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fbfbfd;
}
.card button{
  width:100%;font:inherit;font-weight:650;padding:11px;border-radius:9px;border:1px solid var(--purple);
  background:var(--purple);color:#fff;cursor:pointer;margin-top:4px;
}
.card button:hover{background:var(--purple-deep);border-color:var(--purple-deep)}
.error{
  background:var(--bad-bg);color:var(--bad);border-radius:9px;padding:9px 12px;font-size:13px;
  margin-bottom:16px;display:none;text-align:left;
}
.error.show{display:block}

/* ---------- aplicatie ---------- */
header.bar{
  background:#fff;border-bottom:1px solid var(--line);padding:12px 24px;
  display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:5;
}
header.bar img{width:34px;height:34px;border-radius:7px;object-fit:contain}
header.bar .t{font-weight:650;font-size:15px}
header.bar .t small{display:block;font-weight:400;font-size:12px;color:var(--ink-soft)}
header.bar .spacer{flex:1}
header.bar .who{font-size:13px;color:var(--ink-soft);margin-right:4px}
main{max-width:860px;margin:0 auto;padding:28px 24px 64px}
h2{font-size:17px;margin:0 0 6px;letter-spacing:-.01em}
.lead{color:var(--ink-soft);font-size:14px;margin:0 0 22px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px}
.drop{
  border:1.5px dashed #d7d7e0;border-radius:11px;padding:28px 20px;text-align:center;
  background:#fbfbfd;margin-bottom:16px;
}
.drop input[type=file]{font-size:13.5px;max-width:100%}
.drop p{margin:0 0 12px;font-size:13.5px;color:var(--ink-soft)}
.actions{display:flex;gap:10px;align-items:center}
.actions .btn{width:auto}
.hint{font-size:12.5px;color:#8c8578;margin-top:14px}
.result{border:1px solid var(--line);border-radius:11px;padding:16px 18px;margin-bottom:12px;background:#fff}
.result h3{margin:0 0 4px;font-size:14.5px;display:flex;align-items:center;gap:8px}
.tag{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:5px}
.tag-ok{background:var(--ok-bg);color:var(--ok)}
.tag-bad{background:var(--bad-bg);color:var(--bad)}
.tag-warn{background:var(--warn-bg);color:var(--warn)}
.meta{font-size:13px;color:var(--ink-soft);margin:8px 0 0}
.meta b{color:var(--ink);font-weight:600}
dl.checks{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;margin:12px 0 0;font-size:13px}
dl.checks dt{color:var(--ink-soft)}
dl.checks dd{margin:0}
.dl{display:inline-block;margin-top:13px;padding:9px 16px;background:var(--purple);border:1px solid var(--purple);
    border-radius:8px;color:#fff;text-decoration:none;font-weight:650;font-size:13.5px}
.dl:hover{background:var(--purple-deep)}
.zip{margin:4px 0 20px;font-size:13.5px}
