:root{--ink:#1d2733;--muted:#5b6673;--line:#d9dee5;--bg:#f6f7f9;--card:#fff;--accent:#1f4e79;--ok:#1e7a46;--warn:#a86400;--bad:#b3261e}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}
header{background:var(--accent);color:#fff;padding:.6rem 1.2rem;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
header a{color:#fff;text-decoration:none}header .brand{font-weight:700;font-size:1.1rem}header nav{display:flex;gap:1rem;flex:1}
.pnav a[aria-current=page]{border-bottom:2px solid #fff;font-weight:700}.shellfoot{max-width:1050px;margin:1rem auto;padding:0 1rem;font-size:.8rem;color:var(--muted)}header form{margin:0}header button{background:transparent;border:1px solid #9fb8d0;color:#fff;border-radius:4px;padding:.2rem .6rem;cursor:pointer}
main{max-width:1050px;margin:1.2rem auto;padding:0 1rem}
h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.15rem;margin:1.6rem 0 .6rem}h3{font-size:1rem;margin:.8rem 0 .3rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1rem 1.2rem;margin:.8rem 0}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px}
th,td{text-align:left;padding:.5rem .7rem;border-bottom:1px solid var(--line);vertical-align:top;font-size:.93rem}th{background:#eef1f5;font-weight:600}
a{color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:ui-monospace,Consolas,monospace;font-size:.85rem;word-break:break-all}
label{display:block;margin:.7rem 0 .2rem;font-weight:600}input,select,textarea{width:100%;padding:.45rem .55rem;border:1px solid #b9c2cd;border-radius:5px;font:inherit;background:#fff}
textarea{min-height:110px}.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:700px){.row{grid-template-columns:1fr}}
button,.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:5px;padding:.45rem .9rem;font:inherit;cursor:pointer;text-decoration:none}
button.secondary,.btn.secondary{background:#fff;color:var(--accent);border:1px solid var(--accent)}button.danger{background:var(--bad)}
.inline{display:inline}.inline button{margin-right:.4rem}
.pill{display:inline-block;padding:.05rem .55rem;border-radius:99px;font-size:.8rem;border:1px solid var(--line);background:#eef1f5}
.pill.ok,.pill.received,.pill.closed{background:#e3f4ea;color:var(--ok);border-color:#b6dfc6}
.pill.overdue,.pill.bad{background:#fbe6e4;color:var(--bad);border-color:#efb9b4}.pill.warn,.pill.partially_received{background:#fdf1dc;color:var(--warn);border-color:#f0d7a3}
.flash{padding:.6rem 1rem;border-radius:6px;margin:.6rem 0}.flash.ok{background:#e3f4ea;color:var(--ok)}.flash.err{background:#fbe6e4;color:var(--bad)}
.banner{background:#fbe6e4;border:2px solid var(--bad);color:var(--bad);padding:.8rem 1rem;border-radius:8px;margin:.8rem 0;font-weight:600}
.kpis{display:flex;gap:1rem;flex-wrap:wrap}.kpi{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.7rem 1.1rem;min-width:150px}.kpi b{font-size:1.6rem;display:block}
.linkbox{background:#fffbe6;border:1px solid #e6d98a;padding:.7rem 1rem;border-radius:6px;word-break:break-all}

/* HOST-0 hosted preview marker: shown on every page when AE_ENVIRONMENT=preview */
.previewbanner { background: #7a1f1f; color: #fff; text-align: center; font-weight: 700; padding: 6px 10px; font-size: 13px; letter-spacing: .02em; }
