/* DCPS Scholarships - system fonts only, no external assets */
:root { --ink:#1d2733; --muted:#5b6673; --line:#d7dde4; --bg:#f6f8fa; --brand:#1f4e79; --brand2:#2f6fa8;
        --ok:#1e6b3a; --err:#a4262c; --apollo:#7a1f2b; --dchs:#1f4e79; --both:#4b3f72; }
* { box-sizing: border-box; }
html { font-size: 100%; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
       color:var(--ink); background:var(--bg); line-height:1.5; }
.wrap { max-width: 72rem; margin: 0 auto; padding: 0 1rem; }
a { color: var(--brand2); }
a:focus, button:focus, input:focus, select:focus, textarea:focus { outline: 3px solid #f2b600; outline-offset: 2px; }
.skip { position:absolute; left:-999px; } .skip:focus { left:1rem; top:1rem; background:#fff; padding:.5rem; z-index:10; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
header.site { background: var(--brand); color:#fff; }
header.site .wrap { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem 1rem; padding-top:.75rem; padding-bottom:.75rem; }
header.site .brand { color:#fff; font-weight:700; font-size:1.25rem; text-decoration:none; }
header.site .tag { color:#d6e4f0; font-size:.9rem; flex:1; }
header.site nav { display:flex; gap:1rem; align-items:center; }
header.site nav a, header.site .linklike { color:#fff; }
.devbar { background:#fff4ce; border-bottom:1px solid #e6d28a; text-align:center; font-size:.85rem; padding:.25rem; }
main { padding-top:1.25rem; padding-bottom:2rem; min-height:60vh; }
h1 { font-size:1.6rem; margin:.25rem 0 .5rem; } h2 { font-size:1.1rem; margin:1.25rem 0 .25rem; }
.lead { color:var(--muted); max-width:50rem; }
.muted { color:var(--muted); } .hint { color:var(--muted); font-size:.875rem; margin-top:.25rem; }
.filters { display:flex; flex-wrap:wrap; gap:.75rem; align-items:flex-end; background:#fff; border:1px solid var(--line);
           border-radius:8px; padding:.75rem; margin:1rem 0 .5rem; }
.field { display:flex; flex-direction:column; } .field.grow { flex:1 1 16rem; }
label { font-weight:600; font-size:.9rem; margin:.75rem 0 .25rem; display:block; }
.filters label { margin-top:0; }
input, select, textarea { font:inherit; padding:.5rem .6rem; border:1px solid #9aa5b1; border-radius:6px; background:#fff; width:100%; }
textarea { resize:vertical; }
button, .button { font:inherit; font-weight:600; background:var(--brand2); color:#fff; border:0; border-radius:6px;
                  padding:.55rem 1rem; cursor:pointer; text-decoration:none; display:inline-block; }
button.secondary { background:#55606b; } .danger, button.danger { background:var(--err); color:#fff; }
.linklike { background:none; border:0; padding:0; text-decoration:underline; font-weight:400; cursor:pointer; }
form.inline { display:inline; margin:0; }
.count { color:var(--muted); margin:.5rem 0; }
table.list { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
table.list th, table.list td { text-align:left; padding:.6rem .75rem; border-bottom:1px solid var(--line); vertical-align:top; }
table.list th { background:#eef2f6; font-size:.9rem; white-space:nowrap; } table.list th a { color:var(--ink); }
table.list tbody tr:nth-child(even) { background:#fafbfc; }
td.actions { white-space:nowrap; }
.badge { display:inline-block; font-size:.78rem; font-weight:700; padding:.1rem .5rem; border-radius:999px; color:#fff; white-space:nowrap; }
.badge.apollo { background:var(--apollo); } .badge.dchs { background:var(--dchs); } .badge.both { background:var(--both); }
.badge.current { background:var(--ok); } .badge.expired { background:#6b7280; }
.pill { font-size:.7rem; border:1px solid var(--line); border-radius:4px; padding:0 .3rem; color:var(--muted); }
.pager { display:flex; gap:1rem; justify-content:center; margin:1rem 0; }
.empty { background:#fff; border:1px dashed var(--line); padding:1rem; border-radius:8px; }
.flash { padding:.6rem .8rem; border-radius:6px; border:1px solid; }
.flash.ok { background:#e8f5ec; border-color:#a6d4b4; color:var(--ok); }
.flash.error { background:#fdecee; border-color:#f0b4b9; color:var(--err); }
.detail { background:#fff; border:1px solid var(--line); border-radius:8px; padding:1rem 1.25rem 1.5rem; max-width:52rem; }
.detail .meta { display:flex; gap:.5rem; }
dl.reqs { display:grid; grid-template-columns:repeat(auto-fit, minmax(9rem, 1fr)); gap:.5rem; margin:1rem 0; }
dl.reqs div { background:var(--bg); border:1px solid var(--line); border-radius:6px; padding:.5rem .75rem; }
dl.reqs dt { font-size:.8rem; color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
dl.reqs dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
.pre { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; }
.editbar { margin-top:1.5rem; display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.titlebar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.5rem; }
.editform { background:#fff; border:1px solid var(--line); border-radius:8px; padding:1rem 1.25rem; max-width:52rem; }
.editform fieldset { border:1px solid var(--line); border-radius:6px; margin:1rem 0; padding:.5rem 1rem 1rem; }
.editform legend { font-weight:700; }
label.radio { font-weight:400; display:flex; gap:.5rem; align-items:center; margin:.4rem 0; }
label.radio input { width:auto; }
.grid4 { display:grid; grid-template-columns:repeat(auto-fit, minmax(8rem,1fr)); gap:0 .75rem; }
.req { color:var(--muted); font-weight:400; font-size:.85rem; }
footer.site { border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; padding:1rem 0 2rem; background:#fff; }
footer .ver { float:right; }
@media (max-width: 640px) {
  table.list thead { position:absolute; left:-9999px; }
  table.list, table.list tbody, table.list tr, table.list td { display:block; width:100%; }
  table.list tr { border-bottom:1px solid var(--line); padding:.5rem 0; }
  table.list td { border:0; padding:.15rem .75rem; }
  table.list td[data-label]::before { content: attr(data-label) ": "; font-weight:700; color:var(--muted); font-size:.85rem; }
  table.list td:first-child::before { content:none; }
  table.list td:first-child a { font-weight:700; font-size:1.05rem; }
}
