/* Koningsdag map styling */
:root{--orange:#f58220;--orange-deep:#df6b00;--purple:#6b2c91;--blue:#173b8c;--ink:#1f2430;--paper:rgba(255,248,238,.94);--paper-strong:rgba(255,248,238,.98);--shadow:0 14px 34px rgba(104,52,8,.18);--radius:10px;}
*{box-sizing:border-box} html,body,#app{height:100%;margin:0}
body{font-family:"Cormorant Garamond",Georgia,serif;color:var(--ink);background:linear-gradient(180deg,#fff9f1 0%,#fff3df 100%)}
#map{position:absolute;inset:0;z-index:1;background:#f4f1eb}
.leaflet-pane,.leaflet-control,.leaflet-top,.leaflet-bottom{z-index:200}.map-title-card,.top-actions,.panel,.loading-card,.modal-backdrop{z-index:1000}
.map-title-card{position:absolute;top:18px;left:18px;max-width:min(480px,calc(100vw - 36px));padding:14px 18px 12px;border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,250,244,.95),rgba(255,241,220,.95));box-shadow:var(--shadow);border:1px solid rgba(223,107,0,.25);backdrop-filter:blur(8px)}
.map-title-card h1{margin:0;font-family:"Cinzel",serif;font-size:clamp(1.45rem,2.5vw,2.2rem);line-height:1.08;color:var(--orange-deep);text-align:left;letter-spacing:.02em}.subtitle{margin:.35rem 0 0;font-size:1.18rem;line-height:1.15}
.top-actions{position:absolute;top:20px;right:18px;display:flex;gap:10px}
.action-button,.panel-toggle{border:none;padding:10px 14px;border-radius:var(--radius);background:linear-gradient(180deg,#ff9f42 0%,#eb7a0d 100%);color:#fff;font-family:"Cinzel",serif;font-size:.95rem;cursor:pointer;box-shadow:var(--shadow)}
.panel{position:absolute;left:18px;bottom:18px;width:min(300px,calc(100vw - 36px));border-radius:var(--radius);overflow:hidden;background:var(--paper);border:1px solid rgba(223,107,0,.2);box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.panel-toggle{width:100%;text-align:left;box-shadow:none;border-radius:0}.panel-body{padding:12px 14px 13px}.panel.collapsed .panel-body{display:none}
.legend-row{display:flex;align-items:center;gap:10px;margin:7px 0;font-size:1.06rem}.legend-note{margin:.6rem 0 0;font-size:.95rem;color:#5d5147}
.legend-crown{display:inline-flex;width:22px;height:22px;flex:0 0 22px;background-repeat:no-repeat;background-position:center;background-size:contain}
.legend-crown.beatrix{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path fill="%236b2c91" d="M9 47h46v8H9z"/><path fill="%236b2c91" d="M13 44 6 17l15 12 11-21 11 21 15-12-7 27z"/><circle cx="6" cy="17" r="4" fill="%236b2c91"/><circle cx="21" cy="29" r="4" fill="%236b2c91"/><circle cx="32" cy="8" r="4" fill="%236b2c91"/><circle cx="43" cy="29" r="4" fill="%236b2c91"/><circle cx="58" cy="17" r="4" fill="%236b2c91"/></svg>')}
.legend-crown.willem{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path fill="%23173b8c" d="M9 47h46v8H9z"/><path fill="%23173b8c" d="M13 44 6 17l15 12 11-21 11 21 15-12-7 27z"/><circle cx="6" cy="17" r="4" fill="%23173b8c"/><circle cx="21" cy="29" r="4" fill="%23173b8c"/><circle cx="32" cy="8" r="4" fill="%23173b8c"/><circle cx="43" cy="29" r="4" fill="%23173b8c"/><circle cx="58" cy="17" r="4" fill="%23173b8c"/></svg>')}
.loading-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;background:var(--paper-strong);padding:13px 16px;border-radius:var(--radius);border:1px solid rgba(223,107,0,.2);box-shadow:var(--shadow)}.loading-card.hidden{display:none}
.loading-spinner{width:18px;height:18px;border-radius:50%;border:3px solid rgba(245,130,32,.28);border-top-color:var(--orange-deep);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.modal-backdrop{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(31,36,48,.4);padding:18px}.modal-backdrop.open{display:flex}
.modal{width:min(720px,100%);max-height:min(82vh,860px);overflow:auto;border-radius:var(--radius);padding:18px 18px 16px;background:var(--paper-strong);box-shadow:0 22px 50px rgba(0,0,0,.25)}
.modal h2{margin:0 0 .5rem;font-family:"Cinzel",serif;color:var(--orange-deep)} .modal-content{font-size:1.08rem}.modal-content ul{padding-left:1.2rem;margin:.4rem 0 0}.modal-content li{margin:.4rem 0}.modal a{color:var(--blue)}.license-note{margin-top:1rem;font-size:1rem;color:#5d5147}
.royal-popup .leaflet-popup-content-wrapper{border-radius:var(--radius);background:linear-gradient(180deg,#fff8f0 0%,#fff1de 100%);color:var(--ink);box-shadow:0 14px 32px rgba(90,56,12,.24);border:1px solid rgba(223,107,0,.18)}
.royal-popup .leaflet-popup-content{margin:12px 14px;min-width:180px}.royal-popup .leaflet-popup-tip{background:#fff2e0}
.popup-title{margin:0 0 .18rem;font-family:"Cinzel",serif;font-size:1.02rem}.popup-place{margin:0;font-size:1.08rem;font-weight:700}.popup-year{margin:.18rem 0 0;font-size:1rem}
.crown-marker{width:30px;height:30px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 3px rgba(58,37,12,.28))}.crown-marker svg{width:100%;height:100%;overflow:visible}.crown-marker .halo{fill:rgba(255,255,255,.72)}
.tiles-orange .leaflet-tile{filter:grayscale(1) sepia(.65) hue-rotate(-18deg) saturate(2.4) brightness(1.06) contrast(.94)}
@media (max-width:720px){.map-title-card{right:18px;max-width:none}.top-actions{top:auto;bottom:18px;right:18px}.panel{bottom:70px}}