*{box-sizing:border-box}
:root{--bg:#090806;--panel:#100e0b;--panel2:#17130d;--panel3:#211b13;--line:rgba(255,255,255,.13);--line-gold:rgba(214,176,93,.48);--text:#f5efe2;--muted:#c9bfae;--accent:#d6b05d;--accent2:#e7c97f;--danger:#d9685e;--success:#72b88a;--header:58px;--shadow:0 20px 60px rgba(0,0,0,.4)}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Roboto,Arial,sans-serif}
body{font-size:14px}button,input,textarea,select{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}img,video{max-width:100%}
[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.app-header,.public-header{height:var(--header);position:sticky;top:0;z-index:1000;background:rgba(8,7,5,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:7px 14px;gap:10px;backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:9px;min-width:0}.brand>i{font-size:29px;color:var(--accent)}.brand strong,.brand small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand small{font-size:10px;color:var(--muted);margin-top:1px}.editor-brand{margin-right:auto}
.header-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.user-pill{max-width:260px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn,.icon-btn{border:1px solid var(--line);border-radius:8px;background:var(--panel2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:700}.btn{min-height:36px;padding:0 12px}.icon-btn{width:36px;height:36px;padding:0}.btn:hover,.icon-btn:hover{border-color:var(--line-gold);background:var(--panel3)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#150f07}.btn.primary:hover{background:var(--accent2)}.btn.small{min-height:31px;padding:0 9px;font-size:11px}.btn.ghost{background:transparent;color:var(--muted)}.btn:disabled{opacity:.55;cursor:wait}
.btn.danger{background:#852f2b;border-color:#b6534b;color:#fff}
.eyebrow{display:block;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px}.help-text{color:var(--muted);font-size:11px;line-height:1.5;margin:8px 13px 12px}
.dashboard-main,.public-main{width:min(1450px,calc(100% - 30px));margin:0 auto;padding:28px 0 60px}.dashboard-intro,.public-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;padding:10px 0 18px}.dashboard-intro h1,.public-hero h1{font-size:clamp(30px,4vw,48px);line-height:1;margin-bottom:8px}.dashboard-intro p,.public-hero p{color:var(--muted);margin:0;max-width:720px;line-height:1.5}
.search-box{height:38px;min-width:300px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);display:flex;align-items:center;gap:7px;padding:0 10px;color:var(--muted)}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--text)}
.count-line{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding:11px 0;margin-bottom:12px}.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:13px}.article-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-width:0}.article-card:hover{border-color:rgba(214,176,93,.38)}.article-cover{height:170px;position:relative;background:radial-gradient(circle at 50% 15%,#372d1c,#100e0b);overflow:hidden}.article-cover img{width:100%;height:100%;object-fit:cover}.cover-placeholder{height:100%;display:grid;place-items:center;color:rgba(214,176,93,.62);font-size:48px}.status-badge{position:absolute;top:9px;right:9px;border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:rgba(7,6,4,.86);font-size:10px;font-weight:800}.status-badge.visible{color:#9de0b3}.status-badge.hidden{color:#e4b0ab}.article-info{padding:15px;flex:1}.article-info h2{font-size:19px;line-height:1.25;margin-bottom:7px}.article-info p{color:var(--muted);line-height:1.45;font-size:12px;min-height:35px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;flex-wrap:wrap;gap:7px 12px;color:var(--muted);font-size:10px}.card-meta span{display:flex;align-items:center;gap:4px}.article-actions{border-top:1px solid var(--line);padding:9px;display:flex;flex-wrap:wrap;gap:5px}.article-actions .btn{font-size:11px;min-height:31px;padding:0 9px}.article-actions .spacer{flex:1}.danger-button{color:#ffaaa2!important}
.empty-state,.loading-state{grid-column:1/-1;border:1px dashed var(--line);border-radius:12px;padding:55px 20px;text-align:center;color:var(--muted)}.empty-state i{display:block;font-size:50px;color:var(--accent);margin-bottom:8px}
.app-dialog{width:min(520px,calc(100vw - 24px));padding:0;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.app-dialog::backdrop{background:rgba(0,0,0,.74);backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding:17px 18px 9px}.dialog-head h2{margin:0;font-size:20px}.dialog-actions,.panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:10px 14px 14px}
.form-field{display:grid;gap:5px;padding:7px 14px}.form-field>span{font-size:11px;font-weight:800;color:var(--muted)}.form-field input,.form-field textarea,.form-field select,.public-controls select{width:100%;border:1px solid var(--line);border-radius:8px;background:#0c0a08;color:var(--text);padding:9px 10px;outline:0}.form-field textarea{resize:vertical}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(214,176,93,.12)}
.translation-panel{padding-bottom:12px}.translation-switch{display:flex;align-items:flex-start;gap:8px;padding:5px 14px;font-size:12px;font-weight:700}.translation-switch input{margin-top:2px}.translation-targets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 14px}.translation-targets>span{width:100%;font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase}.translation-targets label{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:6px;padding:5px 7px;font-size:11px}.translation-targets input:disabled{opacity:.35}.translation-panel>.btn{margin:4px 14px}.translation-status{margin:7px 14px 0;color:#9de0b3;font-size:11px}.translation-status.error{color:#ffaaa2}
.muted-inline{display:block;color:var(--muted);font-size:11px;padding:7px 0}.label-panel .help-text{margin-bottom:3px}.label-check-list{display:flex;flex-wrap:wrap;gap:6px;padding:7px 14px 14px}.label-check-list label{position:relative;cursor:pointer}.label-check-list input{position:absolute;opacity:0;pointer-events:none}.label-check-list label span,.label-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#0c0a08;color:var(--muted);padding:5px 9px;font-size:10px;line-height:1.1}.label-check-list input:checked+span,.label-chip.active{border-color:var(--accent);background:rgba(214,176,93,.16);color:var(--accent2)}.label-check-list input:focus+span{box-shadow:0 0 0 2px rgba(214,176,93,.2)}.article-labels{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.article-labels .label-chip{appearance:none;font-family:inherit;cursor:default}.article-labels button.label-chip{cursor:pointer}.article-labels button.label-chip:hover{border-color:var(--accent);color:var(--accent2)}
.toast{position:fixed;right:18px;bottom:18px;z-index:3000;max-width:380px;background:#2d2619;border:1px solid var(--line-gold);border-radius:9px;padding:11px 14px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:none}.toast.error{background:#642925;border-color:#b74e47}
.status-badge.pending{color:#f2ca72}.status-badge.approved{color:#9de0b3}.status-badge.rejected{color:#ffaaa2}.status-badge.draft{color:#c9bfae}.review-note{border-left:2px solid var(--danger);padding-left:8px!important;color:#ffaaa2!important}
/* Editor */
.editor-page{height:100vh;overflow:hidden}.save-state{font-size:10px;color:var(--muted);margin-right:5px}.save-state.dirty{color:#efc56f}.save-state.saved{color:var(--success)}.save-state.error{color:#ff9188}
.visibility-switch{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:11px;color:var(--muted)}.visibility-switch input{position:absolute;opacity:0}.visibility-switch span{width:36px;height:20px;border-radius:999px;background:#39342c;position:relative;border:1px solid var(--line)}.visibility-switch span:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:#aaa;top:2px;left:2px;transition:.2s}.visibility-switch input:checked+span{background:rgba(114,184,138,.25);border-color:var(--success)}.visibility-switch input:checked+span:after{left:18px;background:var(--success)}
.editor-layout{height:calc(100vh - var(--header));display:grid;grid-template-columns:380px minmax(0,1fr);overflow:hidden}.editor-sidebar{border-right:1px solid var(--line);background:#0c0a08;overflow:auto;padding:10px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:11px;margin-bottom:9px;overflow:hidden}.panel-head{padding:12px 14px 0}.cover-preview{height:170px;margin:7px 14px;border:1px dashed var(--line);border-radius:8px;background:#0b0907;display:grid;place-items:center;overflow:hidden;color:var(--accent);font-size:40px}.cover-preview img{width:100%;height:100%;object-fit:cover}.panel-actions{justify-content:flex-start;padding-top:3px}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr}.editor-map{height:230px;margin:7px 14px;border-radius:8px;background:#191713;overflow:hidden}.leaflet-container{font-family:Roboto,Arial,sans-serif}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#17130d;color:#f5efe2}
.location-check-notice{margin:8px 14px 14px;padding:10px 12px;border:1px solid rgba(214,176,93,.42);border-radius:8px;background:rgba(214,176,93,.1);color:#f3d88f;font-size:12px;line-height:1.45}.location-check-notice.error{border-color:rgba(255,112,99,.5);background:rgba(255,112,99,.1);color:#ffb0a9}.large-location-dialog{width:min(1180px,calc(100vw - 24px));max-width:none}.large-location-map{width:calc(100% - 28px);height:min(68vh,720px);min-height:420px;margin:6px 14px;border:1px solid var(--line);border-radius:10px;background:#191713;overflow:hidden}.large-location-help{margin:6px 18px 10px;color:var(--muted);font-size:12px;line-height:1.45}.large-coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px}.large-coordinate-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:700}.large-coordinate-grid input{width:100%;box-sizing:border-box}
@media (max-width:700px){.large-location-dialog{width:calc(100vw - 10px)}.large-location-map{height:58vh;min-height:330px;margin-inline:8px;width:calc(100% - 16px)}.large-coordinate-grid{grid-template-columns:1fr;padding-inline:8px}.large-location-dialog .dialog-actions{flex-wrap:wrap}.large-location-dialog .dialog-actions .btn{flex:1}.location-panel .panel-actions{flex-wrap:wrap}}
.writing-area{min-width:0;overflow:auto;background:#17130d;padding:14px 18px 50px}.docx-drop{width:min(940px,100%);margin:0 auto 10px;border:1px dashed var(--line-gold);border-radius:10px;background:rgba(214,176,93,.055);padding:10px 12px;display:flex;align-items:center;gap:10px}.docx-drop.dragover{background:rgba(214,176,93,.14);border-color:var(--accent)}.docx-drop>i{font-size:31px;color:#7fa9d7}.docx-drop div{flex:1}.docx-drop strong,.docx-drop small{display:block}.docx-drop small{color:var(--muted);font-size:10px;margin-top:2px}
.editor-toolbar{width:min(940px,100%);margin:0 auto;position:sticky;top:-14px;z-index:20;min-height:46px;border:1px solid var(--line);border-radius:10px 10px 0 0;background:rgba(13,11,8,.97);display:flex;align-items:center;gap:3px;padding:6px;flex-wrap:wrap}.editor-toolbar button,.editor-toolbar select{height:32px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);padding:0 8px;cursor:pointer}.editor-toolbar button:hover,.editor-toolbar select:hover{border-color:var(--line);background:var(--panel2)}.editor-toolbar select{border-color:var(--line)}.toolbar-spacer{flex:1}.toolbar-text{display:flex;align-items:center;gap:5px}
.content-editor{width:min(940px,100%);min-height:calc(100vh - 155px);margin:0 auto;background:#fdfbf6;color:#25211b;border-radius:0 0 10px 10px;padding:clamp(28px,6vw,72px);outline:0;box-shadow:0 20px 60px rgba(0,0,0,.28);font-family:Georgia,serif;font-size:18px;line-height:1.72}.content-editor:focus{box-shadow:0 0 0 2px var(--accent),0 20px 60px rgba(0,0,0,.28)}.content-editor h2,.content-editor h3{font-family:Roboto,Arial,sans-serif;line-height:1.2;color:#3a2d16;margin-top:1.7em}.content-editor img,.content-editor video{display:block;max-width:100%;height:auto;margin:1.5em auto;border-radius:6px}.content-editor a{color:#8b631b;text-decoration:underline}.content-editor .video-embed,.review-version-body .video-embed,.detail-content .video-embed{position:relative;width:100%;aspect-ratio:16/9;margin:1.7em 0;background:#000;border-radius:10px;overflow:hidden}.content-editor .video-embed iframe,.review-version-body .video-embed iframe,.detail-content .video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.author-edit-grid{display:grid;grid-template-columns:82px 1fr;gap:10px;align-items:center;padding:8px 14px 3px}.author-photo-preview{width:78px;height:78px;border-radius:50%;border:1px dashed var(--line-gold);background:#0b0907;display:grid;place-items:center;overflow:hidden;color:var(--accent);font-size:29px}.author-photo-preview img{width:100%;height:100%;object-fit:cover}.author-edit-grid .btn{margin:2px 0;white-space:normal;text-align:left}
/* Public */
.public-header .language-nav{display:flex;gap:3px;margin-left:auto}.language-nav a{font-size:10px;font-weight:900;padding:6px 7px;border-radius:5px;color:var(--muted)}.language-nav a:hover{background:var(--panel2);color:var(--text)}
.public-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.public-controls .search-box{min-width:340px}.public-controls select{width:auto;min-width:135px;height:38px}.country-filter{display:block;min-width:170px}.country-filter select{width:100%;min-width:170px}.view-tabs{display:flex;border:1px solid var(--line);border-radius:8px;background:var(--panel2);padding:2px}.view-tabs button{border:0;background:transparent;color:var(--muted);height:32px;padding:0 10px;border-radius:6px;display:flex;align-items:center;gap:5px;cursor:pointer}.view-tabs button.active{background:var(--accent);color:#160f06;font-weight:800}
.public-label-filter{border-top:1px solid var(--line);padding:13px 0 15px}.public-label-head{display:flex;align-items:center;gap:9px;margin-bottom:9px}.public-label-head>div:first-child{margin-right:auto}.public-label-head p{margin:0;color:var(--muted);font-size:11px}.public-label-head .eyebrow{margin-bottom:2px}.label-search-box{min-width:240px}.public-label-list{display:flex;flex-wrap:wrap;gap:6px;min-height:30px}.public-label-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);color:var(--muted);padding:6px 8px 6px 11px;cursor:pointer}.public-label-chip:hover,.public-label-chip.active{border-color:var(--accent);color:var(--accent2);background:rgba(214,176,93,.12)}.public-label-chip b{min-width:20px;border-radius:999px;background:rgba(255,255,255,.08);padding:2px 5px;color:var(--text);font-size:9px}.public-label-chip.active b{background:var(--accent);color:#160f06}.map-story .article-labels{margin:3px 0}.map-story .label-chip{font-size:8px;padding:3px 6px}.story-popup .article-labels{margin:5px 0}.story-popup .label-chip{font-size:9px;padding:3px 6px}
.public-map-view{height:calc(100vh - 240px);min-height:520px;display:grid;grid-template-columns:minmax(0,1fr) 370px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.public-map-view #publicMap{height:100%;background:#1a1814}.map-stories{background:#0d0b08;border-left:1px solid var(--line);overflow:auto;padding:8px}.map-story{display:grid;grid-template-columns:86px 1fr;gap:9px;padding:7px;border:1px solid transparent;border-radius:9px;cursor:pointer}.map-story:hover,.map-story.active{border-color:var(--line-gold);background:var(--panel2)}.map-story-thumb{height:72px;border-radius:7px;background:#1b160f;overflow:hidden;display:grid;place-items:center;color:var(--accent)}.map-story-thumb img{width:100%;height:100%;object-fit:cover}.map-story h3{font-size:13px;margin:2px 0 4px}.map-story p{font-size:10px;color:var(--muted);line-height:1.35;margin:0}.marker-dot{width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--accent);border:3px solid #120d06;box-shadow:0 4px 12px rgba(0,0,0,.45)}.story-popup{min-width:190px}.story-popup img{width:100%;height:90px;object-fit:cover;border-radius:6px}.story-popup h3{font-size:14px;margin:7px 0 3px}.story-popup p{font-size:11px;color:#c9bfae}.story-popup a{color:var(--accent);font-weight:800}
.public-list .article-card{cursor:default}.public-list .article-actions .btn{width:100%}.public-author{display:inline-flex!important;align-items:center;gap:5px}.public-author img{width:22px;height:22px;border-radius:50%;object-fit:cover}
/* Admin review */
.admin-filters select{height:38px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);padding:0 10px}.card-ai{margin-top:11px;padding-top:9px;border-top:1px solid var(--line)}.ai-state{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800}.ai-state.good{color:#9de0b3}.ai-state.bad{color:#ffaaa2}.ai-state.neutral{color:var(--muted)}.card-ai p,.ai-review-box p{font-size:11px;color:var(--muted);margin:5px 0 0}.review-dialog{width:min(960px,calc(100vw - 24px));max-height:calc(100vh - 24px)}.review-scroll{max-height:58vh;overflow:auto;padding:0 18px}.review-meta{display:flex;flex-wrap:wrap;gap:8px 15px;color:var(--muted);font-size:11px;margin-bottom:10px}.review-meta span{display:flex;align-items:center;gap:4px}.ai-review-box{border:1px solid var(--line);border-radius:8px;background:#0c0a08;padding:10px;margin-bottom:12px}.review-content{background:#fdfbf6;color:#25211b;border-radius:9px;padding:clamp(18px,4vw,42px);font-family:Georgia,serif;font-size:17px;line-height:1.65}.review-content img,.review-content video{max-width:100%;height:auto}.review-content h2,.review-content h3{font-family:Roboto,Arial,sans-serif;color:#3a2d16}
.review-label-editor{border:1px solid var(--line);border-radius:8px;background:#0c0a08;padding:10px;margin-bottom:12px}.review-label-editor>div:first-child{display:flex;align-items:baseline;gap:8px}.review-label-editor small{color:var(--muted)}.review-label-editor .label-check-list{padding:9px 0}.review-translations{border:1px solid var(--line);border-radius:8px;background:#0c0a08;padding:10px;margin-bottom:12px}.review-translations>div:first-child{display:flex;align-items:baseline;gap:8px}.review-translations small{color:var(--muted)}.review-language-tabs{display:flex;flex-wrap:wrap;gap:6px;padding-top:9px}.review-language-tabs .label-chip{cursor:pointer}.review-version-language{display:inline-block;color:#8b631b;font-family:Roboto,Arial,sans-serif;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.review-content>h2{font-size:28px;margin:8px 0 5px}.review-version-description{margin:0 0 22px;color:#6c6254;font-size:16px}.label-manager-dialog{width:min(900px,calc(100vw - 24px));max-height:calc(100vh - 24px)}.label-manager-body{max-height:calc(100vh - 90px);overflow:auto;padding:0 18px 18px}.label-manager-body>.help-text{margin-left:0}.label-source-grid{display:grid;grid-template-columns:150px 1fr}.label-language-grid{display:grid;grid-template-columns:1fr 1fr}.label-translation-actions{display:flex;align-items:center;gap:9px;padding:5px 14px}.label-translation-actions .muted-inline{padding:0}.label-manager-body>.dialog-actions{padding-right:14px}.label-json-note{display:flex;align-items:center;gap:6px;margin:0 14px 12px;color:var(--muted);font-size:10px}.label-json-note i{color:var(--accent);font-size:16px}.label-catalog-head{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:14px 0 8px;color:var(--muted)}.label-catalog{display:grid;gap:6px}.label-catalog-row{display:grid;grid-template-columns:135px 1fr auto;align-items:start;gap:10px;border:1px solid var(--line);border-radius:8px;background:#0c0a08;padding:9px}.label-catalog-row strong{color:var(--accent);font-size:11px;overflow-wrap:anywhere}.label-catalog-row>div{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}.label-catalog-row span{display:flex;gap:5px;color:var(--muted);font-size:10px}.label-catalog-row b{color:var(--text);font-size:9px}.label-catalog-row aside{display:flex;gap:4px}.label-catalog-row .icon-btn{width:30px;height:30px}
/* Detail */
.detail-main{width:min(860px,calc(100% - 32px));margin:0 auto;padding:50px 0 100px}.detail-head h1{font-size:clamp(40px,8vw,76px);line-height:1.02;letter-spacing:-.035em;margin:10px 0 18px}.detail-lead{font-size:clamp(18px,3vw,25px);font-weight:300;line-height:1.45;color:var(--muted)}.detail-location{color:var(--accent);display:flex;align-items:flex-start;gap:5px}.detail-cover{margin:32px 0 45px}.detail-cover img{width:100%;max-height:560px;object-fit:cover;border-radius:15px}.detail-content{font-family:Georgia,serif;font-size:19px;line-height:1.78}.detail-content h2,.detail-content h3{font-family:Roboto,Arial,sans-serif;color:var(--accent2);line-height:1.2;margin-top:1.8em}.detail-content a{color:var(--accent);text-decoration:underline}.detail-content img,.detail-content video{display:block;max-width:100%;height:auto;margin:1.7em auto;border-radius:8px}.detail-author{display:grid;grid-template-columns:110px 1fr;gap:22px;align-items:start;border-top:1px solid var(--line);margin-top:55px;padding-top:28px}.detail-author>img,.author-avatar-placeholder{width:104px;height:104px;border-radius:50%;object-fit:cover;background:var(--panel2);display:grid;place-items:center;color:var(--accent);font-size:38px}.detail-author h2{margin:0 0 7px;font-size:22px}.detail-author p{color:var(--muted);line-height:1.55;margin:0}
@media(max-width:980px){.user-pill{display:none}.editor-layout{grid-template-columns:320px minmax(0,1fr)}.public-hero{display:block}.public-controls{justify-content:flex-start;margin-top:16px}.public-map-view{grid-template-columns:1fr}.map-stories{display:none}}
@media(max-width:720px){:root{--header:52px}.app-header,.public-header{padding:6px 8px}.brand small,.header-actions .btn span,.visibility-switch b,.save-state,.public-header .brand small{display:none}.dashboard-main,.public-main{width:calc(100% - 18px);padding-top:15px}.dashboard-intro{display:block}.dashboard-intro .search-box{margin-top:14px;min-width:0}.article-grid{grid-template-columns:1fr}.editor-page{height:auto;overflow:auto}.editor-layout{height:auto;display:flex;flex-direction:column;overflow:visible}.editor-sidebar{border-right:0;overflow:visible}.writing-area{padding:8px 8px 35px}.docx-drop{align-items:flex-start}.docx-drop>i{display:none}.docx-drop .btn{font-size:0}.docx-drop .btn i{font-size:16px}.content-editor{min-height:70vh;padding:26px 20px}.toolbar-spacer{display:none}.editor-toolbar{top:52px}.public-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.public-controls .search-box{min-width:0;grid-column:1/-1}.public-controls select,.country-filter,.country-filter select{width:100%;min-width:0}.view-tabs{grid-column:1/-1;justify-self:start}.public-label-head{align-items:stretch;flex-wrap:wrap}.public-label-head>div:first-child{width:100%}.label-search-box{min-width:0;flex:1}.public-map-view{height:65vh;min-height:440px}.language-nav{display:none!important}.label-source-grid,.label-language-grid{grid-template-columns:1fr}.label-catalog-row{grid-template-columns:1fr auto}.label-catalog-row>div{grid-column:1/-1;grid-template-columns:1fr}.label-catalog-row aside{grid-column:2;grid-row:1}.detail-main{padding-top:32px}.detail-content{font-size:17px}}



/* Smalle Leaflet-kaart tussen artikeltekst en auteur */
.detail-map-strip {
    position: relative;
    width: 100%;
    height: 160px;
    margin: 34px 0;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 18px;
    background: #e8ecef;
}

.article-map {
    width: 100%;
    height: 160px;
    min-height: 160px;
    z-index: 1;
}

.detail-map-strip .leaflet-container {
    font-family: "Roboto", sans-serif;
}

.detail-map-strip .leaflet-control-attribution {
    padding: 2px 5px;
    font-size: .62rem;
    line-height: 1.15;
    background: rgba(255, 255, 255, .82);
}

.article-map-popup {
    display: grid;
    gap: 3px;
    min-width: 150px;
    font-family: "Roboto", sans-serif;
}

.article-map-popup strong {
    color: #111827;
    font-size: .9rem;
    line-height: 1.25;
}

.article-map-popup span {
    color: #667085;
    font-size: .78rem;
    line-height: 1.3;
}

/* Facebook-deelknop onderaan */
.detail-share {
    display: flex;
    justify-content: flex-end;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(15, 23, 42, .1);
}

.facebook-share {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 10px 16px;
    border-radius: 999px;
    background: #1877f2;
    color: #fff;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition:
        transform .18s ease,
        filter .18s ease;
}

.facebook-share i {
    font-size: 1.25rem;
}

.facebook-share:hover,
.facebook-share:focus-visible {
    color: #fff;
    filter: brightness(.92);
    transform: translateY(-1px);
}

@media (max-width: 640px) {
    .detail-map-strip,
    .article-map {
        height: 135px;
        min-height: 135px;
    }

    .detail-map-strip {
        margin: 26px 0;
        border-radius: 14px;
    }

    .detail-share {
        justify-content: stretch;
    }

    .facebook-share {
        justify-content: center;
        width: 100%;
    }
}
/* Populariteit, aanbevelingen en content-based filtering */
.discovery-badges{position:absolute;z-index:3;top:9px;left:9px;right:55px;display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px;pointer-events:none}.discovery-badge{display:inline-flex;align-items:center;gap:4px;min-height:25px;padding:5px 8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(7,6,4,.9);box-shadow:0 4px 14px rgba(0,0,0,.28);font-size:9px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.04em}.discovery-badge i{font-size:13px}.discovery-badge.popular{color:#ffd071;border-color:rgba(255,190,65,.5)}.discovery-badge.recommended{color:#b7dcff;border-color:rgba(107,181,255,.48)}.discovery-badge.compact{min-height:21px;padding:4px 6px;font-size:8px}.discovery-badges.compact{position:static;display:flex;margin:0 0 3px;pointer-events:none}.map-story .discovery-badges.compact,.story-popup .discovery-badges.compact{gap:3px}.map-story .discovery-badge,.story-popup .discovery-badge{box-shadow:none}.story-popup .discovery-badges.compact{margin-top:6px}.detail-discovery-badges{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 13px}.detail-discovery-badges .discovery-badge{position:static;min-height:29px;padding:7px 10px;font-size:10px}
.similar-stories{margin-top:52px;padding-top:34px;border-top:1px solid var(--line)}.similar-stories-head{display:grid;gap:5px;margin-bottom:17px}.similar-stories-head .eyebrow{margin:0}.similar-stories-head h2{font-size:clamp(25px,4vw,36px);line-height:1.1;margin:0}.similar-stories-head p{max-width:620px;margin:0;color:var(--muted);line-height:1.5}.similar-stories-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.similar-story-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--panel);transition:border-color .18s ease,transform .18s ease}.similar-story-card:hover,.similar-story-card:focus-visible{border-color:var(--line-gold);transform:translateY(-2px)}.similar-story-cover{position:relative;height:130px;overflow:hidden;background:radial-gradient(circle at 50% 15%,#372d1c,#100e0b)}.similar-story-cover>img{width:100%;height:100%;object-fit:cover}.similar-story-placeholder{height:100%;display:grid;place-items:center;color:rgba(214,176,93,.7);font-size:39px}.similar-story-language{position:absolute;top:8px;right:8px;padding:4px 6px;border:1px solid var(--line);border-radius:999px;background:rgba(7,6,4,.86);color:#9de0b3;font-size:8px;font-weight:900}.similar-story-cover>.discovery-badge{position:absolute;left:8px;bottom:8px}.similar-story-info{display:flex;min-height:165px;flex-direction:column;padding:13px}.similar-story-info h3{font-size:17px;line-height:1.25;margin:0 0 7px}.similar-story-info p{display:-webkit-box;overflow:hidden;min-height:47px;margin:0;color:var(--muted);font-size:11px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:3}.similar-story-link{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:13px;color:var(--accent);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:720px){.discovery-badges{right:48px}.similar-stories-grid{grid-template-columns:1fr}.similar-story-card{display:grid;grid-template-columns:125px 1fr}.similar-story-cover{height:100%;min-height:150px}.similar-story-info{min-height:150px}.detail-discovery-badges{margin-top:5px}}
@media(max-width:460px){.similar-story-card{display:block}.similar-story-cover{height:145px;min-height:0}}

/* Progressive rendering for large public story collections */
.map-story{content-visibility:auto;contain-intrinsic-size:86px 100px}
.map-story-thumb img,.article-cover img,.public-author img{background:#1b160f}
.story-load-sentinel{grid-column:1/-1;width:100%;height:2px;pointer-events:none}

/* Performance: laat de browser inhoud buiten de viewport overslaan. */
.review-card,.map-story,.similar-story-card{
    content-visibility:auto;
    contain-intrinsic-size:1px 360px;
}
.article-cover img,.map-story-thumb img,.similar-story-cover img,.review-version-body img,.content-editor img{
    display:block;
}


/* Fullscreen publieke kaartinterface */
html:has(body.map-first-page),body.map-first-page{width:100%;height:100%;overflow:hidden}
body.map-first-page{background:#12100c}
.public-map-app{position:fixed;inset:0;overflow:hidden}
.map-first-page .public-map-view{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;border:0;border-radius:0;overflow:hidden}
.map-first-page .public-map-view #publicMap{position:absolute;inset:0;width:100%;height:100%;background:#1a1814}
.map-filter-panel{position:absolute;z-index:900;top:14px;left:14px;width:min(760px,calc(100vw - 430px));padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(10,8,6,.92);box-shadow:0 14px 45px rgba(0,0,0,.4);backdrop-filter:blur(14px)}
.map-filter-topline,.map-filter-selects,.location-primary-row,.address-search-row{display:flex;align-items:center;gap:7px}
.map-filter-topline{margin-bottom:7px}.map-taletrailr-brand{flex:0 0 auto;height:38px;display:flex;align-items:center;gap:8px;padding:3px 10px 3px 4px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);text-decoration:none}.map-taletrailr-brand:hover,.map-taletrailr-brand:focus-visible{border-color:var(--accent);color:var(--accent2)}.map-taletrailr-brand img{width:30px;height:30px;display:block;object-fit:contain}.map-taletrailr-brand span{font-size:13px;font-weight:900;letter-spacing:-.02em}.map-main-search{flex:1;min-width:180px;background:rgba(12,10,8,.92)}
.map-filter-selects{flex-wrap:wrap;margin-bottom:8px}.map-filter-selects select{height:34px;min-width:128px;border:1px solid var(--line);border-radius:8px;background:#0c0a08;color:var(--text);padding:6px 30px 6px 9px;outline:0}.map-filter-selects .country-filter{min-width:170px}.map-filter-selects .country-filter select{width:100%}.map-language-nav{display:flex;align-items:center;gap:2px;margin-left:auto}.map-language-nav a{display:grid;place-items:center;min-width:30px;height:30px;padding:0 5px;border-radius:6px;color:var(--muted);font-size:10px;font-weight:900}.map-language-nav a:hover,.map-language-nav a.active{background:var(--accent);color:#160f06}.map-new-article-link{height:34px;white-space:nowrap}.map-manage-link{width:34px;height:34px}
.location-search-panel{display:grid;gap:7px;padding:8px;border:1px solid var(--line);border-radius:10px;background:rgba(23,19,13,.78)}.location-primary-row{flex-wrap:wrap}.location-checkbox{display:flex;align-items:center;gap:6px;min-height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:11px;font-weight:700}.location-checkbox:has(input:checked){border-color:var(--accent);color:var(--accent2);background:rgba(214,176,93,.12)}.location-checkbox input{accent-color:var(--accent)}.radius-field{display:grid;grid-template-columns:auto minmax(100px,1fr) auto;align-items:center;gap:7px;flex:1;min-width:230px;color:var(--muted);font-size:10px;font-weight:800}.radius-field input{width:100%;accent-color:var(--accent)}.radius-field output{min-width:42px;color:var(--accent2);text-align:right}.address-search-box{flex:1;min-width:220px;height:34px;background:#0c0a08}.location-status{min-height:15px;margin:0;color:var(--muted);font-size:10px;line-height:1.4}.location-status.error{color:#ffaaa2}
.labels-collapsible{margin-top:8px}.labels-toggle{width:100%;min-height:34px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);padding:0 10px;cursor:pointer}.labels-toggle>span:first-child{display:flex;align-items:center;gap:6px;font-weight:800}.labels-selected-count{margin-left:auto;color:var(--accent);font-size:10px}.labels-chevron{transition:transform .18s ease}.labels-toggle[aria-expanded="true"] .labels-chevron{transform:rotate(180deg)}.labels-panel{max-height:38vh;margin-top:7px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#0c0a08;overflow:auto}.labels-panel .public-label-head{display:flex;align-items:center;gap:7px;margin-bottom:8px}.labels-panel .label-search-box{flex:1;min-width:0;height:34px}.labels-panel .public-label-list{display:flex;flex-wrap:wrap;gap:6px;min-height:30px}
.floating-count{position:absolute;z-index:850;left:16px;bottom:14px;min-height:32px;display:flex;align-items:center;padding:0 11px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(10,8,6,.9);box-shadow:0 8px 25px rgba(0,0,0,.3);color:var(--muted);font-size:11px;backdrop-filter:blur(10px)}
.map-first-page .map-stories{position:absolute;z-index:880;top:0;right:0;bottom:0;width:380px;display:flex;flex-direction:column;padding:0;border:0;border-left:1px solid var(--line);background:rgba(10,8,6,.91);box-shadow:-18px 0 45px rgba(0,0,0,.28);backdrop-filter:blur(14px);overflow:hidden}.map-stories-header{flex:0 0 auto;min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.map-stories-header .eyebrow{margin:0 0 2px}.map-stories-header strong{font-size:12px}.map-stories-close{display:none}.map-stories-list{flex:1;min-height:0;overflow:auto;padding:8px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.map-stories-list::-webkit-scrollbar{width:8px}.map-stories-list::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(214,176,93,.68)}.map-stories-list .empty-state{margin:10px;padding:35px 15px}.story-list-toggle{display:none;position:absolute;z-index:920;right:14px;bottom:14px}
.map-first-page .public-list{position:absolute;z-index:600;inset:0;display:grid;align-content:start;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:13px;padding:var(--public-list-top,300px) 24px 32px;background:var(--bg);overflow:auto}.map-first-page .public-list[hidden]{display:none!important}.public-list-mode .floating-count{z-index:920}.public-list-mode .map-filter-panel{width:min(920px,calc(100vw - 28px))}
.map-first-page .leaflet-control-zoom{margin-top:14px;margin-left:14px;transform:translateY(0)}.map-first-page .leaflet-top.leaflet-left{top:auto;bottom:58px}.map-first-page .leaflet-control-attribution{background:rgba(255,255,255,.82)}

@media(max-width:1100px){.map-filter-panel{width:calc(100vw - 410px)}}
@media(max-width:820px){
    .map-filter-panel{top:8px;left:8px;width:calc(100vw - 16px);max-height:58vh;padding:8px;overflow:auto;border-radius:12px}
    .map-filter-topline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch}.map-main-search{min-width:0}.view-tabs button{padding:0 8px}.view-tabs button span{display:none}
    .map-filter-selects{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}.map-filter-selects select,.map-filter-selects .country-filter{width:100%;min-width:0}.map-language-nav{display:none}.map-new-article-link{grid-column:3;grid-row:1}.map-manage-link{grid-column:4;grid-row:1}
    .location-primary-row{display:grid;grid-template-columns:1fr auto}.location-primary-row .radius-field{grid-column:1/-1;min-width:0}.location-checkbox{min-width:0}.address-search-row{display:grid;grid-template-columns:1fr auto}.address-search-box{min-width:0}.address-search-row #clearLocation{grid-column:1/-1;justify-self:start}
    .labels-panel{max-height:30vh}
    .map-first-page .map-stories{width:min(390px,92vw);transform:translateX(105%);transition:transform .22s ease}.map-first-page .map-stories.open{transform:none}.map-stories-close{display:inline-flex}.story-list-toggle{display:inline-flex}.floating-count{left:8px;bottom:8px}
    .map-first-page .public-list{grid-template-columns:1fr;padding:var(--public-list-top,360px) 9px 80px}.public-list-mode .map-filter-panel{width:calc(100vw - 16px)}
    .map-first-page .leaflet-top.leaflet-left{bottom:52px}.map-first-page .leaflet-control-zoom{margin-left:8px}
}
@media(max-width:520px){
    .map-filter-panel{max-height:62vh}.map-filter-topline{display:grid;grid-template-columns:1fr auto}.map-taletrailr-brand{grid-column:1;grid-row:1;justify-self:start}.map-main-search{grid-column:1/-1;grid-row:2}.view-tabs{grid-column:2;grid-row:1}.map-filter-selects{grid-template-columns:1fr auto}.map-new-article-link{grid-column:1;grid-row:2;width:100%;justify-content:center}.map-manage-link{grid-column:2;grid-row:2;justify-self:end}.location-primary-row{grid-template-columns:1fr}.location-checkbox{justify-content:flex-start}.address-search-row{grid-template-columns:1fr}.address-search-row .btn{width:100%}.radius-field{grid-template-columns:auto 1fr auto}.labels-panel .public-label-head{align-items:stretch;flex-wrap:wrap}.labels-panel .label-search-box{width:100%;flex-basis:100%}.story-list-toggle{right:8px;bottom:8px}.story-list-toggle span{display:none}.story-list-toggle{width:42px;height:42px;padding:0;border-radius:50%}
}

.ui-language-nav{display:flex;align-items:center;gap:2px;margin-left:auto}.ui-language-nav a{display:grid;place-items:center;min-width:28px;height:28px;padding:0 4px;border-radius:6px;color:var(--muted);font-size:9px;font-weight:900}.ui-language-nav a:hover,.ui-language-nav a.active{background:var(--accent);color:#160f06}@media(max-width:720px){.ui-language-nav{margin-left:0}.ui-language-nav a{min-width:25px;height:25px;font-size:8px}}


/* Definitieve lijstweergave: kaarten mogen nooit tot horizontale stroken inklappen. */
body.public-list-mode .public-list{
    grid-auto-flow:row;
    grid-auto-rows:max-content;
    align-items:start;
    scrollbar-width:thin;
    scrollbar-color:var(--accent) transparent;
}
body.public-list-mode .public-list::-webkit-scrollbar{width:10px}
body.public-list-mode .public-list::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(214,176,93,.68)}
body.public-list-mode .public-list .article-card,
body.public-list-mode .public-list .public-list-card{
    display:flex!important;
    flex-direction:column!important;
    align-self:start!important;
    width:100%!important;
    height:auto!important;
    min-height:430px!important;
    overflow:hidden!important;
    content-visibility:visible!important;
    contain:none!important;
    contain-intrinsic-size:none!important;
}
body.public-list-mode .public-list .article-cover{
    display:block!important;
    flex:0 0 180px!important;
    width:100%!important;
    height:180px!important;
    min-height:180px!important;
}
body.public-list-mode .public-list .article-info{
    display:block!important;
    flex:1 1 auto!important;
    min-height:150px!important;
}
body.public-list-mode .public-list .article-actions{
    display:flex!important;
    flex:0 0 auto!important;
    min-height:50px!important;
}
@media(max-width:820px){
    body.public-list-mode .public-list .article-card,
    body.public-list-mode .public-list .public-list-card{min-height:410px!important}
}

/* Inklapbaar zoekmenu op de publieke startpagina */
.map-filter-panel-head{
    display:flex;
    align-items:center;
    gap:7px;
}
.map-filter-panel-head .view-tabs{
    margin-left:auto;
}
.map-filter-body{
    display:grid;
    gap:8px;
    margin-top:8px;
}
.map-filter-body[hidden]{
    display:none!important;
}
.map-filter-body>.map-main-search{
    width:100%;
    min-width:0;
    height:38px;
    background:rgba(12,10,8,.92);
}
.filter-panel-toggle{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 10px;
    border:1px solid var(--line);
    border-radius:8px;
    background:var(--panel2);
    color:var(--text);
    font:800 11px Roboto,Arial,sans-serif;
    cursor:pointer;
    white-space:nowrap;
}
.filter-panel-toggle:hover,
.filter-panel-toggle:focus-visible,
.storage-settings-button:hover,
.storage-settings-button:focus-visible{
    border-color:var(--accent);
    color:var(--accent2);
}
.filter-panel-chevron{
    color:var(--accent);
}
.storage-settings-button{
    flex:0 0 34px;
    width:34px;
    height:34px;
}
.map-filter-panel.is-collapsed{
    width:auto!important;
    max-width:calc(100vw - 28px);
    padding:8px;
}
.map-filter-panel.is-collapsed .map-filter-panel-head{
    min-width:0;
}
.map-filter-panel.is-collapsed .map-taletrailr-brand span{
    display:inline;
}

/* Dialoog voor essentiële browseropslag */
.storage-consent-dialog{
    width:min(590px,calc(100vw - 24px));
    max-width:590px;
    padding:0;
    border:1px solid rgba(255,255,255,.18);
    border-radius:18px;
    background:#100d09;
    color:var(--text);
    box-shadow:0 24px 80px rgba(0,0,0,.62);
}
.storage-consent-dialog::backdrop{
    background:rgba(0,0,0,.72);
    backdrop-filter:blur(5px);
}
.storage-consent-card{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    gap:16px;
    margin:0;
    padding:24px;
}
.storage-consent-icon{
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    border:1px solid var(--line-gold);
    border-radius:15px;
    background:rgba(214,176,93,.12);
    color:var(--accent);
    font-size:27px;
}
.storage-consent-card .eyebrow{
    margin:0 0 5px;
}
.storage-consent-card h2{
    margin:0 0 10px;
    color:var(--accent2);
    font-size:24px;
    line-height:1.15;
}
.storage-consent-card>div>p{
    margin:0 0 15px;
    color:var(--muted);
    line-height:1.55;
}
.essential-storage-option{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--panel2);
}
.essential-storage-option input{
    margin-top:3px;
    accent-color:var(--accent);
}
.essential-storage-option span{
    display:grid;
    gap:3px;
}
.essential-storage-option strong{
    color:var(--text);
    font-size:13px;
}
.essential-storage-option small{
    color:var(--muted);
    font-size:11px;
    line-height:1.4;
}
.storage-consent-status{
    min-height:18px;
    margin:9px 0 0!important;
    color:var(--accent2)!important;
    font-size:11px;
}
.storage-consent-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:14px;
}

@media(max-width:820px){
    .map-filter-panel-head{
        display:grid;
        grid-template-columns:auto 1fr auto auto;
    }
    .map-filter-panel-head .view-tabs{
        margin-left:auto;
        justify-self:end;
    }
    .map-filter-panel.is-collapsed{
        width:auto!important;
        max-height:none;
        overflow:visible;
    }
}
@media(max-width:520px){
    .map-filter-panel-head{
        grid-template-columns:auto 1fr auto auto;
    }
    .map-filter-panel-head .map-taletrailr-brand span,
    .filter-panel-toggle span{
        display:none;
    }
    .map-filter-panel-head .map-taletrailr-brand{
        width:38px;
        padding:3px;
    }
    .filter-panel-toggle{
        width:34px;
        padding:0;
    }
    .storage-consent-card{
        grid-template-columns:1fr;
        padding:18px;
    }
    .storage-consent-icon{
        width:44px;
        height:44px;
        border-radius:12px;
        font-size:23px;
    }
    .storage-consent-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .storage-consent-actions .btn{
        width:100%;
    }
}
@media(max-width:520px){
    .map-filter-body>.map-main-search{
        grid-column:auto;
        grid-row:auto;
    }
}

/* Beheerderspagina voor ontbrekende artikelvertalingen */
.translation-admin-main{
    width:min(1540px,calc(100% - 30px));
}
.translation-admin-intro{
    align-items:flex-start;
}
.translation-admin-toolbar{
    display:flex;
    align-items:flex-end;
    gap:10px;
    padding:13px;
    border:1px solid var(--line);
    border-radius:13px;
    background:var(--panel);
}
.translation-admin-search{
    flex:1 1 420px;
    min-width:240px;
}
.translation-admin-filter{
    display:grid;
    gap:5px;
    min-width:230px;
}
.translation-admin-filter>span{
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.translation-admin-filter select{
    height:38px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#0c0a08;
    color:var(--text);
    padding:0 34px 0 10px;
    outline:0;
}
.translation-admin-summary{
    display:grid;
    grid-template-columns:190px 220px minmax(280px,1fr);
    gap:10px;
    margin:12px 0;
}
.translation-admin-summary>div,
.translation-admin-summary>p{
    min-height:72px;
    margin:0;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--panel2);
}
.translation-admin-summary>div{
    display:grid;
    align-content:center;
    gap:3px;
}
.translation-admin-summary span{
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
}
.translation-admin-summary strong{
    color:var(--accent2);
    font-size:27px;
    line-height:1;
}
.translation-admin-summary>p{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--muted);
    line-height:1.45;
}
.translation-admin-summary>p i{
    color:var(--accent);
    font-size:25px;
}
.translation-admin-notice{
    display:flex;
    align-items:center;
    gap:9px;
    margin:10px 0;
    padding:11px 13px;
    border:1px solid var(--line-gold);
    border-radius:10px;
    background:rgba(214,176,93,.1);
    color:var(--accent2);
}
.translation-admin-notice.error{
    border-color:rgba(217,104,94,.55);
    background:rgba(217,104,94,.12);
    color:#ffaaa2;
}
.translation-admin-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(430px,1fr));
    gap:13px;
}
.translation-admin-card{
    min-width:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--panel);
    box-shadow:0 8px 28px rgba(0,0,0,.18);
}
.translation-admin-card:hover{
    border-color:rgba(214,176,93,.42);
}
.translation-admin-card.is-busy{
    border-color:var(--accent);
}
.translation-admin-cover{
    position:relative;
    height:165px;
    overflow:hidden;
    background:radial-gradient(circle at 50% 15%,#372d1c,#100e0b);
}
.translation-admin-cover img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.translation-cover-placeholder{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    color:rgba(214,176,93,.62);
    font-size:48px;
}
.translation-admin-card-body{
    padding:15px;
}
.translation-admin-card-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.translation-admin-card-heading>div{
    min-width:0;
}
.translation-admin-card-heading .eyebrow{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.translation-admin-card h2{
    margin:0;
    font-size:20px;
    line-height:1.25;
}
.translation-missing-count{
    flex:0 0 34px;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border:1px solid rgba(217,104,94,.55);
    border-radius:50%;
    background:rgba(217,104,94,.12);
    color:#ffaaa2;
    font-size:14px;
    font-weight:900;
}
.translation-admin-description{
    min-height:36px;
    margin:9px 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.translation-admin-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px 12px;
    color:var(--muted);
    font-size:10px;
}
.translation-admin-meta span{
    display:flex;
    align-items:center;
    gap:4px;
}
.translation-language-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
    margin-top:13px;
}
.translation-language-pill{
    min-width:0;
    display:grid;
    gap:2px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#0c0a08;
    text-align:center;
}
.translation-language-pill strong{
    font-size:12px;
}
.translation-language-pill small{
    overflow:hidden;
    color:var(--muted);
    font-size:8px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.translation-language-pill.source{
    border-color:rgba(214,176,93,.62);
    background:rgba(214,176,93,.12);
    color:var(--accent2);
}
.translation-language-pill.available{
    border-color:rgba(114,184,138,.55);
    background:rgba(114,184,138,.1);
    color:#9de0b3;
}
.translation-language-pill.missing{
    border-color:rgba(217,104,94,.52);
    background:rgba(217,104,94,.1);
    color:#ffaaa2;
}
.translation-language-pill.outdated{
    border-color:rgba(242,202,114,.55);
    background:rgba(242,202,114,.1);
    color:#f2ca72;
}
.translation-card-status{
    min-height:0;
    color:var(--accent2);
    font-size:10px;
}
.translation-card-status.active{
    min-height:24px;
    padding-top:9px;
}
.translation-admin-actions{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:9px;
    padding:10px;
    border-top:1px solid var(--line);
}
.translation-action-buttons,
.translation-link-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
}
.translation-link-buttons{
    justify-content:flex-end;
}
.translation-admin-card.is-busy .translation-admin-cover:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,transparent,rgba(214,176,93,.16),transparent);
    animation:translationAdminPulse 1.2s linear infinite;
}
@keyframes translationAdminPulse{
    from{transform:translateX(-100%)}
    to{transform:translateX(100%)}
}
@media(max-width:900px){
    .translation-admin-page .app-header{
        height:auto;
        min-height:var(--header);
        flex-wrap:wrap;
    }
    .translation-admin-page .header-actions{
        width:100%;
        margin-left:0;
        overflow-x:auto;
        padding-bottom:2px;
    }
    .translation-admin-toolbar{
        align-items:stretch;
        flex-wrap:wrap;
    }
    .translation-admin-search{
        flex-basis:100%;
    }
    .translation-admin-filter{
        flex:1 1 230px;
    }
    .translation-admin-summary{
        grid-template-columns:1fr 1fr;
    }
    .translation-admin-summary>p{
        grid-column:1/-1;
    }
}
@media(max-width:560px){
    .translation-admin-main{
        width:calc(100% - 18px);
        padding-top:16px;
    }
    .translation-admin-intro h1{
        font-size:31px;
    }
    .translation-admin-toolbar{
        display:grid;
        grid-template-columns:1fr;
    }
    .translation-admin-search,
    .translation-admin-filter{
        min-width:0;
        width:100%;
    }
    .translation-admin-summary{
        grid-template-columns:1fr;
    }
    .translation-admin-summary>p{
        grid-column:auto;
    }
    .translation-admin-grid{
        grid-template-columns:1fr;
    }
    .translation-language-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .translation-admin-actions{
        align-items:stretch;
        flex-direction:column;
    }
    .translation-action-buttons,
    .translation-link-buttons{
        width:100%;
    }
    .translation-action-buttons .btn,
    .translation-link-buttons .btn{
        flex:1 1 auto;
    }
}

/* Routes extension — isolated from the existing story styles. */
.routes-collapsible { margin-top: 10px; }
.routes-panel { display: grid; gap: 8px; max-height: none; overflow: visible; }
.route-search-box { width: 100%; height: 38px; }
.route-select-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; }
.route-public-select { width: 100%; min-width: 0; height: 40px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel2); color: var(--text); padding: 0 34px 0 10px; font: inherit; }
.public-route-list { display: grid; gap: 8px; }
.public-route-card {
    width: 100%; border: 1px solid rgba(16,14,11,.12); background: #fff; border-radius: 14px;
    padding: 8px; display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 10px; text-align: left;
    cursor: pointer; font: inherit; color: inherit; transition: border-color .18s, transform .18s, box-shadow .18s;
}
.public-route-card:hover { transform: translateY(-1px); border-color: rgba(16,14,11,.28); box-shadow: 0 8px 22px rgba(16,14,11,.08); }
.public-route-card.active { border-color: #b68a31; box-shadow: 0 0 0 2px rgba(214,176,93,.24); }
.public-route-card img, .route-card-placeholder { width: 72px; height: 62px; object-fit: cover; border-radius: 10px; background: #eee9df; display: grid; place-items: center; font-size: 25px; }
.public-route-card span span { min-width: 0; display: grid; }
.public-route-card strong { font-size: .92rem; line-height: 1.2; }
.public-route-card small { margin-top: 3px; color: #766d61; font-style: normal; }
.public-route-card em { margin-top: 4px; color: #59534b; font-style: normal; font-size: .78rem; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.active-route-info { border: 1px solid rgba(182,138,49,.28); border-radius: 15px; overflow: hidden; background: #fffaf0; }
.active-route-info > img { display: block; width: 100%; max-height: 180px; object-fit: cover; }
.active-route-copy { padding: 13px; }
.active-route-copy h3 { margin: 4px 0 7px; font-size: 1.1rem; }
.active-route-copy p { margin: 0; color: #575047; line-height: 1.45; }
.route-summary-meta { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: 10px; font-size: .78rem; color: #6c6256; }
.route-summary-meta span { display: inline-flex; align-items: center; gap: 4px; }
.active-route-copy details { margin-top: 12px; border-top: 1px solid rgba(16,14,11,.1); padding-top: 10px; }
.active-route-copy summary { cursor: pointer; font-weight: 700; }
.active-route-content { padding-top: 10px; font-size: .9rem; line-height: 1.55; }
.active-route-content h2, .active-route-content h3 { margin: 1em 0 .35em; }
.public-route-dialog { width: min(760px,calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: hidden; }
.public-route-dialog > form { display: grid; grid-template-rows: auto minmax(0,1fr) auto; max-height: calc(100vh - 26px); }
.public-route-dialog-head { border-bottom: 1px solid var(--line); }
.public-route-dialog-head > div { min-width: 0; }
.public-route-dialog-head h2 { overflow: hidden; margin-top: 3px; text-overflow: ellipsis; white-space: nowrap; }
.public-route-dialog-body { overflow-y: auto; background: #fffaf0; color: #25211b; }
.public-route-dialog-body > img { display: block; width: 100%; max-height: min(38vh,340px); object-fit: cover; }
.public-route-dialog-copy { padding: 20px clamp(18px,4vw,38px) 30px; }
.public-route-lead { margin: 0; color: #575047; font-size: 1rem; line-height: 1.55; }
.public-route-dialog .route-summary-meta { padding: 13px 0; border-bottom: 1px solid rgba(16,14,11,.12); }
.public-route-dialog .active-route-content { padding-top: 17px; font-size: 1rem; line-height: 1.65; }
.public-route-dialog .active-route-content > :first-child { margin-top: 0; }

.route-editor-layout {
    display: grid; grid-template-columns: 310px minmax(480px,1fr) 370px; gap: 14px;
    position: fixed; top: var(--header); right: 0; bottom: 0; left: 0;
    height: auto; min-height: 0; overflow: hidden;
    padding: 14px; background: #eeeae2;
}
.route-editor-sidebar, .route-stops-panel, .route-editor-main {
    min-width: 0; min-height: 0; height: 100%; max-height: 100%; overflow-x: hidden; overflow-y: scroll;
    overscroll-behavior: contain; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: rgba(16,14,11,.4) transparent;
    -webkit-overflow-scrolling: touch; touch-action: pan-y;
}
.route-editor-sidebar, .route-stops-panel { display: grid; align-content: start; gap: 12px; padding-bottom: 14px; }
.route-editor-sidebar .panel, .route-stops-panel .panel {
    display: block; height: auto !important; min-height: max-content; max-height: none !important;
    overflow: visible; flex: none;
}
.route-editor-sidebar .panel::after, .route-stops-panel .panel::after { content: ""; display: table; clear: both; }
.route-editor-sidebar .panel-actions { display: flex !important; visibility: visible !important; flex-wrap: wrap; gap: 7px; padding: 5px 14px 14px; }
.route-editor-sidebar .panel-actions .btn { display: inline-flex !important; visibility: visible !important; }
.route-cover-picker {
    appearance: none; -webkit-appearance: none; width: calc(100% - 28px); padding: 0;
    cursor: pointer; grid-template-rows: 1fr auto; gap: 7px; font: inherit;
}
.route-cover-picker > span { padding-bottom: 15px; color: #d6b05d; font-size: .78rem; font-weight: 800; }
.route-cover-picker:hover, .route-cover-picker:focus-visible { border-color: #d6b05d; box-shadow: 0 0 0 3px rgba(214,176,93,.15); outline: 0; }
.route-cover-picker img { grid-row: 1 / -1; }
.route-editor-main { display: grid; grid-template-rows: minmax(420px,54vh) minmax(390px,1fr); gap: 14px; padding-bottom: 14px; }
.route-editor-sidebar::-webkit-scrollbar, .route-stops-panel::-webkit-scrollbar, .route-editor-main::-webkit-scrollbar { width: 10px; }
.route-editor-sidebar::-webkit-scrollbar-thumb, .route-stops-panel::-webkit-scrollbar-thumb, .route-editor-main::-webkit-scrollbar-thumb { background: rgba(16,14,11,.28); border: 3px solid transparent; border-radius: 999px; background-clip: padding-box; }
.route-map-panel, .route-content-panel { min-width: 0; background: #fff; border: 1px solid rgba(16,14,11,.1); border-radius: 18px; overflow: hidden; box-shadow: 0 10px 28px rgba(16,14,11,.06); }
.route-map-panel { display: grid; grid-template-rows: auto minmax(330px,1fr) auto; }
.route-map-toolbar { padding: 10px 12px; display: flex; align-items: end; gap: 10px; flex-wrap: wrap; border-bottom: 1px solid rgba(16,14,11,.1); }
.route-map-actions { display: flex; flex: 1 1 420px; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.route-map-actions .btn { flex: 0 1 auto; max-width: 100%; white-space: normal; }
.route-map-toolbar > div:first-child { margin-right: auto; display: grid; gap: 2px; }
.route-map-toolbar small { color: #746c61; max-width: 510px; }
#calculateRoute { width: calc(100% - 28px); margin: 0 14px 8px; }
#calculateRouteTop { flex: 0 0 auto; }
.form-field.compact { min-width: 240px; margin: 0; }
.route-editor-map { min-height: 370px; width: 100%; }
.route-editor-map.adding-via-point { cursor: crosshair; }
.route-editor-map.drag-route-line .route-editable-line { cursor: grab; }
.route-editor-map.dragging-route-line, .route-editor-map.dragging-route-line .route-editable-line { cursor: grabbing; }
.route-editor-map.drag-route-line .route-editable-line { stroke-width: 10; stroke-opacity: .78; }
.route-content-panel { display: grid; grid-template-rows: auto minmax(320px,1fr); }
.route-content-editor { min-height: 360px; max-width: none; padding: 34px clamp(28px,6vw,90px); overflow: auto; outline: 0; }
.route-number-marker { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); background: #191613; color: #fff; border: 3px solid #fff; box-shadow: 0 3px 12px rgba(0,0,0,.28); font-weight: 900; font-size: 13px; }
.route-number-marker span { transform: rotate(45deg); }
.route-via-marker { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #191613; background: #d6b05d; border: 3px solid #fff; box-shadow: 0 3px 12px rgba(0,0,0,.25); font-size: 17px; }
.route-shaping-marker { color: #fff; background: #397dcc; }
.route-drag-marker { width: 30px; height: 30px; background: #191613; color: #fff; }
.route-metrics { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.route-metrics span { display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; border-radius: 9px; background: #f1ede5; font-size: .78rem; }
.selected-route-stops { display: grid; gap: 8px; }
.story-search-results { display: grid; gap: 8px; max-height: 38vh; overflow-y: auto; overscroll-behavior: contain; }

.route-search-panel, .route-selected-panel { min-width: 0; }
.route-search-help { margin-top: 0; }
.route-location-search { width: calc(100% - 24px); min-width: 0; margin: 0 12px 10px; }
.route-locations-head { align-items: center; }
.route-locations-head > div { display: flex; align-items: center; gap: 8px; }
.route-locations-head > div > b { min-width: 28px; height: 28px; display: grid; place-items: center; border-radius: 999px; background: #191613; color: #fff; }
.route-search-start { min-height: 120px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 18px; color: #776f64; text-align: center; }
.route-search-start i { font-size: 34px; color: #b68a31; }
.story-search-result .btn { white-space: nowrap; }
.story-search-result .btn:disabled { cursor: default; }
.selected-route-stop { display: grid; grid-template-columns: 24px 28px minmax(0,1fr) 34px; gap: 7px; align-items: center; padding: 9px 7px; border: 1px solid rgba(16,14,11,.11); border-radius: 12px; background: #fff; cursor: grab; }
.selected-route-via { grid-template-columns: 24px 34px minmax(0,1fr) auto; margin-left: 20px; background: #fff8e8; border-color: rgba(182,138,49,.35); cursor: default; }
.selected-route-via .route-via-list-icon { color: #b68a31; font-size: 20px; text-align: center; }
.selected-route-via > b { background: #d6b05d; color: #191613; }
.route-stop-actions { display: flex; gap: 4px; }
.route-stop-actions .icon-btn { width: 30px; height: 30px; }
.selected-route-stop small.route-point-info { white-space: normal; line-height: 1.25; max-height: 2.5em; overflow: hidden; }
.selected-route-stop.dragging { opacity: .38; }
.selected-route-stop .drag-handle { color: #8f8578; font-size: 19px; }
.selected-route-stop > b { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #191613; color: #fff; font-size: .78rem; }
.selected-route-stop div { min-width: 0; display: grid; gap: 2px; }
.selected-route-stop strong, .selected-route-stop small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.selected-route-stop small { color: #756d62; }
.story-search-result { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 7px; border: 1px solid rgba(16,14,11,.1); border-radius: 12px; background: #fff; }
.story-search-result.selected { opacity: .58; }
.story-search-result > img, .story-search-result > i { width: 48px; height: 44px; object-fit: cover; border-radius: 8px; background: #eeeae2; display: grid; place-items: center; font-size: 21px; }
.story-search-result div { min-width: 0; display: grid; gap: 2px; }
.story-search-result strong, .story-search-result small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.story-search-result small { color: #766e63; }
.via-point-list { padding: 8px 12px; display: flex; gap: 7px; overflow-x: auto; border-top: 1px solid rgba(16,14,11,.08); }
.via-point-chip { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; background: #f2ede3; padding: 5px 7px 5px 9px; font-size: .75rem; }
.via-point-chip button { border: 0; background: transparent; cursor: pointer; padding: 2px; }
.route-point-dialog textarea { resize: vertical; min-height: 110px; }
.route-point-dialog .dialog-head h2 { margin: 0; }
.route-point-dialog .help-text { margin-top: 2px; }
.route-card .cover-placeholder, .route-review-map { background: #eeeae2; }
.route-review-map { height: 360px; border-radius: 14px; overflow: hidden; }
.route-review-stops { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 7px; margin: 12px 0; }
.route-review-stops span { display: flex; gap: 8px; align-items: center; padding: 8px; background: #f2eee6; border-radius: 10px; }
.route-review-stops b { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #191613; color: #fff; }
.error-text { color: #a22; }
.empty-state.compact { padding: 22px 10px; }

@media (max-width: 1250px) {
    .route-editor-page { height: auto; overflow: auto; }
    .route-editor-layout { position: relative; inset: auto; height: auto; grid-template-columns: 290px minmax(450px,1fr); overflow-y: auto; align-items: start; }
    .route-editor-sidebar, .route-editor-main, .route-stops-panel { height: auto; overflow: visible; }
    .route-stops-panel { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
    .selected-route-stops, .story-search-results { max-height: 360px; overflow-y: auto; }
}
@media (max-width: 820px) {
    .route-editor-layout { display: block; height: auto; min-height: 0; overflow: visible; padding: 8px; }
    .route-editor-sidebar, .route-editor-main, .route-stops-panel { display: grid; grid-template-columns: 1fr; gap: 9px; margin-bottom: 9px; }
    .route-editor-main { grid-template-rows: auto auto; }
    .route-map-toolbar { align-items: stretch; }
    .route-map-actions { display: grid; grid-template-columns: 1fr; flex-basis: 100%; }
    .route-map-actions .btn { width: 100%; justify-content: center; }
    .form-field.compact { min-width: 100%; }
    .route-editor-map { min-height: 390px; }
    .route-content-editor { min-height: 420px; padding: 24px 18px; }
    .public-route-dialog-copy { padding: 16px; }
    .route-select-row { grid-template-columns: 1fr; }
    .route-select-row .btn { width: 100%; justify-content: center; }
}

/* Publieke zoekbalk: resetknop en maximale bruikbare hoogte op mobiel. */
.reset-search-filters{color:var(--accent2)}
.reset-search-filters[hidden]{display:none!important}
.map-filter-panel:not(.is-collapsed) .reset-search-filters{display:none}
@media(max-width:820px){
    .map-filter-panel{max-height:88vh;max-height:calc(100dvh - 16px)}
    .routes-panel,.route-public-select,.route-search-box input{font-size:12px}
    .route-public-select{height:36px;padding-left:8px}
}
@media(max-width:520px){
    .map-filter-panel{max-height:90vh;max-height:calc(100dvh - 16px)}
}
