/* Galileu Design System V4 — scoped Wave 1 adoption; derived from the frozen UX-R4 reference. */
:root {
  --g2-navy-950:#0A2038; --g2-navy-900:#123254; --g2-blue-700:#1B4F91; --g2-blue-600:#2563A8;
  --g2-ink:#1D2D40; --g2-muted:#617386; --g2-canvas:#F5F7FA; --g2-surface:#FFFFFF;
  --g2-surface-subtle:#F5F8FB; --g2-surface-elevated:#FFFFFF; --g2-surface-interactive:#F7FAFC;
  --g2-surface-contextual:#FFF9EC; --g2-border:#DCE3EA; --g2-border-strong:#C7D2DE;
  --g2-focus:#D99A18; --g2-space-1:4px; --g2-space-2:8px; --g2-space-3:12px;
  --g2-space-4:16px; --g2-space-5:24px; --g2-space-6:32px;
  --g2-font-sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --g2-type-display:clamp(34px,3vw,44px); --g2-type-page:clamp(30px,2.5vw,38px);
  --g2-type-section:22px; --g2-type-title:16px; --g2-type-body:14px; --g2-type-secondary:13px;
  --g2-type-caption:12px; --g2-type-label:12px; --g2-type-status:11px;
  --g2-radius-sm:8px; --g2-radius-md:12px; --g2-radius-lg:16px;
  --g2-shadow-1:0 1px 3px rgb(16 42 67 / 5%); --g2-shadow-2:0 8px 24px rgb(16 42 67 / 8%);
  --g2-content:1320px; --g2-control:44px; --g2-motion:150ms ease;
}
body.g2-page { margin:0; background:var(--g2-canvas); color:var(--g2-ink); font:400 var(--g2-type-body)/1.55 var(--g2-font-sans); }
.g2-app, .g2-app * { box-sizing:border-box; }
.g2-app { min-height:100vh; background:var(--g2-canvas); color:var(--g2-ink); }
.g2-app a { color:var(--g2-blue-700); text-underline-offset:3px; }
.g2-app a:focus-visible, .g2-app button:focus-visible, .g2-app input:focus-visible { outline:3px solid var(--g2-focus); outline-offset:3px; }
.g2-header { min-height:72px; display:flex; align-items:center; gap:var(--g2-space-5); padding:12px max(24px,calc((100% - var(--g2-content))/2)); background:var(--g2-navy-950); color:#fff; border-bottom:1px solid #28415C; box-shadow:0 3px 12px rgb(10 32 56 / 12%); }
.g2-brand { color:#fff!important; text-decoration:none; font-size:18px; letter-spacing:.01em; white-space:nowrap; }
.g2-brand strong { font-weight:800; }
.g2-header-context { margin-left:auto; color:#CBD8E5; font-size:var(--g2-type-secondary); }
.g2-identity { color:#E3ECF5; font-size:var(--g2-type-secondary); white-space:nowrap; }
.g2-main { width:min(100%,1480px); margin:0 auto; padding:var(--g2-space-5) 24px 56px; }
.g2-breadcrumb { display:flex; flex-wrap:wrap; gap:26px 8px; margin:0 0 18px; color:var(--g2-muted); font-size:var(--g2-type-caption); }
.g2-breadcrumb a { position:relative; color:var(--g2-muted); }
/* 44px touch area; the 26px row gap keeps the areas of a wrapped trail from overlapping (44px - 18.6px line). */
.g2-breadcrumb a::after { content:""; position:absolute; top:50%; right:0; left:0; min-height:var(--g2-control); transform:translateY(-50%); }
.g2-hero { padding:28px 32px; border:1px solid #28415C; border-radius:var(--g2-radius-lg); background:linear-gradient(115deg,var(--g2-navy-950),var(--g2-blue-700)); color:#fff; box-shadow:var(--g2-shadow-2); }
.g2-hero h1 { margin:8px 0; color:#fff; font-size:var(--g2-type-page); line-height:1.16; letter-spacing:-.025em; }
.g2-hero p { max-width:760px; margin:8px 0 0; color:#E3ECF5; font-size:15px; }
.g2-eyebrow { display:block; color:#BBD0E5; font-size:var(--g2-type-status); font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.g2-section { margin-top:28px; }
.g2-section>h2 { margin:0 0 14px; color:var(--g2-navy-900); font-size:var(--g2-type-section); line-height:1.25; }
.g2-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.g2-card, .g2-empty, .g2-login-card { min-width:0; padding:20px; border:1px solid var(--g2-border); border-radius:var(--g2-radius-md); background:var(--g2-surface); box-shadow:var(--g2-shadow-1); }
.g2-card h2 { margin:8px 0; color:var(--g2-navy-900); font-size:var(--g2-type-title); }
.g2-card p, .g2-empty p { color:var(--g2-muted); }
.g2-card .g2-eyebrow { color:var(--g2-blue-700); }
.g2-link { display:inline-flex; align-items:center; gap:8px; min-height:var(--g2-control); margin-top:8px; font-weight:750; }
.g2-status { display:inline-flex; align-items:center; min-height:28px; padding:4px 10px; border:1px solid var(--g2-border); border-radius:999px; background:var(--g2-surface-subtle); color:var(--g2-navy-900); font-size:var(--g2-type-status); font-weight:700; }
.g2-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.g2-chips span { display:inline-flex; align-items:center; min-height:32px; padding:4px 11px; border:1px solid #FFFFFF55; border-radius:999px; color:#fff; font-size:var(--g2-type-secondary); }
.g2-admin-grid { margin-top:24px; }
.g2-admin-grid .module { display:flex; min-height:96px; flex-direction:column; justify-content:center; padding:18px 20px; border:1px solid var(--g2-border); border-radius:var(--g2-radius-md); background:var(--g2-surface); box-shadow:var(--g2-shadow-1); color:var(--g2-navy-900); font-weight:750; text-decoration:none; transition:background-color var(--g2-motion),border-color var(--g2-motion),transform var(--g2-motion); }
.g2-admin-grid .module:hover { transform:translateY(-1px); border-color:var(--g2-border-strong); background:var(--g2-surface-interactive); }
.g2-admin-grid .module span { display:block; margin-top:10px; color:var(--g2-muted); font-size:var(--g2-type-secondary); font-weight:600; }
.logout-form { margin:0; flex:0 0 auto; }
.logout-form button, .g2-button { min-height:var(--g2-control); padding:0 18px; border:1px solid #8DA2B8; border-radius:var(--g2-radius-sm); background:var(--g2-blue-700); color:#fff; font:700 var(--g2-type-secondary)/1 var(--g2-font-sans); cursor:pointer; }
.logout-form button { border-color:#8DA2B8; background:transparent; }
/* Solid (primary) button rendered as a link: beats `.g2-app a` (0,1,1) without !important; secondary keeps its own colour. */
.g2-app a.g2-button:not(.g2-button--secondary) { color:#fff; }
.logout-form button:hover { background:#FFFFFF18; }
.g2-login-card { width:min(100%,480px); margin:clamp(28px,8vh,88px) auto 24px; padding:32px; box-shadow:var(--g2-shadow-2); }
.g2-login-card .g2-eyebrow { color:var(--g2-blue-700); }
.g2-login-card h1 { margin:8px 0; color:var(--g2-navy-900); font-size:var(--g2-type-page); line-height:1.15; }
.g2-login-card>p { color:var(--g2-muted); }
.g2-login-card form { display:grid; gap:10px; margin-top:22px; }
.g2-login-card label { margin-top:6px; color:var(--g2-navy-900); font-size:var(--g2-type-label); font-weight:700; }
.g2-login-card input { width:100%; min-height:var(--g2-control); padding:10px 12px; border:1px solid var(--g2-border-strong); border-radius:var(--g2-radius-sm); background:#fff; color:var(--g2-ink); font:inherit; }
.g2-login-card input:focus { border-color:var(--g2-blue-600); box-shadow:0 0 0 3px rgb(37 99 168 / 13%); }
.g2-login-card .g2-button { margin-top:8px; }
.g2-alert { margin:14px 0; padding:12px 14px; border:1px solid #E8C9C7; border-left:4px solid #A33A3A; border-radius:var(--g2-radius-sm); background:#FFF5F4; color:#782C2A; font-weight:650; }
@media (max-width:980px) { .g2-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .g2-main { padding-right:20px; padding-left:20px; } }
@media (max-width:600px) { .g2-header { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:12px 14px; } .g2-brand { font-size:16px; } .g2-header-context { grid-column:1; grid-row:2; margin:0; font-size:11px; } .g2-identity { grid-column:1; grid-row:3; font-size:11px; } .g2-header .logout-form { grid-column:2; grid-row:1/4; align-self:center; } .g2-main { padding:16px 14px 36px; } .g2-hero { padding:22px 20px; } .g2-hero h1, .g2-login-card h1 { font-size:30px; } .g2-card-grid { grid-template-columns:minmax(0,1fr); gap:12px; } .g2-card, .g2-empty { padding:17px; } .g2-login-card { margin:24px auto; padding:22px 18px; } }
@media (prefers-reduced-motion:reduce) { .g2-app *, .g2-app *::before, .g2-app *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
