.sample-notice{border-left:4px solid var(--clay);background:#f4e5cc;padding:14px 18px;border-radius:8px;margin-bottom:20px;color:var(--text);font-size:.9rem;}
[hidden]{display:none!important;}
.programme-home-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));}
.container.landing-nav-wrap{padding:20px 24px;}
.landing-brand{font-family:'Space Grotesk',sans-serif;color:var(--ink);text-decoration:none;}
.landing-nav a{font-family:var(--mono);color:var(--ink);text-decoration:none;padding:10px 12px;min-height:44px;display:inline-flex;align-items:center;border-radius:8px;}
.landing-nav a:hover{background:var(--stone-deep);}
.landing-nav a[aria-current=page]{background:var(--ink);color:var(--paper);}
.landing-nav a:focus-visible,.landing-brand:focus-visible{outline:3px solid var(--teal);outline-offset:3px;}
#page-map .btn-ghost,.project-dialog .btn-ghost,.landing-main .btn-ghost{color:var(--ink);border:1px solid var(--ink);background:transparent;}
.programme-menu{position:relative;}
.programme-menu summary{cursor:pointer;font-family:var(--mono);font-size:.75rem;text-transform:uppercase;padding:10px;list-style:none;}
.programme-menu summary::after{content:' ▾';}
.programme-menu>div{position:absolute;top:100%;left:0;min-width:220px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0002;padding:10px;z-index:30;}
nav.main-nav .programme-menu a{display:block;white-space:normal;}
@media(max-width:980px){.programme-menu>div{position:static;box-shadow:none;}}
.project-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;margin:20px 0;}
.project-filters label,.project-source{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:.75rem;}
.project-filters input,.project-filters select,.project-source select{min-height:44px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--text);width:100%;min-width:0;}
.project-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0;}
.project-toolbar p{margin:0;}
#map{background:#e5eadf;}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0;}
.project-card{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--paper);}
.project-card h3{font-size:1.05rem;margin:10px 0;}
.project-card p{font-size:.88rem;margin:8px 0;}
.project-card button{margin-top:10px;min-height:44px;}
.project-meta{font: .7rem var(--mono);color:var(--text-soft);}
.project-pages{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;}
button:disabled{opacity:.5;cursor:not-allowed;}
.project-popup{font-family:var(--sans,'Space Grotesk',sans-serif);max-width:260px;}
.project-popup p{margin:8px 0;}
.project-popup strong{display:block;}
#mapStatus,#chartStatus{font-size:.85rem;color:var(--text-soft);}
.map-cluster{background:var(--ink);color:white;border:3px solid var(--paper);border-radius:50%;display:grid;place-items:center;font:600 12px var(--mono);box-shadow:0 2px 5px #0003;}
.leaflet-marker-icon.map-cluster{display:grid;place-items:center;}
@media(max-width:800px){.project-filters{grid-template-columns:1fr 1fr;}.project-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.project-filters,.project-grid{grid-template-columns:1fr;}#map{height:420px;}.project-toolbar{align-items:stretch;}.project-source{width:100%;}}
.project-dialog{width:min(1050px,94vw);max-height:90vh;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--text);}
.project-dialog::backdrop{background:#142923b3;}
.dialog-top{display:flex;justify-content:flex-end;position:sticky;top:0;background:var(--paper);z-index:2;}
.framework-stages{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.framework-stages section{padding:18px;border:1px solid var(--line);border-radius:10px;}
.framework-stages strong{text-transform:capitalize;}
.logframe-scroll{overflow-x:auto;max-width:100%;}
.logframe-table{border-collapse:collapse;width:100%;min-width:700px;margin:16px 0;font-size:.85rem;}
.logframe-table th,.logframe-table td{padding:12px;border:1px solid var(--line);text-align:left;vertical-align:top;}
.logframe-table th{background:#e5eadf;}
@media(max-width:650px){.framework-stages{grid-template-columns:1fr;}.project-dialog{padding:16px;}}
