:root{--shell-max:1560px;--sidebar-w:236px;--ink:#0B1B2B;--ink2:#4A5C6E;--ink3:#7C8B9A;--line:#E2E9F1;--line2:#CBD8E6;--blue:#1266E0;--blueD:#0A3F8F;--blueT:#EAF2FE;--orange:#F26A1B;--orangeD:#B44507;--orangeT:#FFF1E7;--green:#0E8A5F;--greenT:#E6F6EF;--red:#C23B31;--redT:#FFF0EE;--amber:#9B6A09;--amberT:#FFF7DE;--wash:#F6F9FD;--white:#fff;--shadow:0 1px 2px rgba(11,27,43,.05),0 8px 24px rgba(11,27,43,.05);--r:14px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#EEF3F8;color:var(--ink);font-family:'Inter',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}body{font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blueD)}img{max-width:100%}.hidden{display:none!important}.muted{color:var(--ink3)}.mono{font-family:'DM Mono',ui-monospace,monospace}.app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);width:100%}
.sidebar{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40}.brand{height:68px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line);font-family:'Bricolage Grotesque';font-weight:800;font-size:20px;letter-spacing:-.03em}.brand a{color:inherit;text-decoration:none;display:flex;align-items:center;gap:10px}.logoMark{width:29px;height:29px;border-radius:8px;background:var(--blue);position:relative;flex:none}.logoMark:before{content:"";position:absolute;width:9px;height:9px;border:3px solid white;border-radius:50%;left:7px;top:5px}.logoMark:after{content:"";position:absolute;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:10px solid var(--orange);left:8px;bottom:2px}.sideClose{display:none;margin-left:auto;border:0;background:transparent;font-size:24px;color:var(--ink3)}.context{padding:12px 16px 14px;border-bottom:1px solid var(--line)}.context .label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink3);font-weight:700}.context strong{display:block;margin-top:4px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context small{display:block;margin-top:2px;color:var(--ink3);font-size:11px}.nav{padding:12px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}.nav .group{padding:12px 8px 4px;font-size:9.5px;text-transform:uppercase;letter-spacing:.11em;color:#9AA8B7;font-weight:700}.nav a{border:0;background:transparent;border-radius:9px;display:flex;align-items:center;gap:10px;padding:9px 10px;color:var(--ink2);font-size:13px;font-weight:600;text-decoration:none;min-height:40px}.nav a:hover{background:var(--wash);color:var(--ink)}.nav a.active{background:var(--blueT);color:var(--blueD)}.nav a>span{min-width:0}.navSvg{width:17px;height:17px;display:block;flex:none}.iconBtn .navSvg{width:17px;height:17px}.sideFoot{margin-top:auto;padding:10px;border-top:1px solid var(--line)}.profile{display:flex;gap:9px;align-items:center;padding:7px;border-radius:10px}.avatar{width:34px;height:34px;border-radius:10px;background:#132A3E;color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}.profileCopy{min-width:0;flex:1}.profile b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile span{display:block;color:var(--ink3);font-size:10px;margin-top:1px}.iconBtn{border:0;background:transparent;color:var(--ink3);font-size:16px;padding:6px}.sidebarBackdrop{display:none}
.main{min-width:0;width:100%;overflow:clip}.topbar{height:68px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;box-shadow:0 1px 0 rgba(11,27,43,.02)}.topbarInner{width:100%;max-width:var(--shell-max);height:100%;margin:0 auto;padding:0 clamp(18px,2.25vw,34px);display:flex;align-items:center;gap:12px}.mobileMenu{display:none;border:0;background:transparent;padding:6px;color:var(--ink);width:36px;height:36px;border-radius:8px;align-items:center;justify-content:center}.mobileMenu:hover{background:var(--wash)}.mobileMenu svg{width:21px;height:21px}.topTitle{min-width:0}.pageTitle{font-family:'Bricolage Grotesque';font-weight:800;font-size:19px;letter-spacing:-.02em}.crumb{color:var(--ink3);font-size:11px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topActions{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.content{width:100%;max-width:var(--shell-max);margin:0 auto;padding:25px clamp(18px,2.25vw,34px) 74px}.welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:19px}.welcome h1{font-family:'Bricolage Grotesque';font-size:29px;letter-spacing:-.035em;margin:0}.welcome p{margin:5px 0 0;color:var(--ink2);font-size:13px}.datePill{font-size:10.5px;color:var(--ink3);border:1px solid var(--line);background:white;border-radius:99px;padding:7px 10px;white-space:nowrap}.grid{display:grid;gap:14px}.stack{display:grid;gap:14px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.adminKpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.clientLayout{grid-template-columns:minmax(0,1.62fr) minmax(330px,.82fr)}.adminLayout{grid-template-columns:minmax(0,1.68fr) minmax(330px,.76fr)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 1px 2px rgba(11,27,43,.025);min-width:0}.card.pad{padding:17px}.cardHead{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.cardHead h2,.cardHead h3{font-family:'Bricolage Grotesque';margin:0;font-size:15px;letter-spacing:-.015em}.cardHead p{font-size:11px;color:var(--ink3);margin:3px 0 0}.cardHead .right{margin-left:auto}.kpi{padding:15px 16px}.kpi .lab{font-size:10.5px;color:var(--ink3);font-weight:600}.kpi .num{font-family:'Bricolage Grotesque';font-size:28px;font-weight:800;letter-spacing:-.03em;margin-top:6px}.kpi .sub{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--ink3);margin-top:3px}.up{color:var(--green);font-weight:700}.warn{color:var(--amber);font-weight:700}.bad{color:var(--red);font-weight:700}
.btn{border:1px solid var(--line2);background:#fff;color:var(--ink);border-radius:9px;padding:9px 13px;font-size:12px;font-weight:700;display:inline-flex;gap:7px;align-items:center;justify-content:center;text-decoration:none;line-height:1.1}.btn:hover{border-color:#9EB6D2}.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn.blue{background:var(--blue);border-color:var(--blue);color:#fff}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.soft{background:var(--wash)}.btn.tiny{font-size:10.5px;padding:6px 9px}.btn.danger{color:var(--red);border-color:#E8B9B3;background:#fff}.btn.block{width:100%}.pill{display:inline-flex;align-items:center;padding:4px 7px;border-radius:99px;font-size:9.5px;font-weight:700;white-space:nowrap}.pill.good{background:var(--greenT);color:var(--green)}.pill.mid{background:var(--blueT);color:var(--blueD)}.pill.alert,.pill.bad{background:var(--redT);color:var(--red)}.pill.pending{background:var(--amberT);color:var(--amber)}.pill.neutral{background:#EFF3F6;color:var(--ink2)}
.heroVisibility{padding:18px;background:linear-gradient(140deg,#fff 0,#fff 68%,#F4F8FE 100%);min-height:260px}.visibilityTop{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.metricBig{font-family:'Bricolage Grotesque';font-weight:800;font-size:47px;letter-spacing:-.05em;line-height:.9;color:var(--blue)}.metricText{font-size:12.5px;color:var(--ink2);margin-top:7px;max-width:42ch;line-height:1.45}.delta{display:inline-flex;background:var(--greenT);color:var(--green);border-radius:99px;padding:5px 9px;font-size:10px;font-weight:700}.coverage{height:12px;border-radius:99px;display:flex;overflow:hidden;background:#EEF3F8;margin:18px 0 10px}.coverage i{height:100%;font-style:normal}.segTop{background:var(--blue)}.segPage{background:#8CB9F5}.segLow{background:#F8BD95}.segNone{background:#E7EDF3}.coverageLegend{display:flex;gap:13px;flex-wrap:wrap;font-size:10px;color:var(--ink3)}.coverageLegend span{display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:99px;display:inline-block}.miniStats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:15px;padding-top:13px;gap:12px}.miniStats b{display:block;font-size:15px}.miniStats span{font-size:9.5px;color:var(--ink3)}.actionCard{padding:18px;background:var(--ink);color:white;position:relative;overflow:hidden}.actionCard:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:var(--blue);opacity:.3;right:-50px;top:-55px}.actionCard small,.actionCard .eyebrow{color:#9CC1F5;font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.actionCard h2{font-family:'Bricolage Grotesque';font-size:22px;letter-spacing:-.025em;margin:8px 0;position:relative;z-index:1}.actionCard p{color:#B9C9D8;font-size:12px;margin:0 0 15px;max-width:42ch;position:relative;z-index:1}.actionCard .btn{position:relative;z-index:1}
.reviewRow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;padding:12px 15px;border-bottom:1px solid var(--line);align-items:start}.reviewRow:last-child{border-bottom:0}.reviewRow strong{font-size:12px}.reviewRow p{font-size:11px;color:var(--ink2);margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.initial{width:31px;height:31px;background:var(--blueT);color:var(--blueD);border-radius:9px;display:grid;place-items:center;font-size:9.5px;font-weight:800}.stars{font-size:10.5px;color:var(--orange);letter-spacing:.7px}.draftBadge{font-size:9px;background:var(--amberT);color:var(--amber);padding:4px 7px;border-radius:99px;white-space:nowrap}.queueList{padding:5px}.queueItem{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;padding:12px;border-bottom:1px solid var(--line);align-items:center}.queueItem:last-child{border-bottom:0}.queueItem b{font-size:11.5px}.queueItem p,.queueItem span{font-size:10.5px;color:var(--ink3);display:block;margin:2px 0 0}.channelIcon{width:34px;height:34px;border-radius:9px;background:var(--blueT);color:var(--blueD);display:grid;place-items:center;font-weight:800;font-size:9px}.aiList,.competitorList{padding:4px 15px 11px}.aiRow,.compRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.aiRow:last-child,.compRow:last-child{border-bottom:0}.aiRow b,.compRow b{font-size:11.5px}.aiRow span,.compRow span{font-size:10px;color:var(--ink3);display:block;margin-top:2px}.nextActions{padding:11px 15px 15px}.nextItem{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:8px 0}.nextItem .n{width:22px;height:22px;border-radius:7px;background:var(--orangeT);color:var(--orangeD);display:grid;place-items:center;font-weight:800;font-size:9.5px}.nextItem b{font-size:11px}.nextItem span{display:block;color:var(--ink3);font-size:10px;margin-top:2px}
.tableCard{overflow:hidden}.tableWrap{overflow:auto}.dataTable{width:100%;border-collapse:collapse;min-width:820px;font-size:11.5px}.dataTable th{text-align:left;padding:10px 12px;background:#F7F9FC;color:var(--ink3);font-size:9px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);white-space:nowrap}.dataTable td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.dataTable tr:last-child td{border-bottom:0}.dataTable tbody tr:hover{background:#FBFCFE}.bizCell b{display:block;font-size:11.5px}.bizCell span{display:block;color:var(--ink3);font-size:9.5px;margin-top:2px}.health{display:inline-flex;align-items:center;gap:5px;font-weight:700}.health:before{content:"";width:7px;height:7px;border-radius:99px;background:var(--green)}.health.warn:before{background:#D7981D}.health.bad:before{background:var(--red)}.alertList{padding:3px 0}.alertRow{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 15px;border-bottom:1px solid var(--line)}.alertRow:last-child{border-bottom:0}.signal{width:8px;height:8px;border-radius:99px;background:var(--red)}.signal.amber{background:#D7981D}.signal.blue{background:var(--blue)}.alertRow b{font-size:11px}.alertRow span{display:block;color:var(--ink3);font-size:9.5px;margin-top:2px}.age{font-family:'DM Mono';font-size:9px;color:var(--ink3)}.pipeline{padding:11px 15px 15px}.pipeRow{margin-bottom:13px}.pipeRow:last-child{margin-bottom:0}.pipeTop{display:flex;justify-content:space-between;gap:10px;font-size:10.5px}.pipeTop span{color:var(--ink3)}.pipeBar{height:6px;background:#E9EEF4;border-radius:99px;overflow:hidden;margin-top:6px}.pipeBar i{display:block;height:100%;border-radius:99px;background:var(--blue)}.systemList{padding:3px 15px 11px}.sys{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:10px}.sys:last-child{border-bottom:0}.sys b{min-width:96px;font-size:10px}.sys span{color:var(--ink3);margin-left:auto}.statusDot{width:8px;height:8px;border-radius:99px;background:var(--green);display:inline-block}
.visibilityDashboard{overflow:hidden}.visibilityHero{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(480px,1.22fr);gap:24px;padding:22px}.visibilityScore{display:flex;flex-direction:column;justify-content:center;min-height:180px}.visibilityScore .metricBig{font-size:67px}.visibilityScore h3{font-family:'Bricolage Grotesque';font-size:20px;margin:6px 0 7px}.visibilityScore p{font-size:12px;color:var(--ink2);margin:0;max-width:36ch;line-height:1.55}.visibilityScore p b{color:var(--blue)}.comparePanel{border:1px solid var(--line);border-radius:13px;padding:17px;background:#FBFCFE}.compareLabel{font-size:10px;color:var(--ink3);font-weight:700;margin-bottom:12px}.compareGrid{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end}.compareItem{display:grid;grid-template-columns:1fr 46px;gap:10px;align-items:end}.compareItem+.compareItem{border-left:1px dashed var(--line2);padding-left:18px}.compareItem span{font-size:10px;color:var(--ink3)}.compareItem b{display:block;font-family:'Bricolage Grotesque';font-size:28px;line-height:1;margin:6px 0 4px}.compareItem.now b{color:var(--blue)}.compareBar{height:82px;border-radius:7px 7px 3px 3px;background:#C9D2DF;align-self:end;position:relative;overflow:hidden}.compareBar i{display:block;position:absolute;left:0;right:0;bottom:0;background:#AAB7C7}.compareItem.now .compareBar{background:#DDEAFE}.compareItem.now .compareBar i{background:var(--blue)}.gainBox{align-self:stretch;min-width:125px;border-radius:11px;background:var(--greenT);display:flex;flex-direction:column;justify-content:center;padding:13px}.gainBox b{font-family:'Bricolage Grotesque';font-size:27px;color:var(--green)}.gainBox span{font-size:10px;color:var(--green);line-height:1.35;margin-top:4px}.coverageBlock{padding:0 22px 20px}.coverageTitle{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;font-weight:700;margin-bottom:9px}.coverageTitle span{font-size:9.5px;color:var(--ink3);font-weight:500}.coverage.wide{height:21px;margin:0 0 10px}.coverage.wide i{display:grid;place-items:center;font-family:'DM Mono';font-size:9px;font-weight:600;color:var(--blueD)}.coverage.wide .segTop{color:white}.coverage.wide .segLow{color:var(--orangeD)}.coverage.wide .segNone{color:var(--ink2)}.visibilityStats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0 22px 22px}.visibilityStat{border:1px solid var(--line);border-radius:12px;padding:14px 15px;background:#fff}.visibilityStat .lab{font-size:10px;color:var(--ink3);font-weight:600}.visibilityStat b{font-family:'Bricolage Grotesque';font-size:25px;display:block;margin-top:6px;letter-spacing:-.03em}.visibilityStat small{font-size:9px;color:var(--ink3)}.visibilityLower{display:grid;grid-template-columns:minmax(0,.78fr) minmax(470px,1.22fr);gap:14px;margin-top:14px}.insightCard{padding:18px}.insightRow{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;padding:10px 0}.insightRow+.insightRow{border-top:1px solid var(--line)}.insightIcon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--greenT);color:var(--green);font-weight:800}.insightRow.opportunity .insightIcon{background:var(--orangeT);color:var(--orangeD)}.insightRow b{font-size:11px}.insightRow span{display:block;font-size:10px;color:var(--ink3);margin-top:3px}.mapPreview{padding:17px}.mapPreviewTop{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:13px}.mapPreviewTop h3{font-family:'Bricolage Grotesque';font-size:15px;margin:0}.mapPreviewTop p{font-size:10px;color:var(--ink3);margin:4px 0 0}.miniMapWrap{display:grid;grid-template-columns:minmax(165px,225px) 1fr;gap:18px;align-items:center}.miniHeatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:min(100%,225px)}.miniCell{aspect-ratio:1;border-radius:4px;background:#E7EDF3}.miniCell.top{background:var(--blue)}.miniCell.page{background:#BFD8F8}.miniCell.low{background:#F9D4B9}.miniCell.none{background:#E7EDF3}.miniLegend{display:grid;gap:7px;font-size:9.5px;color:var(--ink3)}.miniLegend span{display:flex;align-items:center;gap:7px}.miniLegend i{width:9px;height:9px;border-radius:3px}.visibilityHistory{padding:17px}.historyBars{display:flex;align-items:end;gap:10px;height:112px;padding:10px 2px 0}.historyBar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:5px}.historyBar i{width:100%;max-width:46px;border-radius:6px 6px 3px 3px;background:#BFD8F8;display:block}.historyBar.current i{background:var(--blue)}.historyBar b{font-size:9px;color:var(--ink2)}.historyBar span{font-size:8px;color:var(--ink3)}
/* Forms and business profile */
.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{min-width:0}.field.full{grid-column:1/-1}.field label,.fieldLabel{display:block;font-size:10.5px;font-weight:700;color:var(--ink2);margin-bottom:5px}.field input,.field select,.field textarea,.input{width:100%;border:1px solid var(--line2);border-radius:9px;padding:9px 10px;background:#fff;color:var(--ink);font-size:12px}.field textarea{min-height:96px;resize:vertical}.field small{display:block;color:var(--ink3);font-size:9.5px;margin-top:5px}.checkLine{display:flex;align-items:center;gap:9px;font-size:11.5px}.checkLine input{width:17px;height:17px}.profileEditor{grid-template-columns:minmax(0,1.18fr) minmax(380px,.82fr);align-items:start}.editorSections{display:grid;gap:14px}.profilePreview{position:sticky;top:88px}.shareBar{display:flex;gap:8px;align-items:center}.shareBar .input{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--wash)}.uploadGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.uploadBox{border:1px dashed var(--line2);border-radius:12px;padding:12px;background:#FBFCFE}.uploadBox img{width:100%;height:118px;object-fit:cover;border-radius:9px;background:#EEF3F8;margin-bottom:8px}.uploadBox.logo img{object-fit:contain;padding:14px}.previewPhone{max-width:430px;margin:0 auto;background:#F6F9FD;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.previewCover{height:120px;background:linear-gradient(135deg,#163E70,#1266E0);position:relative}.previewCover img{width:100%;height:100%;object-fit:cover}.previewIdentity{padding:0 18px 18px;position:relative}.previewLogo{width:72px;height:72px;border:4px solid white;border-radius:18px;background:#fff;margin-top:-36px;position:relative;display:grid;place-items:center;overflow:hidden;box-shadow:0 4px 18px rgba(11,27,43,.12)}.previewLogo img{width:100%;height:100%;object-fit:contain}.previewLogo .logoFallback{font-family:'Bricolage Grotesque';font-size:22px;color:var(--blue);font-weight:800}.previewIdentity h3{font-family:'Bricolage Grotesque';font-size:21px;margin:11px 0 3px}.previewIdentity p{font-size:10.5px;color:var(--ink3);margin:0}.previewRating{display:flex;gap:6px;align-items:center;margin:9px 0;font-size:11px}.previewRating .stars{font-size:12px}.previewAction{display:block;text-align:center;background:var(--blue);color:white;text-decoration:none;padding:12px;border-radius:10px;font-weight:700;margin-top:10px}.previewReviews{padding:0 18px 18px}.previewReview{padding:10px 0;border-top:1px solid var(--line)}.previewReview b{font-size:10.5px}.previewReview p{font-size:9.5px;color:var(--ink2);margin:4px 0 0;line-height:1.45}
/* placeholders/summary tiles */
.placeholder{padding:26px}.placeholder h2{font-family:'Bricolage Grotesque';font-size:21px;margin:0 0 6px}.placeholder p{color:var(--ink2);font-size:12px;max-width:68ch}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:17px}.tile{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fff}.tile b{font-size:11.5px}.tile p{font-size:10.5px;margin:5px 0 0}.tile .big{font-family:'Bricolage Grotesque';font-size:26px;display:block;margin-bottom:4px}.splitCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pageHead{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}.pageHead h1{font-family:'Bricolage Grotesque';font-size:28px;margin:0}.statRow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px}.statLabel{display:block;font-size:10px;color:var(--ink3)}.statValue{font-family:'Bricolage Grotesque';font-size:27px;font-weight:800;display:block;margin-top:5px}
.flash{padding:11px 14px;border-radius:10px;margin-bottom:16px;font-size:12px}.flash.ok{background:var(--greenT);color:var(--green)}.flash.error{background:var(--redT);color:var(--red)}
/* System configuration */
.systemSummary{grid-template-columns:repeat(4,1fr);margin-bottom:18px}.serviceGroup{margin-bottom:22px}.groupTitle{display:flex;align-items:baseline;gap:9px;margin-bottom:9px}.groupTitle h2{font-family:'Bricolage Grotesque';margin:0;font-size:18px}.serviceCard{padding:0;overflow:hidden;margin-bottom:10px}.serviceHeader{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.serviceHeader h3{margin:0;font-size:13px}.serviceHeader p{margin:4px 0 0;color:var(--ink2);font-size:10.5px;max-width:72ch}.classification{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;border-radius:99px;padding:5px 8px;background:var(--wash);color:var(--ink2);white-space:nowrap}.classification.core_required{background:var(--redT);color:var(--red)}.classification.feature_required{background:var(--blueT);color:var(--blueD)}.classification.channel_builtin{background:var(--greenT);color:var(--green)}.classification.channel_optional{background:var(--orangeT);color:var(--orangeD)}.classification.integration_optional{background:#F3EEFF;color:#6941C6}.classification.recommended{background:var(--greenT);color:var(--green)}.classification.deferred{background:#EFF3F6;color:var(--ink3)}.serviceBody{padding:15px 16px}.fields{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.serviceActions{display:flex;gap:8px;align-items:center;margin-top:13px}.serviceNote{font-size:10px;color:var(--ink3);margin-top:10px}.statusDot.healthy{background:var(--green)}.statusDot.configured{background:var(--blue)}.statusDot.error{background:var(--red)}.statusDot.incomplete{background:var(--amber)}
/* Setup/login retained */
.setupShell{min-height:100vh;background:var(--wash);padding:36px 20px}.setupWrap{max-width:960px;margin:auto}.setupLogo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;margin-bottom:24px}.setupPanel{display:grid;grid-template-columns:220px minmax(0,1fr);background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.setupSteps{background:#102334;color:#D9E5EF;padding:24px 16px}.setupSteps a{display:block;color:#92A8BA;text-decoration:none;padding:9px 10px;border-radius:8px;font-size:12px}.setupSteps a.active{background:#183A56;color:#fff}.setupMain{padding:28px}.setupMain h1{margin:0 0 8px;font-size:26px}.setupMain>p{color:var(--ink2);font-size:13px}.checkList{margin:18px 0}.checkRow{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.setupForm{display:grid;gap:12px;margin-top:18px}.setupForm label{font-size:11px;font-weight:700;color:var(--ink2)}.setupForm input,.setupForm select{width:100%;padding:10px;border:1px solid var(--line2);border-radius:9px;margin-top:5px}.setupFooter{display:flex;justify-content:flex-end;margin-top:20px}.loginShell{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--wash)}.loginCard{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:var(--shadow)}.loginCard h1{margin:15px 0 4px;font-size:24px}.loginCard p{font-size:12px;color:var(--ink2)}
.mobileTabs{display:none}
@media(max-width:1280px){.clientLayout,.adminLayout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr)}.adminKpis{grid-template-columns:repeat(3,1fr)}.visibilityHero{grid-template-columns:1fr}.visibilityLower{grid-template-columns:1fr}.profilePreview{position:relative;top:auto}.previewPhone{max-width:520px}}
@media(max-width:1080px){:root{--sidebar-w:216px}.app{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,1fr)}.clientLayout,.adminLayout{grid-template-columns:1fr}.fields{grid-template-columns:repeat(2,1fr)}.content{padding-left:20px;padding-right:20px}.visibilityStats{grid-template-columns:repeat(2,1fr)}.tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){body{padding-bottom:68px}.app{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);height:100dvh;transform:translateX(-105%);transition:transform .2s ease;box-shadow:20px 0 50px rgba(11,27,43,.18);z-index:60}.sidebar.open{transform:translateX(0)}.sideClose{display:block}.sidebarBackdrop{display:block;position:fixed;inset:0;background:rgba(11,27,43,.28);opacity:0;pointer-events:none;transition:opacity .2s;z-index:55}.sidebar.open+.sidebarBackdrop{opacity:1;pointer-events:auto}.mobileMenu{display:flex}.topbar{height:60px;position:sticky}.topbarInner{padding:0 13px}.topActions{gap:6px}.topActions .btn{padding:8px 10px;font-size:10.5px}.hideTablet{display:none!important}.content{padding:17px 13px 24px}.welcome{align-items:flex-start;margin-bottom:15px}.welcome h1{font-size:24px}.welcome p{font-size:12px}.datePill{display:none}.kpis,.adminKpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{border-radius:12px}.heroVisibility{min-height:auto}.visibilityHero{padding:17px}.visibilityScore .metricBig{font-size:55px}.compareGrid{grid-template-columns:1fr 1fr}.gainBox{grid-column:1/-1;min-height:74px}.coverageBlock{padding:0 17px 17px}.visibilityStats{padding:0 17px 17px}.miniMapWrap{grid-template-columns:1fr}.formGrid{grid-template-columns:1fr}.field.full{grid-column:auto}.uploadGrid{grid-template-columns:1fr 1fr}.serviceHeader{grid-template-columns:1fr}.fields{grid-template-columns:1fr}.systemSummary{grid-template-columns:repeat(2,1fr)}.splitCards,.statRow{grid-template-columns:1fr}.tiles{grid-template-columns:1fr}.setupPanel{grid-template-columns:1fr}.setupSteps{display:flex;overflow:auto}.setupSteps a{white-space:nowrap}.mobileTabs{display:grid;position:fixed;bottom:0;left:0;right:0;height:66px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);z-index:50;padding-bottom:max(0px,env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(11,27,43,.04)}.mobileTabs a{text-decoration:none;color:var(--ink3);font-size:8.5px;font-weight:700;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;min-width:0;padding:5px 2px}.mobileTabs a.active{color:var(--blue)}.mobileTabs .navSvg{width:18px;height:18px}.mobileTabs a>span{font-size:8.5px;line-height:1.05;white-space:nowrap}.tableWrap{overflow:visible}.dataTable{min-width:0}.dataTable thead{display:none}.dataTable,.dataTable tbody,.dataTable tr,.dataTable td{display:block;width:100%}.dataTable tr{border:1px solid var(--line);border-radius:11px;margin:10px;padding:5px 10px;width:calc(100% - 20px);background:#fff}.dataTable td{border:0;border-bottom:1px solid var(--line);padding:8px 0;display:grid;grid-template-columns:minmax(95px,.38fr) minmax(0,.62fr);gap:12px;align-items:start;text-align:right}.dataTable td:last-child{border-bottom:0}.dataTable td:before{content:attr(data-label);font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink3);font-weight:700;text-align:left}.dataTable td.bizCell{text-align:right}.dataTable td[colspan]{display:block;text-align:left}.dataTable td[colspan]:before{display:none}.reviewRow{grid-template-columns:31px minmax(0,1fr)}.reviewRow>:last-child{grid-column:2}.queueItem{grid-template-columns:34px minmax(0,1fr)}.queueItem>.btn,.queueItem>a.btn{grid-column:2;justify-self:start}.adminApp .mobileTabs{display:grid}}
@media(max-width:500px){.crumb{display:none}.topbarInner{padding-left:10px;padding-right:10px}.pageTitle{font-size:17px}.topActions .btn{padding:8px 9px}.kpis,.adminKpis,.systemSummary,.visibilityStats{grid-template-columns:1fr}.kpi{padding:13px 14px}.kpi .num{font-size:25px}.visibilityTop{flex-direction:column}.metricBig{font-size:42px}.compareGrid{grid-template-columns:1fr}.compareItem+.compareItem{border-left:0;border-top:1px dashed var(--line2);padding:12px 0 0}.gainBox{grid-column:auto}.coverage.wide{height:18px}.coverage.wide i{font-size:8px}.mapPreviewTop{flex-direction:column}.mapPreviewTop .btn{width:100%}.miniStats{grid-template-columns:repeat(2,1fr)}.uploadGrid{grid-template-columns:1fr}.shareBar{flex-wrap:wrap}.shareBar .input{flex-basis:100%}.cardHead{padding:12px 13px}.welcome h1{font-size:22px}.profilePreview{margin-left:-4px;margin-right:-4px}.previewPhone{border-radius:16px}.serviceActions{flex-wrap:wrap}.serviceActions .btn{flex:1}.topActions .hideMobile{display:none}}

/* ---------- OpenStreetMap local visibility ---------- */
.rrVisibilityMapPreview{padding:17px;min-width:0}.rrVisibilityMapPreview .mapPreviewTop{margin-bottom:14px}
.rrMapShell{min-width:0}.rrMapToolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:10px}.rrMapMode{display:inline-flex;border:1px solid var(--line2);background:#fff;border-radius:10px;padding:3px;gap:3px}.rrMapMode button{border:0;background:transparent;border-radius:7px;padding:7px 10px;color:var(--ink2);font-size:10px;font-weight:700;min-height:34px}.rrMapMode button.active{background:var(--ink);color:#fff}.rrMapLegend{display:flex;gap:12px;flex-wrap:wrap;color:var(--ink3);font-size:9.5px}.rrMapLegend span{display:flex;align-items:center;gap:5px}.rrMapLegend i{width:9px;height:9px;border-radius:99px;display:inline-block}.rrMapLegend i.top{background:var(--blue)}.rrMapLegend i.page{background:#8CB9F5}.rrMapLegend i.low{background:#F2A46F}.rrMapLegend i.none{background:#DCE5EE}
.rrOsmMap{width:100%;border:1px solid var(--line);border-radius:12px;background:#E9EFF5;overflow:hidden;z-index:1}.rrOsmMap.is-preview{height:330px}.rrOsmMap.is-full{height:650px;border-radius:14px}.rrMapFoot{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-top:9px;color:var(--ink3);font-size:9px;line-height:1.4}.rrMapFoot a{color:var(--blueD);font-weight:700;text-decoration:none;white-space:nowrap}.rrMapEmpty{min-height:220px;border:1px dashed var(--line2);border-radius:12px;background:var(--wash);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px;color:var(--ink2)}.rrMapEmpty strong{font-family:'Bricolage Grotesque';font-size:16px;color:var(--ink)}.rrMapEmpty span{font-size:11px;max-width:55ch;margin-top:6px}.rrFullMapCard{overflow:hidden}.rrFullMapBody{padding:18px}.rrFullMapIntro{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-bottom:1px solid var(--line);background:#FBFCFE}.rrFullMapIntro>div{padding:14px 18px}.rrFullMapIntro>div+div{border-left:1px solid var(--line)}.rrFullMapIntro b{font-size:11px;display:block}.rrFullMapIntro span{font-size:9.5px;color:var(--ink3);display:block;margin-top:3px;line-height:1.45}
.rrMapPopup{display:grid;gap:3px;min-width:165px;color:#0B1B2B}.rrMapPopup>b{font-size:12px}.rrMapPopup>span,.rrMapPopup>small{font-size:10px;color:#6B7D8E}.rrPointTitle{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#7C8B9A;font-weight:700;padding-bottom:4px;border-bottom:1px solid #E2E9F1;margin-bottom:2px}.rrRankRow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:5px 0;border-bottom:1px solid #EEF2F6;font-size:10.5px}.rrRankRow.you{font-weight:700}.rrRankRow b{font-family:'DM Mono',monospace;color:#0B1B2B}.rrMapPointPopup>small{padding-top:4px;line-height:1.4}.leaflet-container{font-family:'Inter',system-ui,sans-serif}.leaflet-popup-content-wrapper{border-radius:11px;box-shadow:0 8px 26px rgba(11,27,43,.18)}.leaflet-popup-content{margin:12px 14px}.leaflet-control-attribution{font-size:8px!important}.leaflet-tooltip{font-family:'Inter',system-ui,sans-serif;font-size:9px;border-radius:7px;border-color:#D4DEE8;box-shadow:0 4px 14px rgba(11,27,43,.08)}
@media(max-width:1080px){.rrOsmMap.is-full{height:570px}.rrFullMapIntro{grid-template-columns:1fr 1fr}.rrFullMapIntro>div:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}}
@media(max-width:820px){.rrOsmMap.is-preview{height:360px}.rrOsmMap.is-full{height:520px}.rrFullMapBody{padding:13px}.rrMapFoot{align-items:flex-start}.rrFullMapIntro{grid-template-columns:1fr}.rrFullMapIntro>div+div,.rrFullMapIntro>div:nth-child(3){border-left:0;border-top:1px solid var(--line);grid-column:auto}.rrMapMode{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.rrMapMode button{min-height:40px}.rrMapLegend{width:100%}}
@media(max-width:500px){.rrVisibilityMapPreview{padding:13px}.rrOsmMap.is-preview{height:330px;border-radius:10px}.rrOsmMap.is-full{height:430px;border-radius:10px}.rrMapToolbar{gap:9px}.rrMapLegend{gap:8px}.rrMapFoot{flex-direction:column}.rrMapFoot a{white-space:normal}.rrFullMapBody{padding:10px}.rrFullMapIntro>div{padding:12px 13px}}

/* ── Card body, spacing helpers ──────────────────────────────────────────────
   These class names were used across the billing, account, print, plans and
   maintenance views but had no rules, so content sat flush against the card
   edge. Defined here once rather than patched per view. */
.cardBody{padding:16px}
.card > .cardBody:last-child{border-bottom-left-radius:var(--r);border-bottom-right-radius:var(--r)}
.card.pad,.pad{padding:16px}
.cardBody > :first-child{margin-top:0}
.cardBody > :last-child{margin-bottom:0}

/* Tables inside a padded body should still run edge to edge, so pull them back
   out and give the cells the padding instead. */
.cardBody > .dataTable,.cardBody > .tableWrap{margin:-16px;width:calc(100% + 32px)}
.cardBody > .dataTable th,.cardBody > .dataTable td{padding-left:16px;padding-right:16px}
.card > .dataTable th:first-child,.card > .dataTable td:first-child{padding-left:16px}
.card > .dataTable th:last-child,.card > .dataTable td:last-child{padding-right:16px}

.rowActions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.flash{border-radius:10px;padding:12px 15px;margin-bottom:14px;font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--blueT);border:1px solid #C3DBFB;color:var(--blueD)}
.flash.ok{background:var(--greenT);border-color:#B6E2D0;color:var(--green)}
.flash.error{background:var(--redT);border-color:#F5C6C0;color:var(--red)}
.muted{color:var(--ink3)}
.mono{font-family:'DM Mono',ui-monospace,SFMono-Regular,Menlo,monospace}

/* Forms inside cards */
.setupForm label{display:block;font-weight:600;font-size:13px;margin:0}
.setupForm input,.setupForm select,.setupForm textarea{width:100%;margin-top:6px;padding:10px 12px;
  border:1px solid var(--line2);border-radius:10px;font:inherit;font-weight:400;background:#fff;min-height:44px}
.setupForm textarea{min-height:88px;resize:vertical}
.setupForm input:focus,.setupForm select:focus,.setupForm textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.setupForm small{display:block;color:var(--ink3);font-size:12.5px;margin-top:5px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* Code shown to the operator (preview links, share URLs) needs room to breathe */
code.mono,.cardBody > code{display:block;background:var(--wash);border:1px solid var(--line);
  border-radius:9px;padding:11px 13px;font-size:12.5px;word-break:break-all}

@media (max-width:720px){
  .cardBody,.card.pad,.pad{padding:14px}
  .cardBody > .dataTable,.cardBody > .tableWrap{margin:-14px;width:calc(100% + 28px)}
  .cardBody > .dataTable th,.cardBody > .dataTable td{padding-left:14px;padding-right:14px}
  .grid2{grid-template-columns:1fr}
  .rowActions{gap:8px}
  .rowActions .btn{flex:1 1 auto;justify-content:center}
}

/* ── Business profile editor ─────────────────────────────────────────────────
   Two columns down to 1080px: the form on the left, the live customer preview
   pinned on the right. It collapsed at 1280px before, which is an ordinary
   laptop width, so most people never saw the layout it was built for. */
@media(min-width:1081px){
  .profileEditor{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:18px;align-items:start}
  .profilePreview{position:sticky;top:88px}
}
@media(max-width:1080px){
  .profileEditor{grid-template-columns:1fr}
  .profilePreview{position:static;order:-1}
}

/* Save bar: left-aligned, pinned to the bottom of the form column so it is
   reachable without scrolling back up on a long form. */
.saveBar{position:sticky;bottom:0;z-index:5;background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--r);
  padding:14px 16px;margin-top:4px;box-shadow:0 -2px 14px rgba(11,27,43,.06)}
.saveBar .checkLine{display:flex;align-items:flex-start;gap:10px;font-weight:500;margin:0}
.saveBar .checkLine input{width:18px;height:18px;margin-top:2px;flex:none}
.saveBar .saveRow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px}
.saveBar .hint{color:var(--ink3);font-size:12.5px;margin:0;flex:1;min-width:200px}
@media(max-width:720px){
  .saveBar .saveRow .btn{width:100%;justify-content:center}
  .saveBar .hint{flex-basis:100%}
}
