:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#20272d;background:#fff;font-size:16px;line-height:1.5;letter-spacing:0;--ink:#20272d;--muted:#66717b;--line:#e5e8eb;--blue:#0677ba;--green:#148359;--red:#bc4355;--amber:#b67a12;--surface:#f7f9fa}*{box-sizing:border-box}body{margin:0}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit;letter-spacing:0}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 13px;border:1px solid #d9dfe3;border-radius:6px;background:#fff;color:#35424c;font-weight:550;font-size:15.5px;cursor:pointer;transition:background .14s,border-color .14s;white-space:normal;text-align:center}button:hover,.button:hover{background:#f3f7f9;border-color:#b7c5d0}button:disabled{opacity:.42;cursor:not-allowed}button.primary,.button.primary{color:#fff;background:var(--blue);border-color:var(--blue)}button.primary:hover,.button.primary:hover{background:#0b73b0}button.text-button{border-color:transparent;background:transparent;color:var(--blue);padding:6px 2px}button.icon-button{padding:8px;width:36px;height:36px;min-width:36px;min-height:36px;border-color:transparent;background:transparent}button.icon-button:hover{background:#edf2f6}svg{width:18px;height:18px;stroke-width:1.7;flex-shrink:0}button svg{width:16px;height:16px}input,select,textarea{border:1px solid #d8dfe5;border-radius:6px;padding:10px 12px;width:100%;background:#fff;color:var(--ink);min-height:41px;min-width:0;outline:none}
/* A checkbox is not a text field. The rule above made every bare one 100% wide and 41px tall --
   the delete checkboxes in the Ads table filled the title cell and hid the title (2026-10-01).
   Placed first so .switch and .check-line, which style their own, still win. */
input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:16px;min-width:16px;padding:0;flex-shrink:0;accent-color:var(--blue);cursor:pointer}textarea{resize:vertical;line-height:1.6}input::placeholder,textarea::placeholder{color:#747e87}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e6f3fc}:focus-visible{outline:2px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:27px;font-weight:650;line-height:1.25}h2{font-size:18px;font-weight:600;line-height:1.5}h3{font-size:17px;font-weight:600}p{line-height:1.65}.muted{color:var(--muted)}.overline{font-size:13.5px;color:var(--muted)}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a2aab0;flex-shrink:0}.dot.green{background:#24a375}.dot.amber{background:#e1a649}.dot.red{background:#d06470}.connection-label,.session-label{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:4px;padding:3px 8px;font-size:13.5px;color:#81611d;background:#fbf2dc;font-weight:550;white-space:nowrap}.badge.active,.badge.success{color:#187f57;background:#eaf7f0}.badge.stopped,.badge.neutral{color:#65717c;background:#f0f3f5}.badge.declined,.badge.error{color:#a94451;background:#fcedef}.badge.other{color:#53738e;background:#edf3f9}#sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#f7f9fa;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}#sidebar{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}#sidebar::-webkit-scrollbar{display:none}#sidebar>*{flex-shrink:0}.brand{height:76px;display:flex;align-items:center;padding:0 22px;gap:11px;color:#1d252c;font-weight:650;font-size:18px}.brand img{flex-shrink:0}.brand span{white-space:nowrap}nav{padding:16px 12px;display:grid;gap:5px}nav a{display:flex;align-items:center;gap:12px;color:#5c6974;padding:11px 14px;border-radius:6px;font-size:15.5px;font-weight:500}nav a:hover{background:#edf1f4}.nav-sub{display:none;gap:1px;margin:1px 0 4px 23px;padding-left:10px;border-left:1px solid var(--line)}.nav-sub a{padding:7px 10px;font-size:14.5px;font-weight:400}nav a.active{background:#e4f0f9;color:#087cbf}nav a svg{width:19px;height:19px}.sidebar-bottom{margin:auto 18px 24px;padding-top:18px;border-top:1px solid #dfe5e9;display:flex;align-items:center;gap:10px;font-size:14.5px;color:#606c76}.sidebar-bottom small{display:block;color:#8b969f;font-size:13.5px}.sidebar-bottom>.dot{margin-left:auto}.workspace{margin-left:248px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:66px;display:flex;align-items:center;gap:18px;padding:0 32px;border-bottom:1px solid var(--line);background:#fff}.breadcrumb{display:flex;align-items:center;gap:13px;font-size:14.5px;color:#89929b;flex:1}.breadcrumb strong{font-weight:500;color:#394650}.topbar .connection-label{font-size:14.5px;color:#4c5d69}main{padding:30px 36px 32px;max-width:1580px;width:100%;margin:0 auto;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.page-heading p{font-size:15.5px;color:var(--muted);margin-top:6px}.account-strip{display:flex;align-items:center;gap:16px;border-block:1px solid var(--line);padding:17px 0;font-size:14.5px;flex-wrap:wrap}.account-strip select{max-width:230px;min-height:37px;padding:8px 11px;font-size:14.5px}.account-strip>.text-button{margin-left:auto;font-size:14.5px}.strip-divider{height:26px;width:1px;background:var(--line);margin:0 7px}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:25px 0 26px;border-bottom:1px solid var(--line)}.metrics>div{padding:0 24px;border-right:1px solid var(--line)}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border:0}.metrics>div>span{font-size:14.5px;display:flex;align-items:center;gap:8px;color:#65717b}.metrics strong{display:block;font-size:31px;line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums;margin-top:6px}.metrics small{font-size:12.5px;color:#5f6a74}.table-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--line);margin-top:18px}.tabs{display:flex;gap:18px;overflow:auto;scrollbar-width:thin;min-width:0}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:14px 0 16px;color:#7a858e;background:none;font-size:14.5px;white-space:nowrap}.tabs button[aria-selected=true]{border-bottom-color:var(--blue);color:var(--blue);font-weight:600}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:0 10px;color:#8d98a2;max-width:230px;background:#fff}.search input{border:0;box-shadow:none;padding:8px 0;font-size:14.5px;min-height:35px}.search svg{width:15px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:13.5px;font-weight:500;color:#5f6a74;padding:14px 16px;background:#fafbfc;border-bottom:1px solid var(--line);white-space:nowrap}th:first-child,td:first-child{padding-left:0;background-clip:padding-box}
/* Sortable headers: a button so it is keyboard reachable, styled as the header text it
   replaces, with the direction shown only on the active column. */
th .sort{display:inline-flex;align-items:center;gap:4px;min-height:0;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;white-space:nowrap}
th .sort:hover{color:var(--blue);background:none;border:0}
th .sort::after{content:"\2195";font-size:12.5px;opacity:.45}
th .sort[aria-sort=ascending]::after{content:"\2191";opacity:1;color:var(--blue)}
th .sort[aria-sort=descending]::after{content:"\2193";opacity:1;color:var(--blue)}
th .sort[aria-sort=ascending],th .sort[aria-sort=descending]{color:var(--blue)}td{border-bottom:1px solid #edf0f2;padding:15px 16px;font-size:14.5px;font-variant-numeric:tabular-nums}td:first-child{min-width:220px;max-width:420px}.ad-title{display:block;max-width:430px;color:#34434d;font-weight:550;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ad-subtitle{display:block;color:#5f6a74;font-size:12.5px;margin-top:4px}td:nth-child(n+3){white-space:nowrap}tbody tr:hover{background:#fafcfd}.empty{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:237px;gap:14px;color:#737f89;text-align:center}.empty>svg{width:40px;height:40px;stroke-width:1.2;color:#a2aeb7}.empty h2{font-size:17px;color:#4b5a66}.empty button{font-size:14.5px;margin-top:3px}.table-footer{min-height:48px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:13.5px;color:#8c959e}.table-footer .icon-button{height:28px;min-height:28px;width:28px;min-width:28px}.startup-halted{margin:8px 0 6px;padding-left:18px;display:grid;gap:5px}
.startup-halted li{font-size:14.5px}
.startup-halted .badge{margin-left:4px}
#startup-check small{display:block;margin-top:6px;font-size:13.5px}
.snapshot-note{font-size:13.5px;color:#99742f;background:#fffbf1;padding:8px 12px;border-left:2px solid #e8c478;margin-top:5px}.overview-bottom{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.overview-bottom>section+section{border-left:1px solid var(--line);padding-left:30px}.overview-bottom h2{font-size:16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-heading a{display:flex;gap:4px;align-items:center;font-size:13.5px}.section-heading a svg{width:13px}.bot-actions{display:flex;gap:14px;margin:18px 0 14px}.bot-actions button{border:0;padding:5px 0;min-height:28px;background:none;color:#4c6474}.bot-actions button:first-child{color:var(--green)}.bot-actions button:nth-child(2){color:var(--red)}#bot-detail{font-size:13.5px}.activity-item{display:flex;align-items:start;gap:11px;padding:12px 0;border-bottom:1px solid #f0f3f5}.activity-item>svg{width:15px;height:15px;color:#85a595;margin-top:2px}.activity-item p{font-size:14.5px;overflow-wrap:anywhere}.activity-item small{font-size:12.5px;color:#98a1a9}.activity-item time{margin-left:auto;white-space:nowrap;font-size:12.5px;color:#5f6a74}.activity-item .event-message{color:#7b8790;font-size:13.5px;margin-top:4px}.activity-list .activity-item:last-child{border:0}footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 36px;border-top:1px solid var(--line);color:#5f6a74;font-size:12.5px}footer>span:first-child{display:flex;gap:7px;align-items:center}footer svg{width:13px;height:13px}.footer-separator{font-weight:400;margin:0 10px}.progress{display:flex;align-items:center;gap:10px;color:#0b749f;background:#edf8fc;padding:10px 36px;font-size:14.5px;position:sticky;top:0;z-index:15}
#notice{position:sticky;top:0;z-index:15}
.progress+#notice{top:38px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notice{margin:18px 36px 0;padding:12px 16px;background:#fff3f3;border:1px solid #f1d3d9;border-radius:6px;color:#9c3d4c;font-size:15.5px;overflow-wrap:anywhere;display:flex;align-items:center;gap:12px}.notice span{flex:1}.notice a{white-space:nowrap}.notice.info{background:#eff8fd;color:#32627e;border-color:#d4e8f3;margin:16px 0}.steps{display:flex;gap:28px;list-style:none;padding:0 0 22px;margin:0 0 26px;border-bottom:1px solid var(--line)}.steps li{display:flex;align-items:center;gap:9px;color:#5f6a74;font-size:14.5px}.steps li>span{border:1px solid #dee4e8;border-radius:50%;height:23px;width:23px;display:flex;align-items:center;justify-content:center;font-size:13.5px}.steps li.current{color:var(--blue)}.steps li.current>span{background:var(--blue);border-color:var(--blue);color:white}.create-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:42px}.form-section{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.form-section h2{margin-bottom:18px}.section-heading h2{margin-bottom:0}.field{margin-bottom:17px}.field:last-child{margin-bottom:0}.field label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;font-size:14.5px;font-weight:500}.field label>span{font-size:13.5px;color:#94a0aa;font-weight:400}.input-action{display:flex;gap:10px}.input-action input{flex:1}.input-action button{white-space:nowrap}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.field-grid .field{margin-bottom:18px}.form-actions{display:flex;justify-content:space-between;gap:12px;padding-bottom:24px}.verified-line{display:flex;align-items:center;gap:8px;color:var(--green);font-size:13.5px;margin-bottom:22px;flex-wrap:wrap}.verified-line svg{width:17px}.verified-line .badge{margin-left:auto}.inline-empty{min-height:210px;display:flex;flex-direction:column;gap:10px;justify-content:center;align-items:center;text-align:center;color:#73808c}.inline-empty svg{width:32px;height:32px;color:#a1aeb8}.inline-empty p{font-size:14.5px}.preview-rail{border-left:1px solid var(--line);padding-left:27px;min-width:0;align-self:start;position:sticky;top:22px;max-height:calc(100vh - 44px);overflow:auto;scrollbar-width:thin}.preview-rail h2{font-size:15.5px}.telegram-preview{border:1px solid #d8e2e8;background:#e7f1f3;border-radius:8px;padding:0 14px 28px;overflow:hidden}.telegram-channel{display:flex;align-items:center;gap:9px;margin:0 -14px 28px;padding:14px;background:#fff}.telegram-channel strong{font-size:14.5px;display:block;overflow-wrap:anywhere}.telegram-channel small{font-size:12.5px;color:#91a0aa}.telegram-message{background:white;border-radius:7px 7px 7px 0;padding:13px 12px 0;box-shadow:0 1px 2px #ccdadd}.telegram-message>strong{font-size:14.5px;color:#2484b4;overflow-wrap:anywhere}.telegram-message p{font-size:15.5px;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere;min-height:65px;line-height:1.55}.sponsored-label{text-align:right;font-size:12px;color:#93a4ad;margin-top:9px}.telegram-cta{border-top:1px solid #edf1f3;text-align:center;padding:10px 0;color:#2096ce;font-size:13.5px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:9px}.telegram-cta svg{width:13px}.preview-facts{margin:22px 0;font-size:13.5px}.preview-facts>div,dialog dl>div{display:flex;justify-content:space-between;gap:16px;margin:13px 0}.preview-facts dt,dialog dt{color:#5f6a74}.preview-facts dd,dialog dd{margin:0;text-align:right;overflow-wrap:anywhere}.delivery-note{display:flex;gap:8px;align-items:center;font-size:13.5px;color:#7a8490;flex-wrap:wrap}.delivery-note svg{width:14px}.delivery-note span{margin-left:auto;color:#a18a62;font-size:12.5px}.result-panel{border-left:3px solid var(--green);background:#f2faf6;padding:18px;font-size:15.5px;margin-top:16px;overflow-wrap:anywhere}.result-panel h2{margin-bottom:8px}.result-panel button,.result-panel a.button{margin-top:12px}#form-check-result{font-size:14.5px;padding-top:18px;border-top:1px solid var(--line)}#form-check-result a{display:flex;gap:5px;align-items:center;margin:10px 0}#form-check-result button{width:100%;margin-top:10px}.session-band{display:flex;justify-content:space-between;align-items:center;gap:20px;border-block:1px solid var(--line);padding:24px 0;margin-bottom:30px}.session-band h2{margin:10px 0 5px}.session-band p{font-size:13.5px}.account-row{display:flex;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.account-avatar{height:44px;width:44px;min-width:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e5f2f9;color:#2c91bb;font-size:18px;font-weight:600}.account-row:nth-child(3n+2) .account-avatar{background:#edf4ea;color:#6c9662}.account-row:nth-child(3n) .account-avatar{background:#fff1ec;color:#c9846e}.account-row h3{font-size:16px;overflow-wrap:anywhere}.account-row p{font-size:13.5px;color:#5f6a74}.account-row button,.account-row>.badge{margin-left:auto}.profile-settings{display:grid;grid-template-columns:220px 1fr;gap:30px;padding:20px 0 26px;border-block:1px solid var(--line)}.profile-settings p{font-size:14.5px;margin-top:7px}.templates-section{padding-top:30px}.templates-section p{font-size:14.5px;margin-top:6px}.templates-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.template-card{padding:18px;border:1px solid var(--line);border-radius:7px}.template-card .section-heading{margin-bottom:15px}.template-card h3{font-size:14.5px}
/* The template's name is its heading, and editable in place: a heading until it is touched, then a
   field. The border appears on hover and focus so the page does not look like a form of names. */
.template-card .template-name{flex:1;min-width:0;min-height:30px;padding:4px 8px;margin-left:-8px;font-size:14.5px;font-weight:650;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:5px}
.template-card .template-name:hover{border-color:var(--line)}
.template-card .template-name:focus{border-color:var(--blue);background:var(--surface);outline:none}
.template-card .template-name::placeholder{color:var(--ink);opacity:.85}.template-card textarea{font-size:14.5px;min-height:115px}.template-card>small{display:block;font-size:12.5px;color:#929ca5;margin-top:8px}.switch{position:relative;display:flex;align-items:center;gap:7px;font-size:13.5px;color:#77838e;cursor:pointer}.switch input{appearance:none;min-height:18px;height:18px;min-width:32px;width:32px;border:0;border-radius:12px;padding:0;background:#ccd4da;cursor:pointer}.switch input:checked{background:var(--blue)}.switch input:before{content:"";display:block;background:#fff;border-radius:50%;width:12px;height:12px;margin:3px;transition:transform .15s}.switch input:checked:before{transform:translateX(14px)}.activity-toolbar{display:flex;gap:12px;margin-bottom:18px}.activity-toolbar select{max-width:150px;font-size:14.5px;min-height:36px}.full-activity .activity-item{padding:18px 0}.full-activity .activity-item>div{flex:1;min-width:0}.log-details{margin-top:36px;border-top:1px solid var(--line);padding-top:16px;font-size:15.5px}.log-details summary{cursor:pointer;margin-bottom:16px}.log-details pre{font-size:13.5px;background:#f6f8f9;border:1px solid var(--line);border-radius:6px;padding:16px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:340px;overflow:auto}dialog{max-width:500px;width:calc(100% - 32px);padding:26px;border:1px solid #dae1e6;border-radius:8px;box-shadow:0 20px 80px #23394c30;color:var(--ink);background:#fff}dialog::backdrop{background:#1b2a3a60}dialog p{font-size:15.5px;color:#72818b}dialog dl{border-block:1px solid var(--line);padding:9px 0;font-size:14.5px}.check-line{display:flex;gap:10px;align-items:start;font-size:14.5px;margin:18px 0;line-height:1.6}.check-line input{width:16px;height:16px;min-height:16px;flex-shrink:0;accent-color:var(--blue);margin:2px 0 0}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);padding:12px 18px;background:#243a45;color:#fff;border-radius:6px;box-shadow:0 6px 20px #21344420;max-width:calc(100% - 36px);z-index:100;font-size:15.5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-only{display:none!important}.skip-link{position:fixed;top:-100px;left:12px;z-index:100;padding:10px;background:white}.skip-link:focus{top:12px}
@media(min-width:1500px){main{padding:34px 44px}.topbar{padding-inline:44px}.empty{min-height:300px}}
@media(max-width:1150px){#sidebar{width:222px}.brand{padding:0 15px;font-size:16px}.brand img{width:28px;height:28px}nav{padding:14px 8px}nav a{gap:8px;padding:10px;font-size:14.5px}.workspace{margin-left:222px}main{padding:26px}.topbar{padding:0 26px}.metrics>div{padding:0 13px}.table-toolbar{align-items:start;flex-wrap:wrap;padding-bottom:9px}.table-toolbar>.actions{margin-left:auto}.create-layout{grid-template-columns:minmax(0,1fr) 270px;gap:24px}.preview-rail{padding-left:20px}.templates-grid{grid-template-columns:1fr 1fr}.account-strip{gap:11px}.account-strip select{max-width:185px}.strip-divider{display:none}.profile-settings{grid-template-columns:180px 1fr}.input-action{flex-wrap:wrap}.input-action input{flex-basis:100%}}
@media(max-width:800px){#sidebar{transform:translateX(-100%);width:248px;box-shadow:10px 0 35px #213a4b20;transition:transform .2s}.nav-open #sidebar{transform:none}.workspace{margin-left:0}.mobile-only{display:inline-flex!important}.topbar{padding:0 18px;height:58px;gap:12px}.breadcrumb{font-size:13.5px}.topbar .connection-label{font-size:13.5px}main{padding:24px 20px}.page-heading{align-items:start}.page-heading h1{font-size:25px}.page-heading p{font-size:14.5px}.account-strip select{max-width:none;flex:1;min-width:165px}.account-strip>.text-button{margin-left:0}.metrics>div{padding:0 10px}.metrics strong{font-size:27px}.metrics small{font-size:12px}.metrics>div>span{font-size:13.5px}.tabs{gap:18px}.create-layout{grid-template-columns:minmax(0,1fr) 255px;gap:25px}.preview-rail{padding-left:18px}.profile-settings{grid-template-columns:1fr;gap:20px}.session-band{align-items:start;flex-direction:column}.progress{padding:10px 20px}.notice{margin:14px 20px 0}footer{padding:14px 20px}}
@media(max-width:620px){.page-heading{flex-wrap:wrap;margin-bottom:22px}.page-heading .actions{width:100%}.page-heading .actions .primary{margin-left:auto}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 0}.metrics>div{padding:0 16px!important}.metrics>div:first-child,.metrics>div:nth-child(4){padding-left:0!important}.metrics>div:nth-child(3){border:0}.metrics>div:nth-child(4){grid-column:1}.metrics small{font-size:12.5px}.metrics>div>span{font-size:13.5px}.table-toolbar{gap:5px}.tabs{width:100%}.table-toolbar>.actions{margin:5px 0;width:100%}.search{max-width:none;flex:1}.overview-bottom{grid-template-columns:1fr;gap:24px}.overview-bottom>section+section{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.create-layout{display:flex;flex-direction:column}.preview-rail{border-left:0;border-top:1px solid var(--line);padding:22px 0 0;max-width:380px;width:100%;align-self:center;position:static;max-height:none}.steps{gap:12px;justify-content:space-between}.steps li{font-size:12.5px;gap:6px;flex-direction:column;text-align:center}.steps li>span{width:24px;height:24px}.field-grid{gap:0 14px}.templates-grid{grid-template-columns:1fr}.templates-section .section-heading{align-items:start}.account-row{gap:12px}.account-row h3{font-size:14.5px}.account-row .button,.account-row button{font-size:13.5px;padding:7px 9px}.account-avatar{width:36px;height:36px;min-width:36px;font-size:15.5px}.account-row>.badge{font-size:12px}.session-band .actions{gap:8px}.session-band button{font-size:13.5px}.activity-item time{max-width:66px;white-space:normal;text-align:right}.breadcrumb>span:first-child,.breadcrumb>span:nth-child(2){display:none}.topbar .connection-label{margin-left:auto}.breadcrumb{flex:0}.topbar .icon-button:last-child{margin-left:auto}footer>span:last-child{display:none}.delivery-note span{margin-left:0}.notice{flex-wrap:wrap}.empty{min-height:230px}.ad-title{max-width:260px}}
.ads-table th{position:relative}
.today-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-block:1px solid var(--line);margin-bottom:25px;font-size:14.5px;color:var(--muted)}.today-summary strong{display:block;color:var(--ink);font-weight:600;font-size:24px}.today-summary small{display:block;font-size:12.5px;margin-top:4px}
@media(max-width:620px){.today-summary{display:grid;grid-template-columns:1fr 1fr;gap:22px}.today-summary strong{font-size:23px}}
@media(max-width:800px){#sidebar{visibility:hidden}.nav-open #sidebar{visibility:visible}}
@media(max-width:620px){.topbar .breadcrumb{flex:1;white-space:nowrap}.topbar .breadcrumb strong{max-width:145px;overflow:hidden;text-overflow:ellipsis}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.table-scroll{position:relative}.role-badges{display:flex;gap:6px;flex-wrap:wrap}.row-actions{display:flex;gap:2px;justify-content:flex-end}.row-actions .icon-button{width:32px;min-width:32px;height:32px;min-height:32px;padding:6px}.channels-table td:first-child{min-width:190px;max-width:340px}.channels-table .ad-title{max-width:320px}#channel-role{max-width:165px;font-size:14.5px;min-height:36px}#channel-auto-refresh{font-size:13.5px;margin-top:15px}#account-dialog-error{margin:0 0 14px}#accounts-help{margin:0 0 20px}#channels-empty p{font-size:14.5px;max-width:360px}#channels-empty button{margin-top:2px}.table-footer .muted{font-size:12.5px;text-align:right}dialog .field{margin-bottom:16px}dialog .field label{margin-bottom:7px}dialog .check-line span{display:flex;flex-direction:column;gap:2px}dialog .check-line small{font-size:13.5px;line-height:1.5}#channel-dialog-roles{margin-bottom:4px}
@media(max-width:620px){.channels-table td,.channels-table th{padding-left:10px;padding-right:10px}.channels-table td:first-child{min-width:150px}.channels-table .ad-title{max-width:200px}#channel-role{max-width:140px}.table-footer{align-items:start;gap:10px}.table-footer .muted{max-width:150px}}
.campaign-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:38px}.campaign-layout>div{min-width:0}.field-label{display:block;margin-bottom:7px;font-size:14.5px;font-weight:500}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid #d8dfe5;border-radius:7px;overflow:hidden}.segmented button{flex-direction:column;align-items:flex-start;gap:3px;border:0;border-radius:0;min-height:60px;padding:11px 14px;text-align:left;background:#fff;color:#5b6874}.segmented button+button{border-left:1px solid #e5e8eb}.segmented button[aria-checked=true]:hover{background:#d4e8f3}.segmented button small{font-size:12.5px;color:#93a0a9;font-weight:400;line-height:1.4}.segmented button[aria-checked=true]{background:#e4f0f9;color:#0b73b0;font-weight:600;box-shadow:inset 0 0 0 2px var(--blue)}.segmented button[aria-checked=true] small{color:#5d90ae}.picker-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
/* The item table used to answer "where will this ad run" with a number and a tooltip. Names
   in the row, the rest behind the title, because the count was never the question. */
.target-cell{white-space:normal;max-width:230px}
.target-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.picker-toolbar .search{flex:1 1 200px;max-width:none}.picker-toolbar button{font-size:14.5px;min-height:35px;padding:7px 11px}
/* Paste-to-select: the owner keeps these channel lists elsewhere, so a list pasted whole
   ticks the matching rows instead of thirty four separate clicks. */
.picker-paste{display:flex;gap:8px;margin-bottom:10px}
.picker-paste textarea{font-size:14.5px;min-height:38px;padding:8px 11px;line-height:1.5;resize:vertical}
.picker-paste button{font-size:14.5px;min-height:35px;padding:7px 11px;white-space:nowrap}
.paste-report{display:grid;gap:4px;font-size:13.5px;line-height:1.5;color:#187f57;margin:-4px 0 10px;overflow-wrap:anywhere}
.paste-report.warn{color:#99742f}
.picker{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:7px}.picker table{font-size:14.5px}.picker th{position:sticky;top:0;z-index:1}.picker th:first-child,.picker td:first-child{padding-left:14px}.picker td{padding:9px 14px}.picker .check-line{margin:0;align-items:center}.picker .check-line span{display:flex;flex-direction:column;gap:2px}.picker .check-line small{font-size:12.5px}.impact-rail{border-left:1px solid var(--line);padding-left:26px;min-width:0;align-self:start;position:sticky;top:22px}.impact-rail h2{font-size:15.5px}.impact-rail button{width:100%}.impact-rail .preview-facts dd{font-variant-numeric:tabular-nums}#impact-explain{font-size:13.5px;margin-bottom:14px}#impact-cap{margin-bottom:14px}.impact-note{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;margin-top:12px}.impact-note svg{width:13px;height:13px;flex-shrink:0;margin-top:2px}#campaign-progress{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}#campaign-progress .metrics{padding-top:0}.campaign-table td:nth-child(2){min-width:190px;max-width:330px}.campaign-table .ad-title{max-width:320px}.campaign-table .item-result{font-size:12.5px;color:#7b8790;white-space:normal;min-width:120px}.campaign-table .item-result a{display:inline-flex;gap:4px;align-items:center}#campaign-progress .form-actions{padding-top:18px}
.campaign-history{margin-bottom:30px;padding-bottom:26px;border-bottom:1px solid var(--line)}.campaign-history .section-heading{align-items:flex-start}.campaigns-table td{vertical-align:middle}.campaigns-table td:first-child{min-width:200px}.campaigns-table td:nth-child(3){min-width:170px}.campaigns-table tr.is-current td{background:var(--surface)}.campaigns-table tr.is-current td:first-child{box-shadow:inset 3px 0 0 var(--blue)}.campaigns-table td:last-child{text-align:right;white-space:nowrap}.campaign-bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-bottom:5px;max-width:200px}.campaign-bar span{display:block;height:100%;width:0;background:var(--blue);border-radius:3px}.campaign-builder-title{font-size:17px;margin:0 0 16px}
.campaign-steps{counter-reset:step}.campaign-steps>.form-section{counter-increment:step;scroll-margin-top:20px}.campaign-steps>.form-section>h2::before,.campaign-steps>.form-section>.section-heading h2::before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:13.5px;font-weight:600;margin-right:9px;vertical-align:1px}.campaign-steps>.form-section.is-done>h2::before,.campaign-steps>.form-section.is-done>.section-heading h2::before{content:"\2713";background:var(--green);border-color:var(--green);color:#fff}
.step-list{list-style:none;margin:2px 0 16px;padding:0;display:grid;gap:1px}.step-list button{width:100%;min-height:0;justify-content:flex-start;align-items:flex-start;gap:10px;border:0;border-radius:6px;background:transparent;padding:7px 6px;text-align:left;font-weight:400}.step-list button:hover{background:var(--surface)}.step-list .step-no{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--muted);flex-shrink:0}.step-list .done .step-no{background:var(--green);border-color:var(--green);color:#fff}.step-list .step-no svg{width:12px;height:12px}.step-list strong{display:block;font-size:14.5px;font-weight:600;color:var(--ink)}.step-list small{display:block;font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.ad-mock{margin:0 0 16px}.ad-mock figcaption{font-size:12.5px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.ad-bubble{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px;font-size:14.5px}.ad-from{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.ad-from strong{color:var(--blue);font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-from span{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px}.ad-media{aspect-ratio:16/9;border-radius:8px;overflow:hidden;margin-bottom:8px;background:var(--line)}.ad-media img,.ad-media video{width:100%;height:100%;object-fit:cover;display:block}.ad-bubble p{margin:0 0 9px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45;color:var(--ink)}.ad-button{text-align:center;font-size:13.5px;font-weight:600;color:var(--blue);border-top:1px solid var(--line);padding-top:8px;text-transform:uppercase}
.template-preview{margin:7px 0 0;padding:9px 11px;border-left:3px solid var(--blue);background:var(--surface);border-radius:0 6px 6px 0;font-size:14.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}.template-preview:empty{display:none}
.picked-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}.chip{display:inline-flex;align-items:center;gap:3px;padding:2px 3px 2px 10px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-size:13.5px;max-width:230px;white-space:nowrap;overflow:hidden}.chip button{min-height:0;width:20px;height:20px;padding:0;border:0;background:transparent;border-radius:50%;color:var(--muted);flex-shrink:0}.chip button:hover{color:var(--red);background:transparent}.chip button svg{width:12px;height:12px}.picked-chips .text-button{min-height:0;font-size:13.5px;padding:2px 4px}
.picker-toolbar [aria-pressed=true]{color:var(--blue);border-color:var(--blue)}.paste-box{margin:0 0 10px}.paste-box summary{cursor:pointer;font-size:14.5px;color:var(--blue);display:inline-flex;align-items:center;gap:6px;list-style:none;margin-bottom:8px}.paste-box summary::-webkit-details-marker{display:none}.paste-box summary svg{width:14px;height:14px}.picker tr.is-picked td{background:var(--surface)}.picker td.num,.picker th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.picker .check-line .badge{margin-left:6px;font-size:12px}
.funds-check{display:flex;gap:10px;align-items:flex-start;margin:12px 0;padding:11px 13px;border:1px solid var(--line);border-radius:7px;font-size:14.5px;color:var(--muted)}.funds-check>svg{width:17px;height:17px;margin-top:1px}.funds-check.ok{border-color:var(--green);color:var(--ink)}.funds-check.ok>svg{color:var(--green)}.funds-check.bad{border-color:var(--red);color:var(--ink)}.funds-check.bad>svg{color:var(--red)}.funds-check strong{display:block;margin-bottom:4px}.funds-check dl{margin:0;display:grid;gap:2px}.funds-check dl div{display:flex;justify-content:space-between;gap:14px}.funds-check dt{color:var(--muted)}.funds-check dd{margin:0;font-variant-numeric:tabular-nums}.funds-check p{margin:6px 0 0}
.campaign-head-tools{display:flex;align-items:center;gap:14px;flex-shrink:0}
.insight-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:6px 0 30px}.chart-card{border:1px solid var(--line);border-radius:8px;padding:14px 16px;min-width:0}.chart-card .section-heading{margin-bottom:6px}.chart-card h2{font-size:15.5px}.chart svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--line);stroke-width:1}.chart-bar{fill:var(--blue);opacity:.85}.chart-bar:hover{opacity:1}.chart-line{fill:none;stroke:var(--green);stroke-width:2.2;stroke-linejoin:round}.chart-dot{fill:var(--green)}.chart-tick,.chart-axis{fill:var(--muted);font-size:13.5px}.chart-axis.line{fill:var(--green)}.chart-empty{padding:40px 0;text-align:center}.chart-legend{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted)}.chart-legend i{display:inline-block;width:12px;height:8px;border-radius:2px;margin-left:8px}.legend-bar{background:var(--blue)}.legend-line{background:var(--green);height:3px!important}.placement-report{margin-top:8px}.placement-table td.num,.placement-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.placement-table th.num .sort{margin-left:auto}.cpj{font-variant-numeric:tabular-nums;font-weight:600}@media(max-width:900px){.insight-charts{grid-template-columns:1fr}}
.cpj-tag{display:block;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.cpj-tag.best{color:var(--green);font-weight:600}.cpj-tag.worst{color:var(--red)}
.placement-report .picker-toolbar select,.page-heading .actions select{width:auto;flex:0 0 auto}
.table-toolbar .actions select{width:auto;min-width:150px;flex:0 0 auto}.table-toolbar .actions{flex-wrap:wrap}
.automation-banner{padding:7px 14px;font-size:14.5px;margin-top:10px}.automation-banner svg{width:15px;height:15px}[data-goto-filter]{cursor:pointer;border-radius:6px;transition:background .14s}[data-goto-filter]:hover{background:var(--surface)}.ad-highlights{margin:6px 0 30px}.highlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.highlight-grid h3{font-size:14.5px;display:flex;align-items:center;gap:6px;margin:0 0 8px}.highlight-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px}.highlight-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 12px;font-size:14.5px}.highlight-list li+li{border-top:1px solid var(--line)}.highlight-list .ad-title{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.highlight-list span{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.highlight-list b{color:var(--ink)}@media(max-width:800px){.highlight-grid{grid-template-columns:1fr}}
#view-ads .ads-table td:first-child{min-width:200px;max-width:300px}#view-ads .ads-table .ad-title{max-width:270px}#view-ads .ads-table td,#view-ads .ads-table th{padding-left:9px;padding-right:9px}#view-ads .ads-table .cpj{white-space:nowrap}
.channel-group{scroll-margin-top:16px}.metric-link{cursor:pointer;border-radius:6px;transition:background .14s}.metric-link:hover{background:var(--surface)}.verified-strip{display:flex;align-items:center;gap:18px}#verified-metrics{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px 18px}#verified-metrics span{display:flex;flex-direction:column;gap:2px;min-width:0}.review-card h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-card h3 .ad-subtitle{display:block;font-weight:400}.highlight-list .ad-title .ad-subtitle{display:block;font-weight:400;overflow:hidden;text-overflow:ellipsis}
.warn-text{color:var(--red);font-weight:600}.picker tr.is-blocked td{opacity:.62}.picker tr.is-blocked .warn-text{opacity:1}.limit-notice{margin:0 0 12px;flex-wrap:wrap}.limit-notice>span:first-of-type{flex:1;min-width:220px}.limit-actions{display:flex;gap:8px;flex-wrap:wrap}.limit-actions button{min-height:32px;padding:5px 11px;font-size:13.5px}
.video-controls{margin-top:14px;display:grid;gap:12px}.video-playbar{display:flex;align-items:center;gap:10px}.video-playbar input{flex:1;min-height:0;padding:0}.video-playbar .muted{font-variant-numeric:tabular-nums;white-space:nowrap}.video-trim{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;align-items:end}.video-trim .field{margin:0}.video-length{margin:0;padding:10px 0;font-weight:600}.video-audio{margin:0 0 10px}.video-progress>div{height:8px;border-radius:4px;background:var(--line);overflow:hidden}.video-progress span{display:block;height:100%;width:0;background:var(--blue);transition:width .2s}.video-progress p{margin:6px 0 0}
.bulk-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px}.bulk-main{min-width:0}.bulk-selectbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:4px 0 10px}.bulk-selectbar .text-button{min-height:0;padding:4px 2px}.bulk-scroll{max-height:min(64vh,640px);overflow:auto}.bulk-table thead th{position:sticky;top:0;z-index:1}.bulk-table td.num,.bulk-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.bulk-table td:nth-child(2){min-width:220px;max-width:340px}.bulk-table .ad-title{max-width:320px}.bulk-table tr.is-picked td{background:var(--surface)}.bulk-new{display:block;color:var(--blue);font-weight:600}.bulk-rail .field{margin-bottom:12px}.bulk-rail button.primary{width:100%;margin-top:6px}.bulk-failed{margin:6px 0 0;padding-left:18px}
.bulk-table td:first-child,.bulk-table th:first-child{min-width:0;max-width:none;width:42px;padding-left:12px;padding-right:4px}.bulk-main .table-toolbar{flex-wrap:wrap;gap:10px}.bulk-main .tabs{flex-wrap:wrap;overflow:visible}
@media(max-width:1000px){.bulk-layout{grid-template-columns:1fr}.bulk-rail{border-left:0;padding-left:0;position:static}}
.channel-group .ad-title{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.channel-group td,.channel-group th{padding:9px 8px}.channel-group .role-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.mini-badge{font-size:11.5px;padding:1px 6px;min-height:0}.mini-badge svg{width:11px;height:11px}.channel-group .row-actions{display:flex;gap:0;margin:4px 0 0 -5px}.channel-group .row-actions .icon-button{width:28px;height:28px;min-width:28px;min-height:28px;padding:5px}.channel-group td:nth-child(3){white-space:nowrap;width:1%}.channel-group td:nth-child(2){width:1%}@media(max-width:1250px){.channel-groups{grid-template-columns:1fr}}
.balance-refresh{width:24px;height:24px;min-width:24px;min-height:24px;padding:3px;margin-left:4px;vertical-align:middle}.balance-refresh svg{width:13px;height:13px}
.live-status{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);white-space:nowrap}.live-status svg{width:13px;height:13px}.live-status.is-busy svg{animation:spin 1s linear infinite}
@media(max-width:900px){.live-status{display:none}}
.bot-outdated,.bot-current{display:flex;align-items:flex-start;gap:6px;margin-top:6px}.bot-outdated{color:var(--red)}.bot-current{color:var(--green)}.bot-outdated svg,.bot-current svg{width:14px;height:14px;margin-top:2px;flex-shrink:0}#bot-indicator.is-outdated .dot{background:var(--amber)}
.pick-col{width:34px;padding-right:2px!important}.placement-table tr.is-picked td,.joinrate-table tr.is-picked td{background:var(--surface)}.pick-bar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px 10px 18px;border:1px solid var(--blue);border-radius:10px;background:var(--surface);box-shadow:0 10px 35px #213a4b20;max-width:calc(100vw - 40px)}.pick-bar .primary{min-height:36px}.joinrate-scroll{max-height:min(68vh,720px);overflow:auto}.joinrate-table thead th{position:sticky;top:0;z-index:1}.joinrate-table td.num,.joinrate-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.joinrate-table td:nth-child(2){min-width:220px;max-width:320px}.joinrate-table .ad-title{max-width:300px}.joinrate-channels{font-size:13.5px;white-space:nowrap}.joinrate-active{margin:0}
#insights-joinrate .table-toolbar .actions select{width:auto}
.ads-table td.pick-col,.ads-table th.pick-col{min-width:0;max-width:none;width:36px;padding-left:12px;padding-right:2px}.placement-report .section-heading button{white-space:nowrap;flex-shrink:0}#insights-joinrate .table-toolbar{flex-wrap:wrap;gap:10px}#insights-joinrate .tabs{flex-wrap:wrap;overflow:visible;flex:1 1 100%}#insights-joinrate .table-toolbar .actions{flex:1 1 100%;justify-content:flex-start}#insights-joinrate .table-toolbar .search{flex:1 1 240px;max-width:360px}.joinrate-table td:nth-child(2){min-width:180px;max-width:240px}.joinrate-table .ad-title{max-width:230px}.joinrate-table td,.joinrate-table th{padding-left:8px;padding-right:8px}.bulk-table td:nth-child(2){min-width:150px;max-width:200px}.bulk-table .ad-title{max-width:185px}.bulk-table th.num{white-space:normal;line-height:1.2}.bulk-table td,.bulk-table th{padding-left:8px;padding-right:8px}.bulk-main .table-toolbar .search{flex:1 1 220px}.template-search{max-width:260px;margin-right:10px}.pick-hit{display:flex;align-items:center;justify-content:center;min-width:30px;min-height:34px;margin:-6px 0;cursor:pointer}.pick-hit input{width:17px;height:17px;cursor:pointer}.pick-hit input:disabled{cursor:not-allowed}.pick-col .pick-all{width:17px;height:17px;cursor:pointer}.pick-why{display:block;margin-top:2px;font-size:12.5px;color:var(--amber)}.notify-wrap{position:relative}#notify-bell{position:relative}.notify-count{position:absolute;top:-3px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:11.5px;font-weight:700;line-height:18px;text-align:center}.notify-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(400px,92vw);max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 35px #213a4b20;z-index:120;padding:10px}.notify-head{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 8px;border-bottom:1px solid var(--line)}.notify-popup{padding:8px 4px;font-size:13.5px}.notify-popup button{width:100%}.notify-list{display:grid;gap:2px}.notify-item{display:grid;gap:2px;text-align:left;width:100%;border:0;border-radius:6px;background:transparent;padding:8px;font-weight:400;min-height:0}.notify-item:hover{background:var(--surface)}.notify-item strong{font-size:14px;font-weight:550;color:var(--muted)}.notify-item.unread strong{color:var(--ink);font-weight:700}.notify-item.unread{box-shadow:inset 3px 0 0 var(--blue)}.notify-item span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.notify-item time{font-size:12px;color:var(--muted)}.ok-text{color:var(--green);display:inline-flex;align-items:center;gap:6px}.calc-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted);cursor:pointer;white-space:nowrap}#calc-all-cpm:disabled,#calc-all-rs:disabled{opacity:.5}.ton-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:14px 0 22px}.ton-card{border:1px solid var(--line);border-radius:8px;padding:14px 16px}.ton-card h3{font-size:15.5px;margin:0 0 4px}.ton-card .ton-rate{margin:0 0 8px}.ton-card .ton-rate strong{font-size:20px}.ton-card dl{margin:0;font-size:13.5px}.ton-card dl>div{display:flex;justify-content:space-between;gap:10px;margin:4px 0}.ton-card dt{color:var(--muted)}.ton-card dd{margin:0;text-align:right}.ton-pending{border:1px solid #fbf2dc;background:#fffbf1;border-radius:8px;padding:12px 16px;margin:12px 0}.ton-pending h2{font-size:15.5px;display:flex;align-items:center;gap:8px;margin:0 0 8px}.ton-question{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0}.ton-question>span{flex:1 1 320px}.ton-question input{width:170px}.calc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 14px}.calc-result{border-left:3px solid var(--blue);background:var(--surface);padding:10px 14px;border-radius:0 6px 6px 0;line-height:1.75;margin-top:6px}.calc-result p{margin:0}.calc-section{margin-bottom:26px}.calc-table-box{max-height:360px}.calc-inline{font-size:13.5px;color:var(--muted)}#calc-all-cpm,#calc-all-rs{width:90px}#calc-channel{min-width:220px}.multi-templates{display:grid;gap:2px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:7px;padding:6px 12px}.multi-templates .check-line{margin:0;padding:6px 0;align-items:start}.multi-templates .check-line small{display:block;color:var(--muted);font-size:13px;line-height:1.45}.field-label{display:block;font-weight:600;font-size:14.5px;margin-bottom:6px}#campaign-nomedia-line{margin:10px 0 0}dialog .export-bands .check-line{margin:0}dialog .dialog-actions{position:sticky;bottom:-1px;background:#fff;padding-top:10px;padding-bottom:4px;z-index:2}.form-section>p.muted{margin-bottom:14px}#market-dialog-subject{margin-bottom:14px;line-height:1.6}#bulk-channel-dialog p.muted{margin-bottom:12px}.account-row button,.account-row>.badge{margin-left:0}.account-row>div:nth-child(2){margin-right:auto}#view-profiles .section-heading .button,#view-profiles .section-heading button,#view-profiles .section-heading label.button{white-space:nowrap;flex-shrink:0}button.primary:disabled{opacity:1;background:var(--surface);color:var(--muted);border-color:var(--line)}td.row-actions{display:table-cell;text-align:right;white-space:nowrap;vertical-align:middle}td.row-actions>*{display:inline-flex;vertical-align:middle;margin-left:2px}dialog dl:not(:has(>div)){display:grid;grid-template-columns:auto 1fr;gap:8px 16px;align-items:baseline}dialog dl:not(:has(>div)) dd{margin:0;text-align:right}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px}.search:focus-within{outline:2px solid var(--blue);outline-offset:1px;border-radius:6px}.search input:focus-visible{outline:none}#bulk-search{min-width:240px}#placement-report-body,.placement-report .table-scroll{min-height:320px}.campaigns-table tr.is-current td:first-child{padding-left:14px}.template-card .template-name{max-width:100%}#insights-joinrate select,#insights-joinrate .search input{min-height:38px;font-size:14.5px}.preview-media{margin:-13px -12px 10px;border-radius:7px 7px 0 0;overflow:hidden}.preview-media img,.preview-media video{display:block;width:100%;height:auto}body:has(#ads-pick-bar:not([hidden])) .toast{bottom:120px}input:user-invalid,textarea:user-invalid{border-color:var(--red)}#view-profiles .page-heading{position:sticky;top:0;z-index:6;background:#fff;padding-top:8px;padding-bottom:8px}.template-card.is-off{opacity:.6}.row-actions{gap:6px}.channel-delete-gap{margin-left:12px}.pick-why .add-from-row{min-height:0;padding:0;font-size:12.5px}.verdict-limits input.invalid{border-color:var(--red)}.automation-banner{position:sticky;top:0;z-index:16}#view-ads .ads-table thead th,.bulk-table thead th,.joinrate-table thead th,.verdict-table thead th,.analysis-table thead th,.placement-table thead th{top:var(--sticky-top,0px)}.verified-strip a.strip-link{color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:2px;min-width:0}.verified-strip a.strip-link:hover b{color:var(--blue)}#event-type{min-width:220px}[role=button][tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:2px}#view-ads .ads-table tr.is-picked td,.bulk-table tr.is-picked td,.placement-table tr.is-picked td,.joinrate-table tr.is-picked td,.verdict-table tr.is-picked td{background:#e9f4fb}#view-ads .ads-table tr.is-picked td:first-child,.bulk-table tr.is-picked td:first-child,.placement-table tr.is-picked td:first-child,.joinrate-table tr.is-picked td:first-child,.verdict-table tr.is-picked td:first-child{box-shadow:inset 3px 0 0 var(--blue)}@media(min-width:1151px){.pick-bar{left:calc(50% + 124px);max-width:calc(100vw - 288px);flex-wrap:nowrap;white-space:nowrap}}@media(min-width:801px) and (max-width:1150px){.pick-bar{left:calc(50% + 111px);max-width:calc(100vw - 262px)}}body.has-pick-bar main{padding-bottom:120px}.pick-bar .muted,.pick-bar .warn-text{white-space:normal}.nav-sub.open{display:grid}.more-channels{min-height:0;padding:0;font-size:12.5px}.reclaim-list{max-height:180px;overflow:auto;font-size:13px;line-height:1.5}.activity-item.is-error>svg{color:var(--red)}.event-message.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin:2px 0 0;font-size:13px;color:var(--muted)}.auto-stop-tag{display:block;margin-top:3px;font-size:12px;font-weight:600;color:var(--amber);white-space:nowrap}#startup-check-overview{margin:0 0 14px}#campaign-confirm-dialog .dialog-sticky-foot{position:sticky;bottom:-26px;margin:0 -26px -26px;padding:10px 26px 20px;background:#fff;border-top:1px solid var(--line)}.ask-list{max-height:220px;overflow:auto;margin:0 0 12px;padding:8px 12px 8px 28px;border:1px solid var(--line);border-radius:6px;font-size:13.5px}.ask-list li{margin:2px 0}#delete-ads-details dd{white-space:pre-line}.verdict-limits{display:grid;grid-template-columns:repeat(4,minmax(140px,190px)) auto;align-items:end;gap:12px;margin:0 0 14px}.verdict-limits .field{margin:0}.verdict-limits button{min-height:41px}.verdict-limits .field-hint{grid-column:1/-1;margin:0}.verdict-limits .field-hint.warn,.cpm-advice.warn{color:var(--amber)}.verdict-scroll{max-height:min(70vh,760px);overflow:auto}.verdict-table thead th{position:sticky;top:0;z-index:1}.verdict-table td.num,.verdict-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.verdict-table td:nth-child(2){min-width:200px;max-width:320px}.cpm-advice{margin:6px 0 0;font-size:13.5px;line-height:1.4;color:var(--green)}#insights-verdict .table-toolbar{flex-wrap:wrap;gap:10px}#insights-verdict .tabs{flex-wrap:wrap;overflow:visible}@media(max-width:760px){.verdict-limits{grid-template-columns:1fr 1fr}}#view-ads .ads-table thead th{position:sticky;top:0;z-index:3}#view-ads .table-scroll{max-height:calc(100vh - 120px)}@media(min-width:1360px){#view-ads .table-scroll{overflow:visible;max-height:none}}.monitor-presets{margin:4px 0 10px}.monitor-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.monitor-time{display:flex;align-items:center;gap:4px}.monitor-time input{min-width:0}.monitor-times-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px}.monitor-times-foot .text-button{min-height:0}.export-bands{display:grid;gap:2px;margin:6px 0 14px}.export-bands .check-line{min-height:0;padding:4px 0}.export-bands .check-line span{display:inline}.export-bands .check-line small{display:inline;margin-left:6px}.export-bands .export-all{padding-bottom:6px;border-bottom:1px solid var(--line)}.impact-rail .schedule-box button{width:auto}.schedule-box{margin:-4px 0 12px}.schedule-presets{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:6px}.schedule-presets .text-button{min-height:0;padding:2px 0;font-size:13.5px}.schedule-grid{display:grid;grid-template-columns:26px repeat(24,minmax(0,1fr));gap:1px}.schedule-grid button{min-height:0;min-width:0;padding:0;border:0;border-radius:2px;background:none;font-size:10.5px;font-weight:500;color:var(--muted);line-height:1}.schedule-grid .sched-day{text-align:left;height:15px}.schedule-grid .sched-hour{height:13px}.schedule-grid .sched-cell{height:15px;background:var(--line)}.schedule-grid .sched-cell.on{background:var(--blue)}.schedule-grid button:hover{outline:1px solid var(--blue)}.analysis-scroll{max-height:min(70vh,760px);overflow:auto}.analysis-table thead th{position:sticky;top:0;z-index:1}.analysis-table td.num,.analysis-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.analysis-table td,.analysis-table th{padding-left:8px;padding-right:8px}.analysis-table td:first-child{min-width:200px;max-width:320px}.analysis-table .ad-title{max-width:300px}.analysis-text{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-table tr.low-data td{opacity:.55}.analysis-bar{display:block;height:4px;margin-top:3px;margin-left:auto;border-radius:2px;background:var(--blue);opacity:.7}.good-text{color:var(--green)}#insights-analysis .table-toolbar{flex-wrap:wrap;gap:10px}#insights-analysis .tabs{flex-wrap:wrap;overflow:visible;flex:1 1 100%}#insights-analysis .table-toolbar .actions{flex:1 1 100%;justify-content:flex-start}#analysis-filter{max-width:280px}#view-ads .ads-table th [data-sort="join_rate"],#view-ads .ads-table th [data-sort="click_action_rate"]{flex-wrap:wrap;align-items:baseline;row-gap:0;text-align:left}#view-ads .ads-table th [data-sort] .muted{flex-basis:100%;order:2}#view-ads .ads-table th .sort .muted{display:block;font-size:12px;font-weight:500;line-height:1.2}#view-ads .ads-table td:first-child{min-width:180px;max-width:220px}#view-ads .ads-table .ad-title{max-width:200px}#view-ads .ads-table td,#view-ads .ads-table th{padding-left:6px;padding-right:6px}
@media(max-width:1150px){.campaign-layout{grid-template-columns:minmax(0,1fr) 260px;gap:24px}.impact-rail{padding-left:20px}}
@media(max-width:800px){.campaign-layout{display:flex;flex-direction:column}.impact-rail{border-left:0;border-top:1px solid var(--line);padding:22px 0 0;position:static;width:100%}}
@media(max-width:620px){.segmented{grid-template-columns:1fr}.segmented button+button{border-left:0;border-top:1px solid #e5e8eb}.picker-toolbar .search{flex-basis:100%}.campaign-table td:nth-child(2){min-width:150px}.campaign-table .ad-title{max-width:190px}}
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:8px;border-radius:9px;background:#e8f0fb;color:#0b73b0;font-size:12.5px;font-weight:600;font-style:normal}.verified-strip{display:flex;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.verified-strip .overline{white-space:nowrap}.verified-strip>div{display:flex;gap:22px;flex-wrap:wrap;flex:1}.verified-strip span{display:flex;flex-direction:column;gap:2px}.verified-strip small{font-size:12.5px;color:#5f6a74}.verified-strip b{font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums}.verified-strip>a{margin-left:auto;font-size:13.5px;white-space:nowrap}.monitor-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:38px;margin-top:24px}.monitor-layout>form{min-width:0}#monitor-form .form-section:last-of-type{border-bottom:0}#monitor-missing,#monitor-blocked{margin-top:10px}#monitor-form .check-line{margin-top:16px}#monitor-form .check-line span{display:flex;flex-direction:column;gap:3px}#monitor-form .check-line small{font-size:13.5px;line-height:1.5}.reviews-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.review-card{border:1px solid var(--line);border-radius:8px;padding:18px}.review-card h3{font-size:16px}.review-card .preview-facts{margin:12px 0}.review-card p.muted{font-size:13.5px;overflow-wrap:anywhere}.review-card a{display:inline-flex;gap:5px;align-items:center;font-size:13.5px;margin-bottom:6px}.review-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.review-actions button{font-size:14.5px;min-height:34px;padding:7px 10px}.review-amount{margin-left:auto}.review-amount input{width:88px;min-height:34px;padding:6px 8px;font-size:14.5px}#source-filter{max-width:160px;font-size:14.5px;min-height:36px}
@media(max-width:1150px){.monitor-layout{grid-template-columns:minmax(0,1fr) 260px;gap:24px}}
@media(max-width:800px){.monitor-layout{display:flex;flex-direction:column}.monitor-layout .impact-rail{border-left:0;border-top:1px solid var(--line);padding:22px 0 0;position:static;width:100%}}
@media(max-width:620px){.reviews-list{grid-template-columns:1fr}.verified-strip>div{gap:14px}.review-amount{margin-left:0}.activity-toolbar{flex-wrap:wrap}#source-filter,#event-filter{max-width:none;flex:1}}

/* Token login page, shown only when WORKSPACE_AUTH_TOKEN is configured. */
.login-page { display: grid; place-items: center; min-height: 100vh; margin: 0; }
.login-card { width: min(360px, 90vw); padding: 28px; border: 1px solid var(--line);
  border-radius: 14px; background: var(--surface); }
.login-card h1 { margin: 0 0 6px; font-size: 20px; }
.login-card form { display: grid; gap: 10px; margin-top: 18px; }
.login-card input { width: 100%; }
.login-error { color: var(--red); font-size: 13px; margin: 12px 0 0; }

/* Ad support link in the sidebar footer: Telegram only names @AdSupport in a rejection banner. */
.sidebar-bottom a { display: flex; align-items: center; gap: 10px; color: #606c76; }
.sidebar-bottom a:hover { color: var(--blue); }


/* Sidebar rows stacked under the first one; a class because CSP forbids style attributes. */
.sidebar-bottom.tight { margin-top: 0; border: 0; padding-top: 0; }

/* Destructive confirmations, so deleting never wears the same button as saving. */
button.danger,.button.danger{background:var(--red);border-color:var(--red);color:#fff}
button.danger:hover,.button.danger:hover{background:#a94451;border-color:#a94451}

/* Media library. The tiles are the same in the library and in the create picker, so one set of
   rules covers both; only the container decides whether they wrap or scroll. */
.media-section{margin-top:26px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-top:16px}
.media-strip{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px}
.media-strip .media-tile{width:140px;flex:0 0 auto}
.media-tile{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;text-align:left;padding:0;position:relative;margin:0}
/* Ad creatives are mostly tall screenshots. Cropping them to a short strip hid the whole
   creative, so the frame keeps a fixed shape and the image is fitted inside it instead. */
/* 16:9, which is what the real creatives are, so they fill the frame instead of floating in it.
   `contain` still protects any other shape: an odd file is shown whole, never cropped. */
.media-tile .media-frame{position:relative;aspect-ratio:16/9;background:#f0f3f5;display:flex;align-items:center;justify-content:center;overflow:hidden}
.media-tile img,.media-tile video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
/* One line each, ellipsised: these names run long and wrapped a character at a time,
   which also left every tile in the row a different height. */
.media-tile figcaption{display:block;padding:8px 10px;font-size:13.5px;line-height:1.5;color:#65717b}
.media-tile figcaption b{display:block;font-weight:500;color:#4c5d69;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-tile .media-kind{position:absolute;top:6px;left:6px;padding:1px 6px;border-radius:4px;font-size:12.5px;font-weight:600;background:#edf1f4;color:#4c5d69}
.media-tile.selected{border-color:var(--blue);box-shadow:0 0 0 2px #e6f3fc}
.media-remove{position:absolute;top:5px;right:5px;border-radius:4px;width:26px;height:26px;min-width:26px;min-height:26px;padding:0;background:#fff;border:1px solid var(--line)}
.media-remove svg{width:14px;height:14px}
.media-picker{display:flex;flex-direction:column;gap:10px}
.media-picker-actions{display:flex;align-items:center;gap:12px}
.media-none{border:1px dashed #d9dfe3;border-radius:8px;min-height:96px;display:flex;align-items:center;justify-content:center;font-size:13.5px;color:#77838e}

/* Cropper. The canvas is the output at 1:1, so a checkered-free flat backdrop keeps the eye on
   the frame itself; the frame edge is the ad's edge. */
/* Promoted and placement sit side by side, each scrolling on its own: stacked, 34 channels
   made the page several screens tall. min-width:0 so a wide table cannot push the grid open. */
.channel-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.channel-group{margin-top:22px;min-width:0}
.channel-group .section-heading{margin-bottom:8px}
.channel-group .section-heading h2{font-size:16px}
.channel-group .section-heading p{font-size:14.5px;margin-top:3px}
.channel-group .table-scroll{max-height:min(72vh,760px);overflow:auto;border-bottom:1px solid var(--line)}.channels-table td.num,.channels-table th.num{text-align:right;white-space:nowrap}.channels-table .row-actions{white-space:nowrap}
/* The header has to stay put while the list scrolls under it. */
.channel-group thead th{position:sticky;top:0;z-index:1}
.channel-group td,.channel-group th{padding:11px 10px}
.channel-group td:first-child,.channel-group th:first-child{min-width:0}
.channel-group .ad-title{max-width:none}
/* At half width six columns do not fit. The verified date is the one to drop: the Status
   column already flags stale metadata, which is the part that matters before a campaign. */

.channel-group .inline-empty{min-height:150px}
@media(max-width:1150px){.channel-groups{grid-template-columns:1fr;gap:0}
}

/* Create ad: the target and the destination are two different channels, and swapping them
   spends the owner's money promoting somebody else. The form says which is which in words,
   and this strip repeats it with the live values so it cannot be read as one field. */
.field-hint{font-size:13.5px;color:#66717b;margin:-3px 0 8px;line-height:1.5}.field-hint.warn{color:#bc4355}
.ad-flow{display:flex;align-items:center;gap:20px;margin:16px 0 4px;padding:16px 18px;
         border:1px solid var(--line);border-radius:8px;background:#f7f9fa}
.flow-step{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.flow-step .overline{font-size:12.5px;letter-spacing:.6px;text-transform:uppercase}
.flow-step strong{font-size:17px;font-weight:650;overflow:hidden;text-overflow:ellipsis;
                  white-space:nowrap;color:#20272d}
.flow-step small{font-size:13.5px}
.flow-arrow{flex-shrink:0;color:#8d98a2}
/* A section heading carries its own bottom margin, so the hint under one sits tighter. */
.section-heading+.field-hint{margin:-14px 0 14px}
/* Combined and Separate differ by a factor of the placement count. The count on each button
   makes that a number the owner reads before choosing, not after building the plan. */
.segmented button b{font-weight:600;font-size:13.5px;padding:1px 7px;border-radius:10px;
                    background:#f0f3f5;color:#65717c}
.segmented button[aria-checked=true] b{background:#fff;color:#0b73b0}
#flow-warning{margin:10px 0 0}

/* Template card tools: the enable switch and delete sit together on the right. */
.template-tools{display:flex;align-items:center;gap:6px}
.template-tools .icon-button{width:30px;height:30px;min-width:30px;min-height:30px;padding:0}
.template-tools .icon-button svg{width:14px;height:14px}
#templates-note{font-size:13.5px;white-space:nowrap}
#templates-note.unsaved{color:#b67a12}

/* Backup and restore sits under the media library, same rhythm as the sections above it. */
.backup-section{margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.backup-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14.5px}
#restore-result{margin-top:16px}
#restore-result td:first-child{min-width:0}

/* Bulk channel add: the results table needs room, and a long paste needs its own scroll. */
#bulk-channel-dialog{max-width:640px}
#bulk-links{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14.5px;line-height:1.7}
#bulk-results{margin-top:18px;border-top:1px solid var(--line);padding-top:6px;max-height:280px;overflow:auto}
#bulk-results td:first-child{min-width:0;max-width:380px}

#crop-dialog{max-width:704px}
.crop-stage{background:#f0f3f5;border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;justify-content:center;margin:14px 0}
#crop-canvas{max-width:100%;height:auto;border-radius:4px;cursor:grab;touch-action:none;background:#e5e8eb}
#crop-canvas:active{cursor:grabbing}
.crop-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;align-items:end}
.crop-controls .field{margin:0}
.crop-controls .segmented{width:100%}
.crop-controls .segmented button{flex:1}
.crop-hint{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-top:14px}
.crop-hint svg{width:14px;height:14px}

/* Idle budget: money parked inside ads that are not delivering. It sits under the ads table
   because that is where the owner is already looking at what each ad holds. */
.idle-budget{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.idle-budget h2{font-size:16px}
.idle-budget>.muted{font-size:13.5px;margin:0 0 10px}
.idle-total{font-size:14.5px;color:#34434d;font-weight:550;margin:0 0 14px}
.idle-budget .table-scroll{border:1px solid var(--line);border-radius:6px}
.idle-budget td:first-child,.idle-budget th:first-child{min-width:0;width:38px;padding-right:0}
/* The amount box: blank means the whole budget, so it only needs room for one number. */
.idle-amount{width:104px;min-height:32px;padding:4px 8px;font-variant-numeric:tabular-nums}
.idle-amount[aria-invalid=true]{border-color:var(--red);outline-color:var(--red)}
.row-actions{display:flex;align-items:center;gap:2px;justify-content:flex-end}
.row-actions .icon-button{min-height:28px;padding:4px}
#edit-ad-subject{font-size:14.5px;margin-bottom:14px}
/* Countries: a small label beside the roles, and a quieter one for channels not sorted yet. */
.market-badge{gap:4px}
.market-badge svg{width:11px;height:11px}
.market-badge.unlabelled{background:transparent;border:1px dashed var(--line);color:var(--muted)}
#channel-market,#campaign-market{min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
/* Deleting ads: a quiet checkbox before each deletable title, and a red-outlined button that only
   turns solid in the confirm dialog, where the ads being lost are named. */
.ads-pick-all{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.ad-pick{float:left;margin:3px 10px 0 0}.ad-pick:disabled{opacity:.3;cursor:not-allowed}
button.danger-outline{color:var(--red);border-color:var(--red);background:transparent}
button.danger-outline:disabled{color:var(--muted);border-color:var(--line)}
/* Activity: background jobs as one line each above the list, and a list shown a page at a time. */
.background-summary{display:grid;gap:6px;margin:14px 0}
.background-line{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-size:14.5px;color:var(--muted)}
.background-line svg{width:14px;height:14px;flex-shrink:0;margin-top:2px}
.background-line strong{color:var(--ink)}
.background-line.has-errors{border-color:var(--red)}
.background-line.has-errors b{color:var(--red)}
.events-more{display:flex;justify-content:center;margin:16px 0}
/* The master automation switch in the header, and the banner shown while it is off. */
.automation-switch{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:var(--green);cursor:pointer;white-space:nowrap}
.automation-switch.is-off{color:var(--red)}
.automation-switch input:checked{background:var(--green)}
.automation-banner{border-color:var(--red)}
.automation-banner svg{width:16px;height:16px;flex-shrink:0}
#view-ads .ads-table .ad-title,.bulk-table .ad-title,.joinrate-table .ad-title,.analysis-table .ad-title{max-width:none;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}#view-ads .ads-table td:first-child{min-width:230px;max-width:none}.bulk-table td:nth-child(2),.joinrate-table td:nth-child(2){min-width:200px;max-width:none}#view-ads .ads-table td,.bulk-table td,.joinrate-table td,.placement-table td,.verdict-table td,.analysis-table td{padding-top:9px;padding-bottom:9px}.ads-table .ad-subtitle{margin-top:2px}.placement-report .table-scroll{max-height:min(70vh,760px);overflow:auto}.placement-table thead th{position:sticky;top:0;z-index:1}@media(min-width:1151px){.campaign-layout .impact-rail{max-height:calc(100vh - 44px);overflow-y:auto;overscroll-behavior:contain}}.bulk-rail #bulk-apply{position:sticky;bottom:12px;z-index:2;box-shadow:0 6px 18px #213a4b20}#idle-budget .table-footer{position:sticky;bottom:0;z-index:2;background:#fff;border-top:1px solid var(--line);padding:10px 0}#view-ads #idle-budget-table td:first-child,#view-ads #idle-budget-table th:first-child{min-width:0;max-width:none;width:40px}.campaign-table td:first-child,.campaign-table th:first-child{min-width:0;max-width:none;width:44px}

/* === dark theme (generated) === */
[data-theme=dark]{color:#e6ebef;background:#161b21;--ink:#e6ebef;--muted:#8b97a1;--line:#2b343d;--blue:#3d9adb;--green:#4bbd8b;--red:#e0798a;--amber:#d9a24a;--surface:#1b222a}
[data-theme=dark] a{color:var(--blue)}
[data-theme=dark] button,[data-theme=dark] .button{border:1px solid #333d47;background:#161b21;color:#d3dbe2}
[data-theme=dark] button:hover,[data-theme=dark] .button:hover{background:#232c35;border-color:#465360}
[data-theme=dark] button.primary,[data-theme=dark] .button.primary{color:#161b21;background:var(--blue);border-color:var(--blue)}
[data-theme=dark] button.primary:hover,[data-theme=dark] .button.primary:hover{background:#63b6ee}
[data-theme=dark] button.text-button{border-color:transparent;background:transparent;color:var(--blue)}
[data-theme=dark] button.icon-button{border-color:transparent;background:transparent}
[data-theme=dark] button.icon-button:hover{background:#232c35}
[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{border:1px solid #333d47;background:#161b21;color:var(--ink);outline:none}
[data-theme=dark] /* A checkbox is not a text field. The rule above made every bare one 100% wide and 41px tall --
   the delete checkboxes in the Ads table filled the title cell and hid the title (2026-10-01).
   Placed first so .switch and .check-line,[data-theme=dark] which style their own,[data-theme=dark] still win. */
input[type=checkbox],[data-theme=dark] input[type=radio]{accent-color:var(--blue)}
[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#8b97a1}
[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #12384d}
[data-theme=dark] :focus-visible{outline:2px solid var(--blue)}
[data-theme=dark] .muted{color:var(--muted)}
[data-theme=dark] .overline{color:var(--muted)}
[data-theme=dark] .dot{background:#6f7b85}
[data-theme=dark] .dot.green{background:#3fbe8c}
[data-theme=dark] .dot.amber{background:#d9a24a}
[data-theme=dark] .dot.red{background:#e0798a}
[data-theme=dark] .badge{color:#e0b062;background:#33291a}
[data-theme=dark] .badge.active,[data-theme=dark] .badge.success{color:#5cc79a;background:#16302a}
[data-theme=dark] .badge.stopped,[data-theme=dark] .badge.neutral{color:#9ba7b1;background:#252e37}
[data-theme=dark] .badge.declined,[data-theme=dark] .badge.error{color:#ef8fa0;background:#3a2029}
[data-theme=dark] .badge.other{color:#8fbdd6;background:#22303c}
[data-theme=dark] #sidebar{background:#1b222a;border-right:1px solid var(--line)}
[data-theme=dark] .brand{color:#eef2f5}
[data-theme=dark] nav a{color:#a9b4bd}
[data-theme=dark] nav a:hover{background:#232c35}
[data-theme=dark] .nav-sub{border-left:1px solid var(--line)}
[data-theme=dark] nav a.active{background:#17303f;color:#63b6ee}
[data-theme=dark] .sidebar-bottom{border-top:1px solid #2b343d;color:#a2aeb8}
[data-theme=dark] .sidebar-bottom small{color:#828e98}
[data-theme=dark] .topbar{border-bottom:1px solid var(--line);background:#161b21}
[data-theme=dark] .breadcrumb{color:#8b97a1}
[data-theme=dark] .breadcrumb strong{color:#cdd6dd}
[data-theme=dark] .topbar .connection-label{color:#a9b4bd}
[data-theme=dark] .page-heading p{color:var(--muted)}
[data-theme=dark] .strip-divider{background:var(--line)}
[data-theme=dark] .metrics{border-bottom:1px solid var(--line)}
[data-theme=dark] .metrics>div{border-right:1px solid var(--line)}
[data-theme=dark] .metrics>div:last-child{border:0}
[data-theme=dark] .metrics>div>span{color:#9ba7b1}
[data-theme=dark] .metrics small{color:#8b97a1}
[data-theme=dark] .table-toolbar{border-bottom:1px solid var(--line)}
[data-theme=dark] .tabs button{border:0;border-bottom:2px solid transparent;color:#9aa6b0;background:none}
[data-theme=dark] .tabs button[aria-selected=true]{border-bottom-color:var(--blue);color:var(--blue)}
[data-theme=dark] .search{border:1px solid var(--line);color:#8b97a1;background:#161b21}
[data-theme=dark] .search input{border:0;box-shadow:none}
[data-theme=dark] th{color:#8b97a1;background:#1b222a;border-bottom:1px solid var(--line)}
[data-theme=dark] /* Sortable headers: a button so it is keyboard reachable,[data-theme=dark] styled as the header text it
   replaces,[data-theme=dark] with the direction shown only on the active column. */
th .sort{border:0;background:none;color:inherit}
[data-theme=dark] th .sort:hover{color:var(--blue);background:none;border:0}
[data-theme=dark] th .sort[aria-sort=ascending]::after{color:var(--blue)}
[data-theme=dark] th .sort[aria-sort=descending]::after{color:var(--blue)}
[data-theme=dark] th .sort[aria-sort=ascending],[data-theme=dark] th .sort[aria-sort=descending]{color:var(--blue)}
[data-theme=dark] td{border-bottom:1px solid #262f38}
[data-theme=dark] .ad-title{color:#d3dbe2}
[data-theme=dark] .ad-subtitle{color:#8b97a1}
[data-theme=dark] tbody tr:hover{background:#1e262e}
[data-theme=dark] .empty{color:#9aa6b0}
[data-theme=dark] .empty>svg{color:#6f7b85}
[data-theme=dark] .empty h2{color:#c3ccd4}
[data-theme=dark] .table-footer{border-top:1px solid var(--line);color:#8b97a1}
[data-theme=dark] .snapshot-note{color:#dcae5c;background:#2c2618;border-left:2px solid #8a6d2c}
[data-theme=dark] .overview-bottom{border-top:1px solid var(--line)}
[data-theme=dark] .overview-bottom>section+section{border-left:1px solid var(--line)}
[data-theme=dark] .bot-actions button{border:0;background:none;color:#9fb4c2}
[data-theme=dark] .bot-actions button:first-child{color:var(--green)}
[data-theme=dark] .bot-actions button:nth-child(2){color:var(--red)}
[data-theme=dark] .activity-item{border-bottom:1px solid #252e37}
[data-theme=dark] .activity-item>svg{color:#7fb59f}
[data-theme=dark] .activity-item small{color:#79858f}
[data-theme=dark] .activity-item time{color:#8b97a1}
[data-theme=dark] .activity-item .event-message{color:#9aa6b0}
[data-theme=dark] .activity-list .activity-item:last-child{border:0}
[data-theme=dark] footer{border-top:1px solid var(--line);color:#8b97a1}
[data-theme=dark] .progress{color:#5cb4d8;background:#123039}
[data-theme=dark] .notice{background:#33201f;border:1px solid #4d2f36;color:#ef8fa0}
[data-theme=dark] .notice.info{background:#132c38;color:#8fbdd6;border-color:#24485c}
[data-theme=dark] .steps{border-bottom:1px solid var(--line)}
[data-theme=dark] .steps li{color:#8b97a1}
[data-theme=dark] .steps li>span{border:1px solid #333d47}
[data-theme=dark] .steps li.current{color:var(--blue)}
[data-theme=dark] .steps li.current>span{background:var(--blue);border-color:var(--blue);color:#161b21}
[data-theme=dark] .form-section{border-bottom:1px solid var(--line)}
[data-theme=dark] .field label>span{color:#828e98}
[data-theme=dark] .verified-line{color:var(--green)}
[data-theme=dark] .inline-empty{color:#9aa6b0}
[data-theme=dark] .inline-empty svg{color:#6f7b85}
[data-theme=dark] .preview-rail{border-left:1px solid var(--line)}
[data-theme=dark] .telegram-preview{border:1px solid #2f3a44;background:#1e262d}
[data-theme=dark] .telegram-channel{background:#161b21}
[data-theme=dark] .telegram-channel small{color:#8b97a1}
[data-theme=dark] .telegram-message{background:#161b21;box-shadow:0 1px 2px #00000060}
[data-theme=dark] .telegram-message>strong{color:#63b6ee}
[data-theme=dark] .sponsored-label{color:#828e98}
[data-theme=dark] .telegram-cta{border-top:1px solid #2b343d;color:#63b6ee}
[data-theme=dark] .preview-facts dt,[data-theme=dark] dialog dt{color:#8b97a1}
[data-theme=dark] .delivery-note{color:#9aa6b0}
[data-theme=dark] .delivery-note span{color:#c0a97f}
[data-theme=dark] .result-panel{border-left:3px solid var(--green);background:#142a24}
[data-theme=dark] #form-check-result{border-top:1px solid var(--line)}
[data-theme=dark] .account-row{border-bottom:1px solid var(--line)}
[data-theme=dark] .account-avatar{background:#1b3242;color:#63b6ee}
[data-theme=dark] .account-row:nth-child(3n+2) .account-avatar{background:#1f2c1e;color:#8fc27f}
[data-theme=dark] .account-row:nth-child(3n) .account-avatar{background:#33241f;color:#d99b86}
[data-theme=dark] .account-row p{color:#8b97a1}
[data-theme=dark] .template-card{border:1px solid var(--line)}
[data-theme=dark] /* The template's name is its heading,[data-theme=dark] and editable in place: a heading until it is touched,[data-theme=dark] then a
   field. The border appears on hover and focus so the page does not look like a form of names. */
.template-card .template-name{color:var(--ink);background:transparent;border:1px solid transparent}
[data-theme=dark] .template-card .template-name:hover{border-color:var(--line)}
[data-theme=dark] .template-card .template-name:focus{border-color:var(--blue);background:var(--surface);outline:none}
[data-theme=dark] .template-card .template-name::placeholder{color:var(--ink)}
[data-theme=dark] .template-card>small{color:#828e98}
[data-theme=dark] .switch{color:#9aa6b0}
[data-theme=dark] .switch input{border:0;background:#3a4550}
[data-theme=dark] .switch input:checked{background:var(--blue)}
[data-theme=dark] .switch input:before{background:#161b21}
[data-theme=dark] .log-details{border-top:1px solid var(--line)}
[data-theme=dark] .log-details pre{background:#1b222a;border:1px solid var(--line)}
[data-theme=dark] dialog{border:1px solid #333d47;box-shadow:0 20px 80px #00000070;color:var(--ink);background:#161b21}
[data-theme=dark] dialog::backdrop{background:#00000090}
[data-theme=dark] dialog p{color:#9aa6b0}
[data-theme=dark] .check-line input{accent-color:var(--blue)}
[data-theme=dark] .toast{background:#dfe6ec;color:#161b21;box-shadow:0 6px 20px #00000060}
[data-theme=dark] .sr-only{border:0}
[data-theme=dark] .skip-link{background:#161b21}
[data-theme=dark] .today-summary{color:var(--muted)}
[data-theme=dark] .today-summary strong{color:var(--ink)}
[data-theme=dark] .segmented{border:1px solid #333d47}
[data-theme=dark] .segmented button{border:0;background:#161b21;color:#a2aeb8}
[data-theme=dark] .segmented button+button{border-left:1px solid #2b343d}
[data-theme=dark] .segmented button[aria-checked=true]:hover{background:#24485c}
[data-theme=dark] .segmented button small{color:#828e98}
[data-theme=dark] .segmented button[aria-checked=true]{background:#17303f;color:#63b6ee;box-shadow:inset 0 0 0 2px var(--blue)}
[data-theme=dark] .segmented button[aria-checked=true] small{color:#7ba8c4}
[data-theme=dark] .paste-report{color:#5cc79a}
[data-theme=dark] .paste-report.warn{color:#dcae5c}
[data-theme=dark] .picker{border:1px solid var(--line)}
[data-theme=dark] .impact-rail{border-left:1px solid var(--line)}
[data-theme=dark] #campaign-progress{border-top:1px solid var(--line)}
[data-theme=dark] .campaign-table .item-result{color:#9aa6b0}
[data-theme=dark] .campaign-history{border-bottom:1px solid var(--line)}
[data-theme=dark] .campaigns-table tr.is-current td{background:var(--surface)}
[data-theme=dark] .campaigns-table tr.is-current td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
[data-theme=dark] .campaign-bar{background:var(--line)}
[data-theme=dark] .campaign-bar span{background:var(--blue)}
[data-theme=dark] .campaign-steps>.form-section>h2::before,[data-theme=dark] .campaign-steps>.form-section>.section-heading h2::before{background:var(--surface);border:1px solid var(--line);color:var(--muted)}
[data-theme=dark] .campaign-steps>.form-section.is-done>h2::before,[data-theme=dark] .campaign-steps>.form-section.is-done>.section-heading h2::before{background:var(--green);border-color:var(--green);color:#161b21}
[data-theme=dark] .step-list button{border:0;background:transparent}
[data-theme=dark] .step-list button:hover{background:var(--surface)}
[data-theme=dark] .step-list .step-no{border:1px solid var(--line);color:var(--muted)}
[data-theme=dark] .step-list .done .step-no{background:var(--green);border-color:var(--green);color:#161b21}
[data-theme=dark] .step-list strong{color:var(--ink)}
[data-theme=dark] .step-list small{color:var(--muted)}
[data-theme=dark] .ad-mock figcaption{color:var(--muted)}
[data-theme=dark] .ad-bubble{border:1px solid var(--line);background:var(--surface)}
[data-theme=dark] .ad-from strong{color:var(--blue)}
[data-theme=dark] .ad-from span{color:var(--muted);border:1px solid var(--line)}
[data-theme=dark] .ad-media{background:var(--line)}
[data-theme=dark] .ad-bubble p{color:var(--ink)}
[data-theme=dark] .ad-button{color:var(--blue);border-top:1px solid var(--line)}
[data-theme=dark] .template-preview{border-left:3px solid var(--blue);background:var(--surface);color:var(--ink)}
[data-theme=dark] .chip{background:var(--surface);border:1px solid var(--line)}
[data-theme=dark] .chip button{border:0;background:transparent;color:var(--muted)}
[data-theme=dark] .chip button:hover{color:var(--red);background:transparent}
[data-theme=dark] .picker-toolbar [aria-pressed=true]{color:var(--blue);border-color:var(--blue)}
[data-theme=dark] .paste-box summary{color:var(--blue)}
[data-theme=dark] .picker tr.is-picked td{background:var(--surface)}
[data-theme=dark] .funds-check{border:1px solid var(--line);color:var(--muted)}
[data-theme=dark] .funds-check.ok{border-color:var(--green);color:var(--ink)}
[data-theme=dark] .funds-check.ok>svg{color:var(--green)}
[data-theme=dark] .funds-check.bad{border-color:var(--red);color:var(--ink)}
[data-theme=dark] .funds-check.bad>svg{color:var(--red)}
[data-theme=dark] .funds-check dt{color:var(--muted)}
[data-theme=dark] .chart-card{border:1px solid var(--line)}
[data-theme=dark] .chart-grid{stroke:var(--line)}
[data-theme=dark] .chart-bar{fill:var(--blue)}
[data-theme=dark] .chart-line{fill:none;stroke:var(--green)}
[data-theme=dark] .chart-dot{fill:var(--green)}
[data-theme=dark] .chart-tick,[data-theme=dark] .chart-axis{fill:var(--muted)}
[data-theme=dark] .chart-axis.line{fill:var(--green)}
[data-theme=dark] .chart-legend{color:var(--muted)}
[data-theme=dark] .legend-bar{background:var(--blue)}
[data-theme=dark] .legend-line{background:var(--green)}
[data-theme=dark] .cpj-tag{color:var(--muted)}
[data-theme=dark] .cpj-tag.best{color:var(--green)}
[data-theme=dark] .cpj-tag.worst{color:var(--red)}
[data-theme=dark] [data-goto-filter]:hover{background:var(--surface)}
[data-theme=dark] .highlight-list{border:1px solid var(--line)}
[data-theme=dark] .highlight-list li+li{border-top:1px solid var(--line)}
[data-theme=dark] .highlight-list span{color:var(--muted)}
[data-theme=dark] .highlight-list b{color:var(--ink)}
[data-theme=dark] .metric-link:hover{background:var(--surface)}
[data-theme=dark] .warn-text{color:var(--red)}
[data-theme=dark] .video-progress>div{background:var(--line)}
[data-theme=dark] .video-progress span{background:var(--blue)}
[data-theme=dark] .bulk-table tr.is-picked td{background:var(--surface)}
[data-theme=dark] .bulk-new{color:var(--blue)}
[data-theme=dark] .live-status{color:var(--muted)}
[data-theme=dark] .bot-outdated{color:var(--red)}
[data-theme=dark] .bot-current{color:var(--green)}
[data-theme=dark] #bot-indicator.is-outdated .dot{background:var(--amber)}
[data-theme=dark] .placement-table tr.is-picked td,[data-theme=dark] .joinrate-table tr.is-picked td{background:var(--surface)}
[data-theme=dark] .pick-bar{border:1px solid var(--blue);background:var(--surface);box-shadow:0 10px 35px #00000070}
[data-theme=dark] .pick-why{color:var(--amber)}
[data-theme=dark] .notify-count{background:var(--red);color:#161b21}
[data-theme=dark] .notify-panel{background:#161b21;border:1px solid var(--line);box-shadow:0 10px 35px #00000070}
[data-theme=dark] .notify-head{border-bottom:1px solid var(--line)}
[data-theme=dark] .notify-item{border:0;background:transparent}
[data-theme=dark] .notify-item:hover{background:var(--surface)}
[data-theme=dark] .notify-item strong{color:var(--muted)}
[data-theme=dark] .notify-item.unread strong{color:var(--ink)}
[data-theme=dark] .notify-item.unread{box-shadow:inset 3px 0 0 var(--blue)}
[data-theme=dark] .notify-item span{color:var(--muted)}
[data-theme=dark] .notify-item time{color:var(--muted)}
[data-theme=dark] .ok-text{color:var(--green)}
[data-theme=dark] .calc-toggle{color:var(--muted)}
[data-theme=dark] .ton-card{border:1px solid var(--line)}
[data-theme=dark] .ton-card dt{color:var(--muted)}
[data-theme=dark] .ton-pending{border:1px solid #33291a;background:#2c2618}
[data-theme=dark] .calc-result{border-left:3px solid var(--blue);background:var(--surface)}
[data-theme=dark] .calc-inline{color:var(--muted)}
[data-theme=dark] .multi-templates{border:1px solid var(--line)}
[data-theme=dark] .multi-templates .check-line small{color:var(--muted)}
[data-theme=dark] dialog .dialog-actions{background:#161b21}
[data-theme=dark] button.primary:disabled{background:var(--surface);color:var(--muted);border-color:var(--line)}
[data-theme=dark] .search:focus-within{outline:2px solid var(--blue)}
[data-theme=dark] .search input:focus-visible{outline:none}
[data-theme=dark] input:user-invalid,[data-theme=dark] textarea:user-invalid{border-color:var(--red)}
[data-theme=dark] #view-profiles .page-heading{background:#161b21}
[data-theme=dark] .verdict-limits input.invalid{border-color:var(--red)}
[data-theme=dark] .verified-strip a.strip-link{color:inherit}
[data-theme=dark] .verified-strip a.strip-link:hover b{color:var(--blue)}
[data-theme=dark] [role=button][tabindex]:focus-visible{outline:2px solid var(--blue)}
[data-theme=dark] #view-ads .ads-table tr.is-picked td,[data-theme=dark] .bulk-table tr.is-picked td,[data-theme=dark] .placement-table tr.is-picked td,[data-theme=dark] .joinrate-table tr.is-picked td,[data-theme=dark] .verdict-table tr.is-picked td{background:#17303f}
[data-theme=dark] #view-ads .ads-table tr.is-picked td:first-child,[data-theme=dark] .bulk-table tr.is-picked td:first-child,[data-theme=dark] .placement-table tr.is-picked td:first-child,[data-theme=dark] .joinrate-table tr.is-picked td:first-child,[data-theme=dark] .verdict-table tr.is-picked td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
[data-theme=dark] .activity-item.is-error>svg{color:var(--red)}
[data-theme=dark] .event-message.one-line{color:var(--muted)}
[data-theme=dark] .auto-stop-tag{color:var(--amber)}
[data-theme=dark] #campaign-confirm-dialog .dialog-sticky-foot{background:#161b21;border-top:1px solid var(--line)}
[data-theme=dark] .ask-list{border:1px solid var(--line)}
[data-theme=dark] .verdict-limits .field-hint.warn,[data-theme=dark] .cpm-advice.warn{color:var(--amber)}
[data-theme=dark] .cpm-advice{color:var(--green)}
[data-theme=dark] .export-bands .export-all{border-bottom:1px solid var(--line)}
[data-theme=dark] .schedule-grid button{border:0;background:none;color:var(--muted)}
[data-theme=dark] .schedule-grid .sched-cell{background:var(--line)}
[data-theme=dark] .schedule-grid .sched-cell.on{background:var(--blue)}
[data-theme=dark] .schedule-grid button:hover{outline:1px solid var(--blue)}
[data-theme=dark] .analysis-bar{background:var(--blue)}
[data-theme=dark] .good-text{color:var(--green)}
[data-theme=dark] .nav-badge{background:#1d3550;color:#63b6ee}
[data-theme=dark] .verified-strip{border-bottom:1px solid var(--line)}
[data-theme=dark] .verified-strip small{color:#8b97a1}
[data-theme=dark] #monitor-form .form-section:last-of-type{border-bottom:0}
[data-theme=dark] .review-card{border:1px solid var(--line)}
[data-theme=dark] .review-actions{border-top:1px solid var(--line)}
[data-theme=dark] .login-card{border: 1px solid var(--line);background: var(--surface)}
[data-theme=dark] .login-error{color: var(--red)}
[data-theme=dark] /* Ad support link in the sidebar footer: Telegram only names @AdSupport in a rejection banner. */
.sidebar-bottom a{color: #a2aeb8}
[data-theme=dark] .sidebar-bottom a:hover{color: var(--blue)}
[data-theme=dark] /* Sidebar rows stacked under the first one; a class because CSP forbids style attributes. */
.sidebar-bottom.tight{border: 0}
[data-theme=dark] /* Destructive confirmations,[data-theme=dark] so deleting never wears the same button as saving. */
button.danger,[data-theme=dark] .button.danger{background:var(--red);border-color:var(--red);color:#161b21}
[data-theme=dark] button.danger:hover,[data-theme=dark] .button.danger:hover{background:#ef8fa0;border-color:#ef8fa0}
[data-theme=dark] .media-tile{border:1px solid var(--line);background:#161b21}
[data-theme=dark] /* Ad creatives are mostly tall screenshots. Cropping them to a short strip hid the whole
   creative,[data-theme=dark] so the frame keeps a fixed shape and the image is fitted inside it instead. */
/* 16:9,[data-theme=dark] which is what the real creatives are,[data-theme=dark] so they fill the frame instead of floating in it.
   `contain` still protects any other shape: an odd file is shown whole,[data-theme=dark] never cropped. */
.media-tile .media-frame{background:#252e37}
[data-theme=dark] /* One line each,[data-theme=dark] ellipsised: these names run long and wrapped a character at a time,[data-theme=dark] which also left every tile in the row a different height. */
.media-tile figcaption{color:#9ba7b1}
[data-theme=dark] .media-tile figcaption b{color:#a9b4bd}
[data-theme=dark] .media-tile .media-kind{background:#232c35;color:#a9b4bd}
[data-theme=dark] .media-tile.selected{border-color:var(--blue);box-shadow:0 0 0 2px #12384d}
[data-theme=dark] .media-remove{background:#161b21;border:1px solid var(--line)}
[data-theme=dark] .media-none{border:1px dashed #333d47;color:#9aa6b0}
[data-theme=dark] .channel-group .table-scroll{border-bottom:1px solid var(--line)}
[data-theme=dark] /* Create ad: the target and the destination are two different channels,[data-theme=dark] and swapping them
   spends the owner's money promoting somebody else. The form says which is which in words,[data-theme=dark] and this strip repeats it with the live values so it cannot be read as one field. */
.field-hint{color:#8b97a1}
[data-theme=dark] .field-hint.warn{color:#e0798a}
[data-theme=dark] .ad-flow{border:1px solid var(--line);background:#1b222a}
[data-theme=dark] .flow-step strong{color:#e6ebef}
[data-theme=dark] .flow-arrow{color:#8b97a1}
[data-theme=dark] /* Combined and Separate differ by a factor of the placement count. The count on each button
   makes that a number the owner reads before choosing,[data-theme=dark] not after building the plan. */
.segmented button b{background:#252e37;color:#9ba7b1}
[data-theme=dark] .segmented button[aria-checked=true] b{background:#161b21;color:#63b6ee}
[data-theme=dark] #templates-note.unsaved{color:#d9a24a}
[data-theme=dark] /* Backup and restore sits under the media library,[data-theme=dark] same rhythm as the sections above it. */
.backup-section{border-top:1px solid var(--line)}
[data-theme=dark] #bulk-results{border-top:1px solid var(--line)}
[data-theme=dark] .crop-stage{background:#252e37;border:1px solid var(--line)}
[data-theme=dark] #crop-canvas{background:#2b343d}
[data-theme=dark] /* Idle budget: money parked inside ads that are not delivering. It sits under the ads table
   because that is where the owner is already looking at what each ad holds. */
.idle-budget{border-top:1px solid var(--line)}
[data-theme=dark] .idle-total{color:#d3dbe2}
[data-theme=dark] .idle-budget .table-scroll{border:1px solid var(--line)}
[data-theme=dark] .idle-amount[aria-invalid=true]{border-color:var(--red);outline-color:var(--red)}
[data-theme=dark] .market-badge.unlabelled{background:transparent;border:1px dashed var(--line);color:var(--muted)}
[data-theme=dark] #channel-market,[data-theme=dark] #campaign-market{border:1px solid var(--line);background:var(--surface);color:var(--ink)}
[data-theme=dark] button.danger-outline{color:var(--red);border-color:var(--red);background:transparent}
[data-theme=dark] button.danger-outline:disabled{color:var(--muted);border-color:var(--line)}
[data-theme=dark] .background-line{border:1px solid var(--line);background:var(--surface);color:var(--muted)}
[data-theme=dark] .background-line strong{color:var(--ink)}
[data-theme=dark] .background-line.has-errors{border-color:var(--red)}
[data-theme=dark] .background-line.has-errors b{color:var(--red)}
[data-theme=dark] /* The master automation switch in the header,[data-theme=dark] and the banner shown while it is off. */
.automation-switch{color:var(--green)}
[data-theme=dark] .automation-switch.is-off{color:var(--red)}
[data-theme=dark] .automation-switch input:checked{background:var(--green)}
[data-theme=dark] .automation-banner{border-color:var(--red)}
[data-theme=dark] .bulk-rail #bulk-apply{box-shadow:0 6px 18px #00000070}
[data-theme=dark] #idle-budget .table-footer{background:#161b21;border-top:1px solid var(--line)}
@media(max-width:800px){[data-theme=dark] #sidebar{box-shadow:10px 0 35px #00000070}}
@media(max-width:620px){[data-theme=dark] .metrics>div:nth-child(3){border:0}[data-theme=dark] .overview-bottom>section+section{border-left:0;border-top:1px solid var(--line)}[data-theme=dark] .preview-rail{border-left:0;border-top:1px solid var(--line)}}
@media(max-width:1000px){[data-theme=dark] .bulk-rail{border-left:0}}
@media(max-width:800px){[data-theme=dark] .impact-rail{border-left:0;border-top:1px solid var(--line)}}
@media(max-width:620px){[data-theme=dark] .segmented button+button{border-left:0;border-top:1px solid #2b343d}}
@media(max-width:800px){[data-theme=dark] .monitor-layout .impact-rail{border-left:0;border-top:1px solid var(--line)}}
