:root{--ink: #0f172a;--ink-soft: #64748b;--mist: #f1f5f9;--mist-2: #f8fafc;--panel: #ffffff;--line: #e2e8f0;--line-strong: #cbd5e1;--signal: #ea580c;--signal-deep: #c2410c;--signal-soft: #fff7ed;--warn: #b45309;--warn-soft: #fffbeb;--danger: #dc2626;--danger-soft: #fef2f2;--ok: #15803d;--ok-soft: #f0fdf4;--shadow: 0 1px 2px rgba(15, 23, 42, .05);--radius: 8px;--font-display: "Space Grotesk", sans-serif;--font-body: "Public Sans", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;color:var(--ink);background:var(--mist);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{height:100%;overflow:hidden}html,body,#root{height:100%;margin:0}body{min-width:320px;overflow:hidden;background:var(--mist)}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--signal-deep)}a:hover{color:var(--signal)}.app-frame{display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden;align-items:stretch}.app-chrome{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 16px;width:100%;padding:14px 24px;border-bottom:1px solid var(--line);background:#fff;z-index:6;flex-shrink:0}.chrome-brand{font-size:1.55rem;margin:0;align-self:center}.chrome-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-left:auto}.chrome-actions .company-select{min-width:160px;max-width:220px;width:200px;margin:0;flex:0 0 auto}.chrome-actions .btn{min-height:38px;padding:8px 12px;line-height:1.25}.app-body{display:flex;flex:1;min-height:0;align-items:stretch}.sidebar{z-index:20;display:flex;flex-direction:column;gap:16px;width:56px;height:100%;padding:12px 8px;border-right:1px solid var(--line);background:#fff;color:var(--ink);flex-shrink:0;overflow:visible}.sidebar-nav{display:flex;flex-direction:column;align-items:center;gap:4px}.nav-icon{width:18px;height:18px;display:block}.nav-item{position:relative;display:inline-grid;place-items:center;width:40px;height:36px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);transition:background .15s ease,color .15s ease}.nav-item:hover{background:var(--mist);color:var(--ink)}.nav-item.active{background:var(--signal-soft);color:var(--signal-deep)}.nav-item-icon{display:inline-grid;place-items:center}.nav-item[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translate(-2px);padding:6px 10px;border-radius:6px;background:var(--ink);color:#fff;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.01em;line-height:1.2;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:40;box-shadow:var(--shadow)}.nav-item[data-tooltip]:hover:after,.nav-item[data-tooltip]:focus-visible:after{opacity:1;transform:translateY(-50%) translate(0)}.page-heading{display:flex;flex-direction:column;gap:2px}.page-kicker{margin:0;color:var(--ink-soft);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.page-title{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:700;letter-spacing:-.03em;line-height:1.1}.shell{position:relative;z-index:1;flex:1;min-width:0;min-height:0;width:auto;max-width:none;margin:0;padding:20px 24px 48px;overflow-x:hidden;overflow-y:auto}.topbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.page-topbar{border-bottom:0;padding-bottom:0;margin-bottom:12px}.page-topbar:empty{display:none}.topbar-brand{display:flex;flex-direction:column;gap:10px}.dashboard-topbar{flex-direction:row;align-items:center;justify-content:space-between;width:100%}.dashboard{display:grid;gap:16px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px}.dashboard-card{display:grid;gap:18px;min-height:320px;text-align:left;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.dashboard-card:hover{border-color:color-mix(in srgb,var(--signal) 45%,var(--line));box-shadow:0 8px 24px #0f172a0f}.dashboard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dashboard-card-head h3{margin:0;font-size:1.2rem;font-weight:650;letter-spacing:-.02em}.dashboard-card-sub{margin:6px 0 0;color:var(--ink-soft);font-size:.9rem}.dashboard-card-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.dashboard-card-section{display:grid;gap:8px;min-width:0}.dashboard-section-title{margin:0;font-size:.72rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.dashboard-card-platforms{display:grid;gap:8px}.posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:12px}.post-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.post-card-media{display:block;aspect-ratio:1;background:var(--mist-2)}.post-card-media img{width:100%;height:100%;object-fit:cover}.post-card-body{display:grid;gap:8px;padding:0 12px 12px}.post-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8rem;color:var(--ink-soft)}.post-card-caption{margin:0;font-size:.9rem;line-height:1.4;white-space:pre-wrap;max-height:6.2em;overflow:hidden}.post-card-stats{display:flex;flex-wrap:wrap;gap:10px;font-size:.78rem;color:var(--ink-soft)}.post-card-link{font-size:.82rem;font-weight:600}.dash-platform{display:grid;gap:4px;padding:12px 14px;border-radius:8px;background:var(--mist-2)}.dash-platform.is-unassigned{opacity:.85}.dash-platform-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-platform-name{font-size:.86rem;font-weight:600}.dash-platform-meta{display:flex;justify-content:space-between;gap:10px;font-size:.8rem;color:var(--ink-soft)}@media(max-width:720px){.dashboard-grid,.dashboard-card-sections{grid-template-columns:1fr}}.brand{font-family:var(--font-display);font-size:1.7rem;font-weight:700;letter-spacing:-.03em;line-height:1;margin:0}.brand span{color:var(--signal)}.topbar-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-left:auto}.topbar-action-field{margin:0}.topbar-action-spacer{visibility:hidden;-webkit-user-select:none;user-select:none}.topbar-actions .btn,.topbar-actions select{min-height:38px;padding:8px 12px;line-height:1.25}.company-select{min-width:220px;margin:0}.status-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.status-bar.compact{gap:6px}.housekeeping-stack{display:flex;flex-direction:column;gap:14px}.meta-connection .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.meta-connection-body{display:flex;flex-direction:column;gap:12px}.meta-connection-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 16px}.meta-connection-facts .muted,.platform-id .muted{display:block;font-size:.75rem;color:var(--ink-soft);margin-bottom:2px}.meta-connection-facts strong{font-size:.9rem;font-weight:600}.meta-connection-msg{margin:0;font-size:.85rem;color:var(--ink-soft);line-height:1.4}.bq-usage{display:grid;gap:10px;padding-top:4px;border-top:1px solid var(--line)}.bq-usage-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:baseline}.bq-usage-head h3{margin:0;font-family:var(--font-display);font-size:.95rem;font-weight:700}.bq-usage-bar{height:8px;border-radius:999px;background:var(--mist);overflow:hidden;border:1px solid var(--line)}.bq-usage-fill{height:100%;background:var(--ok);border-radius:inherit;transition:width .2s ease}.bq-usage-fill.warn{background:var(--warn)}.bq-usage-fill.danger{background:var(--danger)}.meta-token-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.meta-token-form .field{flex:1 1 280px;margin:0}.pill{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:.8rem;font-weight:500}.pill.link{cursor:pointer;font:inherit;font-size:.8rem;font-weight:500}.pill.link:hover{border-color:var(--line-strong)}.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--warn)}.pill.ok .dot{background:var(--ok)}.pill.bad .dot{background:var(--danger)}.workspace-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--mist-2)}.workspace-head-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.workspace-head h2{margin:0;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.02em;font-weight:700}.workspace-sub{margin:4px 0 0;color:var(--ink-soft);font-size:.85rem}.platform-tabs{--google: #4285f4;--google-soft: #e8f0fe;--meta: #0866ff;--meta-soft: #e7f0ff;--tiktok: #fe2c55;--tiktok-soft: #ffe8ee;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-bottom:1px solid var(--line)}.posts-platform-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;border:0;border-right:1px solid var(--line);background:var(--mist-2);text-align:left;cursor:pointer}.platform-tab:last-child{border-right:0}.platform-tab:hover:not(.active){background:#fff}.platform-tab.active{background:#fff}.platform-tab.google .platform-tab-label{color:inherit}.platform-tab.google .google-logo{display:inline-flex;letter-spacing:-.02em}.platform-tab.google .g-blue{color:#4285f4}.platform-tab.google .g-red{color:#ea4335}.platform-tab.google .g-yellow{color:#fbbc05}.platform-tab.google .g-green{color:#34a853}.platform-tab.google:hover:not(.active){background:var(--google-soft)}.platform-tab.google.active{background:var(--google-soft);box-shadow:inset 0 -3px 0 var(--google)}.platform-tab.meta .platform-tab-label{color:var(--meta)}.platform-tab.meta:hover:not(.active){background:var(--meta-soft)}.platform-tab.meta.active{background:var(--meta-soft);box-shadow:inset 0 -3px 0 var(--meta)}.platform-tab.tiktok .platform-tab-label{color:var(--tiktok)}.platform-tab.tiktok:hover:not(.active){background:var(--tiktok-soft)}.platform-tab.tiktok.active{background:var(--tiktok-soft);box-shadow:inset 0 -3px 0 var(--tiktok)}.platform-tab-label{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.platform-tab-meta{font-size:.78rem;color:var(--ink-soft);font-family:var(--font-mono)}.platform-body{display:flex;flex-direction:column;gap:14px}.platform-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}.platform-id strong{font-size:.9rem;word-break:break-all}.assign-panel{padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--mist-2)}.sync-banner{margin:0}.sync-history{margin-top:8px}.sync-history h3{margin:0 0 8px;font-family:var(--font-display);font-size:.95rem;font-weight:700}.text-link{border:0;background:none;color:var(--signal);font:inherit;font-weight:600;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--mist-2)}.panel-head h2{margin:0;font-family:var(--font-display);font-size:1rem;letter-spacing:-.02em;font-weight:700}.panel-body{padding:14px}.stack{display:grid;gap:10px}.field{display:grid;gap:4px}.field label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:600}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--mist-2);color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid rgba(234,88,12,.2);border-color:var(--signal);background:#fff}.btn{border:0;border-radius:6px;padding:8px 12px;background:var(--ink);color:#fff;font-weight:600;font-size:.88rem}.btn:hover:not(:disabled){background:#1e293b}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.signal{background:var(--signal);color:#fff}.btn.signal:hover:not(:disabled){background:var(--signal-deep)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover:not(:disabled){background:var(--mist-2);border-color:var(--line-strong)}.btn.danger{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(220,38,38,.25)}.btn.danger:hover:not(:disabled){background:#fee2e2}.btn-row{display:flex;flex-wrap:wrap;gap:6px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:6px;background:#fff}.ads-table{width:100%;min-width:100%}.cell-stack{display:grid;gap:6px;min-width:0}.cell-stack.copy-stack,.cell-stack.region-stack{min-width:0;max-width:15rem}.ads-table th.col-text,.ads-table td.col-text{width:15rem;max-width:15rem;min-width:0;overflow:hidden}.ads-table th.col-reach,.ads-table td.col-reach{width:16rem;min-width:14rem}.col-text .cell-stack{max-width:15rem}.cell-line{display:grid;gap:1px;min-width:0}.cell-k{font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:700}.cell-k[title]{cursor:help;border-bottom:1px dotted var(--line-strong);width:fit-content}.cell-v{min-width:0;overflow:hidden;line-height:1.35;word-break:break-word}.cell-clip{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.truncated-text{display:grid;gap:4px}.truncated-text-body{line-height:1.35}.truncated-text-body.is-clamped{max-height:calc(1.35em * var(--truncate-lines, 3));overflow:hidden}.truncate-tip{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--truncate-lines, 2);overflow:hidden;word-break:break-word;max-width:16rem}.truncate-tip.is-single{display:block;-webkit-line-clamp:unset;-webkit-box-orient:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:14rem}.see-more{justify-self:start;font-size:.78rem}.copy-list{margin:0;padding-left:16px;display:grid;gap:4px}.copy-list li{line-height:1.35}.json-clip{margin:0;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.35;white-space:pre-wrap;word-break:break-word}.chip-list{display:flex;flex-wrap:wrap;gap:4px}.chip{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:var(--mist);border:1px solid var(--line);font-size:.75rem;font-weight:600;line-height:1.4}.stat-rows{display:grid;gap:2px}.stat-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.stat-k{font-weight:700}.stat-v{font-variant-numeric:tabular-nums;color:var(--ink)}.reach-groups{display:grid;gap:10px}.reach-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.reach-group-title{font-size:.78rem;font-weight:700}.mini-stats{width:100%;border-collapse:collapse;font-size:.75rem;font-variant-numeric:tabular-nums}.mini-stats th,.mini-stats td{padding:2px 8px 2px 0;border:0;background:transparent;position:static;text-align:left;font-weight:500;color:var(--ink);text-transform:none;letter-spacing:0}.mini-stats th{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.mini-stats th:not(:first-child),.mini-stats td:not(:first-child){text-align:right;padding-right:0;padding-left:8px}.region-block{padding-bottom:8px;border-bottom:1px dashed var(--line)}.region-block:last-child{padding-bottom:0;border-bottom:0}.region-code{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.region-impressions{display:grid;gap:1px}.region-impressions-value{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1.2;color:var(--ink)}.region-impressions-unit{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.region-dates{margin-top:2px;font-size:.75rem;color:var(--ink-soft)}.media-cell{display:grid;gap:4px;justify-items:start}.media-thumbs{display:flex;flex-wrap:wrap;gap:6px}.media-thumb{display:block;width:72px;height:72px;border-radius:4px;overflow:hidden;border:1px solid var(--line);background:var(--mist)}.media-thumb img,.media-thumb video{width:100%;height:100%;object-fit:cover;display:block}table{width:100%;border-collapse:collapse;font-size:.86rem}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);background:var(--mist-2);position:sticky;top:0;z-index:1;font-weight:700}tbody tr:hover{background:var(--mist-2)}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:.72rem;font-weight:600;background:var(--mist)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.muted{background:var(--mist);color:var(--ink-soft)}.empty,.error,.toast{padding:10px 12px;border-radius:6px;border:1px solid var(--line)}.empty{color:var(--ink-soft);background:var(--mist-2);text-align:left;line-height:1.4;font-size:.9rem}.error,.toast.error{background:var(--danger-soft);border-color:#dc262640;color:var(--danger)}.toast{margin-bottom:10px;font-weight:500;font-size:.9rem}.toast.ok{background:var(--ok-soft);border-color:#15803d40;color:var(--ok)}.candidate{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#fff}.candidate:hover{border-color:var(--line-strong)}.candidate-top{display:flex;justify-content:space-between;gap:10px;align-items:start}.mono{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-soft)}.muted{color:var(--ink-soft)}.surface-list{margin-top:4px;display:grid;gap:8px}.surface-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;color:var(--ink);font-size:.78rem;line-height:1.35}.surface-name{font-weight:600}.surface-range{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.details-popover-trigger{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:3px 8px 3px 6px;border:1px solid var(--line);border-radius:999px;background:var(--mist-2);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:.72rem;font-weight:600}.details-popover-trigger:hover,.details-popover-trigger.is-open{border-color:var(--line-strong);background:#fff;color:var(--ink)}.details-popover-hint{text-transform:uppercase;letter-spacing:.04em}.details-popover-panel{position:fixed;z-index:40;min-width:220px;max-width:280px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 10px 24px #0f172a1f}.details-popover-title{margin-bottom:8px;font-size:.64rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.details-popover-panel .copy-list{margin-top:0}.location-popover-list{max-height:240px;overflow:auto;padding-right:4px}.platform-logos{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.platform-logo{position:relative;display:inline-flex;width:16px;height:16px;line-height:0;cursor:default}.platform-logo svg{display:block}.platform-logo:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%) translateY(2px);padding:6px 10px;border-radius:4px;background:var(--ink);color:#fff;font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.01em;line-height:1.3;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:5}.platform-logo:before{content:"";position:absolute;left:50%;bottom:calc(100% + 2px);transform:translate(-50%);border:4px solid transparent;border-top-color:var(--ink);opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:5}.platform-logo:hover:after,.platform-logo:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.platform-logo:hover:before,.platform-logo:focus-visible:before{opacity:1}.platform-logo:not([data-tooltip]):after,.platform-logo:not([data-tooltip]):before{content:none}.platform-logos-empty{color:var(--ink-soft)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px;align-items:center}.filters label{display:inline-flex;align-items:center;gap:6px;font-size:.86rem;cursor:pointer}.filters input[type=checkbox]{accent-color:var(--signal)}.pager{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}.pager-meta,.pager-page{font-size:.8rem;color:var(--ink-soft)}.pager-page{display:inline-flex;align-items:center;padding:0 4px;font-family:var(--font-mono);font-size:.78rem}.pager-select{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-soft)}.pager-select select{min-width:4.5rem;min-height:34px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:#fff;color:var(--ink);font-family:var(--font-mono);font-size:.78rem}.pager-select select:focus{outline:2px solid rgba(234,88,12,.2);border-color:var(--signal)}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:#0f172a73}.modal{width:min(720px,100%);max-height:min(90vh,900px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 60px #0f172a47}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--mist-2);position:sticky;top:0;z-index:1}.modal-head h2{margin:0;font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.modal-body{padding:16px}.wizard-copy{margin:0;color:var(--ink-soft);font-size:.92rem;line-height:1.45}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--line);margin-top:4px}.stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}.stepper li{display:flex;align-items:center;gap:8px;padding:12px 14px;border-right:1px solid var(--line);color:var(--ink-soft);font-size:.82rem;font-weight:600}.stepper li:last-child{border-right:0}.stepper li.current{color:var(--ink);background:#fff;box-shadow:inset 0 -3px 0 var(--signal)}.stepper li.done{color:var(--ok);background:var(--ok-soft)}.step-index{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--mist);font-family:var(--font-mono);font-size:.72rem}.stepper li.current .step-index{background:var(--signal);color:#fff}.stepper li.done .step-index{background:var(--ok);color:#fff}.btn-with-spinner{display:inline-flex;align-items:center;gap:8px}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.shell.is-busy .panel,.shell.is-busy .modal,.app-frame.is-busy .panel,.app-frame.is-busy .modal{cursor:progress}@media(max-width:720px){.app-body{flex-direction:column}.app-chrome{padding:12px 16px}.chrome-actions{width:100%;margin-left:0}.chrome-actions .company-select{width:min(200px,100%);max-width:200px;flex:0 0 auto}.sidebar{position:relative;width:100%;height:auto;min-height:0;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.sidebar-nav{flex-direction:row;flex:1;justify-content:flex-start}.platform-tabs{grid-template-columns:1fr}.platform-tab{border-right:0;border-bottom:1px solid var(--line)}.platform-tab:last-child{border-bottom:0}.stepper{grid-template-columns:1fr 1fr}.stepper li:nth-child(2){border-right:0}.topbar-actions{width:100%}.company-select{min-width:0}}.clients-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.clients-table{width:100%}.clients-table td{vertical-align:middle}.clients-notes-cell{max-width:16rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-modal{width:min(760px,100%)}.clients-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--mist-2);color:var(--ink);resize:vertical;min-height:72px;font:inherit}.field textarea:focus{outline:2px solid rgba(234,88,12,.2);border-color:var(--signal);background:#fff}.clients-active{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600}.portfolio-picker{display:grid;gap:6px;max-height:240px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--mist-2)}.portfolio-option{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:6px;background:#fff;border:1px solid transparent}.portfolio-option.selected{border-color:color-mix(in srgb,var(--signal) 40%,var(--line));background:var(--signal-soft)}.portfolio-option span{display:grid;gap:2px}.portfolio-option-sub{color:var(--ink-soft);font-size:.78rem}@media(max-width:900px){.clients-editor-grid{grid-template-columns:1fr}}.portfolio-graph-body{display:grid;gap:10px}.network-canvas{position:relative;overflow:hidden;height:340px;border:1px solid var(--line);border-radius:8px;background:var(--mist-2);-webkit-user-select:none;user-select:none}.network-toolbar{position:absolute;z-index:2;top:10px;right:10px;display:flex;gap:8px;align-items:center}.network-search{width:210px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;background:#fff;color:var(--ink);font:inherit;font-size:.82rem}.network-search:focus{outline:2px solid rgba(234,88,12,.2);border-color:var(--signal)}.network-legend{position:absolute;z-index:2;left:10px;bottom:10px;display:flex;flex-wrap:wrap;gap:8px 12px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#ffffffeb;color:var(--ink-soft);font-size:.75rem}.network-legend span{display:inline-flex;align-items:center;gap:6px}.graph-tip{position:absolute;z-index:3;display:grid;gap:2px;min-width:150px;max-width:200px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;pointer-events:none}.graph-tip strong{font-size:.82rem}.graph-tip span{color:var(--ink-soft);font-size:.75rem}.graph-tip-hint{color:var(--ink)!important;font-weight:600}.graph-swatch{display:inline-block;width:11px;height:11px;border-radius:50%;border:1px solid var(--line);background:#fff}.graph-swatch.client{background:var(--signal-soft);border-color:var(--signal)}.graph-swatch.shared{background:var(--signal);border-color:var(--signal)}.portfolio-graph-svg{display:block;touch-action:none}.portfolio-graph-svg text{font-family:var(--font-body)}.graph-link{fill:none;stroke:#94a3b8;stroke-width:1.5}.graph-link.shared{stroke:var(--signal);stroke-width:2.2}.graph-link.dim{opacity:.12}.graph-link.hot{opacity:1}.graph-node{cursor:grab}.graph-node:active{cursor:grabbing}.graph-node circle{fill:#fff;stroke:var(--line-strong);stroke-width:1.6}.graph-node.client circle{fill:var(--signal-soft);stroke:var(--signal)}.graph-node.company.shared circle{fill:var(--signal);stroke:var(--signal-deep)}.graph-node.paused circle{fill:var(--warn-soft);stroke:var(--warn)}.graph-node.dim{opacity:.22}.graph-node.hot{opacity:1}.graph-label-bg{fill:#ffffffeb;stroke:var(--line);stroke-width:1}.graph-node-title{fill:var(--ink);font-size:11px;font-weight:650;pointer-events:none}.graph-node-count{fill:#fff;font-size:11px;font-weight:700;pointer-events:none}.login-screen{display:grid;place-items:center;min-height:100%;padding:24px;background:radial-gradient(1200px 400px at 50% -10%,var(--signal-soft),transparent 60%),var(--mist)}.login-card{width:min(420px,100%);display:grid;gap:16px;padding:28px 26px 24px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 18px 40px #0f172a0f}.login-card p{margin:0;color:var(--ink-soft);font-size:.95rem;line-height:1.45}.login-card form{display:grid;gap:12px}.jobs-page{display:flex;flex-direction:column;gap:14px}.jobs-toolbar{align-items:center}.jobs-company-field{min-width:18rem}.jobs-table td{vertical-align:top}.jobs-module-row th{background:var(--mist-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);text-align:left}.jobs-table tr.is-selected td{background:var(--mist-2)}.jobs-description{max-width:26rem;font-size:.82rem}.jobs-error{max-width:18rem;color:var(--danger);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jobs-note{max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-weight:500}.jobs-page-indicator{align-self:center;font-size:.82rem}.jobs-error-full{color:var(--danger);margin:0}.jobs-error-details{max-height:22rem;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--mist-2);font-size:.75rem;white-space:pre-wrap;word-break:break-word}.finance-page{display:flex;flex-direction:column;gap:14px}.finance-body{display:grid;gap:22px}.finance-registry h3,.finance-years h3{margin:0 0 10px;font-size:.95rem}.finance-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}.finance-dl>div{display:grid;gap:2px}.finance-dl-wide{grid-column:1 / -1}.finance-dl dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.finance-dl dd{margin:0;font-size:.92rem}.finance-table td,.finance-table th{white-space:nowrap}.finance-profit{color:var(--ok)}.finance-loss{color:var(--danger)}.finance-detail-row td{background:var(--mist-2);white-space:normal}.finance-indicators{width:100%;border-collapse:collapse}.finance-indicators th,.finance-indicators td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:.82rem}@media(max-width:800px){.finance-dl{grid-template-columns:1fr}}.local-presence-page{display:flex;flex-direction:column;gap:14px}.local-presence-review{display:grid;gap:12px;padding-top:4px}.local-presence-review h3{margin:0;font-size:.95rem}.local-presence-review p{margin:0;font-size:.9rem;max-width:52rem}.local-presence-type-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.local-presence-type-option{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:var(--mist-2);border-radius:8px;cursor:pointer}.local-presence-type-option input{margin-top:3px}.local-presence-type-samples{display:block;font-size:.82rem;margin-top:2px}.local-presence-body{display:grid;gap:22px}.local-presence-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.local-presence-stat{display:grid;gap:4px;padding:10px 12px;background:var(--mist-2);border-radius:8px}.local-presence-stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.local-presence-pins{margin:0;font-size:.85rem}.local-presence-locations h3{margin:0 0 10px;font-size:.95rem}.local-presence-name{display:grid;gap:2px}.local-presence-address{font-size:.82rem}.local-presence-table tr.is-inactive td{opacity:.65}.local-presence-row-actions{display:flex;gap:4px;justify-content:flex-end}.local-presence-detail-row td{background:var(--mist-2);white-space:normal}.local-presence-detail{display:grid;gap:16px}.local-presence-detail-section h4{margin:0 0 8px;font-size:.85rem}.local-presence-reviews{list-style:none;margin:0;padding:0;display:grid;gap:10px}.local-presence-reviews li{padding:10px 12px;background:var(--panel, #fff);border-radius:8px;border:1px solid var(--line)}.local-presence-review-head{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:6px;font-size:.85rem}.local-presence-reviews p{margin:0;font-size:.9rem;white-space:pre-wrap}.website-page,.news-page,.reddit-page{display:flex;flex-direction:column;gap:14px}.website-body,.news-body,.reddit-body{display:grid;gap:22px}.website-body h3,.news-body h3,.reddit-body h3{margin:0 0 10px;font-size:.95rem}.website-kpi-grid,.news-kpi-grid,.reddit-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(min-width:900px){.website-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.news-kpi-grid,.reddit-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.website-kpi,.news-kpi,.reddit-kpi{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--mist-2)}.website-kpi-label,.news-kpi-label,.reddit-kpi-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.website-kpi-value,.news-kpi-value,.reddit-kpi-value{font-size:1.05rem;font-weight:600}.website-score{font-weight:700;font-variant-numeric:tabular-nums}.website-score.is-good{color:var(--ok)}.website-score.is-mid{color:#b07a00}.website-score.is-bad{color:var(--danger)}.website-url-list{margin:0;padding-left:18px;display:grid;gap:4px}.website-url,.website-title,.news-title,.reddit-text{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.website-inventory-note{margin:0 0 8px}.reddit-text{max-width:280px;color:var(--ink-soft);font-size:.9rem}.reddit-threads-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.reddit-threads-head h3{margin:0}.reddit-subreddit-filter{display:inline-flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:.85rem}.reddit-subreddit-filter input{min-width:160px;max-width:240px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel, #fff);color:inherit;font:inherit}.website-table td,.website-table th,.news-table td,.news-table th,.reddit-table td,.reddit-table th{white-space:nowrap}.news-keyword-list{display:flex;flex-wrap:wrap;gap:6px}.news-keyword{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--mist-2);border:1px solid var(--line);font-size:.82rem}
