:root { --bg:#10171f; --panel:#18222d; --line:#334151; --fg:#f0f4f8; --mut:#a6b3c1; --acc:#2563eb; --link:#8bbdff; --danger:#dc2626; --ok:#16a34a; --warn:#b45309; }
:root { --card:var(--panel); --border:var(--line); --muted:var(--mut); --accent:var(--acc); }
.form.collection-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.collection-filters label{flex:1 1 220px;min-width:0}.collection-filters button{width:auto}#collection-editor{scroll-margin-top:100px}#collection-editor>form>fieldset{margin:0;border:0;padding:0}
.banner-thumb{height:40px;max-width:100px;object-fit:contain;border-radius:4px}.banner-url{overflow-wrap:anywhere}#banner-editor{scroll-margin-top:100px}#banner-title-results button{max-width:100%;text-align:left;overflow-wrap:anywhere}#banner-edit-form>fieldset.form{margin:0;border:0;padding:0}
.policy-guidance{margin:1rem 0}.policy-guidance summary{cursor:pointer}.policy-filters{display:grid;grid-template-columns:minmax(180px,1.3fr) repeat(2,minmax(100px,1fr)) auto;gap:12px;align-items:end}.policy-filters label{min-width:0}.policy-filter-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:1100px){.policy-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.policy-filter-actions{grid-column:1/-1}}@media(max-width:720px){.policy-filters{grid-template-columns:1fr}}
.policy-tabs{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0}.policy-tabs a[aria-current=page]{font-weight:700;border-bottom:2px solid var(--acc)}.policy-table-scroll{overflow:auto;max-width:100%}.policy-table-scroll:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.policy-table{width:100%;min-width:760px}.policy-table td{vertical-align:top;max-width:320px;overflow-wrap:anywhere}.policy-table caption{text-align:left;color:var(--mut);padding:.5rem 0}.policy-codes{max-width:100%;overflow-wrap:anywhere;margin:.4rem 0}.policy-codes code{display:inline-block}.policy-table time{white-space:nowrap}#policy-editor{scroll-margin-top:100px}#access-target-results{padding-left:1.2rem}#access-target-results button{max-width:100%;text-align:left;overflow-wrap:anywhere}
:root { color-scheme:dark; --scrollbar-track:var(--bg); --scrollbar-thumb:var(--mut); scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track); }
@supports (color:color-mix(in srgb,black,white)) {
  :root { --scrollbar-thumb:color-mix(in srgb,var(--mut) 65%,var(--panel)); }
}
/* Legacy WebKit fallback; modern engines use the inherited standard colors. */
@supports not (scrollbar-color:auto) {
  ::-webkit-scrollbar { width:16px; height:16px; }
  ::-webkit-scrollbar-track,::-webkit-scrollbar-corner { background:var(--scrollbar-track); }
  ::-webkit-scrollbar-thumb { background:var(--scrollbar-thumb); border:3px solid var(--scrollbar-track); border-radius:8px; }
  ::-webkit-scrollbar-thumb:hover { background:var(--mut); }
}
@media (forced-colors:active) {
  :root { color-scheme:light dark; scrollbar-color:auto; }
  ::-webkit-scrollbar,::-webkit-scrollbar-track,::-webkit-scrollbar-corner,::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover { all:revert; }
}
* { box-sizing: border-box; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.settings-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.country-code-fields { border:1px solid var(--border); border-radius:6px; min-width:0; padding:12px; }
.country-code-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr)); gap:4px 12px; max-height:340px; overflow:auto; margin:12px 0; padding:8px; border:1px solid var(--border); border-radius:6px; }
[data-country-code][hidden] { display:none; }
.country-code-list { display:flex; flex-wrap:wrap; gap:6px; overflow-wrap:anywhere; }
.country-policy-summary { display:grid; grid-template-columns:minmax(140px,220px) minmax(0,1fr); gap:8px 16px; }
.country-policy-summary dt { color:var(--mut); }
.country-policy-summary dd { margin:0; overflow-wrap:anywhere; }
.country-policy-diff { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
@media(max-width:520px) { .country-policy-summary,.country-policy-diff { grid-template-columns:1fr; } }
.operations-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; }
.channel-sources .card,.card.channel-review { text-align:left; }
.channel-sources .card h2,.channel-review h2 { border:0; margin:0 0 12px; padding:0; }
[data-pool-actions][hidden] { display:none; }
.operations-actions form { display:flex; flex-direction:column; gap:12px; }
.role-change { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:10px; }
.operator-actions { min-width:180px; max-width:520px; }
.operator-actions summary,.role-guide summary { cursor:pointer; color:var(--link); }
.operator-actions[open] { padding:8px; border:1px solid var(--line); border-radius:8px; }
.operator-actions .role-change { margin-top:12px; }
.role-guide { margin-top:20px; }
.support-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin:12px 0 24px; }
.support-cards .card { text-align:left; }
.support-cards h3 { margin-top:0; font-size:14px; }
.support-cards strong { font-size:24px; }
.support-cards p,.support-cards small { color:var(--mut); font-size:12px; }
.support-diagnostic { border:1px solid var(--line); border-radius:10px; background:var(--panel); padding:18px; }
.support-search-action { display:flex; align-items:end; }
.support-span-two { grid-column:span 2; }
.support-result { border:1px solid var(--link); border-radius:8px; padding:18px; margin-top:18px; }
.support-result h3 { margin-top:0; }
.support-unknowns { border-left:3px solid var(--mut); padding:0 16px; margin:20px 0; }
.support-editor { margin:18px 0; border:1px solid var(--line); border-radius:8px; padding:14px; }
.support-editor summary { color:var(--link); cursor:pointer; }
.support-editor[open] form { margin-top:12px; }
@media(max-width:700px){.support-span-two{grid-column:span 1}}
.page-heading h1 { margin-bottom:4px; }
.log-sources { display:flex; flex-wrap:wrap; gap:6px; border-bottom:1px solid var(--line); padding:12px 0; margin-bottom:18px; }
.log-sources a { padding:8px 12px; border:1px solid transparent; border-radius:6px; }
.log-sources a[aria-current] { color:var(--fg); background:var(--panel); border-color:var(--link); }
.log-filters { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:16px; }
.log-filter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.log-filter-grid label { display:flex; flex-direction:column; gap:5px; font-size:13px; min-width:0; }
.log-filter-grid input,.log-filter-grid select { width:100%; min-width:0; }
.log-filter-grid input[type=datetime-local] { color-scheme:dark; }
.log-advanced { margin-top:12px; }
.log-advanced summary { cursor:pointer; color:var(--link); padding:6px 0; }
.log-advanced[open] .log-filter-grid { margin-top:10px; }
.log-actions,.log-pagination { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:16px; }
.log-actions label { margin-left:auto; }
.log-note,.log-policy { font-size:12px; }
.log-table-scroll { max-width:100%; overflow:auto; border:1px solid var(--line); border-radius:8px; }
.log-table { width:100%; min-width:860px; border-collapse:collapse; }
.log-table th,.log-table td { padding:12px; vertical-align:top; text-align:left; border-bottom:1px solid var(--line); }
.log-table th { background:var(--panel); font-size:12px; }
.log-table td { font-size:12px; overflow-wrap:anywhere; }
.log-table time { white-space:nowrap; }
.log-table .log-message { min-width:160px; max-width:340px; }
.log-secondary,.log-repeat { display:block; color:var(--mut); margin-top:4px; font-size:11px; }
.log-table td.log-outcome { white-space:nowrap; }
.log-severity { border:1px solid var(--line); border-radius:4px; padding:2px 5px; }
.log-severity-error { color:#ffb7b7; border-color:#b95353; }
.log-severity-warning { color:#ffe0a3; border-color:#9e7b33; }
.log-severity-info,.log-severity-notice { color:#b1d4ff; border-color:#507aa6; }
.log-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; background:var(--panel); padding:20px; border:1px solid var(--line); border-radius:10px; }
.log-detail-grid dt { color:var(--mut); font-size:12px; }
.log-detail-grid dd { margin:4px 0 0; overflow-wrap:anywhere; }
.log-json,.log-detail-message { white-space:pre-wrap; overflow-wrap:anywhere; }
.log-json { background:var(--panel); padding:20px; border-radius:8px; max-height:480px; overflow:auto; }
@media(max-width:1200px) { .log-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .log-filter-grid,.log-detail-grid { grid-template-columns:1fr; } .log-actions label { margin-left:0; } }
body { margin:0; font:14px/1.5 system-ui,Segoe UI,Roboto,sans-serif; background:var(--bg); color:var(--fg); }
a { color:var(--link); text-decoration:none; } a:hover { text-decoration:underline; }
/* ---- app shell: vertical sidebar + main column ---- */
.app { display:grid; grid-template-columns:232px 1fr; min-height:100vh; }
.side { background:var(--panel); border-right:1px solid var(--line); display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto; }
.side .brand { padding:14px 14px 10px; }
.sidenav { display:flex; flex-direction:column; padding:2px 8px 10px; gap:1px; flex:1; }
.sidenav a { color:var(--mut); padding:9px 12px; border-radius:6px; border-left:3px solid transparent; font-size:14px; }
.sidenav a:hover { color:var(--fg); background:rgba(255,255,255,.05); text-decoration:none; }
.sidenav a.on { color:var(--fg); background:rgba(59,130,246,.13); border-left-color:var(--acc); }
.navgroup { display:flex; align-items:center; justify-content:space-between; gap:6px; width:100%; background:none; border:0; font:inherit; text-align:left; cursor:pointer; color:var(--mut); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:14px 10px 6px; }
.navgroup:hover { opacity:1; color:var(--fg); }
.navgroup::after { content:"\25BE"; font-size:9px; opacity:.8; transition:transform .15s ease; }
.navgroup[aria-expanded="false"]::after { transform:rotate(-90deg); }
.navgroup-items { display:flex; flex-direction:column; gap:1px; }
.navgroup-items.is-collapsed { display:none; }
.side-foot { border-top:1px solid var(--line); padding:11px 14px; display:flex; flex-direction:column; gap:5px; font-size:12.5px; }
.side-foot .who { color:var(--mut); }
.side-foot .link { background:none; border:0; color:var(--mut); cursor:pointer; font:inherit; padding:0; text-align:left; }
.side-foot .link:hover { color:var(--fg); }
.main { min-width:0; display:flex; flex-direction:column; }
.topbar { display:flex; align-items:center; gap:16px; background:var(--panel); border-bottom:1px solid var(--line); padding:0 24px; height:64px; flex-shrink:0; position:sticky; top:0; z-index:30; }
.header-context { min-width:130px; max-width:280px; }
.header-brand { display:block; font-size:12px; color:var(--mut); }
.breadcrumbs { display:flex; gap:7px; font-size:12px; white-space:nowrap; }
.breadcrumbs [aria-current] { overflow:hidden; text-overflow:ellipsis; }
.header-search { display:flex; flex:1; min-width:120px; max-width:600px; gap:6px; margin-left:auto; }
.header-search input { width:100%; min-width:0; }
.header-actions { display:flex; align-items:center; gap:12px; }
.language-switch { display:flex; gap:2px; }
.language-switch a { padding:6px; color:var(--mut); font-size:12px; border-radius:4px; }
.language-switch a[aria-current] { color:var(--fg); background:rgba(139,189,255,.15); }
.ai-trigger { background:transparent; color:var(--fg); border-color:var(--line); white-space:nowrap; }
.build-revision { font-size:11px; color:var(--mut); overflow-wrap:anywhere; }
.build-revision code { font-size:11px; }
.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; }
.search-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.search-group:only-child { grid-column:1/-1; }
.search-group { border:1px solid var(--line); background:var(--panel); border-radius:10px; padding:20px; }
.search-group h2 { margin:0 0 14px; border:0; padding:0; }
.search-results { list-style:none; margin:0; padding:0; }
.search-results li { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--line); }
.search-results li:last-child { border-bottom:0; }
.search-results span { font-size:12px; }
@media(max-width:1100px){.header-context{display:none}.topbar{gap:10px;padding:0 16px}.header-actions{gap:6px}}
@media(max-width:680px){.search-groups{grid-template-columns:1fr}.header-search button{display:none}.ai-trigger{font-size:12px;padding:7px}.topbar{padding:0 10px;gap:6px}}
.burger { display:none; background:none; border:0; color:var(--fg); font-size:22px; line-height:1; cursor:pointer; padding:4px 8px; }
.scrim { display:none; }
.wrap { max-width:1440px; margin:0 auto; padding:24px 28px 60px; width:100%; scroll-margin-top:80px; }
/* ---- per-page section tabs (driven by static/subtabs.js) ---- */
.subtabs { display:none; }
body.has-subtabs .subtabs { display:flex; flex-wrap:wrap; gap:5px; position:sticky; top:64px; z-index:20; background:var(--bg); padding:10px 0 9px; margin:0 0 4px; border-bottom:1px solid var(--line); }
body.has-subtabs .subtabs button { background:#0c1116; border:1px solid var(--line); color:var(--mut); padding:6px 13px; border-radius:6px; font-size:13px; cursor:pointer; }
body.has-subtabs .subtabs button:hover { color:var(--fg); border-color:var(--acc); }
body.has-subtabs .subtabs button[aria-selected="true"] { background:var(--acc); border-color:var(--acc); color:#fff; }
body.has-subtabs .sec.is-hidden { display:none; }
body.has-subtabs .sec > h2:first-child { margin-top:8px; border-top:0; padding-top:0; }
.subtab-actions { display:flex; justify-content:flex-end; }
.subtab-close { padding:8px 0; }
[hidden] { display:none !important; }
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:2px solid #93c5fd; outline-offset:3px; }
.skip-link { position:fixed; left:12px; top:-100px; z-index:100; padding:10px 16px; background:var(--fg); color:var(--bg); }
.skip-link:focus { top:12px; }
.app.nav-open .ai-trigger { visibility:hidden; }

/* bulk action bar — appears when 1+ rows are checked on a content list */
.bulkbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; position:sticky; top:116px; z-index:15;
  background:var(--surface-alt,#0f141a); border:1px solid var(--acc); border-radius:8px; padding:9px 12px; margin:0 0 12px; }
.bulkbar.is-hidden { display:none; }
.bulkbar .bulkbar-count { font-weight:600; color:var(--fg); white-space:nowrap; }
.bulkbar p { margin:0; line-height:1.5; }
.bulkbar .bulkbar-pkgs { display:flex; flex-wrap:wrap; gap:4px 12px; max-width:100%; max-height:120px; overflow:auto; }
.bulkbar label.cb { display:inline-flex; align-items:center; gap:5px; color:var(--fg); font-size:13px; margin:0; }
.rowck-col { width:1%; white-space:nowrap; }
h1 { font-size:22px; margin:8px 0 16px; }
h2 { font-size:17px; margin:28px 0 10px; border-top:1px solid var(--line); padding-top:18px; }
h3 { font-size:15px; margin:18px 0 8px; }
.muted { color:var(--mut); }
table { width:100%; border-collapse:collapse; margin:6px 0 12px; }
th,td { text-align:left; padding:7px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
th { color:var(--mut); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
/* ---- action-cell controls: one uniform pill look, semantic colors, across
   every list page (vod, channels, music, radio, books, packages, subscribers,
   collections, banners, commands, vouchers, youtube…). Driven purely by CSS so
   it applies everywhere with no per-template markup. Edit/nav links = blue,
   enable/disable toggle = amber, add-to-package = green, delete = red. ---- */
td.actions { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
td.actions a, td.actions button, td.actions summary {
  display:inline-block; border-radius:6px; padding:6px 12px; font-size:13px;
  line-height:1.25; border:1px solid transparent; cursor:pointer; white-space:nowrap; }
td.actions a { background:var(--acc); color:#fff; }
td.actions a:hover { filter:brightness(1.1); text-decoration:none; }
/* the inline "edit" expander (series episodes / subtitles) looks like a button too */
td.actions > details > summary { background:var(--acc); color:#fff; list-style:none; text-align:center; }
td.actions > details > summary::-webkit-details-marker { display:none; }
td.actions > details[open] > summary { border-color:var(--acc); filter:brightness(1.1); }
/* an opened inline editor (episodes / subtitles) takes its own full-width row so
   the grid form isn't squished and sibling buttons drop below it */
td.actions > details[open] { flex-basis:100%; }
/* enable/disable-semantics buttons = amber (caution). Matches /x/toggle and the
   *-toggle / *-disable variants (subtitle-toggle, lyrics disable); approve = green. */
td.actions form[action$="toggle"] > button,
td.actions form[action$="/disable"] > button { background:var(--warn); color:#fff; }
td.actions form[action$="/approve"] > button { background:var(--ok); color:#fff; }
/* add-to-package = green, on a single row with a larger select field */
td.actions form[action="/packages/quick-add"] { display:inline-flex; align-items:center; gap:6px; }
td.actions form[action="/packages/quick-add"] select { min-width:190px; padding:6px 8px; }
td.actions form[action="/packages/quick-add"] > button { background:var(--ok); color:#fff; }
img.logo { height:20px; width:auto; margin-right:8px; vertical-align:middle; }
.form { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:14px; margin:8px 0; }
.form.grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px 16px; }
.form label { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--mut); }
.form .wide { grid-column:1/-1; }
.form .cb { flex-direction:row; align-items:center; gap:6px; color:var(--fg); }
input,select,textarea,button { font:inherit; }
input,select,textarea { background:#0c1116; color:var(--fg); border:1px solid var(--line); border-radius:6px; padding:7px 8px; }
input:focus,select:focus,textarea:focus { outline:2px solid var(--acc); border-color:var(--acc); }
textarea.code { font-family:ui-monospace,Consolas,monospace; font-size:12px; width:100%; }
button,.btn { background:var(--acc); color:#fff; border:1px solid transparent; border-radius:6px; padding:7px 12px; cursor:pointer; }
button:hover,.btn:hover { filter:brightness(1.1); text-decoration:none; }
button.danger { background:var(--danger); }
button.link { background:none; }
.inline { display:inline; }
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:16px; text-align:center; }
.card .n { font-size:28px; font-weight:700; }
.card .l { color:var(--mut); font-size:12px; }
/* analytics dashboard */
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:8px 22px; align-items:start; }
.sectionhead { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.filterbar { display:flex; align-items:end; flex-wrap:wrap; gap:12px; }
.filterbar label:first-child { flex:1 1 220px; }
.table-scroll { max-width:100%; overflow-x:auto; }
.faq-current { margin:16px 0; }
.faq-current dd { margin:4px 0 14px; white-space:pre-wrap; overflow-wrap:anywhere; }
#faq-editor { scroll-margin-top:100px; }
.pagination { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:16px 0; }
.pagination a,.pagination span { padding:8px 12px; }
.pagination [aria-disabled="true"] { color:var(--mut); }
.pager { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:16px 0; }
.pager a { padding:8px 0; }
.inbox-body { white-space:pre-wrap; max-width:520px; max-height:14em; overflow:auto; overflow-wrap:anywhere; }
.inbox-thumb { height:34px; border-radius:4px; vertical-align:middle; margin-right:6px; }
.inbox-list { min-width:900px; }
.inbox-list td { vertical-align:top; overflow-wrap:anywhere; }
.inbox-list td.actions { display:table-cell; width:14rem; }
.inbox-list td.actions details { max-width:14rem; margin-bottom:6px; }
.inbox-list tr { scroll-margin-top:128px; }
.status-label { display:inline-block; border:1px solid var(--line); border-radius:4px; padding:2px 8px; color:var(--mut); font-size:12px; }
.status-label.is-active { color:#86efac; border-color:#28603d; }
.empty-state { padding:28px 16px; text-align:center; color:var(--mut); }
.back-link { display:inline-block; padding:8px 0; }
.danger-zone { border:1px solid var(--danger); border-radius:8px; padding:16px; margin-top:32px; }
.danger-zone h3 { margin-top:0; }
.bars { margin:6px 0 14px; }
.barrow { display:grid; grid-template-columns:150px 1fr auto; align-items:center; gap:10px; margin:6px 0; }
.barrow .lab { font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bartrack { background:#0c1116; border:1px solid var(--line); border-radius:5px; height:15px; overflow:hidden; }
.barfill { height:100%; background:var(--acc); border-radius:4px 0 0 4px; }
.barrow .val { color:var(--mut); font-size:12px; min-width:60px; text-align:right; }
@media (max-width:820px){ .grid2 { grid-template-columns:1fr; } }
/* branding: intro-overlay previews on a dark checkerboard, shown like the video (cover) */
.ov-prev { display:flex; align-items:center; justify-content:center; margin:8px 0; overflow:hidden; border:1px solid var(--line); border-radius:6px;
  background-color:#0b0e11; background-image:linear-gradient(45deg,#1f252c 25%,transparent 25%,transparent 75%,#1f252c 75%),linear-gradient(45deg,#1f252c 25%,transparent 25%,transparent 75%,#1f252c 75%);
  background-size:16px 16px; background-position:0 0,8px 8px; }
.ov-prev.ov-land { width:100%; aspect-ratio:16/9; }
.ov-prev.ov-port { width:45%; max-width:240px; aspect-ratio:9/16; }
.ov-prev img { width:100%; height:100%; object-fit:cover; }
.ov-note { font-size:12px; margin:0 0 8px; word-break:break-all; }
.flash { padding:9px 12px; border-radius:6px; margin:0 0 14px; }
.flash.ok { background:rgba(22,163,74,.15); border:1px solid var(--ok); }
.flash.err { background:rgba(220,38,38,.15); border:1px solid var(--danger); }
.results { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0; }
.results .res { background:#0c1116; border:1px solid var(--line); border-radius:6px; padding:5px 8px; cursor:pointer; font-size:12px; display:flex; align-items:center; gap:6px; }
.results .res:hover { border-color:var(--acc); }
.results .res img { height:18px; }
.login { max-width:320px; margin:12vh auto 0; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:28px; }
.login h1 { text-align:center; }
.login form { display:flex; flex-direction:column; gap:12px; }
.login label { display:flex; flex-direction:column; gap:4px; color:var(--mut); font-size:13px; }

/* branding + manual + new controls */
.brand { display:flex; align-items:center; gap:7px; font-weight:700; color:#fff; }
.brand:hover { text-decoration:none; }
.brand-sub { color:var(--mut); font-weight:600; }
/* Brand marks sit directly on the dark ground — the operator's logo is a
   transparent PNG, so the old white plate behind it (background + padding +
   radius) only boxed it in.
   Sized as on the web client: in the sidebar the mark IS the identity, so it
   spans the rail and the "OTT Panel" label beside it is dropped — keeping that
   label would force the mark back down to a badge to fit the 212px column. The
   mobile topbar is wide and short, so there it stays inline with the label. */
.brand-logo { height:30px; width:auto; display:block; }
.side .brand { padding:16px 14px 12px; }
.side .brand-sub { display:none; }
.side .brand-logo { height:auto; width:100%; max-width:168px; }
.login-logo { display:block; width:100%; max-width:260px; height:auto; margin:0 auto 18px; }
.login h1 { line-height:1.15; }
.login h1 span { color:var(--mut); font-size:15px; font-weight:600; }
img.poster { height:30px; width:auto; margin-right:8px; vertical-align:middle; border-radius:3px; }
.multi-tools { margin:2px 0; }
.multi-tools button { padding:2px 8px; font-size:12px; background:#0c1116; border:1px solid var(--line); color:var(--fg); }
select[multiple] { min-height:170px; }
.results .res img { height:30px; }
ul.manual { line-height:1.7; }
.operator-help { min-width:0; line-height:1.65; }
.operator-help pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.operator-help li { margin-block:.5rem; }
.operator-help .settings-card h4 { margin:0 0 .6rem; }
pre { background:#0c1116; border:1px solid var(--line); border-radius:8px; padding:12px; overflow-x:auto; font-size:12.5px; line-height:1.5; }
code { background:#0c1116; border:1px solid var(--line); border-radius:4px; padding:1px 5px; font-size:12.5px; }
pre code { background:none; border:0; padding:0; }
.iptv-bar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:10px 14px; margin:10px 0; }
.imp { padding:9px 12px; border-radius:6px; margin:8px 0; font-size:13px; }
.imp.ok { background:rgba(22,163,74,.15); border:1px solid var(--ok); }
.imp.err { background:rgba(220,38,38,.15); border:1px solid var(--danger); white-space:pre-wrap; word-break:break-word; }
.imp.running { background:rgba(59,130,246,.15); border:1px solid var(--acc); }
.ok-badge { color:var(--ok); font-size:12px; font-weight:600; }
.warn-badge { display:inline-block; color:var(--danger); background:rgba(220,38,38,.15); border:1px solid var(--danger); border-radius:999px; padding:1px 8px; font-size:12px; font-weight:600; }
.trunc { display:inline-block; max-width:360px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; }
details summary { cursor:pointer; margin:10px 0 4px; }
/* datatable: toolbar, sortable headers, per-column filters, pager */
.dt-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:10px 0 4px; }
.dt-search { min-width:220px; }
.dt-info { margin-left:auto; }
thead .dt-sort { cursor:pointer; user-select:none; white-space:nowrap; }
.dt-sort-button { background:transparent; color:inherit; font:inherit; text-transform:inherit; letter-spacing:inherit; border:0; padding:4px 0; }
.dt-reset { background:transparent; border:1px solid var(--line); color:var(--fg); }
.dt { scroll-margin-top:120px; }
[data-shop-product] { scroll-margin-top:128px; }
[data-yt-category] { scroll-margin-top:128px; }
[data-package-row] { scroll-margin-top:128px; }
.package-usage { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.package-usage dt { color:var(--mut); }
.package-usage dd { margin:4px 0 0; font-size:1.15rem; }
.yt-operation-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; }
.yt-operation-metrics dt { color:var(--mut); }
.yt-operation-metrics dd { margin:4px 0 0; font-size:1.2rem; }
thead .dt-sort:hover { color:var(--fg); }
thead .dt-sort[data-dir="asc"]::after { content:" ▲"; font-size:10px; color:var(--acc); }
thead .dt-sort[data-dir="desc"]::after { content:" ▼"; font-size:10px; color:var(--acc); }
tr.dt-filters th { padding:3px 6px 7px; }
.dt-colf { width:100%; padding:4px 6px; font-size:12px; font-weight:400; text-transform:none; letter-spacing:0; }
.dt-pager { display:flex; gap:4px; align-items:center; flex-wrap:wrap; margin:8px 0 16px; }
.dt-pager button { background:#0c1116; border:1px solid var(--line); color:var(--fg); padding:4px 9px; font-size:12px; }
.dt-pager button:hover:not(:disabled) { border-color:var(--acc); }
.dt-pager button.cur { background:var(--acc); border-color:var(--acc); color:#fff; }
.dt-pager button:disabled { cursor:not-allowed; }
/* Field help is inline without JavaScript and a linked tooltip when enhanced. */
.cap { display:inline-flex; align-items:center; gap:6px; }
.hint { color:var(--mut); font-size:12px; font-weight:400; white-space:normal; overflow-wrap:anywhere; }
.hint-fallback::before{content:' ('}.hint-fallback::after{content:')'}
.hint-ready { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:24px; height:24px; border-radius:50%; border:1px solid var(--mut); background:var(--bg); color:var(--fg); font:italic 700 12px/1 Georgia,"Times New Roman",serif; cursor:help; vertical-align:middle; touch-action:manipulation; scroll-margin:128px 16px 24px; }
.hint-ready:hover,.hint-ready[aria-expanded=true] { border-color:var(--link); color:var(--link); }
.hint-ready:focus-visible { outline:2px solid var(--link); outline-offset:2px; }
.field-help-popup { position:fixed; z-index:1000; width:max-content; max-width:calc(100vw - 16px); padding:12px 14px; border:1px solid var(--link); border-radius:8px; background:var(--panel); color:var(--fg); box-shadow:0 8px 24px rgba(0,0,0,.45); font:400 13px/1.55 system-ui,Segoe UI,sans-serif; white-space:pre-wrap; overflow-wrap:anywhere; overflow:auto; overscroll-behavior:contain; }
.field-help-popup[hidden] { display:none; }

/* ---- responsive: collapse the sidebar to an off-canvas drawer ---- */
@media (max-width:820px){
  .app { grid-template-columns:1fr; }
  .topbar { display:flex; }
  .burger { display:block; }
  .side { position:fixed; top:0; left:0; z-index:50; width:240px; height:100vh; transform:translateX(-100%); transition:transform .2s ease; box-shadow:0 0 30px rgba(0,0,0,.5); }
  .app.nav-open .side { transform:translateX(0); }
  .app.nav-open .scrim { display:block; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:40; }
  body.has-subtabs .subtabs { top:64px; }
  .wrap { padding:20px 16px 48px; }
}
.overview-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.overview-heading h1{margin-bottom:.3rem}.overview-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:1rem}.overview-metric,.overview-service{border:1px solid var(--border,#334155);border-radius:10px;padding:1rem;background:var(--panel,#18232d);min-width:0}.overview-metric h3,.overview-service h3{margin:0 0 .6rem;font-size:1rem}.overview-value{font-size:1.8rem;font-weight:650;margin:.3rem 0}.overview-metric p,.overview-service p{overflow-wrap:anywhere}.overview-metric .muted{font-size:.85rem;line-height:1.5}.overview-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;margin-top:1.4rem}.overview-services{display:grid;gap:.8rem}.overview-state{font-weight:600}.overview-alerts,.overview-jobs{list-style:none;padding:0;margin:0}.overview-alerts li,.overview-jobs li{padding:1rem 0;border-bottom:1px solid var(--border,#334155);overflow-wrap:anywhere}.overview-alerts time,.overview-jobs time{display:block;font-size:.8rem;color:var(--muted,#aab6c4);margin-bottom:.4rem}.overview-alerts .badge{margin-right:.6rem}.overview-alerts p{line-height:1.5}.overview-jobs code{white-space:normal;overflow-wrap:anywhere}@media(max-width:1100px){.overview-columns{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.overview-metrics{grid-template-columns:minmax(0,1fr)}}
.overview-heading+ .muted{max-width:80ch}@media(min-width:1200px){section[aria-labelledby="overview-priorities"] .overview-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:601px) and (max-width:1199px){section[aria-labelledby="overview-priorities"] .overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.channel-table-scroll,.health-history{max-width:100%;overflow-x:auto}.channel-table-scroll:focus-visible,.health-history:focus-visible{outline:2px solid var(--accent,#7cb7ff);outline-offset:3px}.channel-health-cell{min-width:155px;max-width:210px;white-space:normal}.channel-health-cell small,.channel-health-cell a{display:block;margin-top:.35rem}.health-result{font-weight:600}.health-result[data-health-freshness="stale"],.health-result[data-health-freshness="changed"],.health-result[data-health-freshness="future"]{color:#f4c681}.health-history table{min-width:760px}.health-history td{vertical-align:top}
.channel-name-cell{min-width:170px;max-width:250px;overflow-wrap:anywhere}.channel-table-scroll td.actions details{min-width:78px}.channel-table-scroll td.actions details[open]{min-width:225px}.channel-table-scroll td.actions details form,.channel-table-scroll td.actions details>a{margin-top:.4rem}
.dt-bar{scroll-margin-top:130px}
.incident-timeline{list-style:none;padding:0}.incident-timeline li{border-left:3px solid var(--border,#334155);padding:.6rem 1rem;margin:.8rem 0;overflow-wrap:anywhere}.incident-timeline p{margin:.4rem 0}
.settings-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1rem;margin:1.25rem 0}.settings-card{display:block;padding:1.1rem;border:1px solid var(--border,#334155);border-radius:10px;background:var(--card,#18232d);color:inherit;text-decoration:none;min-width:0}.settings-card:hover{border-color:var(--accent,#7cb7ff)}.settings-card:focus-visible{outline:2px solid var(--accent,#7cb7ff);outline-offset:3px}.settings-card h2,.settings-card h3{font-size:1.08rem;margin:0 0 .6rem}.settings-card p{margin:0;color:var(--muted,#c1cad8);line-height:1.5}.settings-search,.settings-jump{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.settings-search label,.settings-jump label{display:grid;gap:.4rem;flex:1;min-width:200px;max-width:540px}.settings-jump label{max-width:340px}.settings-fields{border:0;padding:0;margin:0;min-width:0}.settings-panel{border-top:1px solid var(--border,#334155);padding-top:1rem;margin-top:1.5rem;scroll-margin-top:100px;min-width:0}.settings-panel h2{font-size:1.2rem}.settings-effect{line-height:1.55}.settings-fields:disabled input,.settings-fields:disabled select,.settings-fields:disabled textarea{opacity:1;color:var(--muted,#c1cad8)}
.settings-card h2,.settings-card h3,.settings-panel h2{border:0;padding-top:0}
.client-matrix-scroll{max-width:100%;overflow:auto}.client-matrix-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cfmatrix{min-width:700px;width:100%}.cfmatrix caption,.client-settings-diff caption{text-align:left;padding:.5rem 0;color:var(--mut)}.cfmatrix th[scope=row]{text-align:left;text-transform:none}.cfmatrix th[scope=row] small{display:block;font-weight:normal}.cfmatrix td:not(:last-child){text-align:center}.cfmatrix input[type=checkbox]{min-width:20px;min-height:20px}.client-settings-review{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:8px}.client-settings-diff{width:100%;text-align:left}.client-settings-diff th[scope=row]{text-transform:none}.client-settings-diff td,.client-settings-diff th{padding:.5rem;border-bottom:1px solid var(--border)}.client-settings-current{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px}
#branding-review-heading,#branding-editor{scroll-margin-top:100px}
.catalog-scroll{max-width:100%;overflow:auto}.catalog-scroll table{min-width:780px;width:100%}.catalog-title{min-width:220px;max-width:370px;white-space:normal;overflow-wrap:anywhere}.catalog-scroll small{display:block}.catalog-scroll details>summary{cursor:pointer}.bulkbar p{flex-basis:100%}
.vod-advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}#vod-results{scroll-margin-top:128px}[data-vod-list] .pager{display:flex;gap:12px;align-items:center;flex-wrap:wrap}@media(max-width:600px){.vod-advanced-grid{grid-template-columns:1fr}}
button:disabled,input[type=submit]:disabled,input[type=button]:disabled,.dt-pager button:disabled { background:var(--panel); color:var(--mut); border:1px solid var(--line); cursor:not-allowed; opacity:1; box-shadow:none; filter:none; }
input:disabled,select:disabled,textarea:disabled,.settings-fields:disabled input,.settings-fields:disabled select,.settings-fields:disabled textarea { background:var(--panel); color:var(--mut); opacity:1; cursor:not-allowed; }
@media (prefers-reduced-motion:reduce) { .side,.navgroup::after { transition:none!important; } .build-status-title::before,.ai-pending-sum::after { animation:none!important; } }
.ai-private-inputs { margin:.6rem 0; padding:.65rem; min-width:0; border:1px solid var(--line); border-radius:8px; }
.ai-private-inputs label { display:block; margin:.5rem 0; overflow-wrap:anywhere; }
.ai-private-inputs input { display:block; box-sizing:border-box; width:100%; min-width:0; margin-top:.25rem; }
.command-output-capture { white-space:pre-wrap; overflow-wrap:anywhere; max-height:32rem; overflow:auto; padding:1rem; border:1px solid var(--line); border-radius:8px; background:var(--surface-alt); }
@media (forced-colors:active) { .hint-ready,.field-help-popup { background:Canvas; color:CanvasText; border-color:CanvasText; box-shadow:none; } .hint-ready:focus-visible { outline-color:Highlight; } button:disabled,input:disabled,select:disabled,textarea:disabled,.dt-pager button:disabled,.settings-fields:disabled input,.settings-fields:disabled select,.settings-fields:disabled textarea { color:GrayText; background:Canvas; border-color:GrayText; } }
.build-job-card,.build-target-card,.build-worker{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;margin:14px 0;min-width:0}.build-job-card h3,.build-target-card h3,.build-worker h3{margin:0;border:0;padding:0}.build-job-card code,.build-proof code,.build-hash{overflow-wrap:anywhere;word-break:break-word}.build-state{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap;font-weight:600}.build-state[data-state=completed]{color:#b2efc6;border-color:#3b7751}.build-state[data-state=failed],.build-state[data-state=blocked]{color:#ffb7b7;border-color:#b95353}.build-state[data-state=running]{color:var(--link);border-color:var(--link)}.build-progress-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.build-progress-line progress{width:min(260px,100%);height:12px;accent-color:var(--acc)}.build-target-chips{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0}.build-target-chips li{border:1px solid var(--line);padding:4px 8px;border-radius:6px;font-size:12px}.build-output-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:12px;margin:12px 0}.build-output{border:1px solid var(--line);border-radius:8px;padding:14px;min-width:0;background:var(--bg)}.build-output h4{margin:0 0 8px;overflow-wrap:anywhere}.build-output p,.build-diagnostic{overflow-wrap:anywhere}.build-output details,.build-proof,.build-actions{margin-top:16px}.build-proof dd{margin:5px 0 15px}.build-proof pre,.build-credential pre{white-space:pre-wrap;overflow-wrap:anywhere}.build-actions form,.build-worker form{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.build-links{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}.build-credential{border:1px solid var(--warn);padding:20px;border-radius:10px}
.build-monitor-summary{cursor:pointer;font-weight:600;padding:3px 0}.build-monitor-content{display:flex;flex-direction:column;gap:6px;margin-top:10px}.build-card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.build-filter-panel{margin:12px 0}.build-filter-panel>summary{cursor:pointer;color:var(--link);padding:8px 0}
.build-job-card h3,.build-target-card code{overflow-wrap:anywhere}.build-job-card .page-heading>div:first-child{min-width:0;max-width:100%}.build-output-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px}.build-output-heading h4{min-width:0;flex:1 1 220px}.build-output-heading a{flex-shrink:0}
.branding-scopes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;margin:20px 0}.branding-scopes>section,.branding-review,.branding-preview{border:1px solid var(--line);background:var(--panel);padding:18px;border-radius:10px;min-width:0}.branding-scopes h2{font-size:17px;margin:0}.branding-scopes code,.branding-paths code{overflow-wrap:anywhere}.branding-workbench{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:18px;align-items:start}.branding-workbench .form{margin:0}.branding-preview h3{margin:0}.branding-preview p{font-size:13px}.branding-sample{background:var(--preview-surface);color:var(--preview-text);border-radius:8px;padding:20px;min-height:160px;display:flex;flex-direction:column;gap:18px;overflow-wrap:anywhere}.branding-sample img{max-width:180px;max-height:80px;object-fit:contain}.branding-sample-card{padding:16px;background:var(--preview-surface_alt);display:flex;flex-direction:column;gap:20px;border-radius:8px}.branding-sample-button{background:var(--preview-accent);color:var(--preview-accent_contrast);padding:10px 14px;border-radius:6px;align-self:flex-start}.branding-review{margin:20px 0}.branding-review td{white-space:normal;overflow-wrap:anywhere;max-width:380px}.branding-assets{margin:28px 0}.branding-assets>summary{font-size:18px;font-weight:600;cursor:pointer}.branding-upload-preview img{display:block;max-width:100%;max-height:180px;object-fit:contain}.branding-paths dd{margin:0 0 10px}.branding-workbench [hidden],.branding-upload-preview[hidden],.branding-sample [hidden]{display:none}@media(max-width:1100px){.branding-workbench{grid-template-columns:1fr}.branding-preview{order:-1}}
/* branding: logo / mark slots (raster previews on a checkerboard standing in for the client canvas: light for the plain logo and mark,
   dark for the dark variants, the favicon and the untinted menu icons), the preview's letter-tile mark and the menu-icon table */
.branding-sample-head{display:flex;align-items:center;gap:12px;min-width:0}.branding-sample-mark{flex:none;width:44px;height:44px;border-radius:10px;background:var(--preview-accent);color:var(--preview-accent_contrast);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;overflow:hidden}.branding-sample-mark img{width:100%;height:100%;object-fit:contain}
.branding-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px 18px;align-items:start}.branding-slot h4{margin:0}.branding-slot p{font-size:13px}
.logo-prev,.nav-icon-prev{display:flex;align-items:center;justify-content:center;margin:8px 0;overflow:hidden;border:1px solid var(--line);border-radius:6px}
.logo-prev,.nav-icon-prev,.canvas-dark .branding-upload-preview img,.nav-icons .branding-upload-preview img{background-color:#0b0e11;background-image:linear-gradient(45deg,#1f252c 25%,transparent 25%,transparent 75%,#1f252c 75%),linear-gradient(45deg,#1f252c 25%,transparent 25%,transparent 75%,#1f252c 75%);background-size:16px 16px;background-position:0 0,8px 8px}
.canvas-light .logo-prev,.canvas-light .branding-upload-preview img{background-color:#f5f7fa;background-image:linear-gradient(45deg,#dde3ea 25%,transparent 25%,transparent 75%,#dde3ea 75%),linear-gradient(45deg,#dde3ea 25%,transparent 25%,transparent 75%,#dde3ea 75%)}.canvas-light .logo-prev .muted{color:#475569}
.logo-prev{width:100%;height:96px}.logo-prev.logo-prev-mark{width:96px}.logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
.nav-icon-prev{width:56px;height:56px;margin:0}.nav-icon-prev img{width:40px;height:40px;object-fit:contain}.nav-icon-prev .muted{font-size:11px;text-align:center}
.nav-icons th,.nav-icons td{vertical-align:middle}.nav-icons th code{font-size:12px}.nav-icons form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0}
/* Keep long program paths and notes inside a keyboard-scrollable table. */
.command-table { max-width:100%; overflow:auto; }
.command-table table { min-width:660px; table-layout:fixed; width:100%; }
.command-table td, .command-table th { overflow-wrap:anywhere; }
.command-table .command-note { white-space:pre-wrap; }
.command-table tr { scroll-margin-top:128px; }
.command-views { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.command-views a { display:block; padding:8px 12px; border:1px solid var(--line); border-radius:6px; }
.command-views a[aria-current=page] { background:var(--panel); border-color:var(--acc); color:var(--fg); }
/* Dedicated AI workspace shares conversation controls with the optional drawer. */
#ai-fullpage { display:grid; grid-template-columns:220px minmax(0,1fr); gap:16px; min-height:500px; height:calc(100dvh - 265px); }
#ai-fullpage .ai-agents { display:flex; flex-direction:column; max-height:none; padding:0; overflow:auto; }
#ai-fullpage .ai-agent { min-height:62px; flex-shrink:0; }
#ai-fullpage .ai-agent .muted { white-space:normal; }
#ai-fullpage .ai-chat { display:flex; flex-direction:column; min-width:0; min-height:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--panel); }
#ai-fullpage .ai-log { min-height:0; padding:16px; }
#ai-fullpage .ai-msg { max-width:95%; }
.ai-current { margin:0; padding:8px 12px; border-bottom:1px solid var(--line); font-size:13px; }
.ai-input [hidden] { display:none; }
.ai-chip { max-width:100%; overflow-wrap:anywhere; }
#ai-attach { max-height:40vh; overflow:auto; min-width:0; }
.ai-attachment { padding:.65rem; margin:.4rem 0; border:1px solid var(--line); border-radius:8px; background:var(--panel); color:var(--fg); }
.ai-attachment summary { cursor:pointer; overflow-wrap:anywhere; }
.ai-attachment textarea { box-sizing:border-box; width:100%; min-width:0; resize:vertical; }
.ai-attachment img { display:block; max-width:100%; max-height:260px; object-fit:contain; }
.ai-image-preview { max-width:100%; max-height:260px; overflow:auto; margin-bottom:.5rem; }
.ai-image-preview:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.ai-image-preview.is-fullsize img { max-width:none; max-height:none; }
.ai-attachment .ai-attachment-consent { display:flex; align-items:flex-start; gap:.5rem; margin:.65rem 0; }
.ai-attachment .ai-attachment-consent input { flex:0 0 auto; width:auto; margin-top:.2rem; }
.ai-attachment small { display:block; margin:.5rem 0; }
.ai-action-review { margin:.75rem 0; padding:.65rem; border:1px solid var(--line); border-radius:8px; }
.ai-action-review summary { cursor:pointer; font-weight:600; }
.ai-action-review pre { max-height:280px; max-width:100%; overflow:auto; padding:.6rem; background:var(--bg); color:var(--fg); white-space:pre; direction:ltr; unicode-bidi:isolate; }
.ai-action-review pre:focus-visible { outline:2px solid var(--acc); outline-offset:2px; }
.ai-action-review p { overflow-wrap:anywhere; }
.ai-review-ack { display:flex; align-items:flex-start; gap:.5rem; margin:.75rem 0; }
.ai-review-ack input { width:auto; flex:0 0 auto; margin-top:.2rem; }
@media(max-width:1100px) {
  #ai-fullpage { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(360px,1fr); height:auto; }
  #ai-fullpage .ai-agents { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  #ai-fullpage .ai-chat { min-height:440px; }
  #ai-fullpage .ai-log { max-height:50dvh; }
}
@media(max-width:800px) { #ai-fullpage .ai-agents { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.resolver-observations { min-width:780px; }
.resolver-observations td { max-width:280px; overflow-wrap:anywhere; vertical-align:top; }
.provider-settings { border:1px solid var(--line); padding:14px; border-radius:8px; min-width:0; }
.provider-settings code { overflow-wrap:anywhere; }
.operations-counts { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.operations-counts .n { overflow-wrap:anywhere; }
