:root {
  /* Lindentech brand palette */
  --green:#9FCF67; --green-dark:#5B9B25; --navy:#113582; --navy-2:#1a4bb0;
  --bg:#f4f6fa; --card:#fff; --txt:#111111; --muted:#595959; --line:#e3e7ee;
  --row:#FAFAFA; --green-tint:#EAF5D6; --bad:#C0392B; --ok:#5B9B25;
}
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 Calibri,"Segoe UI",system-ui,Roboto,sans-serif; background:var(--bg); color:var(--txt); }
h1, h2, h3, h4 { color:var(--navy); }
a { color:var(--navy); }
.hidden { display:none !important; }
button { font:inherit; cursor:pointer; border:0; border-radius:8px; padding:8px 16px; background:var(--navy); color:#fff; font-weight:600; }
button:hover { background:var(--navy-2); }
button.ghost { background:transparent; color:var(--navy); border:1px solid var(--line); }
button.ghost:hover { background:transparent; border-color:var(--navy); }
button.sm { padding:4px 10px; font-size:13px; }
button.danger { background:transparent; color:var(--bad); border:1px solid var(--line); }
button.danger:hover { background:transparent; border-color:var(--bad); }
button:disabled { opacity:.5; cursor:default; }
button:disabled:hover { background:var(--navy); }
input, select, textarea { font:inherit; border:1px solid var(--line); border-radius:8px; padding:7px 10px; background:#fff; color:var(--txt); }
input:focus, select:focus, textarea:focus { outline:2px solid var(--green); outline-offset:-1px; }
label { font-size:12px; color:var(--muted); display:block; margin-bottom:2px; }
.row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px; }
.card h3 { margin:0 0 12px; font-size:15px; }
.muted { color:var(--muted); }
.err { color:var(--bad); }

/* Top bar */
.topbar { background:linear-gradient(120deg,var(--navy),var(--navy-2)); color:#fff; padding:12px 22px; display:flex; justify-content:space-between; align-items:center; }
.topbar .brand { font-size:20px; font-weight:800; letter-spacing:.5px; line-height:1; }
.topbar .brand span { color:var(--green); }
.topbar .byline { display:flex; align-items:center; gap:7px; margin-top:5px; }
.topbar .byline .sep { font-size:9px; letter-spacing:1.5px; opacity:.75; }
.topbar .byline img { height:18px; display:block; }
.topbar .who { font-size:13px; opacity:.9; }
.wrap { max-width:1080px; margin:22px auto; padding:0 18px; }

/* Login */
.login-wrap { max-width:380px; margin:8vh auto; }
.login-wrap h1 { text-align:center; font-size:30px; margin-bottom:6px; letter-spacing:.5px; }
.login-wrap h1 span { color:var(--green-dark); }
.login-wrap .byline { display:flex; flex-direction:column; align-items:center; gap:8px; margin:0 0 18px; }
.login-wrap .byline img { height:30px; }
.login-wrap .byline .tag { color:var(--muted); font-size:12px; letter-spacing:1px; }
.login-wrap .card > * + * { margin-top:12px; }
.login-wrap input { width:100%; }

/* Status chips */
.chip { display:inline-block; border-radius:20px; padding:2px 10px; font-size:12px; font-weight:700; }
.chip.draft { background:#eef1f4; color:#556; }
.chip.pending_approval { background:#fdf3e0; color:#9A5B00; }
.chip.approved { background:#e7edfb; color:var(--navy); }
.chip.sent { background:var(--green-tint); color:var(--green-dark); }
.chip.accepted { background:#e6f4ea; color:#2e7d32; }
.chip.declined, .chip.expired { background:#fdecea; color:var(--bad); }

/* Tables */
table { border-collapse:collapse; width:100%; }
th, td { text-align:left; padding:7px 10px; border-bottom:1px solid var(--line); font-size:14px; }
th { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
tr.clickable { cursor:pointer; }
tr.clickable:hover { background:var(--row); }

/* Editor */
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lines input, .lines select { width:100%; padding:5px 7px; }
.totbar { display:flex; gap:26px; flex-wrap:wrap; padding:12px 16px; background:var(--green-tint); border:1px solid #c3d49a; border-radius:10px; }
.totbar .t .k { font-size:11px; color:var(--muted); }
.totbar .t .v { font-size:20px; font-weight:800; color:var(--navy); }
.toast { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); background:var(--navy); color:#fff; padding:10px 18px; border-radius:8px; font-size:14px; box-shadow:0 4px 18px rgba(0,0,0,.2); }
@media (max-width:720px){ .grid2 { grid-template-columns:1fr; } }
