/* assets/css/styles.css
===============================================================================
Global styles for SWG client portal. Keep selectors simple; mobile-first.
Theme colors derive from logo-inspired palette (adjust in :root as needed).
=============================================================================== */
:root{
  --swg-primary:#1d4ed8; /* deep blue */
  --swg-accent:#22c55e;  /* green accent */
  --swg-ink:#0f172a;     /* near-black */
  --swg-muted:#475569;   /* slate */
  --swg-bg:#f8fafc;      /* light bg */
  --swg-border:rgba(15,23,42,.08);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--swg-bg);color:var(--swg-ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Ubuntu,Arial,sans-serif;line-height:1.45}
a{color:var(--swg-primary);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:1rem}
header.site{background:#fff;border-bottom:1px solid var(--swg-border);position:sticky;top:0;z-index:50}
header .row{display:flex;gap:.75rem;align-items:center;justify-content:space-between}
.brand{display:flex;gap:.5rem;align-items:center}
.brand img{height:36px;width:auto}
.brand .title{font-weight:700;letter-spacing:.25px}
.nav a{padding:.5rem .75rem;border-radius:.5rem}
.nav a.active,.btn-primary{background:var(--swg-primary);color:#fff}
.btn{display:inline-block;padding:.5rem .75rem;border-radius:.5rem;border:1px solid var(--swg-border);background:#fff;color:var(--swg-ink);text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(.98)}
.btn-primary{border-color:transparent}
.btn-outline{background:transparent}
main{padding:1rem}
.grid{display:grid;gap:1rem}
@media(min-width:800px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}
.card{background:#fff;border:1px solid var(--swg-border);border-radius:.75rem;padding:1rem}
h1,h2,h3{margin:.2rem 0 .6rem}
.muted{color:var(--swg-muted)}
.small{font-size:.9rem}
.badge{display:inline-block;background:var(--swg-accent);color:#083344;border-radius:999px;padding:.2rem .6rem;font-weight:700;font-size:.75rem}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:.5rem;border-bottom:1px solid var(--swg-border);vertical-align:top}
.table th{text-align:left;color:var(--swg-muted);width:180px}
.input,.select,.textarea{width:100%;padding:.6rem .7rem;border:1px solid var(--swg-border);border-radius:.5rem;background:#fff}
.label{font-size:.85rem;color:var(--swg-muted);display:block;margin:.5rem 0 .25rem}
.form-row{display:flex;gap:.5rem;flex-wrap:wrap}
.notice-info{background:#eff6ff;border:1px solid #dbeafe;color:#1e3a8a;padding:.6rem .8rem;border-radius:.5rem;margin:.5rem 0}
.notice-error{background:#fef2f2;border:1px solid #fee2e2;color:#991b1b;padding:.6rem .8rem;border-radius:.5rem;margin:.5rem 0}
.notice-success{background:#ecfdf5;border:1px solid #d1fae5;color:#065f46;padding:.6rem .8rem;border-radius:.5rem;margin:.5rem 0}
.breadcrumbs{margin:.5rem 0 1rem}.breadcrumbs a{color:var(--swg-muted)}
.ann-strip{background:#0f172a;color:#fff;padding:.5rem .75rem;border-radius:.5rem}
footer.site{margin-top:3rem;padding:2rem 1rem;border-top:1px solid var(--swg-border);background:#fff;color:var(--swg-muted)}
/* subheader container spacing beneath site header */
.subheader-slot{margin:.5rem 0}
