:root{
  --ph-olive:#877a42;
  --ph-olive-dark:#766a38;
  --ph-deep:#2a1e05;
  --ph-deep-2:#181103;
  --ph-brown:#5c4308;
  --ph-gold:#a98937;
  --ph-gold-soft:#dac98a;
  --ph-panel:#f6f1e4;
  --ph-paper:#fffdf8;
  --ph-ink:#20160d;
  --ph-muted:#6d624f;
  --ph-line:#ddd2bc;
  --ph-soft:#efe5d2;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  color:var(--ph-ink);
  background:var(--ph-olive);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:linear-gradient(180deg,var(--ph-olive),var(--ph-olive-dark));color:var(--ph-ink)}
button{font:inherit;cursor:pointer}
button:focus-visible{outline:3px solid var(--ph-gold-soft);outline-offset:2px}
.top{height:76px;background:linear-gradient(90deg,var(--ph-deep),#201603 60%,var(--ph-deep-2));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 14px;border-bottom:1px solid rgba(255,255,255,.08);position:relative;z-index:6}
.brand{display:flex;align-items:center;gap:13px;min-width:0}
.brand-logo{width:46px;height:46px;border-radius:50%;object-fit:cover;box-shadow:0 4px 14px rgba(0,0,0,.25);flex-shrink:0}
.brand strong{display:block;font-family:Georgia,serif;letter-spacing:.2em;font-size:22px;font-weight:500;color:#fffaf1}
.brand small{color:#f0e7d0;font-size:10px;letter-spacing:.08em}
.version{font-size:10px;letter-spacing:.11em;color:#fff1ce;border:1px solid rgba(255,241,206,.25);border-radius:100px;padding:9px 12px;background:rgba(255,255,255,.04);flex-shrink:0}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 405px;height:calc(100dvh - 76px);min-height:480px;position:relative}
.map-area{position:relative;background:#e6dec9;min-height:360px}
#map{height:100%;width:100%}
.map-placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#5b5346;padding:30px;background:linear-gradient(140deg,#e6dcc6,#d8cda9)}
.map-glyph{font-size:65px;color:var(--ph-brown)}
.map-placeholder h2{font-family:Georgia,serif;font-size:29px;margin:8px 0;color:var(--ph-brown)}
.map-placeholder p{max-width:360px;line-height:1.5}.map-label{position:absolute;left:20px;top:20px;background:rgba(255,253,248,.96);box-shadow:0 8px 24px rgba(37,26,12,.12);padding:12px 16px;border-radius:10px;font-size:12px;font-weight:650;display:flex;align-items:center;gap:9px;max-width:calc(100% - 92px);border:1px solid rgba(92,67,8,.12);z-index:2}.live-dot{width:8px;height:8px;background:var(--ph-brown);border-radius:50%}.map-actions{position:absolute;right:20px;bottom:25px;display:flex;gap:12px;z-index:2}.floating{width:55px;height:55px;border:1px solid rgba(92,67,8,.18);border-radius:14px;background:#fffdf9;box-shadow:0 5px 20px rgba(31,20,8,.16);font-size:30px;color:var(--ph-brown)}.mobile-only{display:none}
.side{overflow-y:auto;background:var(--ph-panel);border-left:1px solid rgba(92,67,8,.12)}
.intro{padding:30px 26px 24px;background:linear-gradient(180deg,var(--ph-deep) 0%,#1f1604 100%);color:white;border-bottom:1px solid rgba(255,255,255,.08)}
.eyebrow{color:#fff0c9;font-size:10px;font-weight:750;letter-spacing:.2em}.intro h1{font:normal 42px/1.07 Georgia,serif;letter-spacing:-.03em;margin:18px 0;color:#fffaf0}.intro em{font-style:italic;color:#fff0c9}.intro p{color:#f3ead7;font-size:14px;line-height:1.7;margin:0}.control{padding:23px 26px;border-bottom:1px solid var(--ph-line);display:flex;flex-direction:column;gap:15px}.control strong,.control small{display:block}.control strong{font-size:14px;color:var(--ph-ink)}.control small{color:var(--ph-muted);margin-top:5px;font-size:12px}.primary{border:0;background:linear-gradient(180deg,var(--ph-deep),#201603);color:#fff8ee;border-radius:10px;padding:14px 12px;font-weight:750;box-shadow:0 8px 22px rgba(24,17,3,.28)}.primary:hover{background:linear-gradient(180deg,#211704,#130e02)}.list-heading{padding:24px 25px 8px;display:flex;align-items:center;justify-content:space-between}.list-heading h2{font:normal 22px Georgia,serif;margin:0;color:var(--ph-brown)}.list-heading span{font-size:12px;color:#81765f}.poi-list{padding:6px 18px 10px}.poi{width:100%;text-align:left;border:1px solid #e6dcc9;background:var(--ph-paper);border-radius:12px;margin:8px 0;padding:17px 16px;display:flex;align-items:flex-start;gap:14px;transition:border-color .15s,transform .15s,box-shadow .15s}.poi:hover{border-color:#8a7d42;transform:translateY(-1px);box-shadow:0 8px 22px rgba(37,26,12,.08)}.poi-symbol{font:normal 23px Georgia,serif;color:var(--ph-brown);background:var(--ph-soft);border-radius:12px;width:46px;height:46px;display:grid;place-items:center;flex-shrink:0;border:1px solid rgba(92,67,8,.1)}.poi-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.poi-title{display:block;font-size:14px;font-weight:750;color:var(--ph-ink);line-height:1.35}.poi-sub{display:block;font-size:12px;line-height:1.45;color:#7b705c;white-space:normal;word-break:normal}.poi-arrow{font-size:22px;color:#8a7d42;line-height:1;align-self:center}.footnote{text-align:center;color:#8a7f69;font-size:11px;line-height:1.8;padding:15px 25px 30px}.sheet-handle{display:none}.scrim{position:fixed;inset:0;background:rgba(16,10,4,.6);z-index:20}.detail{position:fixed;z-index:21;right:22px;bottom:22px;max-width:440px;width:calc(100% - 44px);max-height:calc(100dvh - 44px);overflow-y:auto;background:var(--ph-paper);color:var(--ph-ink);border-radius:18px;box-shadow:0 22px 70px rgba(23,17,9,.28);border:1px solid rgba(92,67,8,.14)}.detail-inner{padding:32px}.detail h2{font:normal 33px Georgia,serif;margin:12px 0 4px;color:var(--ph-brown)}.detail .subhead{color:#8a7d42;font-size:14px;margin:0 0 21px}.detail-inner>p:not(.subhead){line-height:1.75;color:#544a40;font-size:14px}.close{position:absolute;right:13px;top:9px;border:0;background:transparent;font-size:29px;color:#7f7568}.audio-box{background:#f3ebda;border-radius:12px;padding:16px;margin:20px 0;border:1px solid rgba(92,67,8,.12)}.audio-label{font-size:12px;font-weight:750;margin-bottom:10px;color:var(--ph-brown)}.audio-box audio{width:100%}.audio-note{font-size:12px;line-height:1.5;color:#756a56}.secondary{border:1px solid rgba(92,67,8,.45);background:transparent;color:var(--ph-brown);border-radius:8px;padding:10px;width:100%;font-size:12px;font-weight:700}.detail-distance{color:#7d7467}.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:30;background:linear-gradient(180deg,var(--ph-deep),#201603);color:#fff7ea;padding:13px 17px;box-shadow:0 5px 18px rgba(0,0,0,.22);border-radius:10px;max-width:90vw;font-size:13px;display:none;border:1px solid rgba(255,241,206,.2)}.toast.show{display:block}[hidden]{display:none!important}
@media(max-width:850px){
  .top{height:64px;padding:0 12px 0 10px;position:fixed;inset:0 0 auto 0}
  .brand-logo{width:40px;height:40px}
  .brand strong{font-size:18px}
  .brand small{font-size:9px}
  .version{font-size:9px;padding:7px 10px}
  .layout{height:100dvh;display:block}
  .map-area{position:fixed;inset:64px 0 0 0;height:calc(100dvh - 64px);min-height:0;z-index:1}
  .side{position:fixed;left:0;right:0;bottom:0;height:35dvh;min-height:230px;max-height:86dvh;overflow-y:auto;border-left:0;border-top:1px solid rgba(92,67,8,.14);z-index:5;border-radius:20px 20px 0 0;box-shadow:0 -10px 28px rgba(0,0,0,.16);transition:transform .25s ease,height .25s ease}
  body.sheet-collapsed .side{transform:translateY(calc(100% - 50px))}
  body.sheet-expanded .side{height:82dvh}
  .mobile-only,.sheet-handle{display:block}
  .sheet-handle{position:sticky;top:0;width:100%;border:0;background:transparent;padding:10px 0 4px;z-index:2}
  .sheet-handle span{display:block;width:54px;height:6px;border-radius:999px;background:#c8b88e;margin:0 auto}
  .map-actions{right:14px;bottom:calc(35dvh + 14px);flex-direction:column}
  body.sheet-collapsed .map-actions{bottom:72px}
  body.sheet-expanded .map-actions{bottom:calc(82dvh + 14px)}
  .floating{width:52px;height:52px}
  .map-label{top:12px;left:12px;max-width:calc(100% - 84px)}
  .intro{padding:18px 20px 20px}
  .intro h1{font-size:31px;margin:14px 0}
  .control{padding:18px 20px}
  .list-heading{padding:20px 20px 8px}
  .poi-list{padding:6px 14px 16px}.poi{padding:18px 16px}.poi-title{font-size:13px}.poi-sub{font-size:11px}
  .footnote{padding:6px 20px 24px}
  .detail{right:0;bottom:0;width:100%;max-width:100%;max-height:86dvh;border-radius:19px 19px 0 0}
  .detail-inner{padding:26px 23px}
}
@media(max-width:360px){.version{display:none}}

/* Ambulo v0.5 — verhalende tekstchat */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.chat-block{margin-top:18px;border:1px solid var(--ph-line);background:#f8f2e7;border-radius:14px;padding:16px}
.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ph-brown);font-size:15px}
.chat-badge{font-size:10px;border:1px solid #c9b994;border-radius:20px;padding:5px 9px;white-space:nowrap;color:#6b5b37}
.chat-intro,.chat-hint{font-size:12px;line-height:1.55;color:#655b4d}
.chat-messages{display:flex;flex-direction:column;gap:10px;max-height:270px;overflow-y:auto;overscroll-behavior:contain;padding:5px 0;margin:12px 0}
.chat-message{max-width:95%;padding:11px 13px;border-radius:12px;font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-message.assistant{background:#fffdf7;border:1px solid #e4dac7;align-self:flex-start;color:#30291e}
.chat-message.user{background:#e6dcc3;align-self:flex-end;color:#32270c}
.chat-form{display:flex;flex-direction:column;gap:8px}.chat-form textarea{display:block;width:100%;border:1px solid #cbbd9e;background:#fffdf8;border-radius:9px;resize:vertical;font:inherit;font-size:14px;line-height:1.45;padding:10px;color:var(--ph-ink);min-height:66px}.chat-form button:disabled{opacity:.55;cursor:wait}.chat-hint{margin-bottom:0}.audio-box[hidden]{display:none!important}
@media(max-width:850px){.chat-block{padding:13px}.chat-messages{max-height:30dvh}.detail{padding-bottom:env(safe-area-inset-bottom)}}

/* v0.6.1 – steunknop en dagelijks AI-quotum */
.donate-panel{margin:18px 24px 6px;padding:16px;border:1px solid #d9ceb9;border-radius:13px;background:#f1e8d5;display:flex;flex-direction:column;gap:10px;text-align:center}
.donate-panel>span{font-size:13px;font-weight:750;color:#4c3710}
.donate-button{display:block;border-radius:9px;background:#2a1e05;color:#fff5db;text-decoration:none;padding:12px;font-size:13px;font-weight:750;transition:background .2s}
.donate-button:hover,.donate-button:focus-visible{background:#5c4308;color:#fff}
.donate-panel small{color:#6d624f;font-size:11px}
.chat-donate{display:block;margin:12px auto 4px;width:fit-content;color:#61480e;text-decoration:underline;text-underline-offset:3px;font-size:12px;text-align:center}
.chat-hint{line-height:1.5}
@media(max-width:850px){.donate-panel{margin:14px 18px 6px}}

/* Ambulo v1.1 – wandelroutes */
.route-callout{border:1px solid #c8b58b;background:#fff7e4;padding:15px;border-radius:14px;margin:15px 0}.route-callout strong{color:#35270c}.route-callout p{font-size:13px;color:#695a40;margin:6px 0 12px}.routes-backdrop[hidden]{display:none!important}.routes-backdrop{position:fixed;inset:0;z-index:10005;background:#171005a8;display:flex;justify-content:center;align-items:center;padding:18px}.routes-panel{position:relative;background:#fbf5e7;color:#34280f;border-radius:20px;max-width:610px;width:100%;max-height:90dvh;overflow:auto;padding:28px;box-shadow:0 12px 45px #21140566}.routes-panel h2{font:normal 29px Georgia,serif;margin:8px 40px 12px 0}.routes-panel h3{font:normal 22px Georgia,serif;margin:12px 0}.routes-panel p{line-height:1.55}.routes-close{position:absolute;top:10px;right:13px;border:0;background:transparent;font-size:29px;cursor:pointer;color:#30230d}.route-filters{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.route-filters label{flex:1;min-width:145px;font-weight:650;font-size:12px}.route-filters select{display:block;width:100%;border:1px solid #b7a680;border-radius:8px;padding:10px;background:white;margin-top:5px}.route-card,.route-stop-card{border:1px solid #d6c5a6;border-radius:12px;padding:14px;margin:10px 0;background:#fffdf7}.route-card h3{font:normal 21px Georgia,serif;margin:0 0 5px}.route-card p{font-size:13px;color:#716247;margin:6px 0 14px}.route-back{border:0;background:none;padding:8px 0;color:#584415;cursor:pointer;font-weight:700}.route-stop-card{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.route-stop-card strong{flex-basis:100%}.route-stop-card button{padding:8px 10px;cursor:pointer}.route-done{border:1px solid #70915a;background:#edf5e5;color:#466330;border-radius:8px}.route-walk-stats{font-weight:700;color:#566d3f}.route-safety{font-size:12px;color:#7b6d54;border-top:1px solid #ded2ba;padding-top:12px}.route-finish{border:1px solid #98b48b;background:#ecf5e7;border-radius:12px;padding:14px;margin:15px 0}.routes-panel audio{display:block;max-width:100%;margin:12px 0}@media(max-width:600px){.routes-backdrop{padding:7px;align-items:flex-end}.routes-panel{max-height:92dvh;border-radius:20px 20px 8px 8px;padding:20px}}

/* Ambulo v1.1.2 — rustige indeling op desktop en mobiel */
.ambulo-explore-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px 22px 8px}
.ambulo-explore-choice{min-height:86px;border:1px solid #c9b78c;border-radius:12px;background:#f2e5c7;color:#382911;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font:700 14px/1.25 Arial,sans-serif;transition:background .15s}
.ambulo-explore-choice span{font-size:23px;line-height:1}.ambulo-explore-choice:hover,.ambulo-explore-choice:focus-visible{background:#e9d6aa;outline-offset:2px}
.ambulo-gps-control{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:14px 22px 18px!important;border-bottom:1px solid #dfd4bc!important}
.ambulo-gps-control>div{min-width:0;flex:1}.ambulo-gps-control strong{display:block}.ambulo-gps-control small{display:block;line-height:1.4;margin-top:3px}
.ambulo-gps-control #gpsBtn{width:auto!important;max-width:160px;min-height:39px!important;padding:9px 12px!important;font-size:12px!important;white-space:normal!important;margin:0!important;flex-shrink:0}
.ambulo-quiet-links{display:flex;flex-wrap:wrap;gap:6px 18px;padding:17px 22px 14px;border-top:1px solid #dfd4bc;margin-top:10px}
.ambulo-quiet-links button,.ambulo-quiet-links a{border:0;background:transparent;color:#67522d;font:600 12px/1.5 Arial,sans-serif;text-decoration:underline;text-underline-offset:3px;padding:4px 0;cursor:pointer}
.ambulo-quiet-links small{flex-basis:100%;color:#81735f;font-size:10px}
.route-navigation{margin:14px 0;background:#f4eddd;border:1px solid #d8c8a6;border-radius:12px;padding:12px}
.route-nav-button{width:100%;border:1px solid #a58f60;border-radius:9px;background:#30230d;color:#fff8e8;padding:12px;font-size:13px;font-weight:700;cursor:pointer}
.route-nav-button:disabled{opacity:.55;cursor:default}
.route-navigation p{font-size:11px;color:#74654b;margin:9px 0 0!important}
.route-stop-card .route-stop-nav{background:#f6e8c6;color:#382911;border:1px solid #c2ad7d;border-radius:8px;font-weight:600}
@media(max-width:850px){.ambulo-explore-choices{padding:15px 18px 7px}.ambulo-gps-control{padding:12px 18px 15px!important}.ambulo-quiet-links{padding:16px 18px}.ambulo-gps-control #gpsBtn{max-width:146px}}
@media(max-width:360px){.ambulo-explore-choice{font-size:12px}.ambulo-gps-control #gpsBtn{max-width:125px;font-size:11px!important}}

/* Ambulo 1.1.4 polish */
.chat-block .quota-wrap,.chat-block .chat-hint,.chat-block .chat-donate{text-align:center;margin-left:auto;margin-right:auto;}
.chat-block .quota-row{justify-content:center;gap:8px;flex-wrap:wrap;font-size:12px;}
.ambulo-mark{display:block;margin:20px auto 9px;padding:10px 17px;border:1px solid #9ba984;border-radius:11px;background:#edf2e2;color:#344527;font-size:13px;font-weight:650;cursor:pointer;max-width:100%;width:auto;}
.ambulo-mark:not(.is-visited){border-color:#caba9d;background:#f7f1e5;color:#513d22;}
.ambulo-discovery-card{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;background:#fffaf0;border:1px solid #e4d5bb;border-radius:13px;padding:15px 16px;margin:10px 0;color:#35270f;cursor:pointer;}
.ambulo-discovery-card strong{font-size:14px;display:block;} .ambulo-discovery-card small{display:block;color:#817458;font-size:12px;margin-top:4px;}.ambulo-discovery-card:hover{border-color:#94793d;}
.ambulo-feedback-poi{border-top:1px solid #e1d6c1;margin-top:17px;padding-top:18px;text-align:center;}
.ambulo-feedback-poi p{margin:0 0 10px;font-size:13px;color:#56472a;}
.ambulo-feedback-votes{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.ambulo-feedback-votes button{background:#fffaf0;border:1px solid #b9a887;border-radius:10px;padding:10px 16px;color:#48371a;font-weight:650;cursor:pointer;}
.ambulo-feedback-votes button[aria-pressed=true]{background:#e9efdf;border-color:#768d54;}
.ambulo-feedback-poi textarea,.ambulo-feedback-dialog textarea,.ambulo-feedback-dialog input,.ambulo-feedback-dialog select{box-sizing:border-box;width:100%;padding:11px;border:1px solid #c9ba9a;border-radius:9px;background:#fffdf9;font:inherit;}
.ambulo-feedback-poi textarea{margin-top:12px;min-height:60px;}
.ambulo-feedback-poi .secondary{width:auto;margin-top:8px;padding:9px 14px;}.ambulo-feedback-status{font-size:12px;color:#526e38;}
.ambulo-feedback-dialog{position:fixed;inset:0;z-index:110;background:rgba(19,14,6,.65);display:grid;place-items:center;padding:18px;}
.ambulo-feedback-dialog>section{position:relative;background:#faf5eb;color:#35270f;border-radius:18px;padding:28px;width:min(100%,480px);max-height:85dvh;overflow:auto;box-sizing:border-box;}
.ambulo-feedback-dialog label{display:block;margin:14px 0;font-size:13px;font-weight:600;}
.ambulo-feedback-dialog label>*{margin-top:7px;}
.ambulo-feedback-dialog .close{top:10px;right:12px}.ambulo-feedback-link{border:0;background:none;color:#6f592d;text-decoration:underline;cursor:pointer;font:inherit;font-size:12px;padding:6px;}
.ambulo-route-banner{position:fixed;top:88px;left:12px;z-index:17;display:flex;align-items:center;gap:9px;max-width:calc(100vw - 24px);padding:9px 12px;background:#fffaf0;color:#3e2d15;border:1px solid #d1bea0;border-radius:14px;box-shadow:0 4px 16px #251b1020;font-size:12px;}
.ambulo-route-banner strong{font-size:12px;white-space:nowrap;max-width:45vw;overflow:hidden;text-overflow:ellipsis;}
.ambulo-route-banner button{border:1px solid #c3af8b;background:white;border-radius:9px;padding:7px 9px;color:#4b3718;font-weight:650;cursor:pointer;}
/* Hidden must override display:flex, including on browsers where [hidden] is overridden by author CSS. */
.ambulo-route-banner[hidden]{display:none!important;}
@media(max-width:850px){
  .ambulo-route-banner{top:calc(86px + env(safe-area-inset-top, 0px));left:10px;right:10px;max-width:none;justify-content:space-between;padding:7px 9px;gap:8px;border-radius:11px;}
  .ambulo-route-banner strong{max-width:calc(100vw - 145px);font-size:12px;}
  .ambulo-route-banner button{flex:0 0 auto;font-size:12px;padding:7px 9px;}
  .ambulo-feedback-dialog>section{padding:24px;}
}

/* De kaart toont geen overbodige badge voor vrij ontdekken; GPS-status staat in het zijpaneel. */
.map-label{display:none!important;}
