/* Platform-wide visual contract. Loaded after each page's own layout styles.
   Programme layout, activity state, and semantic status colours stay local. */
:root, html[data-programme="foundation"] {
  --ink:#263c34; --ink-2:#43574e; --soft:#666f66; --faint:#777e75;
  --bg:#f7f5ef; --card:#fffefb; --card-2:#f0f1e9;
  --line:#dedfd4; --line-2:#ebebe2;
  --accent:#345747; --accent-2:#426653; --accent-ink:#2d5141;
  --accent-wash:#eaf0e6; --accent-line:#cbd8c8;
  --brand:#345747; --brand-dot:#b97c60;
  --indigo:#2d493c; --indigo-2:#3f5a4b; --navy:#2d493c;
  --vermilion:#a36349; --shu:#a36349;
  --gold:#997345; --gold-2:#ad8b5e; --gold-wash:#f5efdf; --gold-line:#ded2b7;
  --r:10px; --r-lg:14px; --r-sm:6px;
  --shadow-sm:0 1px 2px #263c3407; --shadow:0 3px 16px #263c3409; --shadow-lg:0 12px 32px #263c3414;
  --ring:0 0 0 3px #42665333;
  --fnd-bg:#f7f5ef; --fnd-surface:#fffefb; --fnd-ink:#263c34;
  --fnd-primary:#345747; --fnd-line:#dedfd4;
}
body { background:var(--bg); color:var(--ink); -webkit-font-smoothing:antialiased; }
::selection { background:#dbe6d6; color:#243d31; }
:focus-visible { outline:2px solid #426653; outline-offset:3px; }
body > header { background:#fffefb; backdrop-filter:none; box-shadow:none; border-color:var(--line); }
.card, .panel, .stat, .tile, .box { border-color:var(--line); box-shadow:var(--shadow-sm); }
.card, .panel { border-radius:var(--r-lg); }
h1,h2,h3 { color:var(--ink); }
.btn, button.primary, button.go, button.submit, input[type="submit"] {
  background-image:none !important; box-shadow:none; border-radius:8px;
}
button.primary, button.go, button.submit, input[type="submit"], .btn.green { background-color:var(--accent) !important; color:#fff; }
.btn.danger, button.danger, .msg.err, .pill.off { color:#943b31; background:#faeeea; border-color:#e7c7bf; }
input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { border-color:var(--line); border-radius:7px; }
input:focus,select:focus,textarea:focus { border-color:#64816c; }
/* Both console shells use the same calm, paper-coloured navigation. */
#n1anav, #side { background:#eeefe5 !important; color:#34483c !important; border-right:1px solid #d9ddcf; box-shadow:none; }
#n1anav .n1a-brand, #side .brand { color:#2e4b3c; border-color:#d9ddcf; }
#n1anav .n1a-brand span, #n1anav .n1a-grp, #side .grp { color:#6a7466; letter-spacing:.09em; font-size:10px; }
#n1anav .n1a-nav a, #side #nav a, #side #nav button { color:#415242; min-height:44px; border-radius:6px; font-weight:500; }
#n1anav .n1a-nav a:hover, #side #nav a:hover, #side #nav button:hover { background:#e2e7d9; color:#254536; }
#n1anav .n1a-nav a.on, #side #nav .on { color:#254536 !important; background:#dce5d3 !important; box-shadow:inset 3px 0 #52744e; font-weight:650; }
#n1anav .n1a-em, #side #nav .em { display:none; }
#n1anav .n1a-me, #n1anav .n1a-foot { border-color:#d9ddcf; }
#n1anav .n1a-nm, #n1anav .n1a-so, #n1anav .n1a-lang button { color:#415242; }
#n1anav .n1a-vp { color:#687462; }
#n1anav .n1a-lang button.on { background:#dce5d3; color:#254536; }
#n1anav-top, #mtop { background:#eeefe5 !important; color:#2e4b3c !important; border-bottom:1px solid #d9ddcf; }
#n1anav-top .n1a-burger, #mburger { color:#2e4b3c; min-width:44px; min-height:44px; }
#n1anav .n1a-bn { background:#345747; color:#fff; }
.n1-platform-tabs a, .n1-platform-tabs button { min-height:44px; display:inline-flex; align-items:center; }
/* Preserve the complete greeting gesture, including on narrow screens. */
html[data-programme="foundation"] .fnd-scene.fnd-scene-illustrated {
  display:block; padding:0; margin:0; aspect-ratio:auto; overflow:hidden;
  background:#f2eee2; border:1px solid #e2ddce; border-radius:12px;
}
.fnd-scene-illustrated img { display:block; width:100%; height:auto; object-fit:contain; }
.fnd-scene-illustrated .fnd-scene-cap { display:block; padding:12px 16px; color:#59644f; background:#f7f4ea; line-height:1.5; }
.fnd-scene-illustrated .fnd-scene-cap::before { display:none; }
@media (max-width:600px) {
  input:not([type=checkbox]):not([type=radio]), select, textarea { font-size:16px; }
  .btn, button.primary { min-height:44px; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; animation-iteration-count:1 !important; } }
@media print { body { background:white; } .n1-platform-tabs { display:none; } }
:root { --surface:#fffefb; --surface-2:#f0f1e9; --cream:#f7f5ef; --cream-2:#eeece1; --gold-hi:#d9d2b7; --sidebar-ink:#415242; }
.btn:not(.ghost):not(.secondary):not(.danger):not(.ok):not(.warn) { background-color:var(--accent); color:white; }
.btn:hover { box-shadow:none; transform:none; }
.greet { background:var(--surface); }
.greet .g-s b { color:var(--ink-2); }
.card::before { background:var(--line); }
#side .signout, #side .langsw button { color:#415242; }
#side .langsw button.on { background:#dce5d3; color:#254536; }
#side .foot { border-color:#d9ddcf; }
#side .brand span { color:#6a7466; }
@media (max-width:860px) { #n1anav:not(.open), #side:not(.open) { visibility:hidden; } }
@media (min-width:861px) { #side { width:240px; } body:has(> .app > #side) .app { grid-template-columns:240px minmax(0,1fr); } }
#n1anav .n1a-me .n1a-nm { color:#34483c; }
#n1anav .n1a-me .n1a-vp { color:#687462; }
#n1anav .n1a-me .n1a-av { background:#5b7258; color:#fff; }
@media (max-width:600px) {
  body.n1-foundation-shared { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .n1-platform-tabs[data-programme="N1FND"] {
    display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr));
    position:fixed; bottom:0; left:0; right:0; z-index:50;
    padding:8px 6px calc(8px + env(safe-area-inset-bottom)) !important;
    border-top:1px solid var(--line); background:var(--card);
  }
  .n1-platform-tabs[data-programme="N1FND"] a { justify-content:center; padding:6px 2px !important; font-size:11px !important; }
}
#n1chatbtn { background:var(--accent) !important; box-shadow:var(--shadow) !important; }
#n1chat > div:first-child { background:var(--accent) !important; }
@media (max-width:860px) {
  #n1anav, #side { z-index:10002; }
  #n1anav-scrim, #mscrim { z-index:10001; }
}
@media (max-width:600px) { .n1-foundation-shared #n1chatbtn { bottom:calc(84px + env(safe-area-inset-bottom)) !important; } }
#n1anav .n1a-me .n1a-nm, #n1anav .n1a-me .n1a-vp { display:block; }
