:root{--cream:#fdf0d5;--red:#cc2936;--blue:#1d3557;--black:#1a1a1a}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--black);font-family:"Space Grotesk",ui-sans-serif,system-ui,sans-serif}
a{color:var(--blue)}
code,pre,.mono{font-family:"Space Mono",ui-monospace,monospace}
header{background:var(--blue);color:var(--cream);padding:.8rem 1.2rem;display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--black)}
header .brand{font-weight:700;letter-spacing:.02em}
header a{color:var(--cream)}
main{max-width:1000px;margin:1.5rem auto;padding:0 1.2rem}
.card{background:#fff;border:3px solid var(--black);box-shadow:6px 6px 0 var(--black);padding:1.2rem 1.4rem;margin-bottom:1.4rem}
h1{color:var(--blue);margin:.2rem 0 1rem;font-size:1.5rem}
h2{color:var(--red);font-size:1rem;text-transform:uppercase;letter-spacing:.05em;margin:.2rem 0 .6rem}
table{border-collapse:collapse;width:100%;font-size:.82rem}
th,td{border:1px solid #ccc;padding:.35rem .5rem;text-align:left;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
th{background:var(--cream)}
.res{display:flex;justify-content:space-between;align-items:center;border:2px solid var(--black);padding:.5rem .8rem;margin:.4rem 0;background:#fff}
.res .acts a{display:inline-block;border:2px solid var(--black);padding:.1rem .5rem;margin-left:.3rem;background:var(--cream);font-size:.78rem;text-decoration:none}
label{display:block;margin:.7rem 0 .2rem;font-weight:600;font-size:.85rem}
input[type=text],input[type=number],select{width:100%;padding:.45rem;border:2px solid var(--black);font-family:inherit}
.req{color:var(--red)}
button{margin-top:1rem;background:var(--red);color:#fff;border:2px solid var(--black);box-shadow:3px 3px 0 var(--black);padding:.5rem 1.1rem;font-weight:700;cursor:pointer}
.err{background:#ffe3e3;border:2px solid var(--red);padding:.6rem .8rem;margin:.6rem 0;color:#7a0010}
.ok{background:#e3ffe8;border:2px solid #1a7a2e;padding:.6rem .8rem;margin:.6rem 0}
.muted{color:#666;font-size:.8rem}
.pager{display:flex;gap:.6rem;align-items:center;margin-top:.8rem;font-size:.82rem}
.pager a{border:2px solid var(--black);padding:.1rem .5rem;background:var(--cream);text-decoration:none}
.pager .disabled{opacity:.4;border:2px solid #ccc;padding:.1rem .5rem}
nav.crumbs{font-size:.8rem;margin-bottom:.8rem}
a.plain{text-decoration:none}
.scroll-x{overflow:auto}
.mb{margin-bottom:.6rem}
.card-narrow{max-width:420px;margin:3rem auto}
form.logout{display:inline;margin:0}
button.linkish{margin:0;padding:0;background:none;border:none;box-shadow:none;color:var(--cream);font:inherit;cursor:pointer;text-decoration:underline}