:root { font-family: system-ui, -apple-system, Segoe UI, sans-serif; color: #182230; background:#f6f7f9; }
body { margin: 0; }
header { display:flex; justify-content:space-between; align-items:center; padding: 1rem 2rem; background: white; border-bottom: 1px solid #ddd; }
main { max-width: 1600px; margin: 2rem auto; padding: 0 1rem; }
.card { background:white; border:1px solid #e4e7ec; border-radius:12px; padding:1.25rem; margin:1rem 0; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.narrow { max-width: 440px; margin: 4rem auto; }
label { display:block; font-weight:600; margin:.75rem 0 .25rem; }
input, select { padding:.55rem; border:1px solid #cbd5e1; border-radius:8px; max-width:100%; }
button { padding:.55rem .85rem; border:0; border-radius:8px; background:#1f4e79; color:white; cursor:pointer; }
table { width:100%; border-collapse: collapse; background:white; }
th, td { padding:.75rem; border-bottom:1px solid #e4e7ec; text-align:left; vertical-align:top; }
th { cursor:pointer; user-select:none; background:#f8fafc; }
.flash { padding:.75rem 1rem; border-radius:8px; margin:.75rem 0; }
.flash.info { background:#eff6ff; } .flash.error { background:#fee2e2; } .flash.success { background:#dcfce7; }
.inline-upload { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; align-items:end; }
.pager { display:flex; gap:.5rem; margin:.75rem 0; align-items:center; }
