@charset "UTF-8";
/* Shared design tokens. Foundation owns layout, controls and responsive grids. */
:root {
    color-scheme: light;
    --superfluo-bg: #f6f8fa;
    --superfluo-surface: #fff;
    --superfluo-text: #192a3c;
    --superfluo-muted: #576775;
    --superfluo-primary: #175a6c;
    --superfluo-primary-hover: #104554;
    --superfluo-border: #dce3e8;
    --superfluo-soft: #eef3f5;
    --superfluo-header: #142b3d;
    --superfluo-danger: #a62c33;
    --superfluo-success: #246449;
    --superfluo-radius: .5rem;
    --superfluo-control-height: 2.8rem;
    --superfluo-focus: 0 0 0 3px #38899c40;
}
html { scroll-behavior: smooth; }
body { background: var(--superfluo-bg); color: var(--superfluo-text); font: 1rem/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
h1,h2,h3,h4,h5,h6 { color: var(--superfluo-text); font-family: inherit; font-weight: 650; line-height: 1.2; letter-spacing: -.025em; }
h1 { font-size: clamp(1.8rem,3vw,2.75rem); margin: 0 0 .75rem; }
h2 { font-size: clamp(1.4rem,2vw,1.8rem); margin-bottom: 1rem; }
h3 { font-size: 1.15rem; }
a { color: var(--superfluo-primary); text-underline-offset: .18em; }
a:hover,a:focus { color: var(--superfluo-primary-hover); }
:focus-visible { outline: 3px solid #4d9cb0; outline-offset: 3px; }
.grid-container { max-width: 78rem; }
.button { background: var(--superfluo-primary); border-radius: var(--superfluo-radius); font-family: inherit; font-size: .95rem; font-weight: 600; line-height: 1.2; margin: 0; padding: .85rem 1.2rem; transition: background .15s; }
.button:hover,.button:focus { background: var(--superfluo-primary-hover); }
.button.hollow { border-color: var(--superfluo-primary); color: var(--superfluo-primary); }
.button.hollow:hover,.button.hollow:focus { background: var(--superfluo-soft); border-color: var(--superfluo-primary-hover); color: var(--superfluo-primary-hover); }
.button.small { padding: .65rem .9rem; font-size: .85rem; }
label,legend { color: var(--superfluo-text); font-size: .9rem; font-weight: 600; }
[type=text],[type=email],[type=password],[type=search],[type=tel],[type=number],[type=date],[type=datetime-local],select,textarea {
    color: var(--superfluo-text); background-color: var(--superfluo-surface); border: 1px solid var(--superfluo-border); border-radius: var(--superfluo-radius); box-shadow: none; font: inherit; min-height: var(--superfluo-control-height); margin-top: .4rem; margin-bottom: 1.3rem;
}
input:focus,select:focus,textarea:focus { border-color: var(--superfluo-primary); background: var(--superfluo-surface); box-shadow: var(--superfluo-focus); }
input[readonly] { background: var(--superfluo-soft); }
textarea { resize: vertical; }
input[type=checkbox] { accent-color: var(--superfluo-primary); width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin: .3rem 0 0; }
.help-text { color: var(--superfluo-muted); font-size: .8rem; font-style: normal; margin-top: -1rem; }
.fieldset { border: 1px solid var(--superfluo-border); border-radius: var(--superfluo-radius); }
table { border-collapse: collapse; width: 100%; font-size: .9rem; margin: 0; }
thead,tbody,tfoot { border: none; background: var(--superfluo-surface); }
thead { border-bottom: 1px solid var(--superfluo-border); background: var(--superfluo-soft); color: var(--superfluo-muted); }
thead th { font-size: .8rem; font-weight: 650; }
table th,table td { padding: 1rem; text-align: left; vertical-align: middle; }
table tbody tr, table tbody tr:nth-child(even) { border-bottom: 1px solid var(--superfluo-border); }
tbody tr:nth-child(even) { background: var(--superfluo-surface); }
table.hover tbody tr:hover { background: var(--superfluo-soft); }
.callout { border: 1px solid var(--superfluo-border); border-radius: var(--superfluo-radius); color: var(--superfluo-text); }
.callout.success { background: #edf7f1; color: #21583d; border-color: #bcdac8; }
.callout.alert { background: #fff1f0; color: #8b2931; border-color: #e8bec1; }
@media (prefers-color-scheme: dark) {
    :root { color-scheme: dark; --superfluo-bg:#111a24; --superfluo-surface:#182430; --superfluo-text:#e9eef4; --superfluo-muted:#a8b6c4; --superfluo-primary:#82c8d6; --superfluo-primary-hover:#b0e0e9; --superfluo-border:#344250; --superfluo-soft:#202f3d; --superfluo-header:#111d29; --superfluo-danger:#f4979d; --superfluo-success:#9ad8b5; }
    .button { color:#10212b; }
    .button:hover,.button:focus { color:#10212b; }
    select { background-image:none; appearance:auto; }
}
@media (prefers-reduced-motion: reduce) {html{scroll-behavior:auto;} *,*::before,*::after{transition:none!important;}}

/* Abide feedback follows the shared form palette, including dark mode. */
.form-error { color: var(--superfluo-danger); margin-top: -.8rem; margin-bottom: 1.3rem; }
.form-error.is-visible + .help-text, .superfluo-check + .form-error { margin-top: 0; }
.is-invalid-label { color: var(--superfluo-danger); }
input.is-invalid-input, select.is-invalid-input, textarea.is-invalid-input { border-color: var(--superfluo-danger); background-color: var(--superfluo-surface); }
