:root { --fg:#1f2933; --muted:#6b7785; --line:#dde3ea; --bg:#f5f7fa; --accent:#1f5fa8; --warn:#b7791f; --err:#c53030; --ok:#2f855a; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; color:var(--fg); background:var(--bg); }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
.topbar { display:flex; align-items:center; justify-content:space-between; padding:.7rem 1.5rem; background:#fff; border-bottom:1px solid var(--line); }
.brand { font-weight:700; color:var(--fg); } .brand span { color:var(--muted); font-weight:400; }
.topbar nav { display:flex; gap:1.2rem; align-items:center; }
main { max-width:1200px; margin:1.5rem auto; padding:0 1.5rem; }
h1 { font-size:1.5rem; margin:.2rem 0 .8rem; } h2 { font-size:1.15rem; margin:0 0 .6rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:1.2rem 1.4rem; margin-bottom:1rem; }
.card.narrow { max-width:380px; margin:3rem auto; }
.card-head { display:flex; justify-content:space-between; align-items:center; }
label { display:block; margin:.5rem 0; font-size:.9rem; color:var(--muted); }
input, select { display:block; width:100%; padding:.45rem .55rem; border:1px solid var(--line); border-radius:5px; font:inherit; color:var(--fg); }
button { font:inherit; padding:.45rem .9rem; border-radius:5px; border:1px solid var(--line); background:#fff; cursor:pointer; }
button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
button:disabled { opacity:.5; cursor:not-allowed; }
button.link { border:none; background:none; color:var(--accent); padding:0; }
button.small { font-size:.85rem; padding:.2rem .6rem; }
button.danger { color:var(--err); }
form.inline { display:inline; }
.inline-form { display:flex; flex-wrap:wrap; gap:.6rem 1rem; align-items:flex-end; padding:.8rem; background:var(--bg); border-radius:6px; margin:.6rem 0; }
.inline-form label { margin:0; min-width:140px; }
table.grid { width:100%; border-collapse:collapse; background:#fff; }
table.grid th, table.grid td { padding:.45rem .6rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
table.grid th { font-size:.8rem; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); }
table.grid.compact th, table.grid.compact td { padding:.3rem .5rem; }
.num { text-align:right !important; font-variant-numeric:tabular-nums; }
.tabs { display:flex; gap:.2rem; border-bottom:1px solid var(--line); margin:1rem 0; }
.tabs a { padding:.5rem 1rem; color:var(--muted); border-bottom:2px solid transparent; }
.tabs a.active { color:var(--fg); border-bottom-color:var(--accent); }
.person { border-top:1px solid var(--line); padding:.8rem 0; }
.person-head { display:flex; align-items:center; gap:.6rem; margin-bottom:.3rem; }
.spacer { flex:1; }
.badge { display:inline-block; padding:.05rem .5rem; border-radius:10px; font-size:.8rem; background:var(--line); }
.badge-avensio { background:#e3effb; color:#1f5fa8; } .badge-vema { background:#f3e8fd; color:#6b2fa8; }
.muted { color:var(--muted); } .small { font-size:.85rem; }
.warn { color:var(--warn); } .error, .errorlist { color:var(--err); } .ok { color:var(--ok); }
.errorlist { margin:.2rem 0; padding-left:1rem; font-size:.85rem; }
.crumbs { margin:0; font-size:.9rem; }
.flash { padding:.6rem 1rem; border-radius:6px; background:#e3effb; margin-bottom:1rem; }
tr.editing td { background:var(--bg); }
.htmx-request { opacity:.6; transition:opacity .2s; }
