:root{--accent: #1a56db;--accent-hover: #1547b8;--text: #1f2937;--text-muted: #6b7280;--bg: #f6f7f9;--surface: #ffffff;--border: #e5e7eb;--error: #b91c1c;--error-bg: #fef2f2;--error-border: #fecaca}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.5}h1,h2{margin:0 0 .5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:24rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:2rem;box-shadow:0 10px 30px #0f172a14}.login-head{text-align:center;margin-bottom:1.75rem}.login-head h1{font-size:1.5rem;letter-spacing:-.01em}.login-head p{margin:.25rem 0 0;color:var(--text-muted);font-size:.875rem}.login-form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.375rem}.field label{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.field input{width:100%;padding:.55rem .75rem;font-size:.9375rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.5rem;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1a56db26}.form-error{margin:0;padding:.5rem .75rem;font-size:.8125rem;color:var(--error);background:var(--error-bg);border:1px solid var(--error-border);border-radius:.5rem}.login-form button,.logout-btn{font:inherit;cursor:pointer;border:none;border-radius:.5rem;transition:background-color .15s}.login-form button{margin-top:.5rem;padding:.65rem 1rem;font-size:.9375rem;font-weight:600;color:#fff;background:var(--accent)}.login-form button:hover:not(:disabled){background:var(--accent-hover)}.login-form button:disabled{opacity:.6;cursor:not-allowed}.auth-loading{padding:3rem;text-align:center;color:var(--text-muted)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topnav{background:var(--surface);border-bottom:1px solid var(--border)}.topnav-inner{max-width:72rem;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;gap:2rem}.brand{font-weight:700;font-size:.9375rem;color:var(--accent);white-space:nowrap}.nav-links{display:flex;gap:.25rem;flex:1}.nav-links a{padding:.4rem .75rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:color .15s,background-color .15s}.nav-links a:hover{color:var(--text);background:var(--bg)}.nav-links a.active{color:var(--accent);background:#1a56db14}.logout-btn{padding:.4rem .9rem;font-size:.8125rem;font-weight:500;color:var(--text);background:transparent;border:1px solid var(--border)}.logout-btn:hover{background:var(--bg)}.content{flex:1;width:100%;max-width:72rem;margin:0 auto;padding:2rem 1.5rem}.page-intro{max-width:44rem;color:var(--text-muted)}.banner{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin:1.25rem 0;padding:.75rem 1rem;font-size:.875rem;border-radius:.5rem;border:1px solid}.banner-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.banner-error{color:var(--error);background:var(--error-bg);border-color:var(--error-border)}.banner-dismiss{font:inherit;font-size:1.125rem;line-height:1;padding:0 .25rem;color:inherit;background:transparent;border:none;cursor:pointer;opacity:.7}.banner-dismiss:hover{opacity:1}.channels-loading{margin-top:1.5rem;color:var(--text-muted)}.channel-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1.25rem;align-items:start}.channel-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0f172a0f;display:flex;flex-direction:column;gap:.875rem}.channel-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.channel-card h3{margin:0;font-size:1.0625rem}.channel-purpose{margin:.125rem 0 0;font-size:.8125rem;color:var(--text-muted)}.status-badge{flex-shrink:0;padding:.2rem .6rem;font-size:.75rem;font-weight:600;border-radius:999px;white-space:nowrap}.status-connected{color:#166534;background:#dcfce7}.status-pending{color:#854d0e;background:#fef9c3}.status-error{color:var(--error);background:#fee2e2}.status-disconnected{color:var(--text-muted);background:#f3f4f6}.channel-account{margin:0;font-size:.875rem}.channel-account-id{color:var(--text-muted);font-size:.8125rem}.btn-primary,.btn-secondary,.btn-copy{font:inherit;cursor:pointer;border-radius:.5rem;transition:background-color .15s}.btn-primary{padding:.55rem 1rem;font-size:.875rem;font-weight:600;color:#fff;background:var(--accent);border:none}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{padding:.55rem 1rem;font-size:.875rem;font-weight:500;color:var(--text);background:transparent;border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.setup-panel{padding:.875rem 1rem;font-size:.8125rem;background:var(--bg);border:1px solid var(--border);border-radius:.5rem}.setup-panel h4{margin:0 0 .375rem;font-size:.875rem}.setup-panel p{margin:0 0 .5rem}.setup-secrets{margin:0 0 .75rem;padding-left:1.25rem}.setup-secrets code,.setup-redirect code{font-size:.75rem;background:#eef2f7;padding:.1rem .35rem;border-radius:.25rem;word-break:break-all}.setup-steps{margin:0 0 .75rem;padding-left:1.25rem;display:flex;flex-direction:column;gap:.375rem}.setup-redirect-label{font-weight:600}.setup-redirect{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.btn-copy{flex-shrink:0;padding:.3rem .7rem;font-size:.75rem;font-weight:500;color:var(--text);background:var(--surface);border:1px solid var(--border)}.btn-copy:hover{background:#eef2f7}.campaigns-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.btn-link{display:inline-block;text-decoration:none;text-align:center}.campaigns-empty{margin-top:2rem;padding:2.5rem 1.5rem;text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:1rem}.campaign-list{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.campaign-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0f172a0f;display:flex;flex-direction:column;gap:.625rem}.campaign-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.campaign-card h3{margin:0;font-size:1.0625rem}.campaign-subline{margin:.125rem 0 0;font-size:.8125rem;color:var(--text-muted)}.status-campaign-draft{color:var(--text-muted);background:#f3f4f6}.status-campaign-paused_created{color:#854d0e;background:#fef9c3}.status-campaign-error{color:var(--error);background:#fee2e2}.campaign-paused-hint{margin:0;font-size:.8125rem;color:#854d0e}.campaign-meta-ids{margin:0;font-size:.75rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.375rem 1rem}.campaign-meta-ids code{font-size:.6875rem;background:#eef2f7;padding:.1rem .35rem;border-radius:.25rem;word-break:break-all}.dashboard-section-title{margin:1.75rem 0 .125rem;font-size:1rem}.dashboard-section-hint{margin:0 0 .75rem;font-size:.8125rem;color:var(--text-muted)}.paid-status{display:block;font-size:.6875rem;color:var(--text-muted)}.draft-label{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:var(--text-muted)}.draft-label em{color:#854d0e;font-style:normal;font-weight:600}.draft-textarea{width:100%;padding:.55rem .75rem;font:inherit;font-size:.875rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.5rem;outline:none;resize:vertical}.draft-textarea:focus{border-color:var(--accent, #2563eb)}.draft-reset{align-self:flex-start;background:none;border:none;padding:0;font-size:.75rem;color:var(--text-muted);text-decoration:underline;cursor:pointer}.campaign-title-link{color:inherit;text-decoration:none}.campaign-title-link:hover{text-decoration:underline}.campaign-detail-link{margin:0;font-size:.8125rem}.campaign-backlink{margin:0 0 .75rem;font-size:.8125rem}.campaign-detail-block{margin-top:1.25rem}.campaign-detail-block h3{margin:0;font-size:.9375rem}.campaign-ad-text{margin:0;font-size:.9375rem;white-space:pre-wrap}.campaign-metrics{margin:.25rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.75rem}.campaign-metrics div{background:#f8fafc;border:1px solid var(--border);border-radius:.5rem;padding:.625rem .75rem}.campaign-metrics dt{font-size:.6875rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.campaign-metrics dd{margin:.125rem 0 0;font-size:1.125rem;font-weight:600;font-variant-numeric:tabular-nums}.wizard-form{margin-top:1.5rem;max-width:36rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0f172a0f;display:flex;flex-direction:column;gap:1.125rem}.wizard-form .field textarea,.wizard-form .field select{width:100%;padding:.55rem .75rem;font:inherit;font-size:.9375rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.5rem;outline:none;transition:border-color .15s,box-shadow .15s}.wizard-form .field textarea{resize:vertical}.wizard-form .field textarea:focus,.wizard-form .field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1a56db26}.wizard-form .field select:disabled{color:var(--text-muted);background:var(--bg);cursor:not-allowed}.wizard-fieldset{margin:0;padding:1rem;border:1px solid var(--border);border-radius:.5rem;display:flex;flex-direction:column;gap:.875rem}.wizard-fieldset legend{padding:0 .375rem;font-size:.8125rem;font-weight:600;color:var(--text-muted)}.wizard-age-row{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}.field-hint{margin:0;font-size:.75rem;color:var(--text-muted)}.field-error{margin:0;font-size:.75rem;color:var(--error)}.image-preview{display:flex;flex-direction:column;gap:.5rem}.image-preview img{max-width:100%;max-height:16rem;object-fit:contain;border:1px solid var(--border);border-radius:.5rem;background:var(--bg)}.wizard-submit-error p{margin:0 0 .375rem}.wizard-submit-error p:last-child{margin-bottom:0}.wizard-submit-error a{color:inherit;font-weight:600}.wizard-actions,.topnav-right{display:flex;align-items:center;gap:.75rem}.workspace-switcher{padding:.35rem .6rem;font-size:.875rem;border:1px solid var(--border, #d1d5db);border-radius:6px;background:#fff;max-width:220px}.status-conn-connected{color:#166534;background:#dcfce7}.status-conn-expired{color:#854d0e;background:#fef9c3}.status-conn-error{color:var(--error);background:#fee2e2}.status-conn-none{color:var(--text-muted);background:#f3f4f6}.channel-scopes{margin:0;font-size:.8125rem;color:var(--text-muted);overflow-wrap:anywhere}.channel-actions{margin:.25rem 0}.setup-panel summary{cursor:pointer;font-weight:600;font-size:.875rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin:1rem 0 1.25rem}.kpi-tile{display:flex;flex-direction:column;gap:.25rem;padding:.9rem 1rem;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:10px}.kpi-label{font-size:.8125rem;color:var(--text-muted)}.kpi-value{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.75rem;margin-bottom:1.25rem}.metric-chart{margin:0;padding:.9rem 1rem;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:10px}.metric-chart figcaption{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;font-size:.9375rem;margin-bottom:.5rem}.metric-chart-total{font-weight:400;font-size:.8125rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.metric-chart svg{display:block;width:100%;height:auto}.metric-chart-empty{margin:.5rem 0;font-size:.875rem;color:var(--text-muted)}.chart-grid line.chart-grid,line.chart-grid{stroke:#eceef1;stroke-width:1}.chart-axis{font-size:10px;fill:#8a8f98}.chart-direct-label{font-size:11px;font-weight:600;fill:#374151}.chart-crosshair{stroke:#c6cbd3;stroke-width:1;stroke-dasharray:3 3}.chart-tooltip-box{fill:#fff;stroke:#d6dae0}.chart-tooltip-date{font-size:10px;fill:#8a8f98}.chart-tooltip-value{font-size:12px;font-weight:600;fill:#111827}.top-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.75rem}.top-table{padding:.9rem 1rem;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:10px}.top-table h3{margin:0 0 .5rem;font-size:.9375rem}.top-table table{width:100%;border-collapse:collapse;font-size:.875rem}.top-table th{text-align:left;font-weight:600;color:var(--text-muted);font-size:.8125rem;padding:.3rem .4rem;border-bottom:1px solid var(--border, #e5e7eb)}.top-table td{padding:.35rem .4rem;border-bottom:1px solid #f1f3f5}.top-table .num{text-align:right;font-variant-numeric:tabular-nums}.top-table-label{overflow-wrap:anywhere}.dashboard-footnote{margin-top:1.25rem;font-size:.8125rem;color:var(--text-muted)}.dashboard-section{margin:1.5rem 0 .75rem;font-size:1.0625rem}.channel-tabs{display:flex;gap:.5rem;margin:.25rem 0 1.25rem}.channel-tab{padding:.45rem 1rem;font-size:.9375rem;font-weight:600;border:1px solid var(--border, #d1d5db);border-radius:999px;background:#fff;color:var(--text-muted);cursor:pointer}.channel-tab:hover{color:#111827}.channel-tab-active{background:#111827;border-color:#111827;color:#fff}.channel-tab-active:hover{color:#fff}.engagement-list{display:flex;flex-direction:column;gap:.75rem}.engagement-card{display:flex;gap:1rem;padding:.9rem 1rem;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:10px}.engagement-thumb{width:96px;height:96px;object-fit:cover;border-radius:8px;flex-shrink:0}.engagement-body{min-width:0;display:flex;flex-direction:column;gap:.4rem}.engagement-head{margin:0;display:flex;gap:.6rem;align-items:baseline}.engagement-date{font-size:.8125rem;color:var(--text-muted)}.engagement-caption{margin:0;font-size:.875rem;color:var(--text-muted);overflow-wrap:anywhere}.engagement-draft{margin:0;font-size:.9375rem;background:#f0f7f2;border-radius:8px;padding:.5rem .7rem}.engagement-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.2rem}.content-card{flex-direction:column}.content-images{display:flex;gap:.5rem}.content-thumb{width:108px;height:135px;object-fit:cover;border-radius:8px;flex-shrink:0}.content-caption{white-space:pre-line}
