body{background:var(--bg);color:var(--text);min-height:100dvh}[hidden]{display:none!important}#header{position:sticky;top:0;z-index:1000;display:flex;align-items:center;gap:24px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--panel-solid)}.wordmark{font-size:22px;letter-spacing:-1.3px;font-weight:900;white-space:nowrap}.workspace-nav{display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:18px;background:var(--surface-2)}.workspace-nav a{padding:12px 22px;border-radius:13px;font-weight:800;color:var(--muted)}.workspace-nav a[aria-current=page]{background:var(--panel-solid);color:var(--text);box-shadow:var(--shadow-soft)}.account-actions{display:flex;align-items:center;gap:8px;margin-left:auto}#account{font-size:12px;color:var(--muted)}main{max-width:1320px;margin:auto;padding:24px}h1{font-size:28px;letter-spacing:-.7px;margin:0}h2{font-size:21px;margin:0 0 16px}h3{font-size:17px}p{line-height:1.6}.muted,small{color:var(--muted)}button,a,input,select{min-height:44px}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[contenteditable]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input,select,textarea{font:inherit;font-size:16px;color:var(--text);background:var(--panel-solid);border:1px solid var(--border);border-radius:12px;padding:12px;width:100%;min-width:0}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--accent)}textarea{resize:vertical;min-height:100px}.field{margin:12px 0}.field>span{font-size:13px}.heading,.row,.actions,.filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.heading{justify-content:space-between;margin-bottom:22px}.actions{justify-content:flex-end}.filters{margin-bottom:20px}.filters>input{flex:1;min-width:120px}.filters>select{width:auto;max-width:100%}.panel{padding:22px;border:1px solid var(--border);border-radius:22px;background:var(--panel-solid);margin-bottom:20px}.story-list{display:grid;gap:10px}.story-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;text-align:left;color:var(--text);background:var(--panel-solid);border:1px solid var(--border);border-radius:18px;padding:20px;width:100%}.story-row:hover{border-color:var(--accent);box-shadow:var(--shadow-soft)}.story-row strong{font-size:18px;display:block;overflow-wrap:anywhere}.story-row p{margin:7px 0}.badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.badge{font-size:11px}.statusbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0}.statusbar>span{font-size:13px;color:var(--muted)}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px}.editor-grid aside{min-width:0}.editor-actions{position:sticky;top:var(--header-height,90px);z-index:800;padding:12px 0;background:var(--bg);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.editor-actions .actions{gap:8px}.languages{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}.languages button{border-radius:12px;padding:11px 16px;border:1px solid var(--border);color:var(--text);background:var(--panel-solid)}.languages button[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent)}.check{display:flex;align-items:center;gap:10px;margin:12px 0;min-height:44px}.coordinates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rich-toolbar{display:flex;gap:4px;flex-wrap:wrap;border:1px solid var(--border);border-bottom:0;border-radius:12px 12px 0 0;padding:6px;background:var(--surface-2)}.rich-toolbar button{box-shadow:none}.rich-editor{border:1px solid var(--border);background:var(--panel-solid);border-radius:0 0 12px 12px;min-height:300px;padding:16px;line-height:1.7;overflow-wrap:anywhere}.rich-editor p{margin:0 0 12px;min-height:1em}.rich-editor blockquote{border-left:3px solid var(--accent);margin-left:0;padding-left:16px}.rich-editor:empty:before{content:"Write the story…";color:var(--muted)}.image-card{border:1px solid var(--border);padding:12px;border-radius:16px;margin:12px 0}.image-card img{width:100%;height:180px;object-fit:cover;border-radius:12px}.image-card .actions{justify-content:flex-start}.image-card label{font-size:12px}.empty{padding:56px 20px;text-align:center;color:var(--muted)}.empty h2{color:var(--text)}#message{padding:12px 18px;background:var(--panel-solid);border:1px solid var(--route);border-radius:12px;margin:14px 24px;position:relative;z-index:900;white-space:pre-line}#acting{padding:12px 24px;background:var(--accent-soft);border-bottom:1px solid var(--border)}#acting strong{margin-right:12px}dialog{width:min(800px,calc(100vw - 24px));max-height:88dvh;overflow:auto;padding:24px;border-radius:22px;border:1px solid var(--border);background:var(--panel-solid);color:var(--text)}dialog::backdrop{background:#0006}dialog .actions{margin-top:20px}dialog .error{color:var(--route);white-space:pre-line}.preview{overflow-wrap:anywhere}.preview h1{margin:16px 0}.preview img{max-height:420px;object-fit:contain;border-radius:16px}.preview blockquote{border-left:3px solid var(--accent);padding-left:16px;margin-left:0}.preview-caption{font-size:13px;color:var(--muted)}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.import-errors{max-height:260px;overflow:auto}.import-errors p{font-size:13px;border-bottom:1px solid var(--border);padding-bottom:10px}.progress{padding:18px;background:var(--accent-soft);border-radius:14px}.mapping{display:grid;grid-template-columns:1fr 1fr;gap:12px}.loading{padding:24px}footer{padding:20px 24px;color:var(--muted);font-size:12px}.map-page{max-width:none;padding:0;position:relative;height:calc(100dvh - var(--header-height,90px));overflow:hidden}.map-canvas{position:absolute;inset:0;background:var(--bg);z-index:0}.map-tools{position:absolute;z-index:600;left:16px;right:16px;top:16px;display:flex;gap:8px;flex-wrap:wrap;pointer-events:none}.map-tools>*{pointer-events:auto}.map-tools input{width:240px;box-shadow:var(--shadow-soft)}.map-tools button{min-height:46px}.map-search{display:flex;gap:6px;max-width:100%}.search-results{position:absolute;left:16px;top:72px;z-index:700;max-width:360px;width:calc(100% - 32px);background:var(--panel-solid);border:1px solid var(--border);border-radius:16px;padding:10px;box-shadow:var(--shadow);max-height:50dvh;overflow:auto}.search-results button{display:block;width:100%;text-align:left;background:transparent;color:var(--text);padding:12px;border-bottom:1px solid var(--border)}.search-results small{display:block}.map-sheet{position:absolute;right:16px;top:84px;bottom:34px;width:360px;z-index:650;border:1px solid var(--border);border-radius:22px;background:var(--panel-solid);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.sheet-handle{display:none}.sheet-body{padding:20px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}.sheet-body h2{overflow-wrap:anywhere}.map-sheet .actions{justify-content:flex-start}.map-hint{position:absolute;left:60px;bottom:30px;max-width:280px;padding:10px 14px;border:1px solid var(--border);border-radius:14px;background:var(--panel-solid);z-index:500;font-size:12px;pointer-events:none}.point-marker{display:flex;justify-content:center;align-items:center;border:3px solid var(--panel-solid);border-radius:50%;background:var(--accent);color:white;min-width:28px;min-height:28px;box-shadow:var(--shadow-soft);font:800 12px var(--font)}.point-marker.cluster{min-width:42px;min-height:42px}.leaflet-container{font:inherit}.leaflet-control-attribution a{min-height:0}body.map-mode #footer{display:none}.map-sheet.collapsed .quick-fields{display:none}.map-sheet.collapsed{bottom:auto}.map-sheet .tool-btn{box-shadow:none}.inline-error{white-space:pre-line;color:var(--route)}.link-button{background:transparent;color:var(--accent-ink);text-decoration:underline;padding:8px}.sr-only{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:800px){#header{gap:12px;padding:12px 16px;flex-wrap:wrap}.wordmark{font-size:23px}.workspace-nav a{padding:11px 17px}.account-actions{width:100%;margin:0}.account-actions #account{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.editor-grid{grid-template-columns:1fr;gap:0}main{padding:18px 16px}.editor-actions{top:var(--header-height,130px)}.diff-grid{grid-template-columns:1fr}#message{margin:10px 16px}.map-sheet{top:auto;left:10px;right:10px;bottom:26px;width:auto;max-height:62%;border-radius:22px;overflow:hidden}.map-sheet.collapsed{bottom:26px;max-height:190px}.sheet-handle{display:block;min-height:36px;flex:none;touch-action:none;background:transparent;color:var(--muted);width:100%;border-bottom:1px solid var(--border)}.sheet-handle:before{content:"";display:inline-block;width:38px;height:4px;background:var(--border);border-radius:4px}.sheet-body{padding:0 16px 16px}.sheet-body h2{font-size:19px;margin:10px 0}.map-tools{left:10px;right:10px;top:10px;gap:6px}.map-search{flex:1;min-width:0}.map-tools input{width:100%;min-width:80px}.map-search input{flex:1}.map-hint{left:12px;bottom:auto;top:120px;max-width:calc(100% - 24px)}.search-results{top:120px;left:10px;max-width:none;width:calc(100% - 20px)}.story-row{padding:16px;grid-template-columns:1fr}.mapping{grid-template-columns:1fr}.filters>select{flex:1}.actions{gap:8px}.editor-actions>.actions{justify-content:flex-start}.panel{padding:18px}.coordinates{gap:8px}dialog{padding:18px}.map-page{padding:0}.map-sheet .actions button{flex:1}#acting{padding:12px 16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.field input,.field textarea,.field select{font-size:16px}.row>select{width:auto;max-width:100%;flex:0 1 auto}.row{margin:16px 0}
.map-zoom{position:absolute;top:84px;left:16px;z-index:600;display:grid;gap:4px}.map-zoom button{min-width:44px;font-size:22px}
.point-marker{min-width:44px;min-height:44px}
@media(max-width:800px){.map-search{flex:1 0 100%;width:100%}.map-search input{min-width:0;width:0}.map-zoom{top:126px;left:10px}.map-hint{left:64px;max-width:calc(100% - 80px)}}

.point-marker{width:44px;height:44px;padding:0}
@media(max-width:800px){.map-canvas{bottom:env(safe-area-inset-bottom,0px)}.map-sheet,.map-sheet.collapsed{bottom:calc(48px + env(safe-area-inset-bottom,0px))}}

.account-menu-content{display:flex;align-items:center;gap:8px}.account-menu>summary{display:none}.map-more{position:relative}.map-more>summary{list-style:none;min-height:46px}.map-more-actions{position:absolute;right:0;top:54px;min-width:200px;padding:10px;background:var(--panel-solid);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);display:grid;gap:8px}.map-more:not([open])>.map-more-actions{display:none}.map-more>summary::-webkit-details-marker,.account-menu>summary::-webkit-details-marker{display:none}
@media(max-width:800px){.account-menu{position:relative;margin-left:auto}.account-menu>summary{display:flex;list-style:none}.account-menu-content{position:absolute;right:0;top:52px;min-width:220px;display:grid;padding:16px;background:var(--panel-solid);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);z-index:1100}.account-menu:not([open])>.account-menu-content{display:none}.account-actions #account{font-size:14px}.map-more-actions{top:52px}}

.map-tools{z-index:800}.search-results{z-index:850}
body.map-mode #message{position:fixed;left:16px;right:16px;top:calc(var(--workspace-top,90px) + 120px);margin:0;max-height:25dvh;overflow:auto}
.map-page{height:calc(100dvh - var(--workspace-top,var(--header-height,90px)))}
@media(min-width:600px) and (max-width:800px){.account-actions{width:auto;margin-left:auto}}
@media(max-width:800px){.map-sheet{max-height:min(62%,calc(100% - 168px))}}
@media(max-width:800px) and (max-height:500px){.map-page:has(.map-sheet input:focus,.map-sheet textarea:focus) .map-tools,.map-page:has(.map-sheet input:focus,.map-sheet textarea:focus) .map-zoom,.map-page:has(.map-sheet input:focus,.map-sheet textarea:focus) .map-hint{display:none}.map-page:has(.map-sheet input:focus,.map-sheet textarea:focus) .map-sheet{max-height:calc(100% - 74px)}}

/* Canonical POI SVG has a 48×60 touch target and the same tip anchor as navigation. */
.story-pin{background:transparent;border:0;cursor:pointer}
.story-pin img{display:block;width:48px;height:60px;max-width:none;user-select:none;pointer-events:none;filter:drop-shadow(0 2px 2px #172b4640)}
.story-pin.selected{cursor:grab}
.story-pin.selected img{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 4px #287ce0)}
.story-pin.selected:active{cursor:grabbing}
.story-pin:focus-visible{outline:3px solid var(--accent);outline-offset:0;border-radius:14px}
.location-map{height:220px;position:relative;isolation:isolate;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface-2)}
.location-map-controls{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.location-map-controls select{flex:1;width:0;min-width:0}
.location-map-controls button{min-width:44px}
.location-hint{font-size:12px;line-height:1.5}

.location-map-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.location-map-actions button{flex:1;min-width:110px}.story-row-open{display:block;width:100%;border:0;padding:0;background:transparent;color:var(--text);text-align:left;font:inherit;box-shadow:none;cursor:pointer}
.story-row-open:hover{color:var(--accent-ink)}
.story-languages{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px}
.story-language{display:inline-flex;align-items:center;gap:6px}
.story-language .tool-btn{padding:6px 10px;min-height:44px;box-shadow:none}
.story-row-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:16px}
.story-row-actions .badges{justify-content:flex-end}
@media(max-width:800px){.story-row-actions{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;width:100%}.story-row-actions .badges{margin-right:auto;justify-content:flex-start}}

.recent-imports>button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;margin-top:8px;text-align:left;white-space:normal;overflow-wrap:anywhere;line-height:1.4}.recent-imports>button strong{max-width:100%}.recent-imports>button small{font-weight:400}
.theme-land-light .quick-summary,.theme-water-light .quick-summary{background:#fff}


.story-language-action{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.story-language-action .badges{margin:0}

/* Compact map controls: one integrated search surface, locale and quick actions. */
.map-search{flex:0 1 360px;gap:0;min-width:0;border:1px solid var(--border);border-radius:14px;background:var(--panel-solid);box-shadow:var(--shadow-soft);align-items:center}
.map-search:focus-within{outline:3px solid var(--accent);outline-offset:2px}
.map-tools .map-search input{flex:1;width:0;min-width:0;box-shadow:none;background:transparent;border:0;border-radius:14px;padding:12px}
.map-search input:focus-visible{outline:none}
.map-search-submit{display:grid;place-items:center;flex:none;width:44px;min-height:44px!important;margin:2px;padding:10px;border:0;border-radius:11px;color:var(--text);background:transparent;cursor:pointer}
.map-search-submit:hover{background:var(--accent-soft)}
.map-search-submit svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.map-tools .map-language-control{width:70px!important;flex:none;padding:10px 8px}
.map-more-actions .field{margin:0 0 6px}
.map-more-actions{max-height:calc(100dvh - var(--workspace-top,80px) - 160px);overflow:auto;overscroll-behavior:contain}
.story-languages select{width:76px}
@media(max-width:800px){
  #header{flex-wrap:nowrap;gap:8px;padding:10px 12px}
  .wordmark{font-size:18px;letter-spacing:-.9px}
  .workspace-nav{flex:none;padding:3px;gap:2px;border-radius:15px}
  .workspace-nav a{padding:10px 12px;border-radius:11px;font-size:14px}
  .account-actions{width:auto;min-width:0;margin-left:auto;flex:none}
  .account-menu{margin-left:0}
  .account-menu>summary{padding:10px 12px;font-size:13px;white-space:nowrap}
  .map-tools{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center}
  .map-tools .map-search{grid-column:1/-1;grid-row:1;width:100%;min-width:0}
  .map-tools .map-language-control{grid-column:1;grid-row:2;width:66px!important;justify-self:start}
  .map-tools>#add-point{grid-column:2;grid-row:2}
  .map-tools>#move-point{grid-column:3;grid-row:2}
  .map-tools .map-more{grid-column:4;grid-row:2}
  .map-tools>#add-point,.map-tools>#move-point{font-size:12px;padding:10px 6px;min-width:0}
  .map-zoom{top:122px}
  .map-hint{top:122px}
  .search-results{top:68px}
}
@media(max-width:359px){
  #header{gap:6px}
  .wordmark{font-size:16px;letter-spacing:-.7px}
  .workspace-nav a{padding:10px;font-size:13px}
  .account-menu>summary{padding:10px;font-size:12px}
}

.story-row-detail{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:24px;min-width:0;border-top:1px solid var(--border);padding-top:16px;overflow-wrap:anywhere}
.story-row-detail>.preview{grid-column:1;grid-row:1;min-width:0}
.story-row-detail>.preview>h3:first-child{margin-top:0}
.story-row-detail .preview img{display:block;max-width:100%;height:auto;margin-top:12px}
.story-row-detail .preview audio{max-width:100%}
.story-row-open[aria-expanded=true]{color:var(--accent-ink)}
@media(max-width:800px){.filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.filters>input{grid-column:1/-1;min-width:0}.filters>select{width:100%;min-width:0;padding:10px}.filters>button{width:100%}}

/* Language metadata is centered on the Listen touch target, never stretched. */
.story-languages{align-items:center;gap:8px}
.story-languages>.badge{align-self:center;align-items:center;justify-content:center;flex:none;line-height:1;padding:6px 9px}
.story-external-id{min-width:0;max-width:100%;overflow-wrap:anywhere;line-height:1.4}
.story-location-preview{grid-column:2;grid-row:1;margin:0;min-width:0}
.story-location-preview>h3{margin:0 0 16px}
.story-read-map-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}
.story-read-map-controls small{margin-right:auto;line-height:1.4}
.story-read-map-controls button{min-width:44px;padding:8px 10px;box-shadow:none}
.story-location-preview .location-hint:empty{display:none}

.playback-control{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.playback-icon{display:inline-block;flex:none;width:12px;height:12px;background:currentColor}
.playback-icon.play{clip-path:polygon(12% 0,100% 50%,12% 100%)}
.playback-icon.stop{width:10px;height:10px;margin:1px}
.topic-options{display:grid;gap:8px;max-height:55vh;overflow:auto;margin-top:12px}
.topic-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.topic-option label{min-width:0;overflow-wrap:anywhere}
.story-topic-name{overflow-wrap:anywhere;color:var(--text-muted)}
.topic-metadata>small{display:block;overflow-wrap:anywhere;margin-top:10px}
.topic-metadata>button{margin:10px 6px 0 0}

@media(max-width:800px){.story-row-detail{grid-template-columns:minmax(0,1fr)}.story-row-detail>.preview,.story-location-preview{grid-column:auto;grid-row:auto}}

/* Published themes and topic management. */
.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}.toolbar input:not([type=checkbox]){flex:1;min-width:120px}.toolbar select{width:auto}.themes-page h1{margin-bottom:18px}.themes-page .panel{overflow-wrap:anywhere}.themes-page label{display:block;margin:12px 0}.themes-page label>input,.themes-page label>textarea{display:block;margin-top:6px}.themes-page label>input[type=checkbox]{display:inline-block;margin:0 8px}.themes-page a[aria-disabled=true]{opacity:.5;pointer-events:none}.themes-page .leaflet-popup-content button{display:block;width:100%;text-align:left}

.theme-navigation{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:800px){.theme-surface #header{flex-wrap:wrap}.theme-surface .theme-navigation{margin-left:auto}}

.area-editor textarea{font-family:ui-monospace,monospace;font-size:16px;min-height:120px}
.area-editor .inline-error:empty{display:none}
.map-sheet .area-editor{padding:14px;margin:14px 0}
.map-sheet .area-editor h2{font-size:17px;margin:0 0 10px}
.map-sheet .area-editor .muted{font-size:12px;line-height:1.45}
.map-sheet.collapsed .area-editor,.map-sheet.collapsed .quick-location{display:none}
.quick-location{margin-top:14px}.quick-location h3{margin:0 0 6px}
