:root{--forest:#054531;--forest-2:#0a5a41;--forest-soft:#eaf5ee;--bronze:#b68f49;--bronze-soft:#f4ecdd;--cream:#faf9f6;--paper:#fff;--ink:#1e232a;--muted:#626b66;--border:#d8d4c7;--border-soft:#e9e6dd;--error:#b42318;--error-soft:#fdecea;--warn:#8a5a00;--warn-soft:#fff4dc;--ok:#1e7b45;--ok-soft:#e3f3e9;--info:#1d4f91;--info-soft:#e7eef9;--r-top3:#1e7b45;--r-mid:#c58a12;--r-low:#c2410c;--r-nf:#8a8f98;--r-failed:#7a1010;--radius:10px;--shadow:0 1px 2px #1e232a0f, 0 4px 14px #1e232a0f;--sidebar:248px;--sidebar-collapsed:72px;color:var(--ink);background:var(--cream);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--cream);color:var(--ink)}a{color:var(--forest)}h1,h2,h3,h4{margin:0;line-height:1.25}h1{font-size:22px;font-weight:700}h2{font-size:17px;font-weight:650}h3{font-size:15px;font-weight:650}p{margin:0}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{min-height:100%;display:flex}.sidebar{width:var(--sidebar);background:var(--paper);border-right:1px solid var(--border);z-index:30;flex-direction:column;flex:none;height:100vh;display:flex;position:sticky;top:0}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sb-head{border-bottom:1px solid var(--border-soft);align-items:center;gap:8px;padding:14px 12px 12px 16px;display:flex}.brand{color:var(--ink);flex:1;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand-mark{flex:none;width:32px;height:32px}.brand-name{flex-direction:column;line-height:1.05;display:flex}.brand-name b{letter-spacing:.02em;color:var(--forest);font-size:15px}.brand-name span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.sidebar.collapsed .brand-name,.sidebar.collapsed .nav-label,.sidebar.collapsed .account-name,.sidebar.collapsed .nav-caret,.sidebar.collapsed .sb-section-title{display:none}.sidebar.collapsed .sb-head{flex-direction:column;padding:12px 8px}.icon-btn{width:34px;height:34px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{background:var(--forest-soft)}.badge-dot{background:var(--error);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:700;display:flex;position:absolute;top:2px;right:0}.account{border-bottom:1px solid var(--border-soft);align-items:center;gap:10px;padding:12px 12px 12px 16px;display:flex;position:relative}.avatar{background:var(--forest);width:30px;height:30px;color:var(--cream);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.account-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.sidebar.collapsed .account{flex-direction:column;padding:12px 8px}.nav{flex-direction:column;flex:1;gap:2px;padding:10px 8px;display:flex;overflow-y:auto}.nav-item{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:14px;font-weight:550;text-decoration:none;display:flex}.nav-item:hover{background:var(--forest-soft)}.nav-item.active{background:var(--forest);color:var(--cream)}.nav-item svg{flex:none}.nav-caret{margin-left:auto;transition:transform .15s}.nav-caret.open{transform:rotate(90deg)}.nav-sub{flex-direction:column;gap:1px;margin:2px 0 6px 30px;display:flex}.nav-sub a{color:var(--ink);border-radius:7px;padding:7px 10px;font-size:13.5px;text-decoration:none}.nav-sub a:hover{background:var(--forest-soft)}.nav-sub a.active{background:var(--bronze-soft);color:var(--forest);font-weight:650}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.sidebar.collapsed .nav-sub{margin:2px 0 6px}.sidebar.collapsed .nav-sub a{text-align:center;padding:6px 2px;font-size:11px}.sb-foot{border-top:1px solid var(--border-soft);color:var(--muted);padding:12px 16px;font-size:12px}.sidebar.collapsed .sb-foot{text-align:center;padding:8px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.mobile-bar{display:none}.page{width:100%;max-width:1400px;margin:0 auto;padding:24px 28px 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-head .sub{color:var(--muted);margin-top:4px}.crumbs{color:var(--muted);flex-wrap:wrap;gap:6px;margin-bottom:6px;font-size:12.5px;display:flex}.crumbs a{color:var(--muted)}.card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px}.card-head{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grow{flex:1;min-width:0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.split{grid-template-columns:minmax(0,460px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.muted{color:var(--muted)}.small{font-size:12.5px}.tiny{font-size:11.5px}.nowrap{white-space:nowrap}.right{text-align:right}.divider{background:var(--border-soft);height:1px;margin:12px 0}.btn{border:1px solid var(--border);background:var(--paper);height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--forest)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--forest);border-color:var(--forest);color:var(--cream)}.btn.primary:hover{background:var(--forest-2)}.btn.accent{background:var(--bronze);border-color:var(--bronze);color:#fff}.btn.danger{color:var(--error);border-color:#e7b9b4}.btn.danger.solid{background:var(--error);color:#fff;border-color:var(--error)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--forest-soft)}.btn.sm{height:30px;padding:0 10px;font-size:12.5px}.btn-group{border:1px solid var(--border);border-radius:8px;flex:none;display:inline-flex;overflow:hidden}.btn-group button{background:var(--paper);cursor:pointer;height:32px;color:var(--ink);border:0;padding:0 12px;font-size:13px;font-weight:600}.btn-group button+button{border-left:1px solid var(--border)}.btn-group button.on{background:var(--forest);color:var(--cream)}label.field{flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}label.field .hint{color:var(--muted);font-size:12px;font-weight:400}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=time],input[type=date],select,textarea{border:1px solid var(--border);height:36px;font:inherit;background:var(--paper);color:var(--ink);border-radius:8px;width:100%;padding:0 10px}textarea{resize:vertical;height:auto;min-height:90px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--bronze-soft);border-color:var(--bronze)}.check{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:flex}.check input{width:16px;height:16px;accent-color:var(--forest)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.form-grid .full{grid-column:1/-1}.tag{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:650;display:inline-flex}.tag.green{background:var(--ok-soft);color:var(--ok)}.tag.amber{background:var(--warn-soft);color:var(--warn)}.tag.red{background:var(--error-soft);color:var(--error)}.tag.blue{background:var(--info-soft);color:var(--info)}.tag.grey{color:var(--muted);background:#eef0ee}.tag.bronze{background:var(--bronze-soft);color:#7a5a1d}.tag.outline{border-color:var(--border);background:var(--paper);color:var(--ink)}.chip{background:var(--forest-soft);color:var(--forest);border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.chip button{cursor:pointer;color:var(--forest);background:0 0;border:0;border-radius:50%;width:20px;height:20px}.chip button:hover{background:#1c452f1f}.banner{border-radius:var(--radius);border:1px solid;align-items:flex-start;gap:10px;padding:11px 14px;display:flex}.banner.warn{background:var(--warn-soft);color:#5c3d00;border-color:#ecd49a}.banner.error{background:var(--error-soft);color:var(--error);border-color:#f2c2bd}.banner.info{background:var(--info-soft);color:#163d70;border-color:#c7d6ee}.banner.ok{background:var(--ok-soft);color:#165c34;border-color:#b9dcc6}table.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);background:#f6f4ee;padding:10px 12px;font-size:12px;font-weight:650;position:sticky;top:0}.table td{border-bottom:1px solid var(--border-soft);vertical-align:top;padding:11px 12px}.table tr:hover td{background:#fbfaf6}.table-wrap{overflow-x:auto}.table .num{text-align:right;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:42px 20px;display:flex}.empty h3{color:var(--ink)}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs a,.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:14px;font-weight:600;text-decoration:none}.tabs .on{color:var(--forest);border-bottom-color:var(--forest)}.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.kpi{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.kpi .label{color:var(--muted);align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.kpi .value{font-variant-numeric:tabular-nums;margin-top:3px;font-size:22px;font-weight:750}.kpi .note{color:var(--muted);margin-top:2px;font-size:11.5px}.plan-cards{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;display:grid}.plan-card{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:12px 14px;display:flex}.plan-card.current{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest)}.plan-card .plan-action{margin-top:auto;padding-top:10px}.plan-card .plan-action .btn{width:100%}.plan-price{font-variant-numeric:tabular-nums;margin-top:6px;font-size:22px;font-weight:750}.progress{background:#ebe8df;border-radius:99px;height:8px;display:flex;overflow:hidden}.progress>span{height:100%;display:block}.spinner{border:2px solid var(--border);border-top-color:var(--forest);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#eeebe3,#f7f5ef,#eeebe3) 0 0/200% 100%;border-radius:6px;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.menu{z-index:60;background:var(--paper);border:1px solid var(--border);border-radius:10px;min-width:220px;padding:6px;position:absolute;box-shadow:0 10px 30px #1e232a26}.menu button,.menu a{cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;text-decoration:none;display:flex}.menu button:hover,.menu a:hover{background:var(--forest-soft)}.menu .danger{color:var(--error)}.modal-backdrop{z-index:100;background:#14181673;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--paper);border-radius:14px;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 20px 60px #00000040}.modal-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.modal-body{flex-direction:column;gap:12px;padding:18px;display:flex}.modal-foot{border-top:1px solid var(--border-soft);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow);border-radius:10px;max-width:420px;padding:10px 14px;font-size:13.5px}.toast.error{background:var(--error)}.notif-panel{z-index:70;width:360px;max-width:calc(100vw - 24px);position:absolute;top:46px;left:8px}.notif-item{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:10px 12px;text-decoration:none;display:block}.notif-item:hover{background:var(--forest-soft)}.notif-item.unread{background:#f6f1e6}.map{border-radius:var(--radius);border:1px solid var(--border);z-index:0;width:100%;height:560px}.map.tall{height:640px}.map.short{height:360px}.rank-pin{color:#fff;cursor:pointer;font-variant-numeric:tabular-nums;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:12.5px;font-weight:750;display:flex;box-shadow:0 1px 4px #00000059}.rank-pin.top3{background:var(--r-top3)}.rank-pin.mid{background:var(--r-mid)}.rank-pin.low{background:var(--r-low)}.rank-pin.nf{color:#4b5058;border:2px dashed var(--r-nf);background:#f3f3f1}.rank-pin.failed{color:var(--r-failed);border:2px solid var(--r-failed);background:#fff}.rank-pin.insufficient{color:#4b5058;border:2px dotted var(--r-nf);background:#fff}.rank-pin.pending{color:var(--muted);background:#fff;border:2px dotted #9aa09b}.rank-pin.cancelled{color:var(--muted);background:#fff;border:2px solid #c9c6bd}.rank-pin.excluded{color:#8a8f98;width:16px;height:16px;box-shadow:none;background:0 0;border:1.5px solid #8a8f98;font-size:10px}.rank-pin.selected{outline:3px solid var(--ink);outline-offset:1px}.rank-pin.small{width:24px;height:24px;font-size:11px}.rank-pin.xs{border-width:1.5px;width:20px;height:20px;font-size:9.5px}.biz-pin{background:var(--info);color:#fff;border:2px solid #fff;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:11.5px;font-weight:700;display:flex;box-shadow:0 1px 4px #00000059}.biz-pin.target{background:var(--bronze)}.target-pin{background:var(--bronze);border:2px solid #fff;width:22px;height:22px;transform:rotate(45deg);box-shadow:0 1px 4px #0006}.grid-dot{background:var(--forest);cursor:pointer;border:2px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #00000059}.grid-dot.excluded{border:2px solid var(--error);background:#fff}.center-pin{background:var(--bronze);width:18px;height:18px;box-shadow:0 0 0 2px var(--bronze);border:3px solid #fff;border-radius:50%}.legend{flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12.5px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend .rank-pin{cursor:default;width:22px;height:22px;font-size:10.5px}.legend .rank-pin.excluded{width:14px;height:14px}.change-pin{color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:11.5px;font-weight:750;display:flex;box-shadow:0 1px 4px #00000059}.change-pin.improved,.change-pin.newly_found{background:var(--r-top3)}.change-pin.declined,.change-pin.lost{background:var(--r-low)}.change-pin.unchanged,.change-pin.still_not_found{color:var(--ink);background:#fff;border-color:#9aa09b}.change-pin.not_comparable{color:var(--muted);background:#fff;border:2px dotted #9aa09b}.drawer{background:var(--paper);border-left:1px solid var(--border);z-index:90;flex-direction:column;width:min(440px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 30px #0000001f}.drawer-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;gap:10px;padding:14px 16px;display:flex}.drawer-body{flex-direction:column;flex:1;gap:12px;padding:14px 16px;display:flex;overflow-y:auto}.result-row{border:1px solid var(--border-soft);border-radius:8px;gap:10px;padding:9px 10px;display:flex}.result-row.target{border-color:var(--bronze);background:var(--bronze-soft)}.result-pos{background:var(--forest-soft);width:30px;height:30px;color:var(--forest);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12.5px;font-weight:750;display:flex}.result-row.target .result-pos{background:var(--bronze);color:#fff}.timeline{gap:6px;padding:4px 2px 8px;display:flex;overflow-x:auto}.run-dot{border:1px solid var(--border);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:8px;flex-direction:column;flex:none;align-items:center;gap:3px;min-width:76px;padding:6px 8px;font-size:11.5px;text-decoration:none;display:flex}.run-dot.on{border-color:var(--forest);background:var(--forest-soft);font-weight:700}.run-dot.picked{outline:2px solid var(--bronze)}.trend>svg{width:100%;height:220px}.trend .legend svg{flex:none}.def-list{grid-template-columns:max-content 1fr;gap:6px 14px;font-size:12.5px;display:grid}.def-list dt{font-weight:650}.def-list dd{color:var(--muted);margin:0}.main:has(>.ws){height:100vh}.ws{background:#e8e6df;flex:1;min-height:0;position:relative;overflow:hidden}.ws-map{position:absolute;inset:0}.map.fill{border:0;border-radius:0;height:100%}.ws-panel{z-index:5;pointer-events:none;flex-direction:column;gap:10px;width:352px;display:flex;position:absolute;top:12px;bottom:12px;left:12px}.ws-panel>*{pointer-events:auto}.ws-scroll{scrollbar-width:thin;flex-direction:column;flex:0 auto;gap:10px;min-height:0;padding:0 2px 2px 0;display:flex;overflow-y:auto}.ws-card{background:var(--paper);border:1px solid var(--border);border-radius:12px;flex:none;padding:12px 14px;box-shadow:0 2px 10px #1e232a1f}.ws-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ws-title{color:var(--forest);align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.ws-h{font-size:14px;font-weight:700}.ws-label{font-size:13px;font-weight:650}.link-btn{color:var(--forest);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;padding:2px 4px;font-size:12.5px;font-weight:600;display:inline-flex}.link-btn:hover{background:var(--forest-soft)}.btn-group.sm button{height:26px;padding:0 10px;font-size:12px}.biz-card{flex-direction:column;gap:2px;display:flex}.biz-name{color:var(--ink);font-size:14.5px;font-weight:700;text-decoration:none}.biz-name:hover{color:var(--forest);text-decoration:underline}.biz-meta{flex-wrap:wrap;gap:4px 10px;margin-top:3px;display:flex}.biz-search{border:1px solid var(--border);color:var(--muted);background:var(--paper);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.biz-search:focus-within{border-color:var(--bronze);outline:2px solid var(--bronze-soft)}.biz-search input{height:38px;border:0!important;outline:none!important;padding:0!important}.biz-list{flex-direction:column;gap:2px;max-height:280px;display:flex;overflow-y:auto}.biz-option{cursor:pointer;text-align:left;color:var(--ink);background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;display:flex}.biz-option:hover{background:var(--forest-soft)}.biz-option.on{background:var(--bronze-soft)}.biz-option-name{font-size:13.5px;font-weight:650}.source-row{align-items:flex-start!important}.source-row input{margin-top:2px}.source-row>span{flex-direction:column;font-size:13px;font-weight:600;display:flex}.source-row .tag{align-self:flex-start}.source-note{font-weight:400}.kw-box{cursor:text;border:1px solid var(--border);background:var(--paper);border-radius:8px;flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:76px;padding:7px;display:flex}.kw-box:focus-within{border-color:var(--bronze);outline:2px solid var(--bronze-soft)}.kw-box textarea{resize:none;background:0 0;border:0;outline:none;flex:120px;min-width:120px;height:26px;min-height:26px;padding:3px 4px}.kw-box textarea:focus{outline:none}.kw-suggest{border:1px dashed var(--border);background:#f7f5ef;border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.chip-add{border:1px solid var(--border);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:550;display:inline-flex}.chip-add:hover{border-color:var(--forest);color:var(--forest)}.grid-row{grid-template-columns:.9fr 1.35fr .85fr;gap:6px;display:grid}.grid-row select{padding:0 6px;font-size:13px}.disclosure>summary{cursor:pointer;color:var(--forest);list-style:revert;font-size:12.5px;font-weight:600}.disclosure .form-grid{gap:10px}.ws-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.ws-cost{flex-direction:column;min-width:0;display:flex}.ws-cost-value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:750;line-height:1.15}.ws-scan{height:40px;padding:0 26px;font-size:14.5px}.ws-foot-actions{flex-basis:100%;justify-content:flex-end;align-items:center;gap:6px;display:flex}.ws-foot-note{flex-direction:column;flex-basis:100%;gap:2px;display:flex}.ws-tools{z-index:5;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:12px;right:12px}.ws-tool{border:1px solid var(--border);background:var(--paper);height:34px;color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #1e232a26}.ws-tool:hover{border-color:var(--forest)}.ws-tool.on{background:var(--bronze);border-color:var(--bronze);color:#fff}.ws-hint{z-index:5;pointer-events:none;justify-content:center;padding:0 12px;display:flex;position:absolute;bottom:18px;left:376px;right:0}.ws-pill{pointer-events:auto;color:#fff;background:#1e232ac7;border-radius:999px;padding:7px 14px;font-size:12.5px;box-shadow:0 2px 8px #0003}.ws-pill.action{background:var(--paper);color:var(--forest);border:1px solid var(--forest);cursor:pointer;font-weight:650}.center-pin.draggable{cursor:grab}.cost-hero{background:var(--forest-soft);border-radius:10px;align-items:center;gap:18px;padding:12px 14px;display:flex}.cost-value{font-variant-numeric:tabular-nums;color:var(--forest);font-size:26px;font-weight:750;line-height:1.15}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-link{width:24px;height:24px;color:var(--muted);border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-link:hover{background:var(--forest-soft);color:var(--forest)}.icon-btn.sm{width:28px;height:28px}.icon-btn.on{background:var(--forest-soft);color:var(--forest)}.icon-btn:disabled{opacity:.4;cursor:default;background:0 0}.link-btn.danger{color:var(--error)}.link-btn.on{background:var(--bronze-soft)}.ws-tool.accent{background:var(--forest);border-color:var(--forest);color:var(--cream)}.ws-tool.accent:hover{background:var(--forest-2)}.ws-tool.icon{justify-content:center;width:34px;padding:0}.ws-tool:disabled{opacity:.55;cursor:not-allowed}a.ws-tool{text-decoration:none}.menu-sep{background:var(--border-soft);height:1px;margin:4px 2px}.dot{background:#c9cbcf;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.top3{background:var(--r-top3)}.dot.mid{background:var(--r-mid)}.dot.low{background:var(--r-low)}.ws-result .banner.small{flex:none;padding:8px 11px;box-shadow:0 2px 10px #1e232a1f}.rs-summary{flex-direction:column;gap:10px;display:flex}.rs-biz{align-items:flex-start;gap:8px;display:flex}.rs-biz>.grow{min-width:0}.rs-biz-icon{color:var(--bronze);flex:none;margin-top:2px;display:inline-flex}.rs-biz-line{align-items:center;gap:4px;min-width:0;display:flex}.rs-biz-line .biz-name{color:var(--forest);min-width:0}.rs-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rs-details{background:#f7f5ef;border-radius:8px;padding:10px}.rs-progress{background:var(--info-soft);border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.rs-retry{background:var(--error-soft);color:var(--error);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:8px 10px;display:flex}.rs-metrics{border-top:1px solid var(--border-soft);grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:14px;padding-top:10px;display:grid}.rs-avg-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:750;line-height:1.1}.rs-sub{color:var(--muted);white-space:nowrap;flex-direction:column;gap:2px;display:flex}.rs-sub strong{color:var(--ink);font-variant-numeric:tabular-nums}.rs-buckets{align-items:end;gap:6px;display:grid}.rs-bucket-label{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;font-size:11.5px;display:flex}.rs-bucket-value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.rs-all{white-space:nowrap;align-self:end}.rs-kw{border-top:1px solid var(--border-soft);flex-direction:column;gap:4px;padding-top:10px;display:flex}.rs-kw-select{height:34px;font-size:14px;font-weight:650}.rs-kw-one{font-size:14px;font-weight:650}.rs-history .ws-card-head{margin-bottom:4px}.rs-timeline{align-items:center;gap:4px;display:flex}.rs-pips{scrollbar-width:none;background:linear-gradient(var(--border), var(--border)) center / 100% 2px no-repeat;flex:1;align-items:center;gap:4px;min-width:0;padding:6px 4px;display:flex;position:relative;overflow-x:auto}.rs-pip{background:var(--forest-2);width:12px;height:12px;box-shadow:0 0 0 1px var(--forest-2);cursor:pointer;border:2px solid #fff;border-radius:50%;flex:none;padding:0}.rs-pip.warn{background:var(--r-mid);box-shadow:0 0 0 1px var(--r-mid)}.rs-pip.on{background:var(--bronze);width:16px;height:16px;box-shadow:0 0 0 2px var(--bronze);cursor:default}.rs-comp{flex-direction:column;min-height:0;margin-top:auto;padding:0;display:flex;overflow:hidden}.rs-comp.open{flex:1 1 0;min-height:220px;margin-top:0}.rs-comp-bar{cursor:pointer;width:100%;font:inherit;color:var(--ink);text-align:left;background:0 0;border:0;flex:none;align-items:center;gap:8px;padding:12px 14px;font-size:14px;display:flex}.rs-comp-bar:hover{background:#fbfaf6}.rs-comp.open .rs-comp-bar{border-bottom:1px solid var(--border-soft)}.rs-caret{margin-left:auto;transition:transform .15s;display:inline-flex}.rs-caret.open{transform:rotate(90deg)}.rs-comp-body{scrollbar-width:thin;flex:1;min-height:0;overflow-y:auto}.comp-tools{border-bottom:1px solid var(--border-soft);background:var(--paper);z-index:1;justify-content:space-between;align-items:center;gap:8px;padding:6px 14px;display:flex;position:sticky;top:0}.comp-tools select{width:auto;height:28px;padding:0 6px;font-size:12px}.comp-list{margin:0;padding:0;list-style:none}.comp-row{border-bottom:1px solid var(--border-soft);align-items:flex-start;gap:8px;padding:9px 10px 9px 14px;display:flex}.comp-row.you{background:var(--bronze-soft)}.comp-row>.grow{min-width:0}.comp-avg{width:46px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:5px;padding-top:1px;font-size:12px;font-weight:650;display:flex}.comp-name{align-items:center;gap:6px;min-width:0;font-size:13px;font-weight:650;display:flex}.comp-name .ellipsis{min-width:0}.comp-stars{color:var(--ink)}.comp-pad{padding:10px 14px}.rs-actions{z-index:7;align-items:center;gap:6px;display:flex;position:absolute;top:12px;right:12px}.rs-more{position:relative}.rs-menu{white-space:nowrap;min-width:250px;top:40px;right:0}.rs-snapshot{z-index:5;width:300px;max-height:calc(100% - 150px);position:absolute;top:58px;right:12px;overflow-y:auto}.rs-snapshot .ws-card-head{margin-bottom:6px}.rs-snapshot-btn{z-index:5;position:absolute;top:58px;right:12px}.rs-rating{font-size:15px}.rs-stars{color:#d99a06}.ws .drawer.floating{border:1px solid var(--border);z-index:6;border-radius:12px;width:min(390px,100% - 24px);position:absolute;top:58px;bottom:12px;right:12px;overflow:hidden;box-shadow:0 6px 24px #1e232a2e}.rs-legend{z-index:4;pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:14px;left:376px;right:64px}.rs-legend-card{pointer-events:auto;border:1px solid var(--border);background:#fffffff0;border-radius:10px;max-width:100%;padding:6px 10px;box-shadow:0 2px 8px #1e232a26}.legend.compact{gap:4px 12px;font-size:11.5px}.legend.compact .rank-pin{border-width:1.5px;width:18px;height:18px;font-size:9px}.legend.compact .target-pin{width:12px!important;height:12px!important}.rs-fit{z-index:5;position:absolute;bottom:144px;right:10px}.rs-map-msg{z-index:5;background:var(--paper);box-shadow:var(--shadow);border-radius:10px;padding:10px 14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map.biz-mode .rank-pin:not(.selected){opacity:.45}.map-style{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.35;position:relative}.map-style-btn{border:1px solid var(--border);background:var(--paper);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #1e232a26}.map-style-btn:hover{border-color:var(--forest)}.map-style-menu{z-index:1000;border:1px solid var(--border);background:var(--paper);border-radius:10px;flex-direction:column;gap:2px;width:250px;padding:6px;display:flex;position:absolute;box-shadow:0 10px 30px #1e232a2e}.map-style.up .map-style-menu{bottom:0}.map-style.down .map-style-menu{top:0}.map-style.right .map-style-menu{right:42px}.map-style.left .map-style-menu{left:42px}.map-style-menu button{cursor:pointer;text-align:left;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:7px 8px;display:flex}.map-style-menu button:hover{background:var(--forest-soft)}.map-style-menu button.on{background:var(--bronze-soft)}.map-style-text{flex-direction:column;display:flex}.map-style-name{font-weight:650}.map-style-note{color:var(--muted);font-size:11.5px}.map-style-swatch{border:1px solid var(--border);border-radius:5px;flex:none;width:36px;height:28px}.map-style-swatch.clean{background:linear-gradient(135deg,#ececec 0 42%,#fff 42% 49%,#ececec 49% 72%,#d6d6d6 72%)}.map-style-swatch.soft{background:linear-gradient(135deg,#f1efe8 0 30%,#d7e8c8 30% 52%,#fff 52% 58%,#f1efe8 58% 74%,#bcd8ee 74%)}.map-style-swatch.streets{background:linear-gradient(135deg,#f2efe9 0 28%,#e892a2 28% 35%,#cde6c0 35% 58%,#f7f3b0 58% 65%,#e5e1d8 65%)}.map-style-swatch.satellite{background:linear-gradient(135deg,#3d4b2f 0 38%,#77714f 38% 58%,#2c3f47 58%)}.rank-pin.nf{letter-spacing:-.02em;font-size:10px}.rank-pin.long{letter-spacing:-.04em;font-size:8.5px}.rank-pin.small.nf{font-size:9px}.rank-pin.small.long{font-size:7.5px}.rank-pin.xs.nf{font-size:8px}.rank-pin.xs.long{font-size:6.5px}.legend.compact .rank-pin.long{font-size:7px}@media (width<=820px){.ws-result .rs-legend{order:1;padding:8px 16px 0;position:static}.ws-result .rs-legend-card{box-shadow:none}.ws-result .rs-actions{flex-wrap:wrap;order:2;padding:10px 16px 0;position:static}.ws-result .rs-actions .ws-tool:not(.icon){padding:0 8px}.ws-result .ws-panel{order:3}.ws-result .rs-snapshot,.ws-result .rs-snapshot-btn{order:4;width:auto;max-height:none;margin:0 16px 24px;position:static}.ws-result .rs-snapshot-btn{align-self:flex-start}.ws-result .rs-comp{margin-top:0}.ws-result .rs-comp.open{flex:none;min-height:0}.ws-result .rs-comp-body{max-height:60vh}.ws .drawer.floating{border:0;border-left:1px solid var(--border);z-index:90;border-radius:0;width:min(440px,100vw);position:fixed;top:0;bottom:0;right:0}}.auth-wrap{background:radial-gradient(circle at 20% 10%, #e9efe9, var(--cream) 50%);justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.auth-card{width:min(400px,100%)}.report{background:#fff;max-width:1000px;margin:0 auto;padding:24px}.report-section{break-inside:avoid;page-break-inside:avoid;margin-bottom:22px}.grid-diagram{border:1px solid var(--border);background:#fbfaf6;border-radius:8px;width:100%;max-width:420px;height:auto}@media print{@page{margin:12mm}body,.report{background:#fff}.no-print{display:none!important}.report{padding:0}.card{box-shadow:none}}@media (width<=1100px){.split{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}}@media (width<=820px){.sidebar{transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:10px 0 30px #0003;width:min(300px,86vw)!important}.sidebar.mobile-open{transform:none}.sidebar.collapsed .brand-name,.sidebar.collapsed .nav-label,.sidebar.collapsed .account-name,.sidebar.collapsed .nav-caret{display:initial}.mobile-bar{background:var(--paper);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:10px;padding:10px 16px;display:flex;position:sticky;top:0}.page{padding:16px 16px 40px}.grid-2,.grid-3,.form-grid{grid-template-columns:1fr}.map{height:420px}.map.tall{height:460px}.hide-sm{display:none!important}h1{font-size:19px}.scrim{z-index:25;background:#0000004d;position:fixed;inset:0}.main:has(>.ws){height:auto}.ws{background:var(--cream);flex-direction:column;display:flex;overflow:visible}.ws-map{height:52vh;min-height:300px;position:relative;inset:auto}.ws-panel{pointer-events:auto;width:auto;padding:12px 16px 24px;position:static}.ws-scroll{overflow:visible}.ws-hint{top:calc(52vh - 52px);bottom:auto;left:0}.ws-hint .ws-pill:not(.action){display:none}}.kpi.kpi-secondary{opacity:.78;border-style:dashed}.cmp-strip{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;grid-auto-columns:minmax(300px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:6px;display:grid;overflow-x:auto}.cmp-card{scroll-snap-align:start;flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.cmp-card.base{border-color:var(--bronze);box-shadow:0 0 0 1px var(--bronze), var(--shadow)}.cmp-card.off{border-color:#f2c2bd}.cmp-head{flex-wrap:wrap;align-items:center;gap:6px;min-height:28px;display:flex}.cmp-head-tools{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.cmp-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.cmp-kpis .kpi{padding:7px 9px}.cmp-kpis .kpi .label{font-size:11px}.cmp-kpis .kpi .value{margin-top:1px;font-size:18px}.cmp-note{min-height:18px}.cmp-flag ul{margin:4px 0;padding-left:18px}.cmp-warn summary{cursor:pointer;color:var(--warn);font-weight:600}.cmp-warn ul{color:var(--muted);margin:4px 0 0;padding-left:18px}.cmp-card .map.short{height:300px;margin-top:auto}.cmp-pick{margin-bottom:12px;padding:0}.cmp-pick>summary{cursor:pointer;padding:10px 14px;font-size:13.5px}.cmp-pick-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2px 12px;max-height:260px;padding:4px 14px 12px;display:grid;overflow-y:auto}.cmp-pick-row{cursor:pointer;align-items:baseline;gap:8px;padding:4px 0;font-size:13px;display:flex}.cmp-pick-row input{flex:none;align-self:center;width:auto;height:auto;margin:0}.cmp-pick-row.disabled{cursor:default;opacity:.6}.rs-pip.sel{background:var(--forest);box-shadow:0 0 0 2px var(--bronze)}.rs-pips.picking .rs-pip.on{cursor:pointer}.rs-pips.picking .rs-pip.on:not(.sel){background:#fff}.rs-compare-go{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}@media (width<=640px){.cmp-strip{scroll-snap-type:none;flex-direction:column-reverse;display:flex;overflow:visible}.cmp-card .map.short{height:260px}}.leaflet-marker-icon .rank-pin{transform:scale(var(--pin-scale,1));transition:transform .15s}.map.pins-dots .leaflet-marker-icon .rank-pin:not(.selected){color:#0000}.map-touch-hint{z-index:1000;pointer-events:none;color:#fff;opacity:0;background:#1418166b;justify-content:center;align-items:center;font-size:15px;font-weight:650;transition:opacity .2s;display:flex;position:absolute;inset:0}.map-touch-hint.on{opacity:1}@media (width<=820px),(pointer:coarse){.btn,.btn.sm,.ws-tool{height:auto;min-height:44px}.btn-group button,.btn-group.sm button{min-width:44px;height:44px}.chip-add{min-height:44px;padding:0 14px;font-size:14px}.icon-btn,.icon-btn.sm,.ws-tool.icon,.map-style-btn{width:44px;height:44px}.nav-item,.nav-sub a{align-items:center;min-height:44px;display:flex}.tabs a,.tabs button{align-items:center;min-height:44px;display:inline-flex}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=time],input[type=date],select{height:44px}.leaflet-container .leaflet-bar.leaflet-control a{width:44px;height:44px;font-size:22px;line-height:44px}.link-btn,.chip button{position:relative}.link-btn:after{content:"";position:absolute;inset:-13px -6px}.chip button:after{content:"";position:absolute;inset:-12px}input[type=checkbox],input[type=radio]{width:20px;height:20px}.brand{min-height:44px}.icon-link{justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:-10px -10px -10px -6px;display:inline-flex}.biz-name,.rs-snapshot a{margin:-12px 0;padding:12px 0;display:inline-block}.rs-kw-select{height:44px}.kw-box textarea{min-height:44px}.biz-meta a{margin:-12px 0;padding:12px 0;display:inline-block}.rs-fit{bottom:190px}}@media (width<=820px){html{-webkit-text-size-adjust:100%}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=hidden]),select,textarea{min-height:44px;font-size:16px!important}.def-list{grid-template-columns:minmax(0,1fr);gap:2px}.def-list dd{overflow-wrap:anywhere;margin-bottom:8px}.mobile-bar{padding-top:max(10px, env(safe-area-inset-top));padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}.page{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:calc(40px + env(safe-area-inset-bottom))}.sidebar,.drawer{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.modal-backdrop{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.modal{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.toasts{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}.ws-panel{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.table-wrap{max-height:none!important}.ws-panel .ws-foot{z-index:6;padding-bottom:calc(12px + env(safe-area-inset-bottom));position:sticky;bottom:0;box-shadow:0 -6px 18px #1e232a1f}.public-report{flex-direction:column;display:flex}.public-report>.pr-head{flex-wrap:wrap;order:1}.public-report>.pr-head .btn{margin-left:auto}.public-report>.pr-controls{order:2}.public-report>.pr-controls .field{flex:100%;min-width:0!important}.public-report>.pr-map{margin-left:calc(-1 * max(16px, env(safe-area-inset-left)));margin-right:calc(-1 * max(16px, env(safe-area-inset-right)));border-left:0;border-right:0;border-radius:0;order:3;padding:0 0 12px}.public-report>.pr-map .map{border:0;border-radius:0;height:min(68vh,520px)}.public-report>.pr-map .legend{padding:0 16px}.public-report>.pr-metrics{order:4}.public-report>.pr-comp{order:5}.public-report>.pr-change{order:6}.public-report>.pr-foot{order:7}}@media (width<=640px){.table:not(.keep-table) thead{display:none}.table:not(.keep-table),.table:not(.keep-table) tbody{width:100%;display:block}.table:not(.keep-table) tr{border-bottom:1px solid var(--border-soft);padding:10px 14px;display:block}.table:not(.keep-table) td{text-align:right;overflow-wrap:anywhere;border:0;justify-content:space-between;align-items:baseline;gap:12px;min-width:0;padding:3px 0;display:flex}.table:not(.keep-table) td:before{content:attr(data-label);text-align:left;max-width:46%;color:var(--muted);flex:none;font-size:12.5px;font-weight:600}.table:not(.keep-table) td.hide-sm{display:flex!important}.table:not(.keep-table) tr:hover td{background:0 0}.table:not(.keep-table) td:empty{display:none!important}.table:not(.keep-table) td:first-child{text-align:left;padding:0 0 6px;font-size:15px;display:block}.table:not(.keep-table) td:first-child:has(>input[type=checkbox]:only-child)+td{text-align:left;padding:0 0 6px;font-size:15px;display:block}.table:not(.keep-table) td:first-child:before{content:none}.table:not(.keep-table) td:first-child:has(>input[type=checkbox]:only-child)+td:before{content:none}.table:not(.keep-table) td:first-child:has(>input[type=checkbox]:only-child){float:right;font-size:inherit;padding:2px 0 0 12px}.table:not(.keep-table) td:first-child:has(>input[type=checkbox]:only-child) input{width:24px;height:24px}.table:not(.keep-table) td a{margin:-12px 0;padding:12px 0;display:inline-block}}@media (width<=820px),(pointer:coarse){.cmp-pick-row{align-items:center;min-height:44px}}@media (width<=640px){.table:not(.keep-table) tr:has(>td:nth-child(6)){grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;display:grid}.table:not(.keep-table) tr:has(>td:nth-child(6))>td{text-align:left;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:1px}.table:not(.keep-table) tr:has(>td:nth-child(6))>td:before{max-width:none}.table:not(.keep-table) tr:has(>td:nth-child(6))>td:first-child{grid-column:1/-1}.table:not(.keep-table) tr:has(>td:nth-child(8)){grid-template-columns:repeat(3,minmax(0,1fr))}.table:not(.keep-table) tr:has(>td:nth-child(6))>td:first-child:has(>input[type=checkbox]:only-child){float:none;z-index:1;grid-area:1/-2/auto/-1;justify-self:end}.table:not(.keep-table) tr:has(>td:nth-child(6))>td:first-child:has(>input[type=checkbox]:only-child)+td{grid-area:1/1/auto/-1;padding-right:36px}}@media (width<=820px),(pointer:coarse){.fs-chip{min-height:44px}}@media (width<=820px){.fs-page{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:calc(40px + env(safe-area-inset-bottom))}}@media (width<=640px){.row>form.row{flex-wrap:nowrap;flex:100%}.row>form.row>input{flex:1;min-width:0;max-width:none!important}.row>select{flex:140px;width:auto}}@media (width<=820px),(pointer:coarse){.tabs{overflow-y:hidden}}
