:root{--brand-navy:#072D78;--brand-blue:#2896FF;--brand-accent:#0878D1;--brand-light-blue:#8DCDFF;--brand-slate:#5A739D;--brand-white:#FFFFFF;--navy:var(--brand-navy);--accent:var(--brand-accent);--blue:var(--brand-blue);--blue2:var(--brand-light-blue);--ink:#13213c;--muted:#64748b;--line:#dce7f2;--soft:#f5f9fd;--green:#18a66a;--radius:18px;--shadow:0 12px 32px rgba(22,57,89,.10)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.site-header{height:72px;display:flex;align-items:center;gap:28px;padding:0 4vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:20}.brand{display:flex;align-items:center;gap:10px;min-width:max-content}.brand-logo{display:block;width:auto;height:50px;object-fit:contain}.footer-brand .brand-logo{height:44px}.brand strong{font-size:20px;color:var(--navy);display:block}.brand small{display:block;font-size:11px;color:var(--muted)}.brand-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--blue2),var(--navy));font-weight:800}.desktop-nav{display:flex;gap:22px;align-items:center;flex:1;justify-content:center;font-size:14px}.desktop-nav a:hover{color:var(--blue)}.header-actions{display:flex;gap:10px;align-items:center}.header-actions form{margin:0}.mobile-header-controls{display:none;align-items:center;gap:8px;margin-left:auto}.mobile-menu{position:relative}.mobile-menu summary{list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);padding:10px 12px;font-weight:800;cursor:pointer}.mobile-menu-toggle span[aria-hidden="true"]{font-size:18px;line-height:1}.mobile-menu[open] .mobile-menu-toggle{border-color:#acd8f5;background:#f7fcff}.mobile-menu-panel{position:absolute;top:calc(100% + 12px);right:0;width:min(320px,calc(100vw - 24px));padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 18px 44px rgba(22,57,89,.18)}.mobile-menu-primary,.mobile-menu-account{display:grid;gap:2px}.mobile-menu-primary a,.mobile-menu-account a,.mobile-menu-account button{display:flex;width:100%;align-items:center;min-height:44px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-weight:700;text-align:left;cursor:pointer}.mobile-menu-primary a:hover,.mobile-menu-account a:hover,.mobile-menu-account button:hover,.mobile-menu-primary a:focus-visible,.mobile-menu-account a:focus-visible,.mobile-menu-account button:focus-visible{background:#eef8ff;color:var(--accent);outline:none}.mobile-menu-divider{height:1px;background:var(--line);margin:8px 4px}.mobile-menu-account form{margin:0}.mobile-sign-in{color:var(--blue)!important}.button{border:0;border-radius:10px;padding:11px 16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.button-primary{background:var(--blue);color:#fff}.button-quiet{border:1px solid var(--line);background:#fff}.button-white{background:#fff;color:var(--navy)}.full{width:100%}.dev-banner{background:#fff7d6;color:#725b00;text-align:center;font-size:12px;padding:6px}.hero{min-height:480px;display:grid;grid-template-columns:1fr 1.1fr;gap:32px;padding:56px 4vw;background:radial-gradient(circle at 78% 28%,rgba(66,197,244,.26),transparent 28%),linear-gradient(135deg,#f7fbff,#eef8ff 55%,#fdf7ef)}.hero-copy{align-self:center;max-width:650px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--accent)}.eyebrow.light{color:#bfe8ff}.hero h1,.page-hero h1{font-size:clamp(44px,5vw,72px);line-height:.98;margin:.12em 0;color:#0b1d45;letter-spacing:-.04em}.hero-lead{font-size:21px;line-height:1.55;max-width:600px}.search-box{display:flex;gap:10px;background:#fff;padding:8px;border:1px solid #cddfec;border-radius:14px;box-shadow:var(--shadow);margin-top:28px}.search-box input{flex:1;border:0;padding:12px;outline:0;background:#fff}.search-box button{border:0;border-radius:9px;background:var(--blue);color:#fff;padding:0 28px;font-weight:700;cursor:pointer}.preview-note{font-size:12px;color:var(--muted)}.hero-visual{display:flex;align-items:center}.map-placeholder,.map-page-placeholder{position:relative;overflow:hidden;background:linear-gradient(145deg,#0f648c,#0a315b);border-radius:22px;min-height:360px;width:100%;box-shadow:var(--shadow)}.map-grid{position:absolute;inset:0;opacity:.35;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px),radial-gradient(circle at 25% 40%,#2df48c 0 8px,transparent 9px),radial-gradient(circle at 51% 33%,#ffb000 0 10px,transparent 11px),radial-gradient(circle at 76% 55%,#8b55ff 0 9px,transparent 10px);background-size:54px 54px,54px 54px,100% 100%,100% 100%,100% 100%}.map-badge{position:absolute;top:18px;right:18px;background:rgba(7,32,62,.75);color:#fff;padding:8px 12px;border-radius:999px;font-size:12px}.map-placeholder .button{position:absolute;bottom:18px;left:18px}.category-strip{display:grid;grid-template-columns:repeat(9,1fr);gap:12px;padding:18px 4vw;border-bottom:1px solid var(--line)}.category-chip{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px;border-radius:14px;font-size:12px}.category-chip:hover{background:var(--soft)}.category-chip span{width:44px;height:44px;border-radius:50%;background:#edf7fd;display:grid;place-items:center;font-size:21px;color:var(--blue)}.section-shell{padding:46px 4vw}.section-heading h2,.owner-cta h2{font-size:34px;margin:5px 0 0}.empty-state{border:1px dashed #b8cee0;border-radius:var(--radius);background:var(--soft);padding:46px;text-align:center;max-width:900px;margin:24px auto}.empty-icon{font-size:42px;color:var(--blue)}.empty-state h3{font-size:24px;margin:12px 0 8px}.empty-state p{max-width:680px;margin:0 auto;color:var(--muted);line-height:1.65}.owner-cta{margin:0 4vw 16px;padding:32px;border-radius:22px;background:linear-gradient(110deg,#0a315b,#126fa0 55%,#62c9ef);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px}.owner-cta p{max-width:720px;line-height:1.55}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:0 4vw 56px}.feature-grid article{border:1px solid var(--line);border-radius:16px;padding:24px;background:#fff}.feature-grid h3{margin:14px 0 8px}.feature-grid p{color:var(--muted);font-size:14px;line-height:1.55}.feature-icon{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eaf6ff;color:var(--blue);font-weight:800}.site-footer{border-top:1px solid var(--line);padding:30px 4vw 44px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-footer nav{display:flex;gap:22px;font-size:13px;color:var(--muted)}.footer-brand .brand-mark{width:32px;height:32px}.page-hero{padding:52px 4vw 28px}.page-hero.compact h1{font-size:48px}.page-hero p:last-child{color:var(--muted);font-size:18px}.map-page-placeholder{margin:0 4vw 64px;min-height:560px}.map-center-card{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);background:#fff;border-radius:14px;padding:18px 24px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.map-center-card span{color:var(--muted);font-size:12px}.auth-wrap{min-height:70vh;display:grid;place-items:center;padding:50px 20px;background:var(--soft)}.auth-card{width:min(440px,100%);background:#fff;padding:34px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.auth-card h1{font-size:38px;margin:5px 0}.auth-card p{color:var(--muted)}.auth-card label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:13px;margin:18px 0}.auth-card input{border:1px solid #cbd8e4;border-radius:10px;padding:12px}.form-error{padding:10px 12px;background:#fff0f0;color:#a22b2b;border-radius:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){.desktop-nav,.header-actions{display:none}.mobile-header-controls{display:flex}.site-header{justify-content:space-between}.hero{grid-template-columns:1fr;padding-top:36px}.hero-visual{min-height:320px}.category-strip{grid-template-columns:repeat(5,1fr);overflow:auto}.feature-grid{grid-template-columns:repeat(2,1fr)}.owner-cta{align-items:flex-start;flex-direction:column}}@media(max-width:640px){.site-header{padding:0 16px;gap:10px}.brand-logo{height:40px}.footer-brand .brand-logo{height:40px}.mobile-header-controls{gap:6px}.mobile-menu-toggle{padding:9px 10px}.mobile-add-webcam{padding:9px 11px}.header-actions .button-quiet{display:none}.brand strong{font-size:17px}.brand small{font-size:10px}.hero{padding:32px 18px}.hero h1{font-size:46px}.hero-lead{font-size:18px}.search-box{flex-direction:column}.search-box button{padding:12px}.category-strip{padding:12px 16px;grid-template-columns:repeat(9,74px)}.section-shell{padding:34px 18px}.empty-state{padding:30px 20px}.owner-cta{margin:0 18px 14px;padding:24px}.feature-grid{grid-template-columns:1fr;padding:0 18px 42px}.site-footer{align-items:flex-start;flex-direction:column;padding:28px 18px}.site-footer nav{flex-wrap:wrap}.page-hero{padding:38px 18px 20px}.page-hero.compact h1{font-size:38px}.map-page-placeholder{margin:0 18px 40px;min-height:60vh}}

.destination-search{max-width:720px}.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.location-card{display:flex;flex-direction:column;gap:7px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(22,57,89,.05)}.location-card:hover{border-color:#8fc9ed;box-shadow:var(--shadow)}.location-card strong{font-size:20px}.location-card>span:not(.location-type){color:var(--muted);font-size:13px;line-height:1.45}.location-card small{color:var(--muted)}.location-type{text-transform:uppercase;font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--accent)}.breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-bottom:22px}.breadcrumbs a:hover{color:var(--blue)}.location-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.location-meta span{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:13px}.location-meta span strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.admin-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-action-card{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--line);border-radius:16px;padding:20px;background:#fff}.admin-action-card p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.page-actions{margin-top:18px}.admin-shell{max-width:1280px;margin:0 auto}.admin-search{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.admin-search>div{display:flex;gap:8px;flex-wrap:wrap}.admin-search input{min-width:min(460px,100%);border:1px solid #cbd8e4;border-radius:10px;padding:11px 12px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.admin-table{width:100%;border-collapse:collapse;background:#fff}.admin-table th,.admin-table td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}.admin-table th{background:var(--soft);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.admin-table tr:last-child td{border-bottom:0}.admin-table td strong,.admin-table td small{display:block}.admin-table td small{margin-top:4px;color:var(--muted)}.admin-table td a{color:var(--blue);font-weight:700}.admin-form{display:flex;flex-direction:column;gap:18px;max-width:1000px}.admin-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.admin-form input,.admin-form select,.admin-form textarea{width:100%;border:1px solid #cbd8e4;border-radius:10px;padding:11px 12px;background:#fff;font:inherit}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.checkbox-label{align-self:end;flex-direction:row!important;align-items:center;gap:10px!important;min-height:44px}.checkbox-label input{width:auto}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.form-success{padding:11px 13px;background:#ecfff6;color:#126a48;border-radius:9px;margin-bottom:18px}
@media(max-width:900px){.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-actions{grid-template-columns:1fr}.form-grid.three{grid-template-columns:1fr 1fr}.form-grid.three label:last-child{grid-column:1/-1}}
@media(max-width:640px){.location-grid{grid-template-columns:1fr}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.form-grid.three label:last-child{grid-column:auto}.admin-search input{min-width:0;flex:1}.admin-table th:nth-child(4),.admin-table td:nth-child(4){display:none}}

/* Phase 1C — stable webcam/source foundation */
.webcam-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.health-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.health-online,.status-online{background:#e8fbf1;color:#08784c}.health-offline,.status-offline{background:#fff0f0;color:#a22b2b}.health-unknown,.status-unknown{background:#eef3f7;color:#53687b}.webcam-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:24px;align-items:start}.webcam-main,.webcam-sidebar{display:flex;flex-direction:column;gap:18px}.player-shell{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#071a31;box-shadow:var(--shadow);display:grid;place-items:center}.player-shell iframe,.player-shell video,.player-shell>img{width:100%;height:100%;border:0;object-fit:cover}.player-empty,.player-overlay{display:flex;flex-direction:column;gap:6px;text-align:center;color:#fff;padding:28px}.player-overlay{position:absolute;inset:auto 0 0;background:linear-gradient(transparent,rgba(3,18,38,.92));text-align:left}.webcam-fact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.webcam-fact-grid>div,.content-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:20px}.webcam-fact-grid strong,.webcam-fact-grid span{display:block}.webcam-fact-grid strong{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:5px}.content-card h2{margin:2px 0 12px;font-size:22px}.content-card p{color:var(--muted);line-height:1.65}.source-attribution dl{display:grid;gap:8px;margin:0}.source-attribution dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:8px 0}.source-attribution dl div:last-child{border-bottom:0}.source-attribution dt{font-weight:700}.source-attribution dd{margin:0;color:var(--muted);text-align:right}.text-link{color:var(--blue);font-weight:700}.tag-list{display:flex;gap:8px;flex-wrap:wrap}.tag-list a,.tag-list span{border:1px solid var(--line);background:var(--soft);padding:7px 10px;border-radius:999px;font-size:12px}.claim-card{background:linear-gradient(145deg,#f4fbff,#eef7ff)}.webcam-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.webcam-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:16px;background:#fff;padding-bottom:14px;overflow:hidden;box-shadow:0 6px 18px rgba(22,57,89,.05)}.webcam-card strong,.webcam-card>span{padding:0 14px}.webcam-card>span{font-size:12px;color:var(--muted)}.webcam-card-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(145deg,#0f648c,#0a315b);display:grid;place-items:center;color:#fff}.webcam-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.webcam-card-placeholder{font-size:13px;font-weight:800;letter-spacing:.08em}.status-dot{position:absolute;left:10px;top:10px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase}.admin-fieldset{border:1px solid var(--line);border-radius:14px;padding:16px}.admin-fieldset legend{padding:0 7px;font-weight:800;font-size:13px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.checkbox-grid .checkbox-label{align-self:auto;justify-content:flex-start}.admin-subsection{margin-top:40px;padding-top:30px;border-top:1px solid var(--line)}.admin-subsection h2{font-size:26px}.source-warning{border:1px solid #b8cee0;background:var(--soft);border-radius:12px;padding:13px 15px;margin-bottom:20px}.form-help{color:var(--muted);font-size:13px;line-height:1.55}.form-help code,.source-warning code{background:#eaf2f8;padding:2px 5px;border-radius:5px}
@media(max-width:1000px){.webcam-layout{grid-template-columns:1fr}.webcam-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.webcam-fact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.webcam-title-row{flex-direction:column}.webcam-card-grid,.webcam-fact-grid,.checkbox-grid{grid-template-columns:1fr}.source-attribution dl div{flex-direction:column;gap:3px}.source-attribution dd{text-align:left}}

/* Phase 1D — viewport-bounded live map discovery */
.map-hero{padding-bottom:22px}.live-map-shell{padding:0 4vw 42px}.map-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:14px;border:1px solid var(--line);border-radius:16px 16px 0 0;background:#fff}.map-toolbar label{display:flex;flex-direction:column;gap:5px;min-width:180px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.map-toolbar select{border:1px solid #cbd8e4;border-radius:9px;padding:10px 34px 10px 11px;background:#fff;color:var(--ink);font:inherit;text-transform:none;letter-spacing:0}.map-search-area{min-width:142px}.map-reset{min-width:110px}.map-search-area:disabled{background:#e8eef4;color:#64748b;cursor:default}.map-search-area.is-ready{box-shadow:0 0 0 3px rgba(15,143,232,.12)}.map-load-status{margin:0 0 2px auto;color:var(--muted);font-size:13px;line-height:1.4}.map-load-status.is-error{color:#a22b2b}.map-mobile-tabs{display:none}.map-discovery-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);height:610px;min-height:0;border:1px solid var(--line);border-top:0;border-radius:0 0 18px 18px;overflow:hidden;background:#fff}.map-canvas-wrap{position:relative;min-width:0;height:100%;background:#dce7f2}.live-map-canvas{height:100%;min-height:0;width:100%;z-index:1}.map-results-panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;border-left:1px solid var(--line);background:#fff}.map-results-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 12px;border-bottom:1px solid var(--line)}.map-results-heading h2{font-size:22px;margin:2px 0 0}.map-results-heading .eyebrow{margin:0}.map-result-count{min-width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#edf7fd;color:var(--blue);font-weight:800}.map-selected-webcam{padding:14px;border-bottom:1px solid var(--line);background:#f8fcff}.map-preview-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(22,57,89,.07)}.map-preview-image{display:block;aspect-ratio:16/9;background:#0a315b}.map-preview-image img{width:100%;height:100%;object-fit:cover}.map-preview-body{display:flex;flex-direction:column;gap:10px;padding:14px}.map-preview-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.map-position-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.map-preview-title{font-size:18px;font-weight:800;line-height:1.25;color:var(--navy)}.map-preview-title:hover,.map-preview-location:hover{color:var(--blue)}.map-preview-location{font-size:12px;color:var(--muted);line-height:1.45}.map-preview-tags{display:flex;gap:6px;flex-wrap:wrap}.map-preview-tags a{border:1px solid var(--line);background:var(--soft);border-radius:999px;padding:5px 8px;font-size:10px}.map-preview-open{align-self:flex-start;padding:9px 12px;font-size:12px}.map-results-list{display:flex;flex:1 1 auto;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;min-height:0}.map-webcam-row,.map-cluster-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.map-webcam-row:hover,.map-cluster-row:hover{background:var(--soft)}.map-webcam-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:11px;align-items:center;padding:10px 13px}.map-webcam-row img,.map-webcam-row-placeholder{width:76px;aspect-ratio:16/9;border-radius:8px;object-fit:cover;background:linear-gradient(145deg,#0f648c,#0a315b)}.map-webcam-row-placeholder{display:grid;place-items:center;color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em}.map-webcam-row-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.map-webcam-row-copy strong{font-size:13px;line-height:1.3}.map-webcam-row-copy span{font-size:11px;line-height:1.35;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-cluster-row{display:flex;flex-direction:column;gap:3px;padding:14px 16px}.map-cluster-row strong{font-size:13px}.map-cluster-row span{font-size:11px;color:var(--muted)}.map-results-empty{margin:auto;padding:34px 24px;text-align:center;display:flex;flex-direction:column;gap:7px}.map-results-empty[hidden]{display:none}.map-results-empty span,.map-results-note{font-size:12px;color:var(--muted);line-height:1.5}.map-results-note{margin:0;padding:10px 14px;border-top:1px solid var(--line);background:#fff9e7}.map-legend{position:absolute;z-index:500;left:12px;bottom:12px;display:flex;gap:9px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 4px 16px rgba(22,57,89,.14);font-size:10px}.map-legend strong{color:var(--navy);font-size:10px;letter-spacing:.02em}.map-legend span{display:flex;align-items:center;gap:5px}.marker-swatch{width:10px;height:10px;border-radius:50%;display:block;border:2px solid #fff;box-shadow:0 0 0 1px rgba(12,36,86,.18)}.marker-swatch.position-camera-known{background:#0f8fe8}.marker-swatch.position-location-only{background:#fff;border-color:#d98916;box-shadow:0 0 0 1px rgba(12,36,86,.18)}.webcam-map-marker-wrap,.webcam-map-cluster-wrap{background:transparent;border:0}.webcam-map-marker{display:block;width:24px;height:24px;border:4px solid #fff;border-radius:50%;box-shadow:0 3px 13px rgba(12,36,86,.4)}.webcam-map-marker.is-camera-known{background:#0f8fe8}.webcam-map-marker.is-location-only{background:#fff;border-color:#d98916}.webcam-map-cluster{display:grid;place-items:center;width:44px;height:44px;border:4px solid rgba(255,255,255,.95);border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:900;box-shadow:0 4px 16px rgba(12,36,86,.36)}.leaflet-tooltip{font:600 12px/1.3 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.map-noscript{border:1px solid var(--line);border-radius:16px;padding:24px;margin-top:18px;background:var(--soft)}.map-noscript h2{margin:0 0 8px}.map-noscript p{color:var(--muted);line-height:1.55}.map-noscript-links{display:flex;gap:10px;flex-wrap:wrap}.map-discovery-links{padding-top:10px}.map-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
@media(max-width:1000px){.map-discovery-layout{grid-template-columns:minmax(0,1fr) 320px}.map-load-status{flex-basis:100%;margin-left:0}.map-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.live-map-shell{padding:0 18px 32px}.map-toolbar{border-radius:14px}.map-toolbar label{min-width:100%;flex:1 0 100%}.map-search-area,.map-reset{flex:1;min-width:0}.map-mobile-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-top:0;background:#fff}.map-mobile-tabs button{border:0;background:#fff;padding:11px;font-weight:800;color:var(--muted)}.map-mobile-tabs button.is-active{background:#edf7fd;color:var(--blue)}.map-discovery-layout{display:block;height:520px;min-height:0;border-top:0;border-radius:0 0 14px 14px}.map-canvas-wrap,.map-results-panel{height:100%}.map-results-panel{border-left:0}.map-discovery-layout[data-mobile-view="map"] .map-results-panel{display:none}.map-discovery-layout[data-mobile-view="list"] .map-canvas-wrap{display:none}.live-map-canvas{min-height:0}.map-link-grid{grid-template-columns:1fr}.map-legend{left:8px;bottom:8px}.map-webcam-row{grid-template-columns:84px minmax(0,1fr)}.map-webcam-row img,.map-webcam-row-placeholder{width:84px}}
@media(max-width:480px){.map-toolbar label{min-width:100%}.map-discovery-layout{height:62vh;min-height:430px}.map-canvas-wrap,.map-results-panel,.live-map-canvas{height:100%;min-height:0}}

.map-mobile-selected-webcam{display:none}.map-preview-close{display:none}
@media(max-width:760px){.map-mobile-selected-webcam{position:absolute;z-index:650;left:10px;right:10px;bottom:10px;display:block;max-height:46%;overflow:auto}.map-mobile-selected-webcam[hidden]{display:none}.map-mobile-selected-webcam:not([hidden])~.map-legend{display:none}.map-mobile-selected-webcam .map-preview-card,.map-selected-webcam .map-preview-card{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);align-items:stretch;overflow:visible}.map-mobile-selected-webcam .map-preview-card{box-shadow:0 12px 32px rgba(12,36,86,.28)}.map-selected-webcam{padding:10px}.map-mobile-selected-webcam .map-preview-image,.map-selected-webcam .map-preview-image{height:100%;min-height:112px;aspect-ratio:auto;border-radius:13px 0 0 13px;overflow:hidden}.map-mobile-selected-webcam .map-preview-body,.map-selected-webcam .map-preview-body{gap:6px;padding:10px 40px 10px 10px}.map-selected-webcam .map-preview-body{padding-right:10px}.map-mobile-selected-webcam .map-preview-title,.map-selected-webcam .map-preview-title{font-size:15px;line-height:1.2}.map-mobile-selected-webcam .map-preview-location,.map-selected-webcam .map-preview-location{font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-mobile-selected-webcam .map-position-note,.map-selected-webcam .map-position-note{display:none}.map-mobile-selected-webcam .map-preview-tags,.map-selected-webcam .map-preview-tags{display:flex;gap:4px;flex-wrap:wrap}.map-mobile-selected-webcam .map-preview-tags a,.map-mobile-selected-webcam .map-preview-tag-more,.map-selected-webcam .map-preview-tags a,.map-selected-webcam .map-preview-tag-more{padding:3px 6px;font-size:9px;line-height:1.2}.map-mobile-selected-webcam .map-preview-tag-more,.map-selected-webcam .map-preview-tag-more{border:1px solid var(--line);background:var(--soft);border-radius:999px;color:var(--muted);font-weight:800}.map-mobile-selected-webcam .map-preview-open,.map-selected-webcam .map-preview-open{padding:7px 9px;font-size:11px}.map-mobile-selected-webcam .map-position-label,.map-selected-webcam .map-position-label{display:none}.map-preview-close{position:absolute;z-index:2;top:7px;right:7px;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--navy);font-size:20px;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(12,36,86,.12)}}
@media(max-width:420px){.map-mobile-selected-webcam .map-preview-card,.map-selected-webcam .map-preview-card{grid-template-columns:96px minmax(0,1fr)}.map-mobile-selected-webcam .map-preview-image,.map-selected-webcam .map-preview-image{min-height:104px}.map-mobile-selected-webcam .map-preview-body,.map-selected-webcam .map-preview-body{padding-left:10px}.map-mobile-selected-webcam .map-preview-top .health-pill{font-size:9px}}

/* Phase 1E — manual legacy webcam quality review */
.legacy-quality-shell{padding-top:18px}.quality-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:22px}.quality-summary-grid article{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.quality-summary-grid span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.quality-summary-grid strong{display:block;margin-top:5px;color:var(--navy);font-size:26px}.quality-review-card{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:var(--shadow)}.quality-review-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:20px;border-bottom:1px solid var(--line)}.quality-review-toolbar h2{font-size:28px;margin:4px 0}.quality-review-toolbar p{margin:0;color:var(--muted)}.quality-nav-actions{display:flex;gap:8px;flex-wrap:wrap}.quality-review-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.quality-media-panel{padding:18px;background:#081a35}.quality-player-wrap{position:relative;aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden}.quality-player-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.quality-thumbnail{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px}.quality-thumbnail-placeholder{aspect-ratio:16/9;display:grid;place-items:center;border-radius:12px;background:#0a315b;color:#fff}.quality-source-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.quality-source-actions .button{background:#fff}.quality-facts-panel{padding:20px}.quality-facts{margin:0}.quality-facts div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.quality-facts dt{color:var(--muted);font-size:12px;font-weight:800}.quality-facts dd{margin:0;font-size:13px;line-height:1.45}.quality-description{margin-top:18px}.quality-description h3{margin:0 0 7px;font-size:15px}.quality-description p{max-height:150px;overflow:auto;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.quality-guidance{margin-top:18px;padding:14px;border-radius:12px;background:#edf8f3;border:1px solid #cce8dc}.quality-guidance strong{color:#126d4a}.quality-guidance p{margin:6px 0 0;color:#45655a;font-size:12px;line-height:1.5}.quality-decision-form{padding:20px;border-top:1px solid var(--line);background:#fbfdff}.quality-decision-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:800}.quality-decision-form textarea{width:100%;border:1px solid #cbd8e4;border-radius:10px;padding:11px;resize:vertical;font:inherit}.quality-decision-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.quality-approve{background:#168b5b;color:#fff}.quality-reject{background:#fff2f2;color:#9b2f2f;border:1px solid #efcaca}.quality-decision-pill{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;background:#edf2f7;color:#526274}.quality-approved{background:#e4f6ed;color:#14704a}.quality-reject_poor_quality,.quality-reject_not_useful{background:#fff0f0;color:#982f2f}.quality-duplicate{background:#fff6db;color:#7b5d05}.quality-review_later{background:#eef1ff;color:#4a58a0}.quality-pending{background:#edf2f7;color:#526274}.quality-candidate-table small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:1100px){.quality-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quality-review-layout{grid-template-columns:1fr}.quality-media-panel{padding:14px}}
@media(max-width:700px){.quality-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quality-review-toolbar{flex-direction:column}.quality-review-toolbar h2{font-size:23px}.quality-facts div{grid-template-columns:1fr;gap:3px}.quality-decision-buttons .button{width:100%}.quality-source-actions .button{flex:1}.quality-candidate-table th:nth-child(2),.quality-candidate-table td:nth-child(2){display:none}}
.quality-history{padding:18px 20px 22px;border-top:1px solid var(--line)}.quality-history h3{margin:0 0 12px;font-size:17px}.quality-history .admin-table td{vertical-align:top}

/* Phase 1E — reviewer category overrides + admin promotion control */
.quality-category-review{padding:20px;border-top:1px solid var(--line);background:#f8fbfe}.compact-heading h3{margin:4px 0 5px;font-size:18px}.compact-heading p:last-child{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.quality-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;border:0;padding:0}.quality-category-grid label{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px;font-weight:700}.quality-category-grid input{width:auto}.quality-promoted-notice{display:flex;flex-direction:column;gap:6px;padding:13px 14px;border:1px solid #d7e4ef;border-radius:11px;background:#fff}.quality-promoted-notice a{color:var(--blue);font-weight:800}.legacy-promotion-shell{padding-top:18px}.promotion-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:920px}.promotion-control-card{margin-bottom:22px}.promotion-control-card h2{margin:4px 0 8px}.promotion-control-card p{color:var(--muted);line-height:1.55}.promotion-preview-card{margin-top:22px}.promotion-confirm-form{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.promotion-confirm-check{justify-content:flex-start;min-height:auto;margin-bottom:14px}.form-help{color:var(--muted);font-size:12px;line-height:1.5}.content-note{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.5}.section-heading.compact-heading{margin-bottom:0}
@media(max-width:760px){.quality-category-grid{grid-template-columns:1fr 1fr}.promotion-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.quality-category-grid{grid-template-columns:1fr}}
.quality-workflow-actions{display:flex;justify-content:flex-end;margin:-10px 0 18px}

/* Phase 1F — crawlable public discovery refinements */
.discovery-card{display:block}.discovery-card .webcam-card-main-link{display:block;color:inherit;text-decoration:none}.discovery-card .webcam-card-main-link>strong{display:block;padding:12px 14px 4px}.webcam-card-location{display:block;padding:0 14px 13px;color:var(--muted);font-size:12px;text-decoration:none}.webcam-card-location:hover{color:var(--blue);text-decoration:underline}.related-webcams{padding-top:0}.section-heading>div>p:last-child{color:var(--muted);line-height:1.5}
.quality-promoted{background:#e8f2ff;color:#175ea8}.promotion-empty{color:var(--muted)}
@media(max-width:700px){.quality-candidate-table th:nth-child(4),.quality-candidate-table td:nth-child(4){display:none}}
.compact-link-section{padding-top:8px}.inline-category-strip{justify-content:flex-start;padding:0;background:transparent;border:0}.inline-category-strip .category-chip small{font-size:10px;color:var(--muted)}

/* Phase 1G — favourites / viewer accounts */
.webcam-save-row{display:flex;justify-content:flex-end;margin:14px 0}.saved-remove-form{padding:0 14px 14px}.saved-remove-form .button{width:100%}

/* Phase 1H — public webcam submission + moderation */
.submission-hero p:last-child{max-width:820px}.submission-shell{max-width:1100px;margin:0 auto}.submission-steps{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.submission-steps li{position:relative;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);font-size:12px}.submission-steps li span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#edf2f7;font-weight:800}.submission-steps li.is-current{border-color:#9dcff0;background:#eff9ff;color:var(--navy)}.submission-steps li.is-current span{background:var(--blue);color:#fff}.submission-steps li.is-complete{background:#edf8f3;color:#126d4a}.submission-steps li.is-complete span{background:#168b5b;color:#fff}.submission-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:24px;box-shadow:var(--shadow)}.submission-card-heading{margin-bottom:20px}.submission-card-heading h2{margin:4px 0 7px;font-size:28px}.submission-card-heading p:last-child{margin:0;color:var(--muted);line-height:1.55}.submission-location-map{height:420px;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:14px 0}.submission-authority{align-items:flex-start!important;line-height:1.5}.submission-review-list{margin:0}.submission-review-list>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.submission-review-list dt{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.submission-review-list dd{margin:0;overflow-wrap:anywhere}.submission-review-list dd span,.submission-review-list dd small{display:block;color:var(--muted);margin-top:4px}.submission-final-form{margin-top:20px}.submission-complete-card{max-width:720px;text-align:center;margin:0 auto}.submission-complete-card p{color:var(--muted)}.optional{font-weight:500;color:var(--muted);font-size:11px}.admin-filter-row{display:flex;gap:10px;align-items:end;margin-bottom:18px}.admin-filter-row label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800}.admin-filter-row select{min-width:220px;border:1px solid #cbd8e4;border-radius:9px;padding:9px 11px;background:#fff}.admin-table small{display:block;color:var(--muted);margin-top:4px}.submission-admin-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:20px;align-items:start}.submission-status-submitted{background:#e8f2ff;color:#175ea8}.submission-status-under_review{background:#eef1ff;color:#4a58a0}.submission-status-needs_information{background:#fff6db;color:#7b5d05}.submission-status-approved{background:#e4f6ed;color:#14704a}.submission-status-rejected{background:#fff0f0;color:#982f2f}
@media(max-width:800px){.submission-steps{grid-template-columns:1fr}.submission-steps li:not(.is-current){display:none}.submission-location-map{height:340px}.submission-review-list>div{grid-template-columns:1fr;gap:5px}.submission-admin-grid{grid-template-columns:1fr}}

/* Phase 1H location search refinement */
.location-search-results {
  border: 1px solid var(--border, #dbe5ef);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 35, 68, 0.08);
  margin-top: -0.35rem;
}
.location-search-result {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #e8eef5;
  background: #fff;
  text-align: left;
  padding: 0.85rem 1rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  color: inherit;
}
.location-search-result:last-child { border-bottom: 0; }
.location-search-result:hover,
.location-search-result:focus { background: #f5faff; outline: none; }
.location-search-result span { color: #64748b; font-size: 0.86rem; text-transform: capitalize; }
.location-search-empty { padding: 0.9rem 1rem; color: #64748b; }
.location-selected-card {
  margin-top: 0.75rem;
  padding: 0.9rem 1rem;
  border: 1px solid #b8dcfb;
  background: #f3f9ff;
  border-radius: 14px;
  display: grid;
  gap: 0.2rem;
}
.location-selected-card span { color: #52657c; font-size: 0.9rem; }
.location-search-help { margin-top: 1rem; }
.text-button {
  border: 0;
  background: transparent;
  color: #0876ce;
  padding: 0;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
}
.manual-location-fields {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px dashed #b9c9d9;
  border-radius: 14px;
  background: #fbfdff;
}

.manual-location-place { margin-bottom: 0.35rem; }
.manual-location-grid { margin-top: 0.55rem; align-items: start; }
.field-label-row {
  min-height: 1.2rem;
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  line-height: 1.2;
}
.field-label-row .optional { white-space: nowrap; }

/* Keep examples visually distinct from entered values. */
input::placeholder,textarea::placeholder{color:#a8b4c3;opacity:1}
.field-help{display:block;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.45}.location-proposal-context{margin-bottom:18px}
.claim-shell{max-width:900px;margin:0 auto}.stacked-form{display:flex;flex-direction:column;gap:16px}.stacked-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:800}.stacked-form input,.stacked-form select,.stacked-form textarea{width:100%;border:1px solid #cbd8e4;border-radius:10px;padding:11px;background:#fff;font:inherit}.stacked-form textarea{resize:vertical}.claim-status-note{border:1px solid #b9ddf3;border-radius:12px;background:#eff9ff;padding:15px 16px;margin-bottom:18px}.claim-status-note strong{color:#0b5f98}.claim-status-note p{margin:6px 0 0;color:var(--muted);line-height:1.5}.private-evidence{white-space:pre-wrap;overflow-wrap:anywhere;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--soft);line-height:1.55}.owner-dashboard-shell{padding-top:20px}.owner-webcam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0 36px}.owner-webcam-grid h3{font-size:22px;margin:5px 0}.owner-webcam-grid p{color:var(--muted)}.owner-status-row{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.owner-claims-heading{margin-top:30px}.owner-dashboard-actions{margin-top:24px}.auth-switch{text-align:center;color:var(--muted);font-size:13px;margin:14px 0 0}.auth-switch-forgot{margin-bottom:16px}@media(max-width:800px){.owner-webcam-grid{grid-template-columns:1fr}}
.submission-status-resolved{background:#e4f6ed;color:#14704a}.owner-card-actions{align-items:center}.owner-card-actions .button{min-height:42px}
.discovery-hero p:last-child{max-width:980px}.discovery-shell{padding-top:18px}.discovery-intake-grid,.discovery-candidate-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:20px;align-items:start}.discovery-boundary-card h2{margin:5px 0 10px}.discovery-boundary-list{margin:12px 0 0;padding-left:20px;color:var(--muted);line-height:1.7}.discovery-history-heading{margin-top:36px}.discovery-summary-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:20px}.discovery-summary-grid article{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.discovery-summary-grid span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.discovery-summary-grid strong{display:block;margin-top:5px;color:var(--navy);font-size:22px}.discovery-query-card{margin-bottom:24px}.discovery-query-card ol{margin:12px 0;padding-left:22px;line-height:1.7}.discovery-status-completed,.discovery-status-eligible{background:#e4f6ed;color:#14704a}.discovery-status-running,.discovery-status-pending{background:#e8f2ff;color:#175ea8}.discovery-status-failed,.discovery-status-filtered{background:#fff0f0;color:#982f2f}.discovery-status-duplicate{background:#fff6db;color:#7b5d05}.discovery-thumbnail{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:12px;margin:10px 0 18px;background:var(--soft)}.discovery-facts a{color:var(--blue);font-weight:700}.discovery-table td{max-width:340px}.discovery-table td:last-child{overflow-wrap:anywhere}@media(max-width:1000px){.discovery-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:800px){.discovery-intake-grid,.discovery-candidate-grid{grid-template-columns:1fr}.discovery-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.discovery-ai-action-card{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;margin-bottom:20px}.discovery-ai-action-card>div:first-child{max-width:780px}.discovery-ai-action-card h3{margin:0 0 8px}.discovery-ai-action-card p{margin:0;color:var(--muted);line-height:1.55}.discovery-ai-attempts{display:grid;gap:18px}.discovery-ai-attempt-head{display:flex;align-items:start;justify-content:space-between;gap:16px}.discovery-ai-attempt-head h3{margin:4px 0 0}.discovery-ai-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.discovery-ai-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.discovery-ai-summary-grid>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--soft)}.discovery-ai-summary-grid span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.discovery-ai-summary-grid strong{display:block;margin-top:5px;color:var(--navy);font-size:18px}.discovery-ai-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:16px 0}.discovery-ai-result-grid h4{margin:0 0 8px}.muted-copy{color:var(--muted);line-height:1.5}.category-chip{display:inline-flex;margin:2px 4px 2px 0;padding:4px 8px;border-radius:999px;background:#eaf5fd;color:#075f9d;font-size:12px;font-weight:800}@media(max-width:800px){.discovery-ai-metrics,.discovery-ai-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.discovery-ai-result-grid{grid-template-columns:1fr}}

/* Phase 1J-B2 refinement — explicit AI-assisted map-position review */
.ai-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);gap:16px;align-items:stretch;margin:14px 0}.ai-map-candidates{display:flex;flex-direction:column;gap:8px}.ai-map-candidate{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;cursor:pointer}.ai-map-candidate.is-recommended{border-color:#8bc9ee;background:#f1f9fe}.ai-map-candidate span{display:flex;flex-direction:column;gap:3px}.ai-map-candidate em{font-style:normal;font-size:10px;font-weight:800;color:var(--blue);text-transform:uppercase;letter-spacing:.04em}.ai-map-candidate small{color:var(--muted);line-height:1.4}.ai-map-preview{min-height:300px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--soft)}@media(max-width:860px){.ai-map-layout{grid-template-columns:1fr}.ai-map-preview{min-height:260px}}
/* Phase 1J-B2 place-resolution fallback refinement */
.google-place-evidence{margin:14px 0;padding:14px;border:1px solid #d8e3ec;border-radius:14px;background:#fff}.google-place-evidence p{margin:7px 0 10px;color:var(--muted);line-height:1.5}.google-place-links{display:flex;gap:8px;flex-wrap:wrap}.google-maps-attribution{margin-top:10px;font:400 12px/1.4 Roboto,Arial,sans-serif;color:#5e5e5e}.ai-manual-map-preview{min-height:340px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--soft);margin:10px 0}.manual-map-readout{margin:8px 0 12px;font-size:12px;color:var(--muted);font-weight:700}.ai-manual-map-form h4{margin-bottom:6px}@media(max-width:860px){.ai-manual-map-preview{min-height:280px}}

/* Phase 1J-B2 acceptance hotfix — disabled primary actions must look disabled. */
.button:disabled,
.button[disabled]{cursor:not-allowed;opacity:.68;box-shadow:none}
.button.button-primary:disabled,
.button.button-primary[disabled]{background:#e2e8f0;color:#64748b;border:1px solid #cbd5e1}

/* Phase 1J-B2 manual map UX refinement — search + coordinate entry. */
.manual-map-tools{display:grid;gap:12px;margin:14px 0 16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}
.manual-map-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.manual-map-search-row label,.manual-map-coordinate-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:var(--navy)}
.manual-map-search-row input,.manual-map-coordinate-grid input{width:100%;border:1px solid #cbd8e4;border-radius:10px;padding:11px;background:#fff;font:inherit}
.manual-map-coordinate-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.manual-map-search-results{display:grid;gap:8px}
.manual-map-search-result{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:var(--navy);cursor:pointer;font:inherit}
.manual-map-search-result:hover,.manual-map-search-result:focus-visible{border-color:#8bc9ee;background:#f1f9fe;outline:none}
.manual-map-search-result span{color:var(--muted);font-size:12px;line-height:1.4}
@media(max-width:760px){.manual-map-search-row,.manual-map-coordinate-grid{grid-template-columns:1fr}.manual-map-search-row .button,.manual-map-coordinate-grid .button{width:100%}}

.discovery-promotion-review{max-width:1000px;margin:0 auto}.discovery-promotion-review .admin-form{max-width:none}

/* Live Map public location accuracy: known camera positions vs area-only fallback. */
.map-position-note{font-size:11px;line-height:1.45;color:var(--muted);padding:8px 10px;border-radius:9px;background:#f4f8fb;border:1px solid var(--line)}

/* Phase 1K-A — cross-run discovery moderation queue */
.discovery-workspace-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#f8fcff}.discovery-workspace-callout>div{display:grid;gap:3px}.discovery-workspace-callout .eyebrow{margin:0}.discovery-workspace-callout span{color:var(--muted);font-size:13px}.moderation-workspace-shell{max-width:1400px}.moderation-count-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}.moderation-count-grid a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.moderation-count-grid span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.moderation-count-grid strong{font-size:20px;color:var(--navy)}.moderation-filter-bar{display:grid;grid-template-columns:180px minmax(280px,1fr) 220px auto;gap:12px;align-items:end;margin-bottom:20px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.moderation-filter-bar label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--navy)}.moderation-filter-bar select{width:100%}.moderation-queue{display:grid;gap:10px}.moderation-queue-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.moderation-thumb{display:block;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:var(--soft)}.moderation-thumb img{width:100%;height:100%;object-fit:cover}.moderation-thumb span{height:100%;display:grid;place-items:center;color:var(--muted);font-size:11px}.moderation-row-main{min-width:0}.moderation-row-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.moderation-row-heading>div{display:flex;align-items:center;gap:9px;min-width:0}.moderation-row-heading strong{font-size:16px;line-height:1.35}.moderation-confidence{white-space:nowrap;font-size:11px;font-weight:800;color:var(--navy)}.moderation-row-meta{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:11px}.moderation-reason{margin:9px 0 0;color:var(--muted);font-size:12px}.moderation-row-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px}.moderation-inline-form{display:flex;gap:7px;align-items:center;flex:1;max-width:540px}.moderation-inline-form input[name="reason"]{min-width:220px;flex:1}.discovery-status-prepared{background:#e8f2ff;color:#175ea8}.discovery-status-rejected{background:#f3edf8;color:#6e3d8c}.discovery-status-promoted{background:#e4f6ed;color:#14704a}@media(max-width:1000px){.moderation-count-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.moderation-filter-bar{grid-template-columns:1fr 1fr}.moderation-queue-row{grid-template-columns:150px minmax(0,1fr)}}@media(max-width:700px){.discovery-workspace-callout{align-items:flex-start;flex-direction:column}.moderation-count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.moderation-filter-bar{grid-template-columns:1fr}.moderation-queue-row{grid-template-columns:1fr}.moderation-thumb{max-width:280px}.moderation-row-heading{display:grid}.moderation-row-heading>div{align-items:flex-start;flex-direction:column}.moderation-inline-form{width:100%;max-width:none;align-items:stretch;flex-direction:column}.moderation-inline-form input[name="reason"]{min-width:0}}
.moderation-master-detail{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start}.moderation-queue-compact{align-content:start;max-height:calc(100vh - 210px);overflow:auto;padding-right:4px}.moderation-queue-compact .moderation-queue-row{grid-template-columns:112px minmax(0,1fr);gap:11px;padding:10px}.moderation-queue-compact .moderation-queue-row.is-selected{border-color:#76bdf0;box-shadow:0 0 0 2px #e7f5ff inset;background:#fbfeff}.moderation-queue-compact .moderation-row-heading>div{display:grid;gap:5px}.moderation-queue-compact .moderation-row-heading strong,.moderation-candidate-title{font-size:13px;line-height:1.25;font-weight:800;color:var(--navy)}.moderation-queue-compact .moderation-row-meta{font-size:10px;margin-top:6px}.moderation-queue-compact .quality-decision-pill{justify-self:start}.moderation-queue-compact .moderation-confidence{font-size:10px}.moderation-detail-panel{position:sticky;top:18px;display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;max-height:calc(100vh - 36px);overflow:auto}.moderation-detail-header{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:18px;align-items:start}.moderation-detail-header h2{margin:3px 0 7px;font-size:24px;line-height:1.15}.moderation-detail-thumb{width:190px;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.moderation-detail-actions,.moderation-detail-footer-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.moderation-evidence-section{padding-top:14px;border-top:1px solid var(--line)}.moderation-evidence-section h3{margin:0 0 10px;font-size:16px}.moderation-evidence-section p{margin:8px 0;font-size:13px;line-height:1.5}.moderation-section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.moderation-section-heading span{color:var(--muted);font-size:11px;font-weight:700}.moderation-evidence-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.moderation-evidence-grid>div{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.moderation-evidence-grid span{font-size:9px;text-transform:uppercase;font-weight:800;color:var(--muted)}.moderation-evidence-grid strong{font-size:12px;color:var(--navy)}.moderation-source-description{max-height:100px;overflow:auto;padding:10px;border-radius:10px;background:var(--soft);white-space:pre-line}.moderation-proposal-block{margin-top:10px;padding:11px 12px;border:1px solid #c9e5f8;border-radius:11px;background:#f5fbff}.moderation-proposal-block>strong{color:#0b659d}.moderation-match{color:#0b659d}.moderation-ai-summary{padding:10px 12px;border-radius:10px;background:var(--soft)}.moderation-review-summary{display:grid;gap:0;margin:0}.moderation-review-summary>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:7px 0;border-top:1px solid var(--line)}.moderation-review-summary>div:first-child{border-top:0}.moderation-review-summary dt{font-size:11px;font-weight:800;color:var(--muted)}.moderation-review-summary dd{margin:0;font-size:12px;color:var(--navy)}.moderation-detail-reject{max-width:none;width:100%}@media(max-width:1100px){.moderation-master-detail{grid-template-columns:1fr}.moderation-queue-compact{max-height:none;overflow:visible}.moderation-detail-panel{position:static;max-height:none}.moderation-queue-compact .moderation-queue-row{grid-template-columns:150px minmax(0,1fr)}}@media(max-width:700px){.moderation-detail-header{grid-template-columns:1fr}.moderation-detail-thumb{width:100%;max-width:320px}.moderation-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.moderation-review-summary>div{grid-template-columns:1fr;gap:3px}}
.moderation-throughput-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-5px 0 12px;color:var(--muted);font-size:12px}.moderation-throughput-bar strong{color:var(--navy)}.moderation-throughput-actions{padding-bottom:2px}.moderation-nav-form{margin:0}.button.is-disabled{opacity:.45;pointer-events:none}.moderation-state-callout{padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.45}.moderation-state-callout-prepared{border:1px solid #bfdcff;background:#f3f8ff;color:#174d7c}.moderation-state-callout-handled{border:1px solid var(--line);background:var(--soft);color:var(--muted)}@media(max-width:700px){.moderation-throughput-bar{align-items:flex-start;flex-direction:column}}
.discovery-place-candidate{cursor:default}
.discovery-place-candidate:hover{background:#fff;border-color:var(--line)}
.discovery-place-candidate .discovery-place-approximate-button{align-self:flex-start;margin-top:8px}

.webcam-sidebar .content-card>.button.full+.button.full{margin-top:10px}

/* Phase 1M-Q1 homepage visitor-facing polish. */
.home-map-preview{position:relative;overflow:hidden;width:100%;min-height:360px;border:1px solid rgba(12,36,86,.08);border-radius:22px;background:#dfeef7;box-shadow:var(--shadow);isolation:isolate}.home-map-canvas{position:absolute;inset:0;z-index:1;background:#dfeef7}.home-map-preview .leaflet-container{font-family:inherit;background:#dfeef7}.home-map-preview .leaflet-control-attribution{font-size:9px;background:rgba(255,255,255,.88)}.home-map-preview .leaflet-control-attribution a{color:#315b76}.home-map-badge{position:absolute;top:18px;right:18px;z-index:650;padding:8px 12px;border-radius:999px;background:rgba(7,32,62,.78);color:#fff;font-size:12px;font-weight:700;box-shadow:0 6px 20px rgba(7,32,62,.16)}.home-map-link{position:absolute;inset:0 0 22px;z-index:600;display:grid;place-items:center;background:rgba(7,32,62,.04);transition:background .2s ease}.home-map-link-content{display:grid;gap:4px;min-width:210px;padding:14px 20px;border-radius:14px;background:rgba(7,32,62,.88);color:#fff;text-align:center;box-shadow:0 12px 30px rgba(7,32,62,.2);opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease}.home-map-link-content strong{font-size:16px}.home-map-link-content small{font-size:11px;color:#ccecff}.home-map-preview:hover .home-map-link,.home-map-preview:focus-within .home-map-link{background:rgba(7,32,62,.18)}.home-map-preview:hover .home-map-link-content,.home-map-preview:focus-within .home-map-link-content{opacity:1;transform:translateY(0)}.home-map-link:focus-visible{outline:3px solid #fff;outline-offset:-7px}.home-map-marker-wrap{background:transparent!important;border:0!important}.home-map-marker{display:grid;width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:var(--blue);box-shadow:0 3px 10px rgba(7,32,62,.3)}.home-map-marker.is-cluster{width:34px;height:34px;place-items:center;border-width:2px;background:#0c5d93;color:#fff;font-size:10px;font-weight:800}.category-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;padding:22px 4vw 24px;background:#fbfdff}.category-tile{min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 8px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy);text-align:center;box-shadow:0 4px 14px rgba(22,57,89,.035);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.category-tile:hover,.category-tile:focus-visible{transform:translateY(-2px);border-color:#a9d8f5;background:#fafdff;box-shadow:0 10px 22px rgba(22,57,89,.08);outline:0}.category-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#eaf6ff;color:var(--blue)}.category-icon-svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.category-name{font-size:12px;font-weight:800;line-height:1.25}.home-live-heading{margin-bottom:20px}.owner-cta{margin-bottom:48px}
@media(max-width:1200px){.category-strip{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1000px){.category-strip{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}.home-map-link-content{opacity:1;transform:none}}
@media(max-width:640px){.home-map-preview{min-height:300px}.home-map-badge{top:12px;right:12px}.category-strip{padding:16px 18px 20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.category-tile{min-height:92px}.owner-cta{margin-bottom:36px}}
@media(hover:none){.home-map-link{background:rgba(7,32,62,.10)}.home-map-link-content{opacity:1;transform:none}}

@media(max-width:420px){.site-header{padding:0 12px}.brand-logo{height:36px}.mobile-add-webcam{display:none}.mobile-menu-toggle span:last-child{display:none}.mobile-menu-toggle{width:42px;height:42px;padding:0;justify-content:center}.mobile-menu-panel{right:-2px}}

/* Phase 1M-Q3 public trust pages and consent UI */
.trust-hero{max-width:980px}.trust-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.trust-shell,.legal-shell{max-width:1180px;margin:0 auto}.trust-grid{display:grid;gap:18px}.trust-grid.three{grid-template-columns:repeat(3,1fr)}.trust-card,.trust-panel,.legal-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:26px}.trust-card h2,.trust-panel h2,.legal-card h2{color:var(--navy)}.trust-card p,.trust-panel p,.legal-card p,.legal-card li{color:var(--muted);line-height:1.7}.trust-card-number{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf6ff;color:var(--accent);font-weight:800}.trust-split{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:18px}.trust-panel.soft{background:var(--soft)}.check-list{display:grid;gap:10px;padding-left:22px;color:var(--muted);line-height:1.6}.trust-note{margin-top:18px;padding:18px 20px;border-radius:14px;background:#f7fbff;border:1px solid #d8eaf8;color:var(--muted)}.trust-note strong{color:var(--navy)}.contact-grid .trust-card{display:flex;flex-direction:column}.contact-grid .trust-card .button{margin-top:auto;align-self:flex-start}.contact-email-inline{color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none}.contact-email-inline:hover,.contact-email-inline:focus-visible{text-decoration:underline}.legal-card{max-width:900px;margin:0 auto}.legal-card h2{margin-top:30px}.legal-card ul{padding-left:24px}.cookie-table-wrap{overflow-x:auto}.cookie-table{width:100%;border-collapse:collapse;margin:18px 0}.cookie-table th,.cookie-table td{padding:14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.cookie-table th{color:var(--navy);font-size:13px}.footer-link-button{border:0;padding:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.footer-link-button:hover,.footer-link-button:focus-visible{color:var(--blue);outline:none}.cookie-banner[hidden]{display:none}.cookie-banner{position:fixed;z-index:60;left:20px;right:20px;bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1120px;margin:0 auto;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 18px 60px rgba(7,45,120,.20)}.cookie-banner-copy{min-width:0;flex:1}.cookie-banner strong{color:var(--navy)}.cookie-banner p{margin:5px 0 0;max-width:680px;color:var(--muted);font-size:14px;line-height:1.5}.cookie-banner p .text-link{white-space:nowrap}.cookie-banner-actions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;justify-content:flex-end;white-space:nowrap}.cookie-deny-button{border:1px solid var(--blue);background:#fff;color:var(--accent)}.cookie-deny-button:hover,.cookie-deny-button:focus-visible{background:#eef8ff;outline:none}.cookie-customize-button{border:1px solid #bcd7eb;background:#f7fbff;color:var(--accent)}.cookie-customize-button:hover,.cookie-customize-button:focus-visible{background:#eaf6ff;outline:none}.button-link{background:transparent;color:var(--accent);padding-left:8px;padding-right:8px}.cookie-dialog{width:min(620px,calc(100vw - 28px));padding:0;border:0;border-radius:20px;box-shadow:0 24px 80px rgba(7,45,120,.25)}.cookie-dialog::backdrop{background:rgba(8,24,48,.48)}.cookie-dialog-card{padding:26px}.cookie-dialog-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.cookie-dialog-heading h2{margin:4px 0 0;color:var(--navy)}.cookie-dialog-close{border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer;color:var(--muted)}.cookie-preference-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.cookie-preference-row p{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.cookie-switch{position:relative;display:inline-flex;flex:0 0 auto}.cookie-switch input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.cookie-switch-track{display:inline-flex;align-items:center;width:52px;height:30px;padding:3px;border-radius:999px;background:#172033;transition:background .18s ease,box-shadow .18s ease;cursor:pointer}.cookie-switch-thumb{width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.24);transform:translateX(0);transition:transform .18s ease}.cookie-switch input:checked+.cookie-switch-track{background:var(--blue)}.cookie-switch input:checked+.cookie-switch-track .cookie-switch-thumb{transform:translateX(22px)}.cookie-switch input:focus-visible+.cookie-switch-track{box-shadow:0 0 0 3px rgba(40,150,255,.28)}.cookie-switch input:disabled+.cookie-switch-track{cursor:not-allowed;opacity:.45}.preference-required{font-size:12px;font-weight:800;color:var(--accent);white-space:nowrap}.cookie-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px}@media(max-width:900px){.cookie-banner{align-items:flex-start;flex-direction:column}.cookie-banner-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}}@media(max-width:760px){.trust-grid.three,.trust-split{grid-template-columns:1fr}.cookie-banner{left:12px;right:12px;bottom:12px}.cookie-banner-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.cookie-banner-actions .cookie-customize-button{grid-column:1/-1}.cookie-dialog-card{padding:20px}.cookie-dialog-actions{align-items:flex-start;flex-direction:column}.cookie-dialog-actions .button{width:100%}.site-footer nav{row-gap:14px}}@media(max-width:420px){.cookie-banner-actions{grid-template-columns:1fr}.cookie-banner-actions .cookie-customize-button{grid-column:auto}.cookie-banner-actions .button{width:100%}}

/* Phase 1M-Q4.1 — mobile homepage search refinement. */
@media(max-width:640px){
  .hero .preview-note{text-align:center}
}

/* Phase 1M-Q4.4 — public submission location/map and form-copy refinement. */
.submission-map-shell{position:relative;min-height:320px;margin:14px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fbfdff}
.submission-map-shell .submission-location-map{height:420px;margin:0;border:0;border-radius:0}
.submission-map-state{min-height:320px;display:grid;place-items:center;align-content:center;gap:7px;padding:32px;text-align:center;color:var(--muted);background:linear-gradient(180deg,#fbfdff 0%,#f5f9fc 100%)}
.submission-map-state strong{color:var(--navy);font-size:18px}
.submission-map-state.is-loading{position:absolute;inset:0;z-index:500;min-height:0;background:rgba(251,253,255,.94)}
.submission-map-state span{max-width:560px;line-height:1.55}
.submission-map-state.is-error{background:#fffaf3}
.submission-map-state.is-error strong{color:#8a5a00}
.submission-map-state[hidden],.submission-location-map[hidden]{display:none}
.submission-coordinate-details{margin:14px 0 0;border:1px solid var(--line);border-radius:12px;background:#fbfdff;padding:0 14px 14px}
.submission-coordinate-details summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--accent);font-weight:800}
.submission-coordinate-details[open] summary{border-bottom:1px solid var(--line);margin-bottom:12px}
.submission-coordinate-details .form-help{margin:0 0 12px}
.submission-coordinate-details .form-grid{margin-top:0}
@media(max-width:800px){
  .submission-map-shell{min-height:260px}
  .submission-map-shell .submission-location-map{height:340px}
  .submission-map-state{min-height:260px;padding:24px 18px}
}

/* Phase 1M-Q4.5.4 progressive location-search disclosure */
.location-search-empty{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.location-search-state-action{flex:0 0 auto}
.location-search-fallback{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;padding:.8rem 1rem;border-top:1px solid #e8eef5;color:var(--muted);font-size:.9rem}
.manual-location-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.manual-location-heading strong{display:block;color:var(--navy);font-size:1rem}
.manual-location-heading p{margin:.25rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.45}
.manual-location-heading .text-button{flex:0 0 auto}
@media(max-width:640px){.location-search-empty{align-items:stretch}.location-search-state-action{width:100%}.manual-location-heading{flex-direction:column}.manual-location-heading .text-button{align-self:flex-start}}

/* Phase 1M-Q5 — keep the selected desktop webcam preview compact so results remain easy to browse. */
@media(min-width:761px){.map-selected-webcam{padding:10px}.map-selected-webcam .map-preview-card{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:stretch}.map-selected-webcam .map-preview-image{height:100%;min-height:126px;aspect-ratio:auto}.map-selected-webcam .map-preview-body{gap:6px;padding:10px}.map-selected-webcam .map-preview-title{font-size:15px;line-height:1.2}.map-selected-webcam .map-preview-location{font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-selected-webcam .map-position-note{display:none}.map-selected-webcam .map-preview-tags{display:flex;gap:4px}.map-selected-webcam .map-preview-tags a,.map-selected-webcam .map-preview-tag-more{padding:3px 6px;font-size:9px;line-height:1.2}.map-selected-webcam .map-preview-tag-more{border:1px solid var(--line);background:var(--soft);border-radius:999px;color:var(--muted);font-weight:800}.map-selected-webcam .map-preview-open{padding:7px 9px;font-size:11px}}

/* Phase 1M+.3 Admin Users read workspace */
.user-status-active{background:#e4f6ed;color:#14704a}.user-status-disabled{background:#fff0f0;color:#982f2f}.admin-user-security-card,.admin-user-audit-card{margin-top:18px}.admin-user-account-card .quality-facts small,.admin-user-security-card .quality-facts small{display:block;margin-top:5px;color:var(--muted)}
