/* NiSEC shared base. Palette retained from css/brand-system.css. */
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-ExtraLight.ttf') format('truetype');font-style:normal;font-weight:200;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-ExtraLightIt.ttf') format('truetype');font-style:italic;font-weight:200;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-Light.ttf') format('truetype');font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-LightIt.ttf') format('truetype');font-style:italic;font-weight:300;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-It.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-Semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-SemiboldIt.ttf') format('truetype');font-style:italic;font-weight:600;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-BoldIt.ttf') format('truetype');font-style:italic;font-weight:700;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-Black.ttf') format('truetype');font-style:normal;font-weight:900;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/SourceSans3-BlackIt.ttf') format('truetype');font-style:italic;font-weight:900;font-display:swap}
:root{--bg:#06111f;--panel:#0b2131;--text:#f5fbff;--muted:#9fb2c0;--accent:#55c7ff;--line:rgba(116,206,255,.25);--radius:12px;--space:8px;--success:#238849;--inactive:#687582}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'Source Sans 3',sans-serif;line-height:1.5}
button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.ns-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);text-decoration:none;cursor:pointer}
.ns-button--primary{background:linear-gradient(90deg,#4ebeea,#2f83aa);color:#04111b;font-weight:700}
.ns-button:disabled{opacity:.55;cursor:not-allowed}
.ns-field{display:grid;gap:8px}.ns-field input,.ns-field select,.ns-field textarea{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);width:100%}
.ns-table-wrap{overflow:auto}.ns-table{width:100%;border-collapse:collapse}.ns-table th,.ns-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}
.ns-switch{display:inline-flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}.ns-switch input{appearance:none;width:48px;height:28px;border:2px solid transparent;border-radius:99px;background:var(--inactive);position:relative;flex-shrink:0;cursor:pointer}
.ns-switch input::before{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;background:white;border-radius:50%;transition:transform .15s}
.ns-switch input:checked{background:var(--success)}.ns-switch input:checked::before{transform:translateX(20px)}.ns-switch input:disabled{opacity:.5;cursor:not-allowed}
.ns-message{padding:16px;border:1px solid var(--line);border-radius:var(--radius)}
@media(prefers-reduced-motion:reduce){.ns-switch input::before{transition:none}}
@media(forced-colors:active){.ns-switch input{appearance:auto}.ns-switch input::before{display:none}}

/* Shared components; application surfaces are slightly lighter than the public site. */
.theme-application{--bg:#102434;--panel:#183548;--muted:#b8cbd8;--line:rgba(151,213,247,.35)}
.ns-button--light{background:#e4f2fa;color:#102434;border-color:#e4f2fa}
.links a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}

/* Semantic actions retain readable labels; colour is not the sole status signal. */
.ns-button--success{background:#176b3b;color:#fff;border-color:#65c48c}
.ns-button--danger{background:#a32632;color:#fff;border-color:#f69ca4}
.ns-button--warning{background:#f3ca59;color:#17212a;border-color:#f3ca59}
.ns-button--ghost{background:transparent;color:var(--text)}
.ns-button--dark{background:#06111f;color:#f5fbff}
.ns-caption{font-size:.8125rem;line-height:1.5;color:var(--muted)}
.ns-note{font-weight:300;font-style:italic}
.ns-eyebrow{font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.ns-small-caps{font-variant-caps:small-caps}
.ns-display{font-size:clamp(2.5rem,7vw,6.25rem);line-height:1.05;font-weight:900}
