/* Shared visual language with Meme Arsenal's current dashboard. */
:root{--ink:#16120b;--ink-soft:rgba(22,18,11,.78);--ink-muted:rgba(22,18,11,.62);--panel-flat:#fff9e8;--border:rgba(22,18,11,.62);--accent:#ff2d95;--yellow:#fbff12;--mint:#18f4d6;--font-ui:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-family:var(--font-ui);color:var(--ink);background:var(--panel-flat);scroll-behavior:smooth}
body{background:linear-gradient(90deg,#16120b09 1px,transparent 1px) 0 0/18px 18px,linear-gradient(0deg,#16120b08 1px,transparent 1px) 0 0/18px 18px,linear-gradient(135deg,var(--yellow),#ff7ad9 56%,var(--mint))}
button,input,select,.brand,.brand small,h1,.detail h2,.metric .number,.order-badge,.leaflet-container{font-family:var(--font-ui)}
button,input,select,dialog,.detail,.order-badge,.result,.survey-chip,.status,.locate,.map-legend,.results-title>span,.leaflet-control-zoom,.leaflet-tooltip{border-radius:0!important}
:root :focus-visible{outline:1px solid var(--ink);outline-offset:2px}
:focus:not(:focus-visible){outline:none}
*{scrollbar-width:thin;scrollbar-color:#16120b99 var(--panel-flat)}
@supports selector(::-webkit-scrollbar){*{scrollbar-width:auto;scrollbar-color:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--panel-flat);border-left:1px solid #16120b26}::-webkit-scrollbar-thumb{background:#16120b99;border:2px solid var(--panel-flat);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--ink)}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-corner{background:var(--panel-flat)}}
header{height:76px;padding:0 25px;border-bottom:3px solid var(--ink);background:linear-gradient(90deg,#ff2d9530,#fbff122e 44%,#18f4d638),var(--panel-flat)}
.brand{font-size:20px;letter-spacing:-.5px}.brand svg{stroke:var(--ink);background:var(--yellow);border:2px solid var(--ink);padding:3px}.brand small{color:var(--ink-soft);letter-spacing:1.5px;font-size:8px;font-weight:700}header nav{display:flex;align-items:center;gap:18px}.text-button{color:var(--ink);font-size:12px;font-weight:700;text-decoration:none;padding:7px 0}
main{height:calc(100dvh - 76px);min-height:760px}.explorer{background:var(--panel-flat);border-right:2px solid var(--ink)}.intro{padding-top:26px}.eyebrow{color:var(--ink);font-size:9px;font-weight:800;letter-spacing:1.5px}h1{font-size:29px;font-weight:800;line-height:1.15;letter-spacing:-1px}.intro p,.scope,.controls label,.filter-label span:last-child{color:var(--ink-soft)}.controls{border-color:var(--border)}.controls select{background:var(--panel-flat);color:var(--ink);border:1px solid var(--ink);box-shadow:2px 2px 0 #16120b26}.filter-label{font-weight:700}.order-filters button{background:var(--panel-flat);border-color:var(--ink);color:var(--ink);font-weight:700}.order-filters button:hover{background:var(--yellow)}.order-filters button.active{background:var(--accent);color:var(--ink);border-color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.results-title h2{font-weight:800}.results-title>span{background:var(--yellow);border:1px solid var(--ink);font-weight:700}.result{border-bottom:1px solid #16120b20;margin:0}.result:hover{background:#fbff123b}.result.selected{background:#fff9e8;border-color:var(--ink);box-shadow:inset 4px 0 var(--accent),2px 2px 0 #16120b26}.result strong{font-size:12px;font-weight:800}.result .sub,.result .quality,.result .arrow,.empty{color:var(--ink-soft)}.order-badge{background:var(--panel-flat);border-color:var(--ink);color:var(--ink);font-weight:800}.selected .order-badge{background:var(--yellow)}.sidebar-foot{border-color:var(--border);color:var(--ink-soft)}.sidebar-foot a{color:var(--ink-muted)}.live-dot{background:#007a4b}
.map-panel,#map{background:#d9d9d9}.leaflet-tile-pane{filter:grayscale(1) contrast(.85) brightness(1.04);opacity:1}.survey-chip,.locate,.map-legend,.status{background:var(--panel-flat);color:var(--ink);border:1px solid var(--ink);box-shadow:2px 2px 0 #16120b26}.scan-button{background:var(--yellow);border:2px solid var(--ink);color:var(--ink);font-weight:800;box-shadow:3px 3px 0 var(--ink)}.scan-button:hover{background:var(--mint)}#cancel{background:var(--panel-flat);border:1px solid var(--ink);color:var(--ink)}.locate input,.locate button{color:var(--ink)}.map-legend label{color:var(--ink-soft)}.map-legend input{accent-color:var(--ink)}.land-dot{background:#777c70}.water-dot{background:#9fa8ad}.status.error{background:#ffe3ef;color:#8b0025;border-color:#c40035}.leaflet-control-zoom{border:1px solid var(--ink)!important;box-shadow:2px 2px 0 #16120b26!important}.leaflet-control-zoom a{background:var(--panel-flat)!important;color:var(--ink)!important}.leaflet-tooltip{background:var(--panel-flat);color:var(--ink);border:1px solid var(--ink)}.marker-label{background:var(--panel-flat);border:2px solid var(--ink);color:var(--ink);font-family:var(--font-ui);box-shadow:2px 2px 0 #16120b40}.marker-label.selected-marker{background:var(--accent)}
.detail{background:var(--panel-flat);color:var(--ink);border:2px solid var(--ink);box-shadow:4px 4px 0 #16120b55;backdrop-filter:none}.detail h2{font-size:21px;font-weight:800}.detail .place,.metric small,.chain small,.chain a{color:var(--ink-soft)}.detail .metric{border-color:var(--border)}.metric .number{font-weight:800;color:var(--ink)}.metric b{font-size:11px}.chain li{border-color:var(--border)}.chain li:last-child{border-color:transparent}.chain li:before{background:#777c70;border-color:var(--panel-flat)}.chain li.water:before{background:#9fa8ad}.chain button{color:var(--ink);font-weight:600}.detail-actions button{background:var(--panel-flat);border:1px solid var(--ink);color:var(--ink);font-weight:700;box-shadow:2px 2px 0 #16120b26}.detail-actions button:hover{background:var(--mint)}
dialog{background:var(--panel-flat);color:var(--ink);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}dialog h2{font-family:var(--font-ui);font-weight:800}dialog p,#close-about{color:var(--ink-soft)}
.explainer{padding:38px 30px 32px;border-top:3px solid var(--ink);scroll-margin-top:20px}.explainer-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.explainer-heading h2{font-size:32px;font-weight:850;letter-spacing:-1.3px;margin:10px 0 0}.explainer-heading p{font-size:13px;line-height:1.6;margin:0;color:var(--ink-soft)}.order-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.order-card{background:var(--panel-flat);border:2px solid var(--ink);box-shadow:3px 3px 0 #16120b40;padding:17px;display:flex;flex-direction:column;min-width:0}.order-tag{font-size:9px;letter-spacing:1px;font-weight:800}.order-illustration{margin:17px 0 8px;background:#d8d8d8;border:1px solid var(--ink)}.order-illustration svg{display:block;width:100%;height:150px}.order-card h3{font-size:16px;letter-spacing:-.3px;margin:12px 0 6px}.order-card p{font-size:12px;line-height:1.65;color:var(--ink-soft);margin:0 0 18px;flex:1}.order-formula{font-size:10px;line-height:1.7;border-top:1px solid var(--border);padding-top:10px}.not-found{display:block;font-size:9px;font-weight:700;border:1px dashed var(--ink);margin-top:10px;padding:5px 7px}.explainer-note{display:grid;grid-template-columns:1fr 1fr;gap:25px;background:var(--panel-flat);border:1px solid var(--ink);padding:15px 19px;margin:20px 0}.explainer-note p{font-size:12px;line-height:1.7;margin:0;color:var(--ink-soft)}.back-to-map{color:var(--ink);font-size:12px;font-weight:800}
@media(max-width:1100px){.order-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.order-illustration svg{height:170px}}
@media(max-width:760px){header{height:78px;padding:0 15px}.brand{font-size:17px;gap:8px}.brand small{font-size:6px;letter-spacing:.6px}header nav{gap:0;align-items:end;flex-direction:column}.text-button{font-size:10px;padding:3px 0;max-width:none}.brand svg{width:31px;height:31px}main{height:auto;min-height:0}.intro,.controls{background:var(--panel-flat)}.intro h1{font-size:28px}.results-title,.scope,#results,.sidebar-foot{background:var(--panel-flat)}.scope{margin-top:0;margin-bottom:0;padding-top:8px;padding-bottom:13px}.explainer{padding:29px 18px}.explainer-heading{display:block}.explainer-heading h2{font-size:28px;margin-bottom:12px}.order-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.order-card{padding:12px}.order-card h3{font-size:14px}.order-card p{font-size:11px}.order-illustration svg{height:120px}.order-tag{font-size:8px;letter-spacing:.5px}.explainer-note{grid-template-columns:1fr;gap:13px;padding:14px}.detail{max-width:calc(100% - 30px)}.filter-label span{font-size:9px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}

/* Search and feedback stay close to the middle of the map. */
.map-panel .map-top{top:16px;justify-content:center}.map-top .scan-button{margin-left:0}
.scan-button:disabled{opacity:1;background:var(--panel-flat);color:var(--ink-muted);box-shadow:none;cursor:not-allowed}.scan-button[aria-busy="true"]{cursor:wait}
#status{top:42%;left:50%;right:auto;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 32px);padding:12px 16px;font-size:12px;line-height:1.5;border:1px solid #16120b45;background:#fff9e8f7;color:var(--ink-soft);box-shadow:0 4px 16px #16120b14;animation:notice-in .18s ease-out}
#status.error{border-color:#a394703d;background:#fffbef;color:#625735}
.leaflet-top.leaflet-right .leaflet-control-zoom{margin:16px 16px 0 0}
.location-search{position:absolute;z-index:520;top:16px;left:16px}.location-search>summary{display:flex;align-items:center;justify-content:center;width:36px;height:36px;list-style:none;border:1px solid var(--ink);background:var(--panel-flat);color:var(--ink);font-size:23px;cursor:pointer;box-shadow:2px 2px 0 #16120b26}.location-search>summary::-webkit-details-marker{display:none}
#location-search .locate{position:absolute;top:46px;left:0;border:1px solid var(--ink);background:var(--panel-flat)}#location-search .locate input{width:clamp(150px,40vw,260px);font-size:12px}#location-search .locate input:focus-visible{outline:none}#location-search .locate:focus-within{box-shadow:inset 0 0 0 1px #16120b70}
.map-context-stack{position:absolute;z-index:510;top:88px;left:16px;right:60px;max-width:420px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;pointer-events:none}.map-context-stack>*{pointer-events:auto}.map-panel:has(#location-search[open]) .map-context-stack{top:118px}
.map-context-stack .region-context{position:static;max-width:none;width:100%;box-sizing:border-box}.map-context-stack .region-context>span{min-width:0;max-width:none;flex:1}.map-context-stack .region-context button{flex-shrink:0}.map-context-stack #island-layers{position:static;max-width:100%}
#status.searching{width:340px;padding:18px}#status.searching #status-message{display:block;font-size:13px;font-weight:700;color:var(--ink)}#status.searching #status-message:before{content:'';display:inline-block;width:11px;height:11px;margin-right:8px;vertical-align:-1px;border:2px solid #16120b33;border-top-color:var(--ink);border-radius:50%;animation:search-spin 1s linear infinite}
#search-tip{display:block;min-height:3em;margin-top:12px;font-size:12px;color:var(--ink-soft)}#search-time{display:block;margin-top:9px;font-size:10px;font-variant-numeric:tabular-nums;color:var(--ink-muted)}#status #cancel{display:block;width:100%;margin-top:12px;padding:8px;font-size:11px;font-weight:700}
@keyframes search-spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){#status.searching #status-message:before{animation:none}}
.island-popup .leaflet-popup-content-wrapper{border-radius:0;background:var(--panel-flat);color:var(--ink);border:1px solid var(--ink);box-shadow:3px 3px 0 #16120b26}.island-popup .leaflet-popup-content{min-width:180px;margin:15px}.island-popup .leaflet-popup-content p{font-size:11px;margin:7px 0}.island-popup .leaflet-popup-tip{background:var(--panel-flat)}.island-popup .google-maps{color:var(--ink)}.detail>.google-maps{margin-bottom:16px}
@media(max-width:1100px){.map-panel:has(.island-popup) .detail{visibility:hidden;pointer-events:none}}
.google-maps{display:block;text-align:center;margin-top:11px;padding:10px;border:1px solid var(--ink);background:var(--mint);color:var(--ink);font-size:11px;font-weight:800;text-decoration:none;box-shadow:2px 2px 0 #16120b26}.google-maps:hover{background:var(--yellow)}
@keyframes notice-in{from{opacity:0;translate:0 -5px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){#status{animation:none}}
/* Keep geographic names readable underneath the shoreline overlays. */
.leaflet-tile-pane{filter:saturate(.5);opacity:1}
.place-label{background:transparent;border:0;box-shadow:none;color:#222;font-size:12px;font-weight:800;text-shadow:0 1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff;white-space:nowrap}
.order-filters{flex-wrap:wrap}.order-filters button{flex:1 0 auto;display:flex;align-items:center;justify-content:center;gap:5px}.order-filters small{font-size:9px;opacity:.75;font-weight:500}
.survey-choice{width:100%;display:flex;justify-content:space-between;gap:8px;padding:11px 8px;border:1px solid var(--ink);background:var(--panel-flat);color:var(--ink);font-size:12px;text-align:left;box-shadow:2px 2px 0 #16120b26}.survey-choice:hover{background:var(--yellow)}
.island-layers{position:absolute;z-index:510;left:23px;top:125px;width:205px;border:1px solid var(--ink);background:var(--panel-flat);box-shadow:2px 2px 0 #16120b26;color:var(--ink)}
.island-layers summary{padding:11px 12px;font-size:12px;font-weight:800;cursor:pointer}.island-layers summary span{float:right;font-size:10px;background:var(--yellow);border:1px solid var(--ink);padding:1px 4px}
.layer-body{padding:0 12px 12px}.layer-body>p{font-size:10px;line-height:1.5;margin:0 0 8px;color:var(--ink-soft)}.layer-body>small{display:block;font-size:9px;line-height:1.5;color:var(--ink-soft);margin-top:9px}
.layer-row{display:flex;align-items:center;gap:7px;padding:8px 0;cursor:pointer;border-top:1px solid #16120b22;font-size:11px}.layer-row input{margin:0;accent-color:var(--ink);width:15px;height:15px}.layer-row strong{margin-left:auto;font-variant-numeric:tabular-nums}.order-swatch{width:9px;height:9px;border:1px solid var(--ink);display:inline-block}
.order-color-1{background:var(--yellow)}.order-color-2{background:var(--mint)}.order-color-3{background:#ffa3d0}.marker-label.selected-marker{background:var(--accent);outline:2px solid white}
.region-context{position:absolute;z-index:500;right:23px;top:75px;max-width:300px;display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--ink);background:var(--panel-flat);font-size:10px;line-height:1.4}.region-context>span{max-width:185px}.region-context button{border:0;border-left:1px solid #16120b55;background:none;color:var(--ink);font-size:10px;font-weight:800;padding:0 0 0 9px;white-space:nowrap}
#welcome{width:min(900px,calc(100% - 32px));max-width:900px;max-height:90dvh;padding:27px;margin:auto}
#welcome[open]{display:flex;flex-direction:column}.welcome-heading{display:flex;justify-content:space-between;align-items:start;gap:18px;flex-shrink:0}.welcome-heading h2{margin:8px 0 0;font-size:30px;letter-spacing:-1px}.welcome-heading button{font-size:27px;line-height:1;background:none;border:0;color:var(--ink);padding:2px 6px}
#welcome .welcome-intro{margin:13px 0 20px;line-height:1.6;font-size:13px;flex-shrink:0}.welcome-orders{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;overflow-y:auto;min-height:0;padding:0 3px 3px 0}.welcome-order{min-width:0;border:1px solid var(--ink);padding:10px}.welcome-order .order-illustration{margin:0 0 12px}.welcome-order .order-illustration svg{height:100px}.welcome-order strong{font-size:9px;letter-spacing:.5px}#welcome .welcome-order p{font-size:11px;line-height:1.6;margin:7px 0 0}
#welcome .welcome-note{font-size:11px;line-height:1.6;margin:16px 0;color:var(--ink-soft);flex-shrink:0}.welcome-footer{display:flex;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--ink);flex-shrink:0}.welcome-footer button{background:var(--yellow);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);padding:11px 19px;font-size:13px;font-weight:800}.welcome-footer button:hover{background:var(--mint)}
@media(max-width:1100px){.region-context{top:114px;left:15px;right:15px;max-width:none;justify-content:space-between;padding:6px 9px}.region-context>span{max-width:none}.island-layers{top:159px;left:15px}.status{top:205px}.map-panel:has(#island-layers[open]) .detail{visibility:hidden;pointer-events:none}}
@media(max-width:760px){#welcome{padding:19px;width:calc(100% - 24px);max-height:92dvh}.welcome-heading h2{font-size:25px}.welcome-heading .eyebrow{font-size:8px}.welcome-orders{display:flex;flex-direction:column;gap:9px}.welcome-order{display:grid;grid-template-columns:80px 1fr;gap:12px;align-items:center;flex-shrink:0;padding:9px}.welcome-order .order-illustration{margin:0}.welcome-order .order-illustration svg{height:75px}.welcome-order strong{font-size:9px}#welcome .welcome-order p{font-size:11px;margin-top:4px}.welcome-footer button{width:100%}#welcome .welcome-note{font-size:10px;margin:12px 0}.map-legend label{display:flex;font-size:9px}.map-legend{gap:10px}.island-layers{width:195px}}
