/* TUNZA shared visual identity | 2026-09-20-brand-v1
   Colours and unmodified partner artwork from TUNZA Look and Feel.pptx.
   Roboto/Avenir use local fonts when available; no external font service. */
:root {
  --tunza-paper: #efffda;
  --tunza-olive: #5d7e31;
  --ink: #20251b;
  --ink-soft: #505b44;
  --forest: #5d7e31;
  --forest-dark: #405922;
  --leaf: #5d7e31;
  --mint: #efffda;
  --cream: #efffda;
  --card: #fff;
  --line: #d5dfc8;
  --shadow: 0 10px 30px rgba(57,77,32,.06);
  --radius: 14px;
}
html, body, .app-shell, .workspace { background: var(--tunza-paper); }
body { font-family: Roboto, Arial, Helvetica, sans-serif; color: var(--ink); }
h1,h2,h3,h4,.tunza-wordmark { font-family: Avenir, 'Avenir Next', Roboto, Arial, sans-serif; }
h1,h2,h3,h4 { color: var(--forest-dark); }
.brand-mark { display:none; }
.brand-lockup .tunza-wordmark { color: var(--tunza-olive); font-size: 2.3rem; font-weight: 900; letter-spacing: -.045em; line-height:1.1; }
.brand-lockup small,.brand-lockup--light small { color:var(--ink-soft); margin-top:.35rem; }
.sidebar { background:var(--tunza-paper); border-color:var(--line); }
.sidebar .brand-lockup { padding-bottom:1.4rem; }
.sidebar::-webkit-scrollbar-track { background:var(--tunza-paper); }
.sidebar::-webkit-scrollbar-thumb { border-color:var(--tunza-paper); background:#9aaa85; }
.nav-item { color:var(--ink-soft); border-radius:8px; }
.nav-item:hover { color:var(--forest-dark); background:#e1efce; }
.nav-item.is-active { background:var(--tunza-olive); color:#fff; box-shadow:none; }
.topbar { background:rgba(239,255,218,.97); border-color:var(--line); gap:1rem; }
.topbar h2 { white-space:normal; line-height:1.3; }
.topbar-left > div { min-width:0; }
.topbar-actions { flex-shrink:0; }
.content { padding-top:1.5rem; }
.tunza-institutions { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-width:0; }
.tunza-institutions img { display:block; object-fit:contain; }
.tunza-institutions .tunza-fao { width:230px; height:105px; max-width:65%; }
.tunza-institutions .tunza-kenya { width:65px; height:68px; }
.tunza-masthead { border-bottom:1px solid var(--line); margin-bottom:1.5rem; padding:0 0 .5rem; }
.tunza-programme-title { max-width:850px; margin:.25rem 0 1.25rem; font-size:.88rem; line-height:1.55; color:var(--ink); }
.tunza-partners { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:2rem; padding:1.5rem 0 .5rem; border-top:1px solid var(--line); }
.tunza-partners img { display:block; object-fit:contain; max-width:100%; }
.tunza-partners .tunza-gcf { width:132px; height:84px; }
.tunza-partners .tunza-denmark { width:235px; height:58px; }
.tunza-partners .tunza-agriterra { width:72px; height:72px; }
.hero-card { color:var(--ink); background:var(--tunza-paper); border:1px solid #c2d4aa; border-left:5px solid var(--tunza-olive); border-radius:12px; box-shadow:none; min-height:260px; }
.hero-card::after { display:none; }
.hero-card h1 { color:var(--tunza-olive); font-weight:900; }
.hero-card p { color:var(--ink-soft); }
.eyebrow--light { color:var(--forest-dark); }
.hero-status { border-color:#c2d4aa; background:#fff; }
.hero-status b { color:var(--forest-dark); }
.hero-status small { color:var(--ink-soft); }
.login-shell,.login-story,.login-panel { background:var(--tunza-paper); }
.login-shell { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); }
.login-story { color:var(--ink); padding:clamp(1.5rem,4vw,4rem); }
.login-story .tunza-institutions { margin-bottom:1.5rem; }
.login-story .brand-lockup .tunza-wordmark { font-size:clamp(3rem,6vw,5rem); }
.story-copy { margin:2rem 0; }
.story-copy h1 { color:var(--tunza-olive); font-size:clamp(2.1rem,3.5vw,3.8rem); }
.story-copy p { color:var(--ink); font-size:1rem; }
.story-footer { color:var(--ink-soft); }
.login-story .tunza-partners { margin-top:auto; }
.login-card { border-top:5px solid var(--tunza-olive); border-radius:14px; }
.panel,.metric-card,.record-card,.source-card,.map-card { border-color:var(--line); }
.panel,.metric-card { box-shadow:var(--shadow); }
.metric-card { border-top:3px solid var(--tunza-olive); }
.metric-icon,.avatar { background:var(--mint); color:var(--forest-dark); }
.record-card,.authority-item,.value-chain-chip,.breakdown-row,.quick-actions button { background:#fbfdf8; border-color:var(--line); }
.source-card--link,.kmd-readiness-panel,.interoperability-panel,.feedback-form-panel,.kobo-consent-panel { background:#f8fff0; border-color:var(--line); }
.source-card::after { color:rgba(93,126,49,.07); }
.quick-actions button:hover { background:var(--mint); border-color:var(--forest); }
.language-message { border-color:#a7bd8a; background:#f5fbea; }
.evidence-chip,.audience-preview,.privacy-banner { background:#f2fae7; border-color:#c2d4aa; }
.evidence-chip small,.feedback-tags span { color:var(--ink-soft); }
.feedback-tags span { background:var(--mint); }
.button--primary { background:var(--forest); box-shadow:none; }
.button--primary:hover { background:var(--forest-dark); }
.button--secondary,.mini-button,.gis-toolbar button,.tor-map-tools button { border-color:#a2b28d; color:var(--forest-dark); }
.button--secondary:hover,.mini-button:hover { background:var(--mint); }
.mini-button--reject { color:var(--danger); border-color:#e9baba; }
input,select,textarea { border-color:#a2b28d; }
input:focus,select:focus,textarea:focus { border-color:var(--forest); box-shadow:0 0 0 3px rgba(93,126,49,.16); }
a { color:var(--forest-dark); }
:where(button,a,input,select,textarea,summary):focus-visible { outline:3px solid var(--forest-dark); outline-offset:3px; }
.tor-table th { background:#e5f1d4; color:var(--forest-dark); }
.tor-table tr:nth-child(even) { background:#f8fcf2; }
.tor-table th,.tor-table td { border-color:var(--line); }
.gis-sidebar,#office-channels-panel details { background:#f8fcf2; border-color:var(--line); }
.gis-layer-option small,.gis-toolbar span { color:var(--ink-soft); }
#office-channels-panel .channel-copy,#office-channels-panel fieldset { border-color:var(--line); }
.toast:not(.is-error) { background:var(--forest-dark); }
/* Status badges, weather/map scales and error states retain their semantic colours. */
@media(max-width:820px) {
 .login-shell { grid-template-columns:1fr; }
 .login-story { min-height:0; }
 .login-card { margin:0 0 1rem; }
 .login-story .story-copy { margin:1.5rem 0; }
 .tunza-partners { gap:1rem; }
 .tunza-partners .tunza-denmark { width:180px; }
 .topbar { flex-wrap:wrap; }
 .topbar-left { flex:1 1 180px; }
 .topbar-actions { margin-left:auto; }
}
@media(max-width:560px) {
 .tunza-masthead { margin-bottom:1rem; }
 .tunza-institutions .tunza-fao { width:190px; height:88px; }
 .tunza-institutions .tunza-kenya { width:48px; height:54px; }
 .tunza-programme-title { font-size:.8rem; }
 .tunza-partners { justify-content:center; gap:1rem 1.5rem; }
 .tunza-partners .tunza-gcf { width:110px; height:70px; }
 .tunza-partners .tunza-denmark { width:160px; height:48px; }
 .tunza-partners .tunza-agriterra { width:56px; height:56px; }
 .hero-card { padding:1.1rem; }
 .hero-card h1 { font-size:1.9rem; }
 .topbar h2 { max-width:none; }
 .button--quiet { font-size:.72rem; }
 .button--quiet::after { content:none; }
 .channels-checklist { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { .view,.nav-item,.button { animation:none; transition:none; } }
@media print { body,.workspace { background:#fff; } .sidebar,.topbar { display:none; } .workspace { margin-left:0; } .content { width:100%;padding:0; } }
