:root {
  --bg: #e6ece0;
  --card: #f4f6ee;
  --ink: #1d1f1c;
  --muted: #4f5a4c;
  --line: #cfd8c6;
  --brand: #1f6f50;
  --brand-ink: #ffffff;
  --soft: #d9e8dc;
  --warn: #8f3417;
  --radius: 12px;
}
/* Theme: follows the device unless the member picks Light or Dark (Account → Appearance). */
:root { color-scheme: light; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #141614;
    --card: #1d201d;
    --ink: #eceee9;
    --muted: #a3a89f;
    --line: #2f332e;
    --brand: #4fb38a;
    --brand-ink: #0d1a14;
    --soft: #1f2f27;
    --warn: #f08a63;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #141614;
  --card: #1d201d;
  --ink: #eceee9;
  --muted: #a3a89f;
  --line: #2f332e;
  --brand: #4fb38a;
  --brand-ink: #0d1a14;
  --soft: #1f2f27;
  --warn: #f08a63;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
a { color: var(--brand); }
header.site {
  border-bottom: 1px solid var(--line);
  background: var(--card);
}
header.site .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; padding-top: 12px; padding-bottom: 12px; }
.logo { font-weight: 700; text-decoration: none; color: var(--ink); margin-right: auto; order: 1; }
/* Account icon (or Sign in) sits top right, on the same line as the name. Links go on their own row on phones. */
.head-auth { order: 2; display: flex; align-items: center; }
header.site nav { order: 3; flex-basis: 100%; }
@media (min-width: 760px) {
  .logo { margin-right: 0; }
  header.site nav { order: 2; flex-basis: auto; margin-left: auto; }
  .head-auth { order: 3; }
}
.logo span { color: var(--brand); }
nav a { text-decoration: none; color: var(--muted); font-size: 15px; }
nav a.active, nav a:hover { color: var(--ink); }
nav { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; }
.wrap { max-width: 980px; margin: 0 auto; padding: 0 16px; }
main { padding: 28px 0 60px; }
h1 { font-size: 28px; line-height: 1.2; margin: 0 0 8px; }
h2 { font-size: 20px; margin: 28px 0 10px; }
.lede { color: var(--muted); font-size: 18px; margin: 0 0 20px; }
.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}
.grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.btn {
  display: inline-block;
  border: 1px solid var(--brand);
  background: var(--brand);
  color: var(--brand-ink);
  padding: 9px 16px;
  border-radius: 999px;
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.btn.ghost { background: transparent; color: var(--brand); }
.btn.small { padding: 5px 12px; font-size: 14px; }
.btn.danger { background: transparent; color: var(--warn); border-color: var(--warn); }
.btn:disabled { opacity: .5; cursor: default; }
label { display: block; font-size: 14px; font-weight: 600; margin: 12px 0 4px; }
input, select, textarea {
  width: 100%;
  font: inherit;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
}
textarea { min-height: 80px; }
.row { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.row > * { flex: 1 1 160px; }
.tag {
  display: inline-block;
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--soft);
  color: var(--brand);
  margin: 2px 4px 2px 0;
}
.muted { color: var(--muted); }
.small { font-size: 14px; }
.notice { padding: 12px 14px; border-radius: 8px; background: var(--soft); margin: 12px 0; }
.notice.error { background: transparent; border: 1px solid var(--warn); color: var(--warn); }
dl.facts { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0; }
dl.facts dt { color: var(--muted); }
dl.facts dd { margin: 0; }
.stage-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 16px; }
.stage-tabs button {
  font: inherit; font-size: 14px; padding: 5px 12px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--card); color: var(--ink); cursor: pointer;
}
.stage-tabs button.on { background: var(--brand); color: var(--brand-ink); border-color: var(--brand); }
.entry h2, .entry h3 { margin: 0 0 4px; font-size: 18px; }
.entry .actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.copy { cursor: pointer; text-decoration: underline dotted; font: inherit; color: var(--brand); background: none; border: 0; padding: 6px 0; text-align: left; word-break: break-all; min-height: 32px; }
.qr-box { display: grid; place-items: center; background: #fff; border-radius: 8px; padding: 12px; }
.qr-box img, .qr-box svg { width: 220px; height: 220px; }
footer.site { border-top: 1px solid var(--line); padding: 20px 0 40px; color: var(--muted); font-size: 14px; }
.hidden { display: none !important; }
.prose { max-width: 760px; }
.prose p, .prose li { line-height: 1.65; }
.table-wrap { overflow-x: auto; margin: 8px 0 16px; }
.table-wrap table, table.data { border-collapse: collapse; width: 100%; font-size: 15px; }
.table-wrap th, .table-wrap td, table.data th, table.data td { text-align: left; vertical-align: top; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.table-wrap th, table.data th { font-size: 13px; color: var(--muted); font-weight: 600; }
footer.site a { color: var(--muted); }
.check-row { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; margin: 14px 0; }
.check-row input { width: auto; margin-top: 4px; }
dialog { border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); color: var(--ink); width: min(560px, 92vw); padding: 20px; }
dialog::backdrop { background: rgba(0,0,0,.45); }

@media (max-width: 560px) { .hide-sm { display: none; } }

.pw-wrap { position: relative; }
.pw-wrap input { padding-right: 72px; }
.pw-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--brand); font: inherit; font-size: 14px; font-weight: 600; padding: 8px 10px; cursor: pointer; min-height: 40px; }

/* Tap-to-select option chips */
.choices { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 2px; }
.choice { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 500; font-size: 15px;
  padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg); cursor: pointer; min-height: 40px; }
.choice input { width: auto; margin: 0; accent-color: var(--brand); }
.choice:has(input:checked) { border-color: var(--brand); background: var(--soft); color: var(--brand); }
.add-choice { display: flex; gap: 8px; margin-top: 8px; }
.add-choice input { flex: 1; }
/* Keep date boxes inside their column (iPhone/iPad Safari draws them wider by default) */
input[type="date"] { -webkit-appearance: none; appearance: none; display: block; min-width: 0; max-width: 100%; min-height: 44px; text-align: left; }
input[type="date"]::-webkit-date-and-time-value { text-align: left; }
.row > * { min-width: 0; }

/* Accessibility: bigger tap areas, visible keyboard focus, skip link */
nav a { display: inline-block; padding: 10px 2px; }
footer.site a { display: inline-block; padding: 8px 0; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; accent-color: var(--brand); flex: none; }
.check-row input { width: 20px; margin-top: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, .choice:has(input:focus-visible) {
  outline: 3px solid var(--brand); outline-offset: 2px;
}
.skip-link { position: absolute; left: 8px; top: -60px; z-index: 10; background: var(--brand); color: var(--brand-ink); padding: 10px 14px; border-radius: 8px; font-weight: 600; }
.skip-link:focus { top: 8px; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
main:focus { outline: none; }
.tag.verified { background: transparent; border: 1px solid var(--brand); color: var(--brand); font-weight: 600; }
.tag.stale { background: transparent; border: 1px solid var(--line); color: var(--muted); }
/* Comparison tables: both program columns always the same width, text left-aligned */
table.data.compare { table-layout: fixed; width: 100%; }
table.data.compare col.c-label { width: 28%; }
table.data.compare col.c-prog { width: 36%; }
table.data.compare th, table.data.compare td { text-align: left; vertical-align: top; overflow-wrap: break-word; }
table.data.compare td { overflow-wrap: anywhere; }
table.data.compare thead th { font-size: 15px; color: var(--ink); border-bottom: 2px solid var(--line); }
table.data.compare tbody th { font-size: 13px; color: var(--muted); font-weight: 600; }
table.data.compare td + td { border-left: 1px solid var(--line); }
table.data.compare tbody tr:nth-child(even) { background: var(--bg); }
@media (max-width: 560px) {
  table.data.compare col.c-label { width: 27%; }
  table.data.compare col.c-prog { width: 36.5%; }
  table.data.compare tbody th { font-size: 12px; }
  table.data.compare th, table.data.compare td { padding: 8px 6px; font-size: 14px; }
}
/* Account button (round initial) in the top-right of the header */
.avatar { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0 !important; border-radius: 50%;
  background: var(--brand); color: var(--brand-ink) !important; font-weight: 700; font-size: 17px; text-decoration: none; }
.avatar.active { outline: 3px solid var(--soft); }
.btn.is-done, .copy.is-done { background: var(--soft); color: var(--brand); border-color: var(--brand); }

/* Topic picker (Passport, Account) */
details.tp { border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); margin: 4px 0 2px; }
details.tp > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; min-height: 48px; }
details.tp > summary::-webkit-details-marker { display: none; }
.tp-picked { display: flex; flex-wrap: wrap; gap: 6px; }
.tp-picked .tag { margin: 0; }
.tp-edit { flex: none; font-size: 14px; font-weight: 600; color: var(--brand); }
.tp-panel { padding: 0 12px 12px; border-top: 1px solid var(--line); }
.tp-search { margin-top: 10px; }
.tp-group { border-bottom: 1px solid var(--line); }
.tp-group > summary { cursor: pointer; padding: 10px 2px; font-weight: 600; min-height: 44px; }
.tp-gcount { font-weight: 400; color: var(--brand); font-size: 14px; }
.tp-group .choices { padding: 0 0 10px; }
.tp-own { display: flex; gap: 8px; margin-top: 10px; }
.tp-own input { flex: 1; }
.tp-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; }
.choice.tp-off { opacity: .45; }
/* Compact chips so several fit on one line */
.choices { gap: 6px; }
.choice { padding: 6px 12px; font-size: 14px; }
/* A select turned into chips stays in the page for forms and code, but is invisible. */
select.chip-src { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; margin: 0; padding: 0; border: 0; }
/* "We kept your unsaved changes" note */
.draft-note { background: var(--soft); border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin: 0 0 12px; }
.draft-note button { border: 0; background: none; padding: 6px 4px; font: inherit; font-weight: 600; color: var(--brand); text-decoration: underline; cursor: pointer; min-height: 36px; }

/* Style themes (Account → Appearance). Same layout and features, different colors. */
:root[data-theme="rose"] {
  color-scheme: light;
  --bg: #f2d7e1; --card: #fbeef3; --ink: #2a1f24; --muted: #5f4a54; --line: #e6c4d1;
  --brand: #9c2c57; --brand-ink: #ffffff; --soft: #f6dbe6; --warn: #96321a;
}
:root[data-theme="usa"] {
  color-scheme: light;
  --bg: #f5f7fb; --card: #ffffff; --ink: #14213d; --muted: #4a5670; --line: #dde3ee;
  --brand: #1d3a8a; --brand-ink: #ffffff; --soft: #e6ecf8; --warn: #b22234;
}
:root[data-theme="tactical"] {
  color-scheme: dark;
  --bg: #121410; --card: #1b1e18; --ink: #e4e6dc; --muted: #a2a796; --line: #2e3328;
  --brand: #a3b86c; --brand-ink: #12140f; --soft: #262c1e; --warn: #e0a458;
}
:root[data-theme="tactical"] h1, :root[data-theme="tactical"] h2 { text-transform: uppercase; letter-spacing: .04em; }
:root[data-theme="tactical"] .card { border-radius: 6px; }
:root[data-theme="tactical"] .btn, :root[data-theme="tactical"] .choice { border-radius: 6px; }

/* Footer: three groups (Help & learning, How we work, Legal) */
.foot-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 6px 24px; align-items: start; }
.foot-cols h2 { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink); margin: 0 0 2px; }
.foot-cols ul { list-style: none; margin: 0 0 10px; padding: 0; }
.foot-cols li a { display: inline-block; padding: 6px 0; min-height: 32px; }
.foot-note { margin: 10px 0 0; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13px; }

/* ---------- Textures (subtle, behind content; cards stay solid so text stays easy to read) ---------- */
body { background-image: var(--tex, none); background-attachment: scroll; }
:root { --tex: radial-gradient(rgba(31, 111, 80, .16) 1.1px, transparent 1.5px); }
body { background-size: var(--tex-size, 22px 22px); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --tex: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.3px); } }
:root[data-theme="dark"] { --tex: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.3px); }
:root[data-theme="light"] { --tex: radial-gradient(rgba(31, 111, 80, .16) 1.1px, transparent 1.5px); }

/* Rose: scattered petals */
:root[data-theme="rose"] { --tex: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cellipse cx='30' cy='22' rx='4.4' ry='8' transform='rotate%280 30 30%29' fill='%23d48aa7' opacity='0.42'/%3E%3Cellipse cx='30' cy='22' rx='4.4' ry='8' transform='rotate%2872 30 30%29' fill='%23d48aa7' opacity='0.42'/%3E%3Cellipse cx='30' cy='22' rx='4.4' ry='8' transform='rotate%28144 30 30%29' fill='%23d48aa7' opacity='0.42'/%3E%3Cellipse cx='30' cy='22' rx='4.4' ry='8' transform='rotate%28216 30 30%29' fill='%23d48aa7' opacity='0.42'/%3E%3Cellipse cx='30' cy='22' rx='4.4' ry='8' transform='rotate%28288 30 30%29' fill='%23d48aa7' opacity='0.42'/%3E%3Ccircle cx='30' cy='30' r='3.6' fill='%23b8587f' opacity='0.42'/%3E%3Cellipse cx='90' cy='82.5' rx='3.0250000000000004' ry='5.5' transform='rotate%280 90 88%29' fill='%23cf7fa0' opacity='0.34'/%3E%3Cellipse cx='90' cy='82.5' rx='3.0250000000000004' ry='5.5' transform='rotate%2872 90 88%29' fill='%23cf7fa0' opacity='0.34'/%3E%3Cellipse cx='90' cy='82.5' rx='3.0250000000000004' ry='5.5' transform='rotate%28144 90 88%29' fill='%23cf7fa0' opacity='0.34'/%3E%3Cellipse cx='90' cy='82.5' rx='3.0250000000000004' ry='5.5' transform='rotate%28216 90 88%29' fill='%23cf7fa0' opacity='0.34'/%3E%3Cellipse cx='90' cy='82.5' rx='3.0250000000000004' ry='5.5' transform='rotate%28288 90 88%29' fill='%23cf7fa0' opacity='0.34'/%3E%3Ccircle cx='90' cy='88' r='2.475' fill='%23b8587f' opacity='0.34'/%3E%3Ccircle cx='92' cy='26' r='2.2' fill='%23c56d92' opacity='.4'/%3E%3Ccircle cx='22' cy='96' r='1.8' fill='%23c56d92' opacity='.4'/%3E%3Ccircle cx='60' cy='60' r='1.6' fill='%23c56d92' opacity='.35'/%3E%3C/svg%3E"); --tex-size: 120px 120px; }
:root[data-theme="rose"] header.site { background-image: linear-gradient(180deg, #fbeef3 0%, #f6dde7 100%); }
:root[data-theme="rose"] .card { box-shadow: 0 1px 2px rgba(156, 44, 87, .08), 0 8px 22px rgba(156, 44, 87, .10); }

/* Stars & Stripes: star field, navy starred header with a stripe band */
:root[data-theme="usa"] { --tex: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cpolygon points='20.0,14.0 21.5,18.0 25.7,18.1 22.4,20.8 23.5,24.9 20.0,22.5 16.5,24.9 17.6,20.8 14.3,18.1 18.5,18.0' fill='%231d3a8a' opacity='0.06'/%3E%3Cpolygon points='60.0,54.0 61.5,58.0 65.7,58.1 62.4,60.8 63.5,64.9 60.0,62.5 56.5,64.9 57.6,60.8 54.3,58.1 58.5,58.0' fill='%231d3a8a' opacity='0.06'/%3E%3Cpolygon points='60.0,17.0 60.7,19.0 62.9,19.1 61.2,20.4 61.8,22.4 60.0,21.3 58.2,22.4 58.8,20.4 57.1,19.1 59.3,19.0' fill='%23b22234' opacity='0.06'/%3E%3Cpolygon points='20.0,57.0 20.7,59.0 22.9,59.1 21.2,60.4 21.8,62.4 20.0,61.3 18.2,62.4 18.8,60.4 17.1,59.1 19.3,59.0' fill='%23b22234' opacity='0.06'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='160'%3E%3Cdefs%3E%3ClinearGradient id='f' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='.22' stop-color='%23fff' stop-opacity='.22'/%3E%3Cstop offset='.4' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='.72' stop-color='%231d3a8a' stop-opacity='.05'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpolygon points='0,-20.0 10,-18.6 20,-17.2 30,-15.9 40,-14.7 50,-13.6 60,-12.7 70,-12.0 80,-11.4 90,-11.1 100,-11.0 110,-11.1 120,-11.4 130,-12.0 140,-12.7 150,-13.6 160,-14.7 170,-15.9 180,-17.2 190,-18.6 200,-20.0 210,-21.4 220,-22.8 230,-24.1 240,-25.3 250,-26.4 260,-27.3 270,-28.0 280,-28.6 290,-28.9 300,-29.0 310,-28.9 320,-28.6 330,-28.0 340,-27.3 350,-26.4 360,-25.3 370,-24.1 380,-22.8 390,-21.4 400,-20.0 400,20.0 390,18.6 380,17.2 370,15.9 360,14.7 350,13.6 340,12.7 330,12.0 320,11.4 310,11.1 300,11.0 290,11.1 280,11.4 270,12.0 260,12.7 250,13.6 240,14.7 230,15.9 220,17.2 210,18.6 200,20.0 190,21.4 180,22.8 170,24.1 160,25.3 150,26.4 140,27.3 130,28.0 120,28.6 110,28.9 100,29.0 90,28.9 80,28.6 70,28.0 60,27.3 50,26.4 40,25.3 30,24.1 20,22.8 10,21.4 0,20.0' fill='%23b22234' opacity='.10'/%3E%3Cpolygon points='0,60.0 10,61.4 20,62.8 30,64.1 40,65.3 50,66.4 60,67.3 70,68.0 80,68.6 90,68.9 100,69.0 110,68.9 120,68.6 130,68.0 140,67.3 150,66.4 160,65.3 170,64.1 180,62.8 190,61.4 200,60.0 210,58.6 220,57.2 230,55.9 240,54.7 250,53.6 260,52.7 270,52.0 280,51.4 290,51.1 300,51.0 310,51.1 320,51.4 330,52.0 340,52.7 350,53.6 360,54.7 370,55.9 380,57.2 390,58.6 400,60.0 400,100.0 390,98.6 380,97.2 370,95.9 360,94.7 350,93.6 340,92.7 330,92.0 320,91.4 310,91.1 300,91.0 290,91.1 280,91.4 270,92.0 260,92.7 250,93.6 240,94.7 230,95.9 220,97.2 210,98.6 200,100.0 190,101.4 180,102.8 170,104.1 160,105.3 150,106.4 140,107.3 130,108.0 120,108.6 110,108.9 100,109.0 90,108.9 80,108.6 70,108.0 60,107.3 50,106.4 40,105.3 30,104.1 20,102.8 10,101.4 0,100.0' fill='%23b22234' opacity='.10'/%3E%3Cpolygon points='0,140.0 10,141.4 20,142.8 30,144.1 40,145.3 50,146.4 60,147.3 70,148.0 80,148.6 90,148.9 100,149.0 110,148.9 120,148.6 130,148.0 140,147.3 150,146.4 160,145.3 170,144.1 180,142.8 190,141.4 200,140.0 210,138.6 220,137.2 230,135.9 240,134.7 250,133.6 260,132.7 270,132.0 280,131.4 290,131.1 300,131.0 310,131.1 320,131.4 330,132.0 340,132.7 350,133.6 360,134.7 370,135.9 380,137.2 390,138.6 400,140.0 400,180.0 390,178.6 380,177.2 370,175.9 360,174.7 350,173.6 340,172.7 330,172.0 320,171.4 310,171.1 300,171.0 290,171.1 280,171.4 270,172.0 260,172.7 250,173.6 240,174.7 230,175.9 220,177.2 210,178.6 200,180.0 190,181.4 180,182.8 170,184.1 160,185.3 150,186.4 140,187.3 130,188.0 120,188.6 110,188.9 100,189.0 90,188.9 80,188.6 70,188.0 60,187.3 50,186.4 40,185.3 30,184.1 20,182.8 10,181.4 0,180.0' fill='%23b22234' opacity='.10'/%3E%3Crect width='400' height='160' fill='url%28%23f%29'/%3E%3C/svg%3E"); --tex-size: 80px 80px, 400px 160px; }
:root[data-theme="usa"] header.site { background-color: #1d3a8a; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpolygon points='10.0,8.0 11.0,10.6 13.8,10.8 11.6,12.5 12.4,15.2 10.0,13.7 7.6,15.2 8.4,12.5 6.2,10.8 9.0,10.6' fill='%23ffffff' opacity='0.16'/%3E%3Cpolygon points='30.0,26.0 31.0,28.6 33.8,28.8 31.6,30.5 32.4,33.2 30.0,31.7 27.6,33.2 28.4,30.5 26.2,28.8 29.0,28.6' fill='%23ffffff' opacity='0.16'/%3E%3C/svg%3E"); background-size: 40px 40px; }
:root[data-theme="usa"] header.site .logo, :root[data-theme="usa"] header.site nav a { color: #ffffff; }
:root[data-theme="usa"] header.site nav a:not(.active):not(:hover) { color: #d7def0; }
:root[data-theme="usa"] header.site .logo span { color: #ff8c95; }
:root[data-theme="usa"] header.site .avatar, :root[data-theme="usa"] header.site .avatar span, :root[data-theme="usa"] header.site .head-auth .btn { background: #ffffff; color: #1d3a8a !important; }
:root[data-theme="usa"] header.site { border-bottom: 0; box-shadow: none; margin-bottom: 0; }
:root[data-theme="usa"] header.site::after { content: ""; display: block; height: 9px; background: repeating-linear-gradient(180deg, #b22234 0 3px, #ffffff 3px 6px); }
:root[data-theme="usa"] .card { border-top: 3px solid #b22234; }

/* Tactical: topographic map lines, faint grid on cards */
:root[data-theme="tactical"] { --tex: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='220'%3E%3Cpolyline points='70.8,70.0 71.1,72.2 69.6,74.2 67.6,75.7 65.2,76.8 62.5,76.9 60.0,76.2 57.9,75.8 55.2,76.2 51.6,76.3 49.2,74.7 49.3,72.1 50.8,70.0 51.8,68.3 52.3,66.7 53.4,65.1 55.2,63.8 57.3,62.4 60.0,61.2 63.1,61.3 65.2,63.2 65.8,65.7 66.5,67.2 68.6,68.3 70.8,70.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='84.8,70.0 85.5,75.1 82.1,79.6 77.4,83.1 72.0,85.5 65.7,85.8 60.0,84.1 55.3,83.3 49.0,84.3 40.7,84.4 35.1,80.8 35.4,74.9 38.8,70.0 41.1,66.2 42.3,62.3 44.9,58.7 49.0,55.7 53.7,52.5 60.0,49.6 67.2,49.9 72.0,54.5 73.3,60.0 75.0,63.5 79.8,66.0 84.8,70.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='98.9,70.0 99.9,78.0 94.6,85.0 87.3,90.4 78.7,94.3 68.9,94.8 60.0,92.1 52.6,90.7 42.7,92.4 29.9,92.6 21.1,86.9 21.5,77.7 26.9,70.0 30.4,64.0 32.3,58.0 36.3,52.3 42.7,47.6 50.2,42.6 60.0,38.1 71.2,38.6 78.7,45.7 80.8,54.4 83.4,59.9 91.1,63.8 98.9,70.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='112.9,70.0 114.3,80.9 107.1,90.4 97.1,97.8 85.5,103.1 72.0,103.7 60.0,100.1 49.9,98.2 36.5,100.6 19.0,100.8 7.0,93.0 7.6,80.5 14.9,70.0 19.7,61.9 22.3,53.7 27.8,45.9 36.5,39.4 46.7,32.7 60.0,26.6 75.3,27.2 85.5,36.9 88.3,48.8 91.9,56.2 102.3,61.5 112.9,70.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='127.0,70.0 128.7,83.8 119.6,95.8 106.9,105.2 92.2,111.9 75.2,112.7 60.0,108.1 47.2,105.7 30.2,108.7 8.1,108.9 -7.1,99.0 -6.3,83.3 3.0,70.0 9.0,59.7 12.3,49.3 19.3,39.4 30.2,31.3 43.2,22.8 60.0,15.1 79.3,15.9 92.2,28.1 95.8,43.2 100.3,52.5 113.5,59.2 127.0,70.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='141.0,70.0 143.2,86.7 132.1,101.2 116.8,112.6 99.0,120.7 78.4,121.6 60.0,116.1 44.6,113.2 24.0,116.8 -2.8,117.1 -21.1,105.1 -20.2,86.1 -9.0,70.0 -1.7,57.6 2.2,45.0 10.7,33.0 24.0,23.2 39.6,12.9 60.0,3.6 83.4,4.6 99.0,19.3 103.3,37.5 108.8,48.9 124.7,57.0 141.0,70.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='155.0,70.0 157.6,89.6 144.6,106.7 126.6,120.0 105.8,129.4 81.6,130.6 60.0,124.1 41.9,120.7 17.8,124.9 -13.7,125.2 -35.2,111.2 -34.1,88.9 -21.0,70.0 -12.4,55.4 -7.8,40.7 2.2,26.6 17.8,15.1 36.1,3.1 60.0,-7.9 87.4,-6.8 105.8,10.6 110.8,31.9 117.2,45.2 135.9,54.7 155.0,70.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='182.3,150.0 181.6,152.3 178.9,153.9 176.4,154.8 174.4,155.8 172.3,156.5 170.0,156.8 167.5,157.0 164.4,157.2 161.3,156.5 159.9,154.4 160.9,151.8 162.3,150.0 162.2,148.4 161.6,146.4 162.3,144.2 164.4,142.8 167.2,142.0 170.0,141.8 172.7,142.5 174.4,144.2 175.4,145.9 177.2,146.9 180.2,147.9 182.3,150.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='198.3,150.0 196.6,155.3 190.5,158.9 184.7,161.0 180.2,163.3 175.4,165.0 170.0,165.6 164.3,166.0 157.2,166.6 150.0,165.0 146.8,160.1 149.1,154.2 152.3,150.0 152.2,146.4 150.6,141.6 152.2,136.6 157.2,133.4 163.5,131.7 170.0,131.1 176.2,132.7 180.2,136.7 182.5,140.6 186.6,142.8 193.5,145.3 198.3,150.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='214.3,150.0 211.6,158.4 202.0,163.9 193.0,167.3 186.0,170.8 178.4,173.5 170.0,174.4 161.0,175.1 150.0,176.0 138.6,173.5 133.6,165.7 137.3,156.6 142.3,150.0 142.1,144.4 139.7,136.9 142.1,129.1 150.0,124.0 159.8,121.3 170.0,120.4 179.7,122.9 186.0,129.2 189.5,135.3 196.0,138.7 206.8,142.6 214.3,150.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='230.3,150.0 226.6,161.4 213.6,168.9 201.4,173.5 191.8,178.3 181.4,182.0 170.0,183.2 157.8,184.1 142.8,185.4 127.3,182.0 120.5,171.4 125.5,159.0 132.3,150.0 132.0,142.4 128.8,132.1 132.1,121.5 142.8,114.6 156.1,111.0 170.0,109.7 183.2,113.1 191.8,121.7 196.6,130.1 205.4,134.7 220.1,139.9 230.3,150.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='246.4,150.0 241.7,164.4 225.2,173.9 209.7,179.8 197.5,185.8 184.5,190.5 170.0,192.0 154.6,193.2 135.5,194.8 116.0,190.5 107.4,177.1 113.6,161.3 122.4,150.0 121.9,140.3 117.8,127.4 122.0,114.0 135.5,105.2 152.4,100.7 170.0,99.0 186.7,103.3 197.5,114.2 203.7,124.8 214.8,130.6 233.4,137.3 246.4,150.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='262.4,150.0 256.7,167.4 236.8,178.9 218.0,186.0 203.3,193.3 187.5,199.0 170.0,200.8 151.3,202.2 128.3,204.1 104.6,199.0 94.2,182.8 101.8,163.7 112.4,150.0 111.8,138.3 106.9,122.7 111.9,106.5 128.3,95.9 148.7,90.3 170.0,88.3 190.2,93.6 203.3,106.7 210.7,119.5 224.1,126.6 246.7,134.6 262.4,150.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3Cpolyline points='278.4,150.0 271.7,170.4 248.3,183.9 226.3,192.2 209.1,200.8 190.5,207.5 170.0,209.6 148.1,211.3 121.1,213.5 93.3,207.5 81.1,188.5 90.0,166.1 102.4,150.0 101.7,136.3 95.9,117.9 101.9,98.9 121.1,86.5 145.0,80.0 170.0,77.6 193.7,83.8 209.1,99.2 217.8,114.2 233.5,122.5 260.0,131.9 278.4,150.0' fill='none' stroke='%23a3b86c' stroke-width='1' opacity='.09'/%3E%3C/svg%3E"); --tex-size: 240px 220px; }
:root[data-theme="tactical"] header.site { background-image: repeating-linear-gradient(45deg, rgba(163, 184, 108, .05) 0 2px, transparent 2px 8px); }
:root[data-theme="tactical"] .card { background-image: linear-gradient(rgba(163, 184, 108, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(163, 184, 108, .035) 1px, transparent 1px); background-size: 16px 16px; }
:root[data-theme="tactical"] .btn { letter-spacing: .04em; text-transform: uppercase; font-size: 15px; }
:root[data-theme="usa"] header.site .btn { background: #ffffff; color: #1d3a8a; border-color: #ffffff; }
:root:not([data-theme]) .card, :root[data-theme="light"] .card { box-shadow: 0 1px 2px rgba(31, 111, 80, .06), 0 6px 18px rgba(31, 111, 80, .07); }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) .card { box-shadow: none; } }
