:root{
  --bg:#0e1116; --panel:#161b22; --panel2:#1c232d; --line:#2a3240; --line2:#374252;
  --ink:#e6edf3; --ink-dim:#9aa6b5; --ink-faint:#7f8b99;
  --accent:#4c9ee6; --accent-dim:#2d5f8a;
  --todo:#5c6773; --production:#e0a23c; --review:#4c9ee6; --fixes:#d9714e;
  --paused:#8b6bd9; --final:#3fb950; --failed:#c96a55; --cancel:#484f58; --unclear:#c0505c;
  --hi:#f0616d; --mid:#e0a23c; --lo:#3fb950;
  --radius:7px; --mono:'SF Mono',ui-monospace,'Cascadia Code',Menlo,Consolas,monospace;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --topbar-g1:#12161c; --topbar-g2:#0e1116; --thead-bg:#12161c; --we-bg:#0b0d11;
  --ink-on-dark:#0e1116; --btn-hover-bg:#222b36; --overdue-bg:#241418;
  --row-divider:#080a0d;
  --we-head:#243449; --we-head-ink:#a6c0e6; --we-band:rgba(76,110,166,.16); --we-band-line:rgba(76,110,166,.34);
}
html[data-theme="light"]{
  --bg:#f3f4f6; --panel:#ffffff; --panel2:#eef0f3; --line:#dde1e6; --line2:#c7cdd5;
  --ink:#1b2430; --ink-dim:#57616d; --ink-faint:#697482;
  --accent:#2f7cd1; --accent-dim:#1f5fa8;
  --topbar-g1:#ffffff; --topbar-g2:#f3f4f6; --thead-bg:#e9ebef; --we-bg:#e2e4e9;
  --ink-on-dark:#0e1116; --btn-hover-bg:#e3e6ea; --overdue-bg:#fdecee;
  --row-divider:#aab1bb;
  --we-head:#cdd9ec; --we-head-ink:#39547f; --we-band:rgba(70,110,170,.13); --we-band-line:rgba(70,110,170,.28);
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;color:inherit}
input,select,textarea{font-family:inherit;font-size:13px}
:where(button,input,select,textarea,[contenteditable="true"],[tabindex]):focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}
::-webkit-scrollbar{height:10px;width:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}

/* ---- top bar ---- */
.topbar{position:sticky;top:0;z-index:50;background:linear-gradient(180deg,var(--topbar-g1),var(--topbar-g2));border-bottom:1px solid var(--line);padding:10px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:9px}
.brand b{font-size:15px;font-weight:700;letter-spacing:.2px}
.brand span{font-size:10px;color:var(--ink-faint);font-family:var(--mono);text-transform:uppercase;letter-spacing:1.5px}
.tabs{display:flex;gap:2px;background:var(--panel);padding:3px;border-radius:var(--radius);border:1px solid var(--line)}
.tab{padding:6px 14px;border:none;background:transparent;color:var(--ink-dim);border-radius:5px;font-size:12px;font-weight:600;transition:.12s}
.tab.on{background:var(--panel2);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.3)}
.tab:hover:not(.on){color:var(--ink)}
.grow{flex:1}
.search{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:7px 11px;color:var(--ink);width:210px;transition:.12s}
.search:focus{outline:none;border-color:var(--accent-dim);width:250px}
.btn{background:var(--panel2);border:1px solid var(--line2);border-radius:var(--radius);padding:7px 13px;font-size:12px;font-weight:600;color:var(--ink);transition:.12s;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--accent-dim);background:var(--btn-hover-bg)}
.btn.primary{background:var(--accent-dim);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:#2d6a9c}

/* profile menu */
.account-menu{position:relative;align-items:center}
.account-trigger{height:34px;display:flex;align-items:center;gap:7px;background:transparent;border:1px solid transparent;border-radius:6px;padding:3px 6px;color:var(--ink-dim)}
.account-trigger:hover,.account-trigger[aria-expanded="true"]{background:var(--panel2);border-color:var(--line2);color:var(--ink)}
.account-trigger img{width:26px;height:26px;border-radius:50%;object-fit:cover}
.account-trigger #accName{font-size:12px;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-caret{font-size:12px;color:var(--ink-faint)}
.account-pop{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:80;min-width:150px;padding:4px;background:var(--panel);border:1px solid var(--line2);border-radius:7px;box-shadow:0 10px 28px rgba(0,0,0,.35)}
.account-pop.on{display:block}
.account-pop button{display:block;width:100%;border:0;background:transparent;border-radius:4px;padding:8px 10px;text-align:left;font-size:12px;color:var(--ink)}
.account-pop button:hover{background:var(--panel2)}
.problem-menu{position:relative}
.icon-topbar{position:relative;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink-dim)}
.icon-topbar>svg{width:18px;height:18px;display:block;flex:0 0 18px}
.icon-topbar:hover,.icon-topbar[aria-expanded="true"]{border-color:var(--line2);background:var(--panel2);color:var(--ink)}
.icon-topbar span{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--hi);color:#fff;font:700 9px/18px var(--mono)}
.problem-pop{display:none;position:absolute;right:0;top:calc(100% + 6px);width:min(390px,calc(100vw - 24px));max-height:62vh;overflow:auto;z-index:82;background:var(--panel);border:1px solid var(--line2);border-radius:7px;box-shadow:0 14px 36px rgba(0,0,0,.38)}
.problem-pop.on{display:block}
.problem-pop-head{position:sticky;top:0;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line2);background:var(--panel);font-size:11px;font-weight:700;z-index:1}
.problem-tabs{display:flex;padding:2px;border:1px solid var(--line);border-radius:5px;background:var(--bg)}
.problem-tabs button,.problem-read-all{border:0;background:transparent;color:var(--ink-faint);padding:3px 6px;font-size:9px}
.problem-tabs button.on{background:var(--panel2);color:var(--ink)}
.problem-read-all{color:var(--accent)}
.problem-item{display:block;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}
.problem-item:hover{background:var(--panel2)}
.problem-item strong{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.problem-item span{display:block;margin-top:2px;color:var(--ink-faint);font-size:10px;white-space:normal}
.problem-item.read{opacity:.55}
.problem-empty{padding:22px 12px;text-align:center;color:var(--ink-faint);font-size:11px}

/* ---- filter row ---- */
.filters{display:flex;gap:8px;padding:9px 16px;background:var(--panel);border-bottom:1px solid var(--line);align-items:center;flex-wrap:wrap;font-size:12px}
.filters label{color:var(--ink-faint);font-family:var(--mono);text-transform:uppercase;font-size:10px;letter-spacing:1px;margin-right:-2px}
.fsel{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:5px 9px;color:var(--ink)}
.fsel:focus{outline:none;border-color:var(--accent-dim)}
.count{margin-left:auto;color:var(--ink-faint);font-family:var(--mono);font-size:11px}
.filter-presets{display:flex;align-items:center;gap:5px}
.filter-presets #fPreset{width:142px;min-width:112px}
.filter-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--ink-dim);font-size:10px;font-weight:700;white-space:nowrap}
.filter-action:hover{border-color:var(--accent-dim);background:var(--btn-hover-bg);color:var(--ink)}
.filter-action svg{width:14px;height:14px;flex:0 0 14px}
.filter-action.icon-only{width:30px;padding:0;color:var(--hi)}
.table-density-toggle{display:none!important;align-items:center;gap:7px;margin:0!important;padding:0 2px;cursor:pointer;text-transform:none!important;letter-spacing:0!important}
.table-view .table-density-toggle{display:flex!important}
.table-density-toggle input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.table-density-toggle b{color:var(--ink-dim);font-size:10px;white-space:nowrap}
.toggle-track{display:flex;align-items:center;width:30px;height:18px;padding:2px;border:1px solid var(--line2);border-radius:10px;background:var(--panel2);transition:background .15s,border-color .15s}
.toggle-track span{width:12px;height:12px;border-radius:50%;background:var(--ink-faint);transition:transform .15s,background .15s}
.table-density-toggle input:checked+.toggle-track{border-color:var(--accent);background:var(--accent-dim)}
.table-density-toggle input:checked+.toggle-track span{transform:translateX(12px);background:#fff}
.table-density-toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}
.filter-preset-pop{width:250px}
.filter-preset-pop label{display:block;margin-bottom:6px;color:var(--ink-faint);font-size:10px;font-weight:700}
.filter-preset-pop input{width:100%;height:32px;margin-bottom:8px;padding:5px 8px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink)}
.filter-preset-pop-actions{display:flex;justify-content:flex-end;gap:6px}
.filter-preset-pop .mini.primary{border-color:var(--accent);background:var(--accent-dim);color:#fff}
@media(max-width:1200px){
  .filter-action span{display:none}
  .filter-action{width:30px;padding:0}
}
.gantt-view>.filters{display:none}
.gantt-view .topbar .search{display:none}
.scripts-view>.filters,.scripts-view>.kpis{display:none!important}

/* ---- KPI strip ---- */
.kpis{display:grid;grid-template-columns:minmax(390px,2.6fr) repeat(6,minmax(112px,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line);overflow-x:auto}
.kpi{display:flex;align-items:baseline;gap:8px;background:var(--panel);padding:7px 12px;min-width:0}
.kpi .n{font-size:18px;font-weight:800;font-family:var(--mono);line-height:1}
.kpi .l{font-size:9px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.6px;overflow:hidden;text-overflow:ellipsis}
.kpi.a .n{color:var(--final)} .kpi.b .n{color:var(--production)} .kpi.c .n{color:var(--review)}
.kpi.d .n{color:var(--hi)} .kpi.e .n{color:var(--ink)}
.kpi.e.has-overdue{border-left:3px solid var(--hi);background:var(--overdue-bg)}
.kpi.e.has-overdue .n{color:var(--hi);font-weight:800}
.kpi.f .n{color:var(--accent)}
.kpi.g .n{color:var(--ink-dim)}
.kpi.g.has-attention{border-left:3px solid var(--mid);background:rgba(224,162,60,.08)}
.kpi.g.has-attention .n{color:var(--mid)}
.contract-kpi{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-width:390px;padding:5px 9px;background:var(--panel)}
.contract-kpi-title{display:flex;align-items:center;gap:5px;color:var(--ink-faint);font:700 9px var(--mono);text-transform:uppercase;white-space:nowrap}
.quota-gear{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;background:transparent;color:var(--ink-dim)}
.quota-gear:hover{color:var(--ink);background:var(--panel2)}
.quota-gear svg{width:15px;height:15px}
.quota-kpi-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));min-width:0}
.quota-kpi-item{position:relative;min-width:0;padding:1px 9px 5px;border-left:1px solid var(--line)}
.quota-kpi-item strong{display:block;font:800 14px/18px var(--mono);white-space:nowrap}
.quota-kpi-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-faint);font-size:9px}
.quota-kpi-item i{position:absolute;left:9px;right:9px;bottom:1px;height:2px;background:var(--line2);overflow:hidden}
.quota-kpi-item i::after{content:"";display:block;width:var(--quota-progress,0%);height:100%;background:var(--quota-color,var(--accent))}
.quota-kpi-item.good{--quota-color:var(--final)}.quota-kpi-item.good strong{color:var(--final)}
.quota-kpi-item.warning{--quota-color:var(--mid)}.quota-kpi-item.warning strong{color:var(--mid)}
.quota-kpi-item.bad{--quota-color:var(--hi)}.quota-kpi-item.bad strong{color:var(--hi)}
.quota-kpi-empty{padding-left:8px;color:var(--ink-faint);font-size:10px}

.wrap{padding:0}
.view{display:none} .view.on{display:block}
.stats-view .tracker-only,.stats-view>.filters,.stats-view>.kpis,
.social-view .tracker-only,.social-view>.filters,.social-view>.kpis{display:none!important}

/* ---- TABLE ---- */
.tblscroll{overflow-x:auto; min-height: 60vh;}
.bulk-bar{position:sticky;top:55px;z-index:24;display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line2);background:var(--panel)}
.bulk-bar[hidden]{display:none}
.bulk-bar strong{font-size:11px;margin-right:4px}
.bulk-bar select,.bulk-bar input{height:30px;min-width:150px;background:var(--panel2);border:1px solid var(--line2);border-radius:5px;padding:4px 8px;color:var(--ink)}
.clip-main-row.row-selected,.clip-stage-row.row-selected{background:rgba(76,158,230,.10)!important}
.clip-main-row.row-focus,.clip-stage-row.row-focus{animation:row-focus 2.2s ease}
@keyframes row-focus{0%,35%{background:rgba(224,162,60,.28)}100%{background:transparent}}
table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap; table-layout: fixed;}
.compact-only{display:none}
#tbl.table-compact .compact-only{display:table-cell}
#tbl:not(.table-compact) .compact-only{display:table-cell!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;border:0!important;visibility:hidden;overflow:hidden}
#tbl th:nth-child(1),#tbl td:nth-child(1){width:24px!important;min-width:24px!important;max-width:24px!important;padding-left:4px;padding-right:4px}
#tbl th:nth-child(2),#tbl td:nth-child(2){width:38px!important;min-width:38px!important;max-width:38px!important;padding-left:4px;padding-right:4px}
thead th{position:sticky;top:0;background:var(--thead-bg);color:var(--ink-dim);text-align:left;padding:9px 10px;font-size:10px;text-transform:uppercase;letter-spacing:.8px;font-weight:700;border-bottom:2px solid var(--line2);cursor:pointer;user-select:none;z-index:10;}
thead th:hover{color:var(--ink)}
thead th .ar{opacity:.4;margin-left:3px}

/* Drag & Drop Handle & Rows */
.dh {cursor: grab; color: var(--ink-faint); text-align: center; font-size: 14px;}
tr.dragging {opacity: 0.4; background: var(--line2) !important;}
tr.drop-target {border-top: 2px solid var(--accent) !important;}

/* Column Resizer */
.resizer {
  position: absolute; right: 0; top: 0; width: 6px; height: 100%;
  cursor: col-resize; user-select: none; z-index: 15;
}
.resizer:hover, .resizing { background: rgba(76, 158, 230, 0.5); }

/* Grouping Row */
.group-row td { background: var(--panel2); padding: 8px 12px; font-weight: bold; color: var(--accent); border-bottom: 2px solid var(--line); font-size: 13px; }
.group-row .g-count { font-weight: normal; color: var(--ink-dim); font-size: 11px; margin-left: 8px; }
.table-more-row td{padding:12px;text-align:center;background:var(--bg);border-bottom:0}.table-more{margin:auto;color:var(--ink-dim)}

tbody td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:middle; overflow: hidden; text-overflow: ellipsis;}
tbody tr:hover{background:transparent}
tbody tr.archived-owner{opacity:.5}
.clip-main-row td{padding-top:7px;padding-bottom:4px;border-bottom:0}
.clip-stage-row td{padding-top:0;padding-bottom:6px;border-bottom:2px solid var(--row-divider)}
html[data-theme="light"] .clip-stage-row td{border-bottom:1.5px solid #20242a}
.clip-main-row,.clip-stage-row{--row-status-color:var(--todo);background:color-mix(in srgb,var(--row-status-color) 17%,var(--bg))}
.clip-main-row.row-status-unclear,.clip-stage-row.row-status-unclear{--row-status-color:var(--unclear)}
.clip-main-row.row-status-todo,.clip-stage-row.row-status-todo{--row-status-color:var(--todo)}
.clip-main-row.row-status-production,.clip-stage-row.row-status-production{--row-status-color:var(--production)}
.clip-main-row.row-status-review,.clip-stage-row.row-status-review{--row-status-color:var(--review)}
.clip-main-row.row-status-fixes,.clip-stage-row.row-status-fixes{--row-status-color:var(--fixes)}
.clip-main-row.row-status-paused,.clip-stage-row.row-status-paused{--row-status-color:var(--paused)}
.clip-main-row.row-status-final,.clip-stage-row.row-status-final{--row-status-color:var(--final)}
.clip-main-row.row-status-failed,.clip-stage-row.row-status-failed{--row-status-color:var(--failed)}
.clip-main-row.row-status-cancel,.clip-stage-row.row-status-cancel{--row-status-color:var(--cancel)}
.clip-main-row.row-hover-pair,.clip-stage-row.row-hover-pair{background:color-mix(in srgb,var(--row-status-color) 25%,var(--panel))!important}
html[data-theme="light"] .clip-main-row,html[data-theme="light"] .clip-stage-row{background:color-mix(in srgb,var(--row-status-color) 22%,var(--bg))}
html[data-theme="light"] .clip-main-row.row-hover-pair,html[data-theme="light"] .clip-stage-row.row-hover-pair{background:color-mix(in srgb,var(--row-status-color) 30%,var(--panel))!important}
#tbl.table-compact th:nth-child(6){width:200px!important}
#tbl .clip-stage-row.row-detail-collapsed{display:none}
#tbl.table-compact .clip-stage-row{display:none}
#tbl.table-compact .clip-stage-row.row-detail-expanded{display:table-row}
#tbl .clip-main-row.row-detail-collapsed td{padding-top:4px;padding-bottom:4px;border-bottom:1px solid var(--row-divider)}
html[data-theme="light"] #tbl .clip-main-row.row-detail-collapsed td{border-bottom-color:#20242a}
#tbl .clip-main-row.row-detail-collapsed .state-stack .prio{display:none}
#tbl .clip-main-row.row-detail-collapsed .compact-executor{height:28px;padding:3px 6px;border-color:var(--line2);background:color-mix(in srgb,var(--panel2) 72%,transparent);font-size:10px}
#tbl .clip-main-row.row-detail-collapsed .calendar-grid{grid-template-columns:1fr 1fr;gap:5px}
#tbl .clip-main-row.row-detail-collapsed .calendar-start,#tbl .clip-main-row.row-detail-collapsed .calendar-eventDate{display:none}
#tbl .clip-main-row.row-detail-collapsed .calendar-item{grid-template-columns:36px minmax(56px,1fr)}
#tbl .clip-main-row.row-detail-collapsed .table-note-editor{height:26px;line-height:24px;overflow:hidden;white-space:nowrap!important;text-overflow:ellipsis;padding-top:0;padding-bottom:0}
#tbl .clip-main-row.row-detail-collapsed .note-expand{top:1px;width:22px;height:22px;font-size:12px}
#tbl .clip-main-row.row-detail-collapsed .comment-badge{top:2px;height:19px;line-height:17px}
#tbl .clip-main-row.row-detail-collapsed .series-meta{height:16px}
#tbl .clip-main-row.row-detail-collapsed .series-count{display:none}

/* ---- MAGNIFIC STATISTICS ---- */
.stats-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px 14px;border-bottom:1px solid var(--line);background:var(--panel)}
.stats-head h2{font-size:17px;line-height:1.2;margin-top:5px}
.period-filter-btn{min-width:142px;height:34px;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;padding:0 11px}
.period-filter-btn::after{content:'▾';color:var(--ink-dim);font-size:12px;margin-left:auto}
.date-filter-pop{position:fixed;z-index:120;width:286px;padding:14px;display:grid;gap:12px;background:var(--panel);border:1px solid var(--line2);border-radius:6px;box-shadow:0 14px 36px rgba(0,0,0,.24);isolation:isolate}
.date-filter-pop label{display:grid;gap:6px;margin:0;color:var(--ink-dim);font-size:9px;line-height:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.date-filter-pop input{display:block;width:100%;height:36px;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink);padding:5px 8px;font:11px var(--mono)}
.date-filter-month{position:relative;display:block}
.date-filter-month input{color:var(--ink);cursor:pointer}
.date-filter-month-label{display:none}
.date-filter-divider{display:flex;align-items:center;gap:8px;color:var(--ink-faint);font-size:9px;text-transform:uppercase}
.date-filter-divider::before,.date-filter-divider::after{content:"";height:1px;background:var(--line);flex:1}
.date-filter-range{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.date-filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px}
.date-filter-actions button{height:34px;padding:0 10px;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink);font-size:11px}
.date-filter-actions button.primary{border-color:var(--accent);background:var(--accent);color:#fff}
.stats-back{display:inline-flex;align-items:center;gap:7px;min-height:32px;border:0;background:transparent;color:var(--accent);font-size:13px;font-weight:700;padding:4px 0}
.stats-back span:first-child{font-size:18px;font-weight:500;line-height:1}
.stats-back:hover{text-decoration:underline}
.stats-sync-state{font-size:11px;color:var(--ink-faint);margin-top:5px}
.stats-sync-state.error{color:var(--hi)}
.stats-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.stats-period{display:flex;border:1px solid var(--line2);border-radius:6px;padding:2px;background:var(--bg)}
.stats-period button{border:0;background:transparent;color:var(--ink-dim);padding:5px 9px;border-radius:4px;font-size:11px;white-space:nowrap}
.stats-period button.on{background:var(--panel2);color:var(--ink)}
.stats-kpis{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));border-bottom:1px solid var(--line);background:var(--line);gap:1px}
.stats-kpi{background:var(--panel);padding:12px 16px;min-height:66px}
.stats-kpi strong{display:block;font:800 20px/1.15 var(--mono)}
.stats-kpi span{display:block;margin-top:4px;color:var(--ink-faint);font-size:10px;text-transform:uppercase;letter-spacing:.7px}
.stats-kpi.credits strong{color:var(--accent)}
.stats-kpi.balance strong{color:var(--final)}
.stats-kpi.reconcile.good strong{color:var(--final)}
.stats-kpi.reconcile.bad{background:var(--overdue-bg)}
.stats-kpi.reconcile.bad strong{color:var(--hi)}
.stats-skeleton strong,.stats-skeleton span,.stats-loading-line{display:block;border-radius:3px;background:var(--panel2);animation:stats-pulse 1.1s ease-in-out infinite alternate}
.stats-skeleton strong{width:42%;height:18px}.stats-skeleton span{width:72%;height:8px;margin-top:9px}
.stats-loading-cell{padding:18px!important}.stats-loading-line{height:10px;width:72%;margin-bottom:10px}.stats-loading-line.short{width:44%}
@keyframes stats-pulse{from{opacity:.45}to{opacity:1}}
.stats-table-wrap{overflow:auto;min-height:55vh}
.stats-table{min-width:1120px;table-layout:auto}
.stats-table th{cursor:default;position:sticky;top:0}
.stats-table th:nth-child(1){min-width:210px}
.stats-table th:nth-child(2){min-width:190px}
.stats-table th:nth-child(n+3):nth-child(-n+6){width:112px}
.stats-table th:nth-child(7){min-width:170px}
.stats-table th:nth-child(8){min-width:130px}
.stats-table th:last-child{width:52px}
.stats-person-row td{height:52px;background:var(--bg)}
.stats-person-row:hover td{background:var(--panel)}
.stats-person-name{display:flex;align-items:center;gap:8px;font-weight:700}
.stats-archived-badge{display:inline-flex;align-items:center;height:17px;padding:0 5px;border:1px solid var(--line2);border-radius:4px;color:var(--ink-faint);font-size:8px;font-weight:600;text-transform:uppercase}
.stats-expand{width:22px;height:22px;border:1px solid var(--line2);background:var(--panel2);border-radius:4px;color:var(--ink-dim);font-size:10px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px}
.stats-expand:hover{border-color:var(--accent-dim);color:var(--ink)}
.stats-folder-names{display:flex;align-items:center;gap:4px;flex-wrap:wrap;white-space:normal}
.stats-folder-chip{display:inline-block;border:1px solid var(--line2);border-radius:4px;padding:2px 5px;font-size:10px;color:var(--ink-dim);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stats-folder-names a.stats-folder-chip{text-decoration:none}
.stats-folder-chip.primary{border-color:var(--accent-dim);color:var(--ink)}
.stats-folder-chip.space{border-style:dashed;color:var(--accent)}
.stats-folder-none{font-size:11px;color:var(--hi)}
.metric-pair{font-family:var(--mono);line-height:1.2}
.metric-pair strong{display:block;font-size:12px;color:var(--ink)}
.metric-pair span{display:block;margin-top:3px;font-size:9px;color:var(--ink-faint)}
.stats-model{white-space:normal;line-height:1.25;font-size:11px}
.stats-last{font:10px/1.35 var(--mono);color:var(--ink-dim);white-space:normal}
.stats-folder-open{width:28px;height:28px;padding:0;justify-content:center;font-size:17px}
.stats-detail-row td{padding:0;border-bottom:2px solid var(--line2);background:rgba(76,158,230,.06)}
.stats-detail{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(460px,1.2fr);gap:24px;padding:14px 52px 18px;white-space:normal}
.stats-detail h4{font-size:10px;text-transform:uppercase;color:var(--ink-faint);letter-spacing:.7px;margin-bottom:6px}
.stats-subtable{width:100%;table-layout:auto;font-size:11px}
.stats-subtable th{position:static;background:transparent;border-bottom:1px solid var(--line2);padding:5px 6px;font-size:9px}
.stats-subtable td{padding:5px 6px;background:transparent!important;height:auto;border-bottom:1px solid var(--line);white-space:normal}
.stats-subtable th:not(:first-child),.stats-subtable td:not(:first-child){text-align:right}
.stats-subtable .empty{padding:14px}
.stats-source-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.stats-source-link{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:2px}
.stats-source-link:hover{color:var(--accent);text-decoration-color:var(--accent)}
.stats-source-subtable th:last-child,.stats-source-subtable td:last-child{width:30px;text-align:center!important;padding-left:2px;padding-right:2px}
.stats-source-assign{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;padding:0;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink-dim);font-size:15px;line-height:1}
.stats-source-assign:hover,.stats-source-assign:focus,.stats-source-assign[aria-expanded="true"]{border-color:var(--accent-dim);background:var(--panel);color:var(--accent);outline:none}
.stats-assignee-menu{position:fixed;z-index:180;width:min(248px,calc(100vw - 16px));max-height:min(420px,calc(100vh - 16px));overflow-y:auto;padding:5px;background:var(--panel);border:1px solid var(--line2);border-radius:7px;box-shadow:0 14px 36px rgba(0,0,0,.38)}
.stats-assignee-menu[hidden]{display:none}
.stats-assignee-head{padding:7px 8px 8px;color:var(--ink);font-size:11px;font-weight:700}
.stats-assignee-section{padding:6px 8px 4px;color:var(--ink-faint);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.7px}
.stats-assignee-section.archived{margin-top:3px;border-top:1px solid var(--line)}
.stats-assignee-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:30px;padding:6px 8px;border:0;border-radius:4px;background:transparent;color:var(--ink-dim);font-size:11px;text-align:left}
.stats-assignee-option:hover,.stats-assignee-option:focus{background:var(--panel2);color:var(--ink);outline:none}
.stats-assignee-option.current{color:var(--accent)}
.stats-assignee-option b{color:var(--final);font-size:11px}
.stats-assignee-separator{height:1px;margin:4px 3px;background:var(--line)}
.stats-assignee-option.unassign{color:var(--ink-faint)}
.stats-model-summary{border-top:1px solid var(--line2);padding-top:14px;background:var(--panel)}
.stats-model-summary h3{padding:0 20px 10px;font-size:13px}
.stats-model-summary h3 span{font-weight:400;color:var(--ink-faint);margin-left:5px}
.stats-model-table-wrap{min-height:0;border-top:1px solid var(--line)}
.stats-model-table{min-width:760px}
.stats-model-table th:first-child{min-width:280px}
.stats-model-table td{background:var(--bg);height:38px}
.stats-model-table td:not(:first-child){font-family:var(--mono);text-align:right}
.stats-model-table th:not(:first-child){text-align:right}

/* ---- SERIES SOCIAL ANALYTICS ---- */
.social-page{min-height:calc(100vh - 55px);background:var(--bg)}
.social-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:16px 20px 14px;border-bottom:2px solid var(--line2);background:var(--panel)}
.social-head h2{font-size:18px;line-height:1.2;margin-top:5px}
.social-sync-state{margin-top:5px;color:var(--ink-faint);font-size:11px}
.social-sync-state.error{color:var(--hi)}
.social-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.social-kpis{display:grid;grid-template-columns:repeat(6,minmax(118px,1fr));gap:1px;border-bottom:2px solid var(--line2);background:var(--line2)}
.social-kpi{min-height:72px;padding:13px 16px;background:var(--panel)}
.social-kpi strong{display:block;font:800 21px/1.1 var(--mono);font-variant-numeric:tabular-nums}
.social-kpi span{display:block;margin-top:5px;color:var(--ink-faint);font-size:9px;line-height:1.25;text-transform:uppercase;letter-spacing:.55px}
.social-kpi small{display:block;margin-top:3px;color:var(--ink-dim);font:9px/1.2 var(--mono)}
.social-kpi.primary strong{color:var(--accent)}
.social-kpi.good strong{color:var(--final)}
.social-kpi.unknown strong{color:var(--ink-faint)}
.social-overview{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);border-bottom:2px solid var(--row-divider)}
.social-trend-panel{min-width:0;padding:16px 20px 18px;border-right:2px solid var(--row-divider);background:var(--panel)}
.social-trend-panel>header,.social-connectors>header,.social-publications>header,.social-entry-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.social-trend-panel h3,.social-connectors h3,.social-publications h3,.social-entry-panel h3{font-size:13px}
.social-trend-panel p,.social-publications p,.social-entry-panel p{margin-top:2px;color:var(--ink-faint);font-size:10px}
.social-chart-legend{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.social-chart-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--ink-dim);font-size:9px}
.social-chart-legend i{width:12px;height:2px;background:var(--platform-color)}
.social-trend{height:235px;margin-top:12px;position:relative}
.social-trend svg{display:block;width:100%;height:100%;overflow:visible}
.social-chart-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.social-chart-axis{fill:var(--ink-faint);font:9px var(--mono)}
.social-chart-line{fill:none;stroke:var(--platform-color);stroke-width:2;vector-effect:non-scaling-stroke}
.social-chart-point{fill:var(--platform-color);stroke:var(--panel);stroke-width:1.5;vector-effect:non-scaling-stroke}
.social-empty{height:100%;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line2);color:var(--ink-faint);font-size:11px;text-align:center;padding:16px}
.social-connectors{min-width:0;background:var(--panel)}
.social-connectors>header{padding:16px 16px 10px}
.social-connectors>header span{color:var(--ink-faint);font:8px var(--mono);text-transform:uppercase;letter-spacing:.6px}
.social-connector{display:grid;grid-template-columns:9px minmax(90px,.7fr) minmax(0,1.3fr);align-items:start;gap:8px;padding:9px 16px;border-top:1px solid var(--line)}
.social-connector-dot{width:7px;height:7px;margin-top:4px;border-radius:50%;background:var(--ink-faint)}
.social-connector.ok .social-connector-dot{background:var(--final)}
.social-connector.partial .social-connector-dot,.social-connector.never .social-connector-dot{background:var(--mid)}
.social-connector.error .social-connector-dot,.social-connector.not_configured .social-connector-dot{background:var(--hi)}
.social-connector strong{font-size:10px}
.social-connector span{min-width:0;color:var(--ink-faint);font-size:9px;line-height:1.35;overflow-wrap:anywhere}
.social-publications{background:var(--panel)}
.social-publications>header{padding:14px 20px 10px;border-bottom:1px solid var(--line)}
.social-table-wrap{overflow:auto}
.social-table{width:100%;min-width:1040px;border-collapse:collapse;table-layout:auto}
.social-table th{position:sticky;top:0;z-index:1;padding:8px 10px;border-bottom:1px solid var(--line2);background:var(--thead-bg);color:var(--ink-faint);font-size:9px;text-align:left;white-space:nowrap}
.social-table td{height:58px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--bg);vertical-align:middle}
.social-table tbody tr:hover td{background:var(--panel2)}
.social-table th:not(:first-child),.social-table td:not(:first-child){text-align:right}
.social-table th:last-child,.social-table td:last-child{width:44px;text-align:center}
.social-publication-title{display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:9px;min-width:210px;text-align:left}
.social-platform-mark{display:flex;width:27px;height:27px;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--platform-color) 70%,var(--line));border-radius:5px;color:var(--platform-color);font:800 9px var(--mono)}
.social-publication-title span{display:flex;min-width:0;flex-direction:column}
.social-publication-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.social-publication-title small{margin-top:2px;color:var(--ink-faint);font-size:9px}
.social-publication-title a{color:inherit;text-decoration:none}
.social-publication-title a:hover strong{color:var(--accent);text-decoration:underline}
.social-metric{font:700 12px var(--mono);font-variant-numeric:tabular-nums}
.social-metric.missing{color:var(--ink-faint);font-weight:400}
.social-metric-sub{display:block;margin-top:2px;color:var(--ink-faint);font:8px var(--mono)}
.social-delta{font:700 10px var(--mono);color:var(--final)}
.social-delta.zero{color:var(--ink-faint);font-weight:400}
.social-capture{display:block;color:var(--ink-dim);font:9px/1.25 var(--mono)}
.social-capture small{display:block;color:var(--ink-faint);font:8px var(--sans)}
.social-manual-open{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink-dim);font-size:15px}
.social-manual-open:hover{border-color:var(--accent-dim);color:var(--accent)}
.social-entry-panel{margin:16px 20px 22px;border:1px solid var(--line2);border-radius:7px;background:var(--panel)}
.social-entry-panel>header{padding:12px 14px;border-bottom:1px solid var(--line)}
.social-panel-close{width:28px;height:28px;border:0;border-radius:4px;background:transparent;color:var(--ink-faint);font-size:19px;line-height:1}
.social-panel-close:hover{background:var(--panel2);color:var(--ink)}
.social-form{display:grid;grid-template-columns:repeat(4,minmax(135px,1fr));gap:10px;padding:14px}
.social-form label{display:grid;align-content:start;gap:5px;color:var(--ink-faint);font-size:9px;font-weight:700}
.social-form input,.social-form select{width:100%;height:34px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink);padding:5px 8px;font-size:11px}
.social-form-wide{grid-column:span 2}
.social-form-url{grid-column:span 2}
.social-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:4px}
.social-metrics-form{grid-template-columns:repeat(5,minmax(125px,1fr))}
.social-platform-instagram{--platform-color:#e36a9c}
.social-platform-telegram{--platform-color:#43a4dc}
.social-platform-vk{--platform-color:#5b92e5}
.social-platform-rutube{--platform-color:#e55a61}

/* source assignment */
.modal.modal-folders{max-width:980px}
.stats-source-tabs{display:flex;width:max-content;border:1px solid var(--line2);border-radius:6px;padding:2px;background:var(--bg)}
.stats-source-tabs button{min-width:88px;border:0;background:transparent;color:var(--ink-dim);padding:6px 10px;border-radius:4px;font-size:11px}
.stats-source-tabs button.on{background:var(--panel2);color:var(--ink)}
.stats-source-manager{display:grid;grid-template-columns:minmax(360px,1fr) 400px;gap:18px;align-items:start}
.stats-source-list{display:flex;flex-direction:column;gap:10px;min-width:0}
.stats-source-preview{display:flex;flex-direction:column;gap:8px;min-width:0}
.stats-source-preview>strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stats-source-preview-frame{width:400px;max-width:100%;min-height:198px;background:var(--bg);border:1px solid var(--line2);border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--ink-faint);font-size:11px}
.stats-source-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;padding:4px}
.stats-source-preview-grid[hidden],.stats-source-preview-frame span[hidden]{display:none}
.stats-source-preview-grid a{display:block;aspect-ratio:1;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:var(--panel2)}
.stats-source-preview-grid img{display:block;width:100%;height:100%;object-fit:cover}
.stats-source-preview-grid a:hover{border-color:var(--accent-dim)}
.folder-search{width:100%;background:var(--panel2);border:1px solid var(--line2);border-radius:6px;padding:8px 10px;color:var(--ink)}
.folder-search:focus{outline:none;border-color:var(--accent-dim)}
.folder-list{border:1px solid var(--line);border-radius:6px;max-height:52vh;overflow-y:auto}
.folder-row{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(100px,180px) 28px;align-items:center;gap:8px;min-height:38px;padding:6px 9px;border-bottom:1px solid var(--line)}
.folder-row:last-child{border-bottom:0}
.folder-row:hover{background:var(--panel2)}
.folder-row.selected{background:rgba(76,158,230,.09)}
.folder-row input[type="checkbox"],.folder-row input[type="radio"]{width:15px;height:15px;accent-color:var(--accent)}
.folder-row .folder-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-row .folder-name small{color:var(--ink-faint);font-weight:400}
.folder-owner{font-size:10px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.folder-owner.other{color:var(--mid)}
.folder-primary{display:flex;justify-content:center}
.clip-main-row.series-anchor,.clip-stage-row.series-anchor{background:color-mix(in srgb,var(--accent) 4%,color-mix(in srgb,var(--row-status-color) 17%,var(--bg)))}
.clip-main-row.series-expanded-child,.clip-stage-row.series-expanded-child{background:color-mix(in srgb,var(--accent) 8%,color-mix(in srgb,var(--row-status-color) 18%,var(--bg)))}
html[data-theme="light"] .clip-main-row.series-anchor,html[data-theme="light"] .clip-stage-row.series-anchor{background:color-mix(in srgb,var(--accent) 4%,color-mix(in srgb,var(--row-status-color) 22%,var(--bg)))}
html[data-theme="light"] .clip-main-row.series-expanded-child,html[data-theme="light"] .clip-stage-row.series-expanded-child{background:color-mix(in srgb,var(--accent) 7%,color-mix(in srgb,var(--row-status-color) 23%,var(--bg)))}
.clip-main-row.series-expanded-child td:nth-child(1){padding-left:8px}
.clip-main-row.series-expanded-child td:nth-child(2){padding-left:8px}
.clip-main-row.series-expanded-child td:nth-child(3){position:relative;padding-left:32px}
.clip-main-row.series-expanded-child td:nth-child(3)::before{content:"";position:absolute;left:15px;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--accent) 55%,var(--line2))}
.clip-stage-row.series-expanded-child td:nth-child(3){padding-left:32px}
.clip-stage-row.series-expanded-child td{border-bottom-color:var(--accent-dim)}
.clip-main-row.row-attention td:first-child,.clip-stage-row.row-attention td:first-child{border-left:2px solid var(--mid)}
.row-id{font-family:var(--mono);color:var(--ink-faint)}
.row-id-inner{display:flex;align-items:center;gap:3px;min-width:0}
.row-id-inner>[data-open-card]{cursor:pointer}
.chevron-icon{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.row-detail-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--ink-faint);cursor:pointer}
.row-detail-toggle:hover{background:var(--btn-hover-bg);color:var(--ink)}
.row-detail-toggle:focus-visible{outline:1px solid var(--accent);outline-offset:1px}
.clip-name-cell{display:flex;flex-direction:column;gap:2px;min-width:0}
.clip-name-line{display:flex;align-items:center;gap:5px;min-width:0}
.clip-name-cell a{color:var(--accent);text-decoration:none;font-size:10px}
.series-meta{display:flex;align-items:center;gap:5px;min-width:0;height:20px;font-size:9px;color:var(--accent)}
.series-meta .icon-btn{width:18px;height:18px;font-size:12px;flex:0 0 18px}
.series-meta .series-toggle{width:20px;height:20px;flex-basis:20px;padding:0;border:0;background:transparent;color:var(--ink-dim)}
.series-meta .series-toggle .chevron-icon{width:15px;height:15px}
.series-meta .series-toggle:hover{background:var(--btn-hover-bg);color:var(--ink)}
.series-spacer{width:24px;flex:0 0 24px}
.series-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.series-count{color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:145px}
.series-child-meta{padding-left:0;color:var(--accent);opacity:.85}
.series-branch{font-size:11px}
.serial-toggle .chevron-icon{width:15px;height:15px;flex:0 0 15px;color:var(--ink-dim)}
.attention-flag{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:0 0 16px;border-radius:50%;background:var(--mid);color:var(--ink-on-dark);font-weight:800;font-family:var(--mono)}
.state-stack{display:flex;flex-direction:column;gap:4px}
.calendar-item small{font-size:9px;color:var(--ink-faint);text-transform:uppercase}
.calendar-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px}
.calendar-item{display:grid;grid-template-columns:43px minmax(0,1fr);align-items:center;gap:2px;min-width:0}
.calendar-item.overdue small,.calendar-item.overdue .datein-label{color:var(--hi);font-weight:700}
.calendar-item .datecell{min-width:56px}
.calendar-item .datein{padding:1px 22px 1px 2px}
.calendar-item .datein-label{font-size:10px}
.row-actions{text-align:center}
.stage-strip{display:grid;grid-template-columns:repeat(4,minmax(185px,1fr));gap:0;border-top:1px solid var(--line2);background:rgba(0,0,0,.10)}
.stage-item{--stage-row-accent:var(--todo);display:grid;grid-template-columns:minmax(94px,1fr) minmax(72px,.8fr) 64px;align-items:center;gap:5px;min-width:0;padding:5px 8px 4px;border-top:2px solid color-mix(in srgb,var(--stage-row-accent) 52%,var(--line2));border-right:1px solid var(--line2);background:rgba(255,255,255,.025)}
.stage-item.stage-status-queue{--stage-row-accent:var(--todo)}
.stage-item.stage-status-work{--stage-row-accent:var(--production)}
.stage-item.stage-status-fixes{--stage-row-accent:var(--fixes)}
.stage-item.stage-status-review{--stage-row-accent:var(--review)}
.assignee-with-avatar{display:flex;align-items:center;min-width:0;position:relative}
.assignee-with-avatar .stage-assignee{min-width:0;flex:1}
.assignee-with-avatar:has(.table-person-avatar) .stage-assignee{padding-left:30px!important}
.person-avatar{display:inline-block;object-fit:cover;border-radius:50%;background:var(--panel2);border:1px solid var(--line2);flex:0 0 auto}
.table-person-avatar{width:20px;height:20px;position:absolute;left:5px;top:50%;z-index:2;transform:translateY(-50%);pointer-events:none}
.table-person-avatar ~ .table-person-avatar{display:none}
.gantt-person{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:145px;vertical-align:middle}
.gantt-person > span{overflow:hidden;text-overflow:ellipsis}
.gantt-person-avatar{width:20px;height:20px}
.stage-item.stage-status-waiting{--stage-row-accent:var(--paused)}
.stage-item.stage-status-done{--stage-row-accent:var(--final)}
.stage-item.stage-status-not_required{--stage-row-accent:var(--ink-faint)}
.stage-item.stage-status-cancel{--stage-row-accent:var(--cancel)}
.stage-item:last-child{border-right:0}
.stage-item.stage-overdue{background:var(--overdue-bg)}
html[data-theme="light"] .stage-strip{background:rgba(255,255,255,.48)}
html[data-theme="light"] .stage-item{background:rgba(255,255,255,.28);border-top-color:color-mix(in srgb,var(--stage-row-accent) 68%,var(--line2))}
.stage-status{display:flex;align-items:center;gap:6px;min-width:0;flex:1;background:transparent;border:0;text-align:left}
.stage-copy{display:flex;align-items:baseline;gap:5px;min-width:0;overflow:hidden}
.stage-copy b{font-size:10px;white-space:nowrap}
.stage-copy small{font-size:9px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage-assignee{min-width:0;width:100%;padding:2px 3px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ink);font-size:9px;text-overflow:ellipsis}
.stage-assignee:hover,.stage-assignee:focus{border-color:var(--line2);outline:none;background:var(--panel2)}
.stage-due{display:block;width:64px;flex:0 0 64px}
.stage-due .datein{padding:1px 0}
.stage-due .datein-label{font-size:10px;left:2px;right:20px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ink-dim);font-size:15px}
.icon-btn:hover{border-color:var(--accent-dim);color:var(--ink);background:var(--panel)}
.proj{white-space:normal;font-weight:600;color:var(--ink)}
.proj a{color:var(--accent);text-decoration:none;font-size:11px;margin-left:5px}
.proj a:hover{text-decoration:underline}
.cat{font-family:var(--mono);font-size:10px;color:var(--ink-dim);padding:2px 6px;border:1px solid var(--line2);border-radius:4px}
.who{display:inline-flex;align-items:center;gap:5px}
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.arch-tag{font-size:9px;color:var(--ink-faint);font-style:italic}
.note-cell{position:relative;min-width:0}
.cmt{white-space:normal;color:var(--ink-dim);font-size:11px;line-height:1.35;padding-right:30px}
.rich-note-editor{white-space:pre-wrap;overflow-wrap:anywhere}
.rich-note-editor:empty::before{content:attr(data-placeholder);color:var(--ink-faint);pointer-events:none}
.table-note-editor{height:38px;overflow:auto}
.note-expand{position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid transparent;border-radius:4px;background:var(--panel);color:var(--ink-faint);font-size:14px;opacity:.55}
.note-expand:hover,.note-expand:focus{opacity:1;color:var(--ink);border-color:var(--line2);outline:none}
.comment-badge{position:absolute;right:28px;top:3px;min-width:23px;height:20px;padding:0 5px;border:1px solid var(--line2);border-radius:10px;background:var(--panel2);color:var(--ink-dim);font:700 9px/18px var(--mono)}
.comment-badge.has-open{border-color:var(--mid);color:var(--mid)}

/* status + priority pills as selects */
.pill{border:none;border-radius:20px;padding:4px 10px 4px 22px;font-size:11px;font-weight:700;-webkit-appearance:none;appearance:none;position:relative;background-repeat:no-repeat;background-position:9px center;background-size:7px 7px;cursor:pointer; width:100%;}
.pill:focus{outline:1px solid var(--accent)}
.st-todo{background-color:#2a313b;color:#aeb9c7}
.st-production{background-color:#3d3016;color:#f0c065}
.st-review{background-color:#16324a;color:#7cc0f5}
.st-fixes{background-color:#3f2318;color:#f0a184}
.st-paused{background-color:#2e2545;color:#c0aef0}
.st-final{background-color:#123a1a;color:#6fd97f}
.st-failed{background-color:#3d211d;color:#f2a08f}
.st-cancel{background-color:#22262c;color:#7b828c}
.st-unclear{background-color:#3a1e22;color:#f0919b}
/* Тёмные пилюли статусов на белой странице читались как чёрные пятна — светлые пастельные версии */
html[data-theme="light"] .st-todo{background-color:#d9dee5;color:#374151;border:1px solid #b8c0ca}
html[data-theme="light"] .st-production{background-color:#f5d797;color:#754800;border:1px solid #dfa940}
html[data-theme="light"] .st-review{background-color:#cde6fb;color:#12569a;border:1px solid #7fb8e8}
html[data-theme="light"] .st-fixes{background-color:#f8d0bc;color:#9e3513;border:1px solid #e38c63}
html[data-theme="light"] .st-paused{background-color:#ddd3fa;color:#5428a9;border:1px solid #a284e2}
html[data-theme="light"] .st-final{background-color:#c9f2d2;color:#176d2b;border:1px solid #6dc681}
html[data-theme="light"] .st-failed{background-color:#f7c9c2;color:#912a1f;border:1px solid #da796c}
html[data-theme="light"] .st-cancel{background-color:#d6dae0;color:#4f5966;border:1px solid #a5adb8}
html[data-theme="light"] .st-unclear{background-color:#f5c5cb;color:#951c2d;border:1px solid #d96d7c}
.prio{-webkit-appearance:none;appearance:none;border:none;background:transparent;font-weight:700;font-size:11px;text-align:left;padding-left:0;cursor:pointer}
.p-hi{color:var(--hi)} .p-mid{color:var(--mid)} .p-lo{color:var(--lo)}
.dsel{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink);padding:3px 5px;width:100%}
.dsel:hover{border-color:var(--line2)}
.dsel:focus{outline:none;border-color:var(--accent-dim);background:var(--panel2)}
.tin{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink);padding:3px 6px;width:100%;}
.tin:hover{border-color:var(--line2)} .tin:focus{outline:none;border-color:var(--accent-dim);background:var(--panel2)}
/* Нативный текст поля даты скрыт (color:transparent) — реальную дату dd.mm
   рисует .datein-label поверх (см. .datecell). Причина: Chrome не даёт
   надёжно скрыть ТОЛЬКО вторую точку (перед годом) через ::-webkit-datetime-
   edit-text — ни :last-of-type, ни :nth-of-type(2), ни :first-of-type не
   сработали (проверено вживую). Год всё равно скрыт (display:none) — просто
   для схлопывания его ширины; сам текст поля целиком невидим, поверх — наш
   форматированный лейбл с ОДНОЙ нужной точкой между числом и месяцем.
   Календарь-иконка не затронута (она не часть text color). */
.datecell{position:relative;overflow:hidden}
.datein{background:transparent;border:1px solid transparent;border-radius:4px;color:transparent;padding:3px 2px;width:100%;font-family:var(--mono);font-size:11px;color-scheme:dark}
html[data-theme="light"] .datein{color-scheme:light}
.datein:hover{border-color:var(--line2)} .datein:focus{outline:none;border-color:var(--accent-dim);background:var(--panel2);color:var(--ink)}
.datein::-webkit-datetime-edit-year-field{display:none}
.datein::-webkit-calendar-picker-indicator{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:14px;height:14px;margin:0;padding:1px;cursor:pointer}
.datein-label{position:absolute;left:4px;right:22px;top:50%;transform:translateY(-50%);pointer-events:auto;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--ink-dim);white-space:nowrap;overflow:hidden}
.datein:focus + .datein-label{opacity:0} /* во время редактирования видно нативный ввод, не наш лейбл поверх */
.datein-label.overdue{color:var(--hi)!important;font-weight:700}
.overdue{color:var(--hi)!important;font-weight:700}
.rowdel{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink-faint);font-size:19px;opacity:.4;transition:.1s;padding:0}
tr:hover .rowdel{opacity:.75}.rowdel:hover,.rowdel:focus{opacity:1;border-color:rgba(240,97,109,.35);background:rgba(240,97,109,.08);outline:none}

/* ---- KANBAN ---- */
.kanban{display:flex;gap:12px;padding:16px;overflow-x:auto;align-items:flex-start}
.col{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:250px;max-width:250px;flex-shrink:0}
.colhead{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;position:sticky;top:0;background:var(--panel);border-radius:var(--radius) var(--radius) 0 0}
.colhead .cnt{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-faint);background:var(--panel2);padding:1px 7px;border-radius:10px}
.colbody{padding:8px;display:flex;flex-direction:column;gap:7px;min-height:60px;max-height:calc(100vh - 230px);overflow-y:auto}
.card{background:var(--panel2);border:1px solid var(--line2);border-left-width:3px;border-radius:6px;padding:9px 10px;cursor:grab;transition:.1s}
.card:hover{border-color:var(--accent-dim);transform:translateY(-1px)}
.card.drag{opacity:.4}
.card .t{font-weight:600;font-size:12px;margin-bottom:6px;line-height:1.3;white-space:normal}
.card .m{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--ink-dim);flex-wrap:wrap}
.card .dl{font-family:var(--mono)}
.colbody.dragover{background:var(--panel2);outline:2px dashed var(--accent-dim);outline-offset:-4px;border-radius:6px}

/* ---- GANTT ---- */
/* Без горизонтального padding на самом скролл-контейнере — иначе бары при
   горизонтальном скролле "протекают" в зону padding слева/справа мимо
   sticky-колонок (padding остаётся частью скроллящегося контента). */
.gwrap{height:calc(100vh - 188px);min-height:420px;padding:14px 0 0;overflow:auto;overscroll-behavior:contain;cursor:grab}
.gwrap.is-panning{cursor:grabbing}
/* .gctl вынесен ИЗ .gwrap (который сам скроллится по X) — иначе position:sticky
   с одновременным left+top на одном элементе внутри частично-скроллящегося
   контейнера даёт в Chrome сломанную позицию (эффект "лишнего блока сверху"). */
.gctl{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px;padding:0 16px;font-size:12px;color:var(--ink-dim);
  position:sticky;top:56px;z-index:20;background:var(--bg)}
.gantt-search{width:min(280px,32vw);height:34px;padding:6px 10px;border:1px solid var(--line2);border-radius:5px;background:var(--panel);color:var(--ink);font-size:12px}
.gantt-search::placeholder{color:var(--ink-faint)}
.gantt-search:focus{border-color:var(--accent-dim);outline:none}
.gdate-range{display:inline-flex;align-items:center;gap:6px}
.gdate-range[hidden]{display:none}
.gdate-range input{width:132px;padding:3px 6px}
.gantt{border-collapse:collapse;font-size:11px;width:100%;table-layout:fixed;user-select:none;cursor:default}
.gantt-section-title{position:sticky;left:0;z-index:12;display:flex;align-items:center;width:254px;height:30px;padding:0 9px;border-right:1px solid var(--line2);background:var(--panel2);color:var(--ink);font-size:10px;font-weight:800;text-transform:uppercase}
.gantt-section-writer{margin-top:14px}
.gantt-section-writer .gantt{border-top:5px solid var(--accent-dim)}
.gantt-section-writer .gantt-section-title{background:color-mix(in srgb,var(--accent) 12%,var(--panel2));color:var(--accent)}
.glane{position:relative;height:30px;padding:0!important}
.gbar{position:absolute;border-radius:4px;cursor:pointer;opacity:.92;overflow:hidden;display:flex;align-items:center;padding:0 3px}
.gbar:hover{opacity:1;outline:1px solid #fff3}
.gbar.gload{justify-content:center;padding:0;cursor:default}
.gbar.gload-overlap{box-shadow:inset 0 -3px 0 var(--mid)}
.gbar.gload-over{box-shadow:inset 0 -3px 0 var(--hi)}
.gload-count{min-width:18px;padding:0 3px;border-radius:3px;background:rgba(14,17,22,.72);color:#fff;font:700 9px/12px var(--mono);text-align:center}
.gbar.gcarry{box-shadow:none}
.g-overdue-days,.g-overdue-span{position:absolute;z-index:5;pointer-events:none;background:repeating-linear-gradient(45deg,transparent 0 5px,rgba(240,97,109,.9) 5px 7px,transparent 7px 11px);border-left:1px solid var(--hi)}
.g-overdue-span{top:0;bottom:0}
.g-wait-span{position:absolute;z-index:3;top:0;bottom:0;background:repeating-linear-gradient(135deg,var(--panel) 0 5px,color-mix(in srgb,var(--paused) 62%,var(--panel)) 5px 7px,var(--panel) 7px 11px);border:1px solid var(--paused);border-top-width:0;border-bottom-width:0;cursor:help}
.g-wait-span.review{background:repeating-linear-gradient(135deg,var(--panel) 0 5px,color-mix(in srgb,var(--review) 62%,var(--panel)) 5px 7px,var(--panel) 7px 11px);border-color:var(--review)}
.g-wait-summary{top:6px;bottom:auto;height:14px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gcarry-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 11px;height:11px;border-radius:50%;background:var(--hi);color:#fff;font:800 8px/11px var(--mono)}
.gb-todo{background:var(--todo)} .gb-production{background:var(--production)} .gb-review{background:var(--review)}
.gb-fixes{background:var(--fixes)} .gb-paused{background:var(--paused)} .gb-final{background:var(--final)} .gb-failed{background:var(--failed)} .gb-cancel{background:var(--cancel)}
.gpop{position:fixed;z-index:200;background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:10px 12px;font-size:12px;box-shadow:0 8px 24px rgba(0,0,0,.5);max-width:280px}
.gpop b{display:block;margin-bottom:4px}
.glbl{position:relative;z-index:6;display:flex;align-items:center;gap:3px;color:#0e1116;font-size:9px;font-weight:700;overflow:hidden;min-width:0}
/* Двойной контур (чёрный+белый) — маркер виден, даже если совпал по цвету с самим баром */
.glbl .dot{flex-shrink:0;box-shadow:0 0 0 1px rgba(0,0,0,.6), 0 0 0 2px rgba(255,255,255,.55)}
.glbl-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.gpop .grow-line{color:var(--ink-dim);font-size:11px;margin-top:2px}
.gpop .gpop-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gpop button{margin-top:8px}
.modal-waiting{width:min(440px,calc(100vw - 24px))}
.waiting-form{display:grid;gap:10px}
.waiting-form label{display:grid;gap:5px}
.waiting-form label span{color:var(--ink-dim);font-size:10px;font-weight:700;text-transform:uppercase}
.waiting-form label span small{margin-left:5px;color:var(--accent);font:700 10px var(--font);text-transform:none}
.waiting-form input{width:100%;height:34px;padding:0 10px;border:1px solid var(--line2);border-radius:5px;background:var(--input-bg);color:var(--ink);font:500 12px var(--font)}
.waiting-form input:focus{border-color:var(--accent-dim);outline:none}
.waiting-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:2px}
.task-wait-history-list{display:grid;gap:5px;padding:7px 9px;border:1px solid var(--line);background:var(--panel2)}
.task-wait-history-list>span{color:var(--ink-faint);font-size:11px}
.task-wait-history-item{display:grid;grid-template-columns:100px 1fr auto;gap:8px;align-items:center;font-size:11px}
.task-wait-history-item b{color:var(--ink)}
.task-wait-history-item small{color:var(--ink-dim)}
.gantt th,.gantt td{border:1px solid var(--line);padding:0}
.gantt tr>td:first-child,.gantt tr>td:nth-child(2),.gantt thead th.corner,.gantt thead th.corner2{border-top:none;border-bottom:1px solid var(--line2)}
.gantt .pname{padding:6px 8px;font-weight:600;font-size:11px;position:sticky;left:0;background:var(--panel2);z-index:9;width:220px;min-width:220px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:none!important;border-right:none!important}
.gantt .role{padding:4px 4px;position:sticky;left:220px;background:var(--panel);z-index:9;width:34px;min-width:34px;max-width:34px;color:var(--ink-dim);font-size:10px;white-space:nowrap;border-right:1px solid var(--line2)!important;border-left:none!important}
/* Общий thead делает заголовки sticky с z-index:10. В Ганте даты должны
   прокручиваться под закреплёнными слева ячейками, а не перекрывать их. */
.gantt thead th.day{position:sticky;top:0;z-index:8;font-family:var(--mono);font-size:8px;color:var(--ink-faint);writing-mode:vertical-rl;text-orientation:mixed;padding:4px 0;height:52px;background:var(--thead-bg)}
.gantt thead th.day.today{background:var(--production);color:var(--ink-on-dark);font-weight:700}
.gantt thead th.day.we{background:var(--we-head);color:var(--we-head-ink);font-weight:700}
/* Сквозная полоса выходного дня на всю высоту дорожки — для быстрого чтения недель */
.we-band{position:absolute;top:0;bottom:0;background:var(--we-band);pointer-events:none;z-index:0;border-left:1px solid var(--we-band-line);border-right:1px solid var(--we-band-line)}
.glane > .gbar{z-index:2}
.gantt-draggable{cursor:grab;touch-action:none}
.gantt-draggable.gantt-dragging{cursor:grabbing;z-index:7;box-shadow:0 0 0 2px var(--accent);opacity:.92}
.gantt-draggable.gantt-dragging::after{content:attr(data-drag-dates);position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:10;padding:3px 6px;border:1px solid var(--line2);border-radius:4px;background:var(--panel);color:var(--ink);font:600 10px var(--mono);white-space:nowrap;pointer-events:none}
.gantt-resize{position:absolute;top:0;bottom:0;width:7px;z-index:4;cursor:ew-resize}
.gantt-resize.left{left:0}.gantt-resize.right{right:0}
.gantt-resize::after{content:'';position:absolute;top:3px;bottom:3px;width:1px;background:rgba(255,255,255,.7)}
.gantt-resize.left::after{left:2px}.gantt-resize.right::after{right:2px}
.g-unavailable{position:absolute;top:1px;bottom:1px;z-index:1;background:repeating-linear-gradient(135deg,rgba(127,135,147,.28) 0 5px,rgba(127,135,147,.08) 5px 10px);border-left:1px solid rgba(127,135,147,.45);border-right:1px solid rgba(127,135,147,.45)}
.gantt thead th.corner{position:sticky;top:0;left:0;background:var(--thead-bg);z-index:14;width:220px;min-width:220px;max-width:220px;padding:0 8px}
.gantt thead th.corner2{position:sticky;top:0;left:220px;background:var(--thead-bg);z-index:14;width:34px;min-width:34px;max-width:34px}
.g-milestone{position:absolute;z-index:4;top:2px;width:7px;height:7px;transform:translateX(-50%) rotate(45deg);box-shadow:0 0 0 1px var(--bg),0 0 0 2px rgba(255,255,255,.4)}
.g-completed{position:absolute;z-index:3;top:1px;transform:translateX(-50%);width:13px;height:13px;border-radius:50%;background:var(--final);color:#fff;font:800 9px/13px var(--mono);text-align:center;box-shadow:0 0 0 1px var(--bg)}
.event-marker{position:absolute;z-index:3;top:0;bottom:0;width:2px;transform:translateX(-50%);background:var(--accent);pointer-events:auto}
.event-marker::before{content:'';position:absolute;top:0;left:-3px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--accent)}
.glegend{margin-left:auto;display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px 10px;font-size:10px;color:var(--ink-faint)}
.glegend>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.legend-status{width:15px;height:8px;border-radius:3px;background:var(--production);display:inline-block}
.legend-stages{display:inline-flex;align-items:center;gap:1px}
.legend-stages b{width:5px;height:5px;border-radius:50%;background:var(--final)}
.legend-stages b:nth-child(2){background:var(--review)}
.legend-stages b:nth-child(3){background:var(--fixes)}
.legend-stages b:nth-child(4){background:var(--todo)}
.legend-deadline{width:8px;height:8px;display:inline-block;transform:rotate(45deg);border:1px solid var(--ink-dim);background:var(--panel)}
.legend-complete{width:12px;height:12px;display:inline-block;border-radius:50%;background:var(--final);color:#fff;font:800 8px/12px var(--mono);text-align:center}
.legend-event{width:2px;height:14px;background:var(--accent);display:inline-block}
.legend-wait{width:15px;height:8px;display:inline-block;border:1px solid var(--review);background:repeating-linear-gradient(135deg,var(--panel) 0 3px,color-mix(in srgb,var(--review) 65%,var(--panel)) 3px 5px,var(--panel) 5px 8px)}
.legend-overdue{width:15px;height:8px;display:inline-block;border-left:1px solid var(--hi);background:repeating-linear-gradient(45deg,transparent 0 3px,rgba(240,97,109,.9) 3px 5px,transparent 5px 8px)}
.legend-overload{width:14px;height:8px;display:inline-block;background:repeating-linear-gradient(45deg,var(--mid) 0 3px,var(--hi) 3px 6px)}
.legend-unavailable{width:14px;height:8px;display:inline-block;background:repeating-linear-gradient(135deg,rgba(127,135,147,.55) 0 3px,rgba(127,135,147,.15) 3px 6px)}
.cell{height:20px;position:relative}
.cell.we{background:var(--we-bg)}
.bar{position:absolute;top:2px;bottom:2px;left:1px;right:1px;border-radius:3px;display:flex;align-items:center;padding:0 4px;overflow:hidden}
.bar .lbl{font-size:9px;font-weight:700;color:#0e1116;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.load1{background:var(--lo)} .load2{background:var(--mid)} .load3{background:var(--hi)}
.expander{cursor:pointer;user-select:none;color:var(--ink-dim);font-size:9px;display:inline-flex;align-items:center;gap:4px}
.expander:hover{color:var(--ink)}
.lane-row{display:none}
.lane-row.show{display:table-row}
.gantt-external-row .pname,.gantt-external-row .role{background:var(--overdue-bg);border-top:1px solid var(--line2)!important}
.gantt-external-row .glane{background:color-mix(in srgb,var(--overdue-bg) 45%,transparent);border-top:1px solid var(--line2)}
.gantt-external-detail .pname,.gantt-external-detail .role{background:var(--panel);color:var(--ink-dim);font-weight:400}
.gantt-archive-row .pname,.gantt-archive-row .role{background:var(--panel2);color:var(--ink-dim);border-top:1px solid var(--line2)!important}
.gantt-archive-row .glane{background:color-mix(in srgb,var(--panel2) 55%,transparent);border-top:1px solid var(--line2)}
.gqrow{padding:6px 8px!important;white-space:normal!important;height:auto!important}
.ndchip{display:inline-flex;align-items:center;gap:5px;background:var(--panel2);border:1px solid var(--line2);border-radius:5px;padding:3px 9px;margin:2px 5px 2px 0;font-size:10px;cursor:pointer}
.ndchip:hover{border-color:var(--accent-dim)}
.rqueue{display:flex;align-items:flex-start;gap:12px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--panel);white-space:normal}
.rqueue strong{font-size:10px;color:var(--ink-dim);white-space:nowrap;line-height:24px}
.rqueue strong span{color:var(--accent);font-family:var(--mono)}
.rqueue.is-empty{padding-top:5px;padding-bottom:5px}
.rqueue.is-empty strong{color:var(--ink-faint)}
.rqueue>div{display:flex;gap:5px;flex-wrap:wrap}
.rqchip{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink-dim);padding:3px 7px;font-size:10px}
.rqchip:hover{border-color:var(--accent-dim);color:var(--ink)}
.gantt-free{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid rgba(63,185,80,.35);border-radius:4px;color:var(--final);font:600 9px/15px var(--mono)}
.gantt-unplanned-count{display:block;margin-top:3px;color:var(--ink-faint);font:600 9px/14px var(--mono)}
.gantt-unplanned-heading-row .pname,.gantt-unplanned-heading-row .role{background:var(--panel2);color:var(--ink-dim)}
.gantt-unplanned-heading-row .pname div{display:flex;align-items:center;gap:6px}
.gantt-unplanned-heading-row .pname strong{font:700 9px/12px var(--mono);text-transform:uppercase}
.gantt-unplanned-heading-row .pname span{font:700 9px/12px var(--mono);color:var(--ink-faint)}
.gantt-unplanned-heading-row .glane{height:22px;background:color-mix(in srgb,var(--panel2) 55%,transparent)}
.gantt-unplanned-row .pname,.gantt-unplanned-row .role{background:var(--panel);color:var(--ink-dim)}
.gantt-unplanned-row .glane{background:color-mix(in srgb,var(--panel2) 35%,transparent)}
.gantt-unplanned-task{display:flex;width:100%;min-width:0;margin:0;border:0;background:transparent;padding:1px 2px;text-align:left}
.gantt-unplanned-task span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- scripts queue ---- */
.scripts-page{--script-cols:minmax(210px,1.28fr) minmax(210px,1fr) minmax(210px,1fr) 108px minmax(160px,.9fr) 80px;min-height:calc(100vh - 55px);background:var(--bg)}
.scripts-toolbar{position:sticky;top:55px;z-index:20;display:flex;align-items:flex-end;gap:8px;padding:9px 14px;border-bottom:1px solid var(--line2);background:var(--panel)}
.scripts-toolbar label{display:flex;flex-direction:column;gap:3px;min-width:112px}
.scripts-toolbar label>span{color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}
.scripts-toolbar select{height:32px;max-width:180px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--ink);padding:5px 25px 5px 8px;font-size:11px}
.scripts-heading{display:flex;flex-direction:column;min-width:155px;margin-right:auto}
.scripts-heading strong{font-size:12px}.scripts-heading span{margin-top:1px;color:var(--final);font-size:9px}
.scripts-columns,.script-row{display:grid;grid-template-columns:var(--script-cols);align-items:center}
.scripts-columns{position:sticky;top:104px;z-index:18;min-height:32px;padding:0 14px;border-bottom:1px solid var(--line2);background:var(--thead-bg);color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}
.scripts-columns>*,.script-row>div{min-width:0;padding-right:12px}
.script-sort{display:flex;align-items:center;gap:5px;height:29px;border:0;background:transparent;color:inherit;padding-left:0;text-align:left;text-transform:inherit;font:inherit;cursor:pointer}
.script-sort::after{content:'↕';color:var(--ink-faint);font:9px var(--mono);opacity:.45}
.script-sort:hover{color:var(--ink)}.script-sort.active{color:var(--accent)}
.script-sort.active::after{content:'↑';color:currentColor;opacity:1}.script-sort.active.desc::after{content:'↓'}
.script-series-row{display:flex;align-items:center;gap:7px;min-height:30px;padding:5px 14px;border-top:2px solid var(--row-divider);border-bottom:1px solid var(--line2);background:var(--panel2)}
.script-series-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.script-series-row span{color:var(--accent);font:700 9px var(--mono)}
.script-row{min-height:78px;padding:7px 0 7px 14px;border-bottom:1px solid var(--line);background:var(--bg);cursor:pointer;transition:background .12s}
.script-row:hover,.script-row:focus-visible{background:var(--panel)}
.script-title,.script-stage,.script-due{display:flex;flex-direction:column;min-width:0}
.script-title strong,.script-stage small,.script-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.script-title strong{font-size:12px}.script-title small,.script-stage small,.script-due small{margin-top:3px;color:var(--ink-faint);font-size:9px}
.script-stage{gap:5px}.script-status{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:10px}.script-status i{width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.script-production{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:3px}
.script-inline-assignee{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:4px;width:100%;min-width:0}.script-inline-assignee select{width:100%;min-width:0;height:34px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink);padding:5px 28px 5px 9px;font-size:10px}.script-inline-assignee .workload-badges{justify-self:start;min-height:16px}.script-inline-assignee .workload-state{padding-inline:5px}
.script-person{display:flex;align-items:center;gap:6px;max-width:100%;font-size:9px}.script-person>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.script-unassigned{color:var(--mid);font-size:9px}
.script-due input{width:100%;height:34px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink);padding:5px 7px;font:10px var(--mono)}.script-due.overdue input{border-color:rgba(240,97,109,.55);color:var(--hi)}
.script-assets{display:flex;align-items:center;gap:4px;overflow:hidden}
.script-asset{display:block;max-width:124px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 7px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--ink-dim);font-size:9px;text-decoration:none}
.script-asset:hover{border-color:var(--accent-dim);color:var(--ink)}.script-asset.latest{border-color:rgba(63,185,80,.42)}.script-asset.link{color:var(--accent)}
.script-asset-more{color:var(--ink-faint);font:8px var(--mono);white-space:nowrap}.script-no-material{color:var(--ink-faint);font-size:9px}
.script-row-drop{align-self:stretch;display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;border-left:1px dashed var(--line2);color:var(--ink-faint);font-size:9px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}
.script-row-drop:hover,.script-row-drop.drag-over{border-left-color:var(--accent);background:rgba(76,158,230,.10);color:var(--accent)}
.script-row-drop.uploading{opacity:.48;pointer-events:none}.script-row-drop svg{width:14px;height:14px}.script-row-drop input{position:absolute;width:1px;height:1px;opacity:0}
.scripts-empty{padding:70px 20px;text-align:center;color:var(--ink-faint);font-size:11px}

.workload-badges{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto}
.workload-state,.workload-parallel{display:inline-flex;align-items:center;min-height:18px;padding:2px 6px;border-radius:4px;font:700 9px/1 var(--mono);white-space:nowrap}
.workload-state.free{border:1px solid rgba(63,185,80,.34);color:var(--final)}
.workload-state.busy{background:rgba(224,162,60,.15);color:var(--mid)}
.workload-state.over{background:rgba(240,97,109,.14);color:var(--hi)}
.workload-parallel{background:rgba(240,97,109,.14);color:var(--hi)}
.workload-split{width:14px;height:14px;color:var(--accent);flex:0 0 14px}

/* ---- modal ---- */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.modal-bg.on{display:flex}
.modal{background:var(--panel);border:1px solid var(--line2);border-radius:10px;width:100%;max-width:440px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.modal.modal-wide{max-width:860px}
.modal.modal-quota{max-width:900px}
.quota-help{color:var(--ink-faint);font-size:11px}
.quota-settings-list{display:flex;flex-direction:column;border:1px solid var(--line2);background:var(--bg)}
.quota-setting-row{display:grid;grid-template-columns:32px minmax(120px,1fr) 102px minmax(125px,1fr) 62px 84px 62px 125px 58px;align-items:end;gap:7px;padding:8px;border-bottom:1px solid var(--line)}
.quota-setting-row:last-child{border-bottom:0}
.quota-setting-row>label{display:flex;flex-direction:column;gap:3px;min-width:0;color:var(--ink-faint);font:700 8px var(--mono);text-transform:uppercase}
.quota-setting-row input,.quota-setting-row select{width:100%;height:31px;min-width:0;padding:4px 7px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink)}
.quota-setting-check{align-self:end;align-items:center!important}
.quota-setting-check input{width:16px;height:31px;padding:0;border:0}
.quota-setting-row .is-muted{opacity:.38}
.quota-add{align-self:flex-start}
.quota-empty{padding:18px;text-align:center;color:var(--ink-faint)}
@media(max-width:800px){
  .modal.modal-quota{max-width:620px}
  .quota-setting-row{grid-template-columns:32px minmax(130px,1fr) minmax(120px,1fr)}
  .quota-setting-row>label{min-width:0}
}
.modal.modal-task{max-width:1040px;height:min(680px,90vh);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}
.modal.modal-task.is-create{max-width:720px;height:auto;max-height:88vh}
.task-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;border-bottom:1px solid var(--line2);padding:6px 8px 6px 12px}
.task-title-field{flex:1;min-width:0}
.task-title-input{width:100%;min-width:0;height:34px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--ink);padding:5px 7px;font-size:15px;font-weight:700}
.task-title-input::placeholder{color:var(--ink-faint);font-weight:600}
.task-title-input:hover{border-color:var(--line2)}
.task-title-input:focus{outline:0;border-color:var(--accent-dim);background:var(--bg)}
.modal-task .task-title-input:focus,.modal-task .task-title-input:focus-visible{outline:none!important;outline-offset:0;border-color:var(--line2)!important;box-shadow:none!important}
.task-head span{display:block;padding:0 7px 2px;color:var(--ink-faint);font:9px var(--mono)}
.modal-task.is-create .task-title-input{border-color:var(--line2);background:var(--panel2)}
.modal-task.is-create #recMeta{display:none}
.modal-close{width:32px;height:32px;border:0;border-radius:5px;background:transparent;color:var(--ink-dim);font-size:23px;line-height:1}
.modal-close:hover{background:var(--panel2);color:var(--ink)}
.task-matrix-summary{display:grid;grid-template-columns:1.15fr repeat(4,1fr);min-height:60px;flex:0 0 60px;border-bottom:1px solid var(--line2);background:var(--bg)}
.task-summary-cell{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:8px;min-width:0;padding:8px 10px;border-right:1px solid var(--line2)}
.task-summary-cell:last-child{border-right:0}.task-summary-cell>i{grid-row:1/3;align-self:center;width:8px;height:8px;border-radius:50%;background:var(--todo)}
.task-summary-cell>span,.task-summary-cell>strong,.task-summary-cell>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-summary-cell>span{color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}.task-summary-cell>strong{font-size:11px}.task-summary-cell>small{grid-column:2;color:var(--ink-faint);font-size:9px}
.task-summary-cell>i{background:var(--stage-accent,var(--todo))}
.modal-task.is-create .task-matrix-summary{grid-template-columns:1fr repeat(4,1.12fr);min-height:88px;flex-basis:88px}
.modal-task.is-create .task-summary-cell>.summary-readonly{display:none}
.task-summary-edit{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:5px;min-width:0;margin-top:3px}
.task-summary-edit select{width:100%;min-width:0;height:29px;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink);padding:4px 24px 4px 7px;font-size:10px}
.task-summary-days{display:grid;grid-template-columns:26px 30px 26px auto;align-items:center;gap:3px;color:var(--ink-faint);font-size:9px;white-space:nowrap}.task-summary-days button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink);padding:0;font-size:15px;line-height:1;cursor:pointer}.task-summary-days button:hover{border-color:var(--accent-dim);color:var(--accent)}.task-summary-days input{width:30px;height:26px;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink);padding:3px;font:11px var(--mono);text-align:center;appearance:textfield}.task-summary-days input::-webkit-inner-spin-button,.task-summary-days input::-webkit-outer-spin-button{appearance:none;margin:0}
.task-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;min-height:0;flex:1}
.modal-task.is-create .task-layout{display:block;overflow:auto}
.modal-task.is-create .task-main{overflow:visible;padding:10px 14px}
.modal-task.is-create .task-activity,.modal-task.is-create .edit-only{display:none!important}
.modal-task.is-create .task-matrix-summary{display:none!important}
.modal-task:not(.is-create) .task-matrix-summary{display:none}
.modal-task:not(.is-create) .create-only{display:none!important}
.task-main{min-width:0;overflow:auto;padding:10px 14px}
.task-activity{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;border-left:1px solid var(--line2);background:var(--bg)}
.template-bar{display:flex;align-items:center;gap:7px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px}
.template-bar label{font-size:9px;text-transform:uppercase;color:var(--ink-faint);font-weight:700}
.template-bar select{min-width:180px;max-width:260px;height:31px;background:var(--panel2);border:1px solid var(--line2);border-radius:5px;padding:4px 8px;color:var(--ink)}
.template-disclosure{margin-bottom:10px}
.template-disclosure>summary{display:inline-flex;align-items:center;gap:5px;list-style:none;padding:4px 7px;border:1px solid var(--line);border-radius:4px;color:var(--ink-faint);font-size:9px;font-weight:700;cursor:pointer}
.template-disclosure>summary::-webkit-details-marker{display:none}.template-disclosure>summary::before{content:'+';font:700 12px var(--mono)}.template-disclosure[open]>summary::before{content:'−'}
.template-disclosure[open]>.template-bar{margin-top:8px}.template-disclosure:not([open])>.template-bar{display:none}
.task-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 9px}
.modal-task.is-create .task-form-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.modal-task.is-create .task-form-grid>.field:not(.field-wide){grid-column:span 2}.modal-task.is-create .task-form-grid>.field.create-pair{grid-column:span 3}
.task-basics{gap:8px}.modal-task:not(.is-create) .task-format-field{grid-column:span 2}
.task-episode-field{position:relative}.task-episode-field small{min-height:11px;margin-top:3px;color:var(--ink-faint);font-size:8px;line-height:1.2;text-transform:none}.task-episode-field small.occupied{color:var(--hi);font-weight:700}.task-episode-field input.occupied{border-color:var(--hi)!important;background:color-mix(in srgb,var(--hi) 8%,var(--panel2))}
.create-production{display:grid;gap:5px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line2)}
.create-stage-row{display:grid;grid-template-columns:108px minmax(0,1fr) minmax(0,1.25fr);align-items:center;gap:8px;min-height:38px;padding:4px 6px;border:1px solid var(--line);border-radius:5px;background:var(--bg)}
.create-stage-row[hidden]{display:none}
.create-stage-row>strong{font-size:10px}.create-stage-row.optional{grid-template-columns:108px minmax(0,1fr) minmax(0,1.25fr) 26px}
.create-stage-row .assignee-trigger{height:30px}.create-stage-dates{display:grid;grid-template-columns:1fr 1fr;gap:6px;visibility:hidden;opacity:0;pointer-events:none}
.create-stage-row.has-assignee .create-stage-dates{visibility:visible;opacity:1;pointer-events:auto}
.create-stage-dates label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;min-width:0}.create-stage-dates label>span{color:var(--ink-faint);font-size:8px;font-weight:700;text-transform:uppercase}
.create-stage-dates input{width:100%;min-width:0;height:30px;padding:3px 5px;border:1px solid var(--line2);border-radius:4px;background:var(--panel2);color:var(--ink);font-size:10px}
.create-stage-remove{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;border-radius:4px;background:transparent;color:var(--ink-faint);font-size:17px;cursor:pointer}.create-stage-remove:hover{background:var(--panel2);color:var(--hi)}
.create-stage-add{position:relative;justify-self:start}.create-stage-add>button{height:29px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink-dim);font-size:9px;font-weight:700;cursor:pointer}.create-stage-add>button span{font-size:14px}.create-stage-add>button:hover{border-color:var(--line2);background:var(--panel2);color:var(--ink)}
.create-stage-menu{position:absolute;z-index:12;left:0;top:33px;min-width:145px;padding:4px;border:1px solid var(--line2);border-radius:5px;background:var(--panel);box-shadow:0 10px 26px rgba(0,0,0,.24)}
.create-stage-menu button{display:block;width:100%;height:30px;border:0;border-radius:3px;background:transparent;color:var(--ink);padding:0 8px;text-align:left;font-size:10px;cursor:pointer}.create-stage-menu button:hover{background:var(--panel2)}
.modal-task:not(.is-create) .task-deadline-field{grid-column:1}
.series-fields>input{margin-bottom:7px}
.series-picker{display:flex;gap:7px;margin-bottom:7px}.series-picker input{flex:1;min-width:0}.series-picker .btn{white-space:nowrap}
.episode-create{display:flex;gap:8px}
.episode-create label{display:grid;grid-template-columns:auto 90px;align-items:center;gap:6px;margin:0;text-transform:none;letter-spacing:0}
.episode-create label:last-child{grid-template-columns:auto minmax(150px,1fr);flex:1}
.activity-head{display:flex;align-items:center;justify-content:space-between;height:44px;flex:0 0 44px;padding:0 12px;border-bottom:1px solid var(--line2);font-size:11px}
.activity-head span{color:var(--mid);font:10px var(--mono)}
.activity-list{flex:1;min-height:0;overflow:auto;padding:8px 10px}
.activity-empty{padding:28px 8px;text-align:center;color:var(--ink-faint);font-size:11px}
.activity-item{padding:8px 4px;border-bottom:1px solid var(--line);white-space:normal}
.activity-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:3px}
.activity-item-head strong{font-size:10px}.activity-item-head time{font:9px var(--mono);color:var(--ink-faint)}
.activity-item p{font-size:11px;line-height:1.4;color:var(--ink-dim);overflow-wrap:anywhere}
.activity-file-link{color:var(--accent);text-decoration:none}.activity-file-link:hover{text-decoration:underline}
.activity-item.comment{padding:8px;border:1px solid var(--line);border-radius:6px;margin-bottom:6px;background:var(--panel)}
.activity-item.comment.resolved{opacity:.55}.activity-item.comment.resolved p{text-decoration:line-through}
.comment-meta{display:flex;gap:5px;flex-wrap:wrap;margin:3px 0 5px}.comment-meta span{padding:2px 5px;border:1px solid var(--line2);border-radius:4px;color:var(--accent);font:9px var(--mono)}
.comment-image{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:7px;margin-top:7px;color:var(--ink-dim);font-size:9px;text-decoration:none}.comment-image img{width:64px;height:48px;object-fit:cover;border:1px solid var(--line2);border-radius:4px}.comment-image span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.comment-file{display:inline-block;margin-top:7px;color:var(--accent);font-size:9px}
.comment-actions{display:flex;gap:5px;margin-top:6px}
.comment-actions button{border:0;background:transparent;padding:2px;color:var(--accent);font-size:9px}
.comment-compose{position:relative;flex:0 0 auto;padding:10px;border-top:1px solid var(--line2);background:var(--panel)}
.comment-compose textarea{width:100%;resize:none;background:var(--panel2);border:1px solid var(--line2);border-radius:5px;padding:7px;color:var(--ink);margin-bottom:6px}
.comment-mention-menu{position:absolute;z-index:20;left:10px;right:10px;bottom:44px;max-height:190px;overflow:auto;border:1px solid var(--line2);border-radius:6px;background:var(--panel);box-shadow:0 12px 30px rgba(0,0,0,.28)}
.comment-mention-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:34px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:6px 8px;text-align:left;cursor:pointer}.comment-mention-option:last-child{border-bottom:0}.comment-mention-option:hover,.comment-mention-option.active{background:var(--panel2)}.comment-mention-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.comment-mention-option small{color:var(--ink-faint);font-size:9px}.comment-mention{color:var(--accent);font-weight:700}
.comment-attach{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px}.comment-attach label{color:var(--accent);font-size:10px;cursor:pointer}.comment-attach input{position:absolute;width:1px;height:1px;opacity:0}.comment-attach span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-faint);font-size:9px}
.task-foot{flex:0 0 auto;min-height:44px;padding:8px 12px!important}.btn.danger{color:var(--hi);border-color:rgba(240,97,109,.35)}
.script-material-panel{margin-top:10px;padding-top:9px;border-top:1px solid var(--line2)}
.script-material-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.script-material-head strong{font-size:11px;text-transform:uppercase}.script-material-head span{color:var(--ink-faint);font:9px var(--mono)}
.script-material-inputs{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:7px}
.script-link-field{display:flex;align-items:center;gap:7px;min-width:0;height:34px;padding:0 9px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2)}
.script-link-field>span{color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}.script-link-field input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font-size:11px}.script-link-field input:focus{outline:0}
.script-drop{display:flex;align-items:center;justify-content:center;gap:6px;height:34px;border:1px dashed var(--line2);border-radius:5px;color:var(--accent);font-size:9px;font-weight:700;cursor:pointer}.script-drop:hover,.script-drop.drag-over{border-color:var(--accent);background:rgba(76,158,230,.09)}.script-drop svg{width:15px;height:15px}.script-drop input{position:absolute;width:1px;height:1px;opacity:0}
.script-file-list{display:grid;gap:4px;margin-top:6px}.script-file-list:empty{display:none}
.script-file-row{display:grid;grid-template-columns:34px minmax(0,1fr) 28px;align-items:center;gap:7px;min-height:36px;padding:4px 6px;border:1px solid var(--line);border-radius:5px;background:var(--bg)}.script-file-row.pending{border-style:dashed}
.script-file-icon{display:flex;align-items:center;justify-content:center;height:24px;border-radius:3px;background:var(--panel2);color:var(--accent);font:700 9px var(--mono)}
.script-file-copy{display:flex;flex-direction:column;min-width:0}.script-file-copy strong,.script-file-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.script-file-copy strong{font-size:10px}.script-file-copy small{color:var(--ink-faint);font-size:9px}
.script-file-remove,.script-file-open{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border:0;border-radius:4px;background:transparent;color:var(--ink-faint);font-size:16px;text-decoration:none}.script-file-remove:hover,.script-file-open:hover{background:var(--panel2);color:var(--ink)}
.modal.modal-team{max-width:820px}
.modal.modal-note{max-width:720px}
.note-toolbar{display:flex;justify-content:flex-start;margin-bottom:6px}.note-toolbar .note-bold{width:32px;height:28px;justify-content:center;padding:0}
.modal.modal-note .rich-note-editor{width:100%;min-height:280px;max-height:58vh;overflow:auto;background:var(--panel2);border:1px solid var(--line2);border-radius:6px;padding:12px;color:var(--ink);line-height:1.5}
.modal.modal-note .rich-note-editor:focus{outline:none;border-color:var(--accent-dim)}
.modal.modal-unavailability{max-width:820px}
.unavailability-form{display:grid;grid-template-columns:minmax(150px,1.1fr) 130px 130px minmax(190px,1.4fr) auto;align-items:end;gap:8px}
.unavailability-form label{display:flex;flex-direction:column;gap:4px;min-width:0}
.unavailability-form label>span{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--ink-faint)}
.unavailability-form input,.unavailability-form select{width:100%;min-width:0;height:32px;background:var(--panel2);border:1px solid var(--line2);border-radius:5px;padding:5px 8px;color:var(--ink)}
.unavailability-form input:focus,.unavailability-form select:focus{outline:none;border-color:var(--accent-dim)}
.unavailability-form .btn{height:32px;white-space:nowrap}
.unavailability-list{border-top:1px solid var(--line);margin-top:4px}
.unavailability-row{display:grid;grid-template-columns:minmax(150px,1fr) 190px minmax(120px,1.4fr) 32px;align-items:center;gap:10px;min-height:40px;border-bottom:1px solid var(--line);font-size:11px}
.unavailability-row.past{opacity:.48}
.unavailability-dates{font-family:var(--mono);font-size:10px;color:var(--ink-dim);white-space:nowrap}
.unavailability-reason{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-dim)}
.unavailability-delete{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;font-size:16px;opacity:.65}
.unavailability-delete:hover,.unavailability-delete:focus{opacity:1;border-color:rgba(240,97,109,.35);background:rgba(240,97,109,.08);outline:none}
.unavailability-empty{padding:18px 0;color:var(--ink-faint);font-size:11px;text-align:center}
.modal h3{padding:16px 18px;border-bottom:1px solid var(--line);font-size:14px}
.modal .body{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.modal .body.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px}
.field-wide{grid-column:1/-1}
.series-mode{display:inline-flex;padding:2px;border:1px solid var(--line2);border-radius:6px;background:var(--bg)}
.series-mode label{margin:0;text-transform:none;letter-spacing:0;font-weight:600;color:var(--ink-dim);cursor:pointer}
.series-mode input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.series-mode span{display:block;padding:6px 12px;border-radius:4px;font-size:11px}
.series-mode input:checked+span{background:var(--panel2);color:var(--ink)}
.task-advanced{margin-top:10px}.task-tracks-field{margin-bottom:2px;overflow-x:auto}.task-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}.task-section-heading label{margin:0}.task-section-heading span{color:var(--ink-faint);font-size:9px}
.track-table-head,.track-edit-row{display:grid;grid-template-columns:64px 96px minmax(112px,1fr) 88px 88px 42px 68px;align-items:center;gap:5px}
.track-table-head{min-width:641px;min-height:28px;padding:0 5px;border:1px solid var(--line2);border-bottom:0;background:var(--thead-bg);color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}
.tracks-grid{display:grid;grid-template-columns:1fr;gap:0;min-width:641px;border:1px solid var(--line2)}
.track-edit-row{width:100%;min-width:0;min-height:40px;padding:4px 5px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--bg)}.track-edit-row:last-child{border-bottom:0}
.track-edit-row.is-not-required>label:not(.track-status-field){opacity:.32;transition:opacity .15s ease}
.track-edit-row.is-not-required>label:not(.track-status-field):focus-within{opacity:.72}
.track-edit-row strong{font-size:11px}
.track-name{align-self:center;min-width:0}.track-name strong{display:block}.track-name small{display:block;margin-top:2px;color:var(--final);font:9px/1.25 var(--mono);white-space:normal;overflow-wrap:anywhere}
.track-dependency{display:block!important;margin-top:5px!important}.track-dependency span{display:block;font-size:9px;color:var(--ink-faint);text-transform:uppercase}.track-dependency select{width:100%;min-width:0;margin-top:2px;border:0;border-bottom:1px solid var(--line2);background:transparent;color:var(--ink-dim);font-size:10px;padding:1px 0}
.track-edit-row label{margin:0!important;min-width:0}
.track-edit-row input,.track-edit-row select{width:100%;min-width:0;font-size:10px}
.track-edit-row label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.track-edit-row .dsel{background:var(--panel2);border-color:var(--line2);padding:6px 8px}
.track-status-field{position:relative}
.track-status-field .dsel{padding-left:22px}
.track-status-dot{position:absolute;z-index:1;left:8px;top:50%;width:8px;height:8px;border-radius:50%;transform:translateY(-50%);pointer-events:none}
.track-date-field{position:relative}
.track-edit-row .datein{background:var(--panel2);border-color:var(--line2);padding:6px 26px 6px 8px;color:var(--ink);cursor:pointer}
.track-edit-row .datein::-webkit-calendar-picker-indicator{right:6px}
.track-edit-row input[type="number"]{padding:6px 5px}
.track-edit-row input[type="url"]{height:31px;padding:5px 6px;font-size:10px}
.track-edit-row>label:last-child:not(.script-track-link){grid-column:auto}
.script-track-link{display:none!important}
.assignee-picker{position:relative;min-width:0}.assignee-picker>input{display:none}
.assignee-trigger{display:flex;align-items:center;gap:5px;width:100%;min-width:0;height:31px;padding:4px 7px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink);text-align:left}
.assignee-trigger [data-assignee-label]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.assignee-caret{color:var(--ink-faint);font-size:12px}.assignee-selected-load{max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 9px var(--mono)}.assignee-selected-load.free{color:var(--final)}.assignee-selected-load.busy{color:var(--mid)}.assignee-selected-load.over{color:var(--hi)}
.assignee-menu{position:fixed;z-index:220;width:min(360px,calc(100vw - 16px));max-height:min(360px,calc(100vh - 16px));overflow:auto;padding:5px;border:1px solid var(--line2);border-radius:7px;background:var(--panel);box-shadow:0 16px 42px rgba(0,0,0,.48)}
.assignee-group{padding:8px 8px 4px;border-top:1px solid var(--line);color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}.assignee-group:first-of-type{border-top:0}
.assignee-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:34px;padding:6px 8px;border:0;border-radius:4px;background:transparent;color:var(--ink-dim);text-align:left}.assignee-option:hover,.assignee-option.selected{background:var(--panel2);color:var(--ink)}.assignee-option>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.assignee-option.clear{color:var(--ink-faint)}
.field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-faint);margin-bottom:4px;font-weight:700}
.field input,.field select,.field textarea,.field>.rich-note-editor{width:100%;background:var(--panel2);border:1px solid var(--line2);border-radius:6px;padding:8px 10px;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus,.field>.rich-note-editor:focus{outline:none;border-color:var(--accent-dim)}
.task-note-editor{min-height:74px;max-height:180px;overflow:auto}
.modal .foot{padding:14px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* people manager */
.plist{display:flex;flex-direction:column;gap:5px}
.prow{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--panel2);border:1px solid var(--line2);border-radius:6px}
.prow.person-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(380px,2fr) auto;padding:7px 9px}
.prow.arch{opacity:.55}
.prow .pn{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prow:not(.person-row) .pn{flex:1}
.prow .pc{font-family:var(--mono);font-size:10px;color:var(--ink-faint)}
.person-identity{display:flex;flex-direction:column;min-width:0}
.person-name-line{display:flex;align-items:center;gap:8px;min-width:0}
.team-person-avatar{width:28px;height:28px}
.person-account-field{display:flex;flex-direction:column;gap:2px;width:min(190px,100%);margin-top:5px;color:var(--ink-faint);font-size:8px;font-weight:700;text-transform:uppercase}
.person-account{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink-faint);font-size:9px;padding:2px 0}
.person-roles{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.role-chip{margin:0!important;text-transform:none!important;letter-spacing:0!important;font-weight:600!important;color:var(--ink-dim)!important;cursor:pointer}
.role-chip input{position:absolute;opacity:0;pointer-events:none}
.role-chip span{display:block;padding:3px 7px;border:1px solid var(--line);border-radius:4px;background:var(--panel);font-size:9px;white-space:nowrap}
.role-chip input:checked+span{border-color:var(--accent-dim);background:rgba(76,158,230,.12);color:var(--ink)}
.role-chip input:disabled+span{cursor:default}
.person-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}
.icon-mini{width:27px;height:27px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.mini{padding:4px 9px;font-size:11px;border-radius:5px;background:var(--panel);border:1px solid var(--line2)}
.mini:hover{border-color:var(--accent-dim)}
.mini.danger:hover{border-color:var(--hi);color:var(--hi)}
.addp{display:flex;gap:8px;margin-top:12px}
.addp input{flex:1;background:var(--panel2);border:1px solid var(--line2);border-radius:6px;padding:8px 10px;color:var(--ink)}
.note{font-size:11px;color:var(--ink-faint);line-height:1.5;background:var(--panel2);padding:10px 12px;border-radius:6px;border:1px solid var(--line)}
.modal.modal-manager{max-width:980px}.modal.modal-report{max-width:920px}
.modal.modal-decision{max-width:420px}.modal-decision .body p{color:var(--ink-dim);line-height:1.55}.modal-decision .foot{justify-content:flex-end}
.manager-list{display:flex;flex-direction:column;border-top:1px solid var(--line2);max-height:58vh;overflow:auto}.manager-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(100px,.45fr) auto;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}.manager-row.arch{opacity:.55}.manager-row>input,.manager-row>select,.manager-create input{min-width:0;height:31px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink);padding:5px 7px}.manager-tag{color:var(--ink-faint);font:9px var(--mono);white-space:nowrap}.manager-actions{display:flex;gap:4px;justify-content:flex-end}.manager-create{display:flex;gap:7px;padding-top:10px}.manager-create input:first-child{flex:1}.series-manager-row{grid-template-columns:minmax(145px,1fr) 120px 70px minmax(130px,.8fr);}.series-manager-row [data-series-description]{grid-column:1/4}.series-manager-row .manager-tag{grid-column:4}.series-manager-row .manager-actions{grid-column:1/-1}.series-create input:first-child{flex:1}
.report-summary{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line2);border-radius:6px}.report-summary>div{display:flex;flex-direction:column;gap:3px;padding:12px;border-right:1px solid var(--line)}.report-summary>div:last-child{border-right:0}.report-summary strong{font:700 18px var(--mono)}.report-summary span{font-size:9px;color:var(--ink-faint)}.report-summary .warn strong{color:var(--mid)}.report-actions{display:flex;gap:7px}.completion-head{display:flex;align-items:center;justify-content:space-between;margin:8px 0}.completion-head strong{font-size:11px}.completion-row{display:grid;grid-template-columns:22px minmax(0,1fr) 130px;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}.completion-row>span{display:flex;flex-direction:column;min-width:0}.completion-row strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.completion-row small{color:var(--ink-faint);font-size:8px}.completion-row input[type="date"]{height:30px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);color:var(--ink);padding:4px 6px}
.empty{padding:50px;text-align:center;color:var(--ink-faint)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--panel2);border:1px solid var(--accent-dim);color:var(--ink);padding:10px 18px;border-radius:8px;font-size:12px;z-index:200;transition:.25s;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.toast.show{transform:translateX(-50%) translateY(0)}
@media(max-width:1000px){
  .scripts-toolbar{overflow-x:auto;align-items:flex-end;scrollbar-width:thin}.scripts-toolbar>*{flex:0 0 auto}.scripts-heading{margin-right:8px}
  .scripts-columns{display:none}
  .script-row{grid-template-columns:minmax(0,1fr) 90px;grid-template-rows:auto auto auto auto;gap:5px 10px;min-height:116px;padding:8px 0 8px 12px}
  .script-title{grid-column:1;grid-row:1}.script-due{grid-column:2;grid-row:1}.script-stage{grid-column:1;grid-row:2}.script-production{grid-column:1;grid-row:3}.script-assets{grid-column:1;grid-row:4}
  .script-row-drop{grid-column:2;grid-row:2/5}.script-series-row{border-top-width:1px}
}
@media(max-width:800px){
  .topbar{display:grid;grid-template-columns:minmax(120px,1fr) auto auto auto;gap:7px;padding:8px}
  .topbar .brand{grid-column:1;grid-row:1;min-width:0}.topbar .brand span{display:none}
  .topbar .tabs{grid-column:1/4;grid-row:2;justify-self:start;max-width:calc(100vw - 88px);overflow-x:auto;scrollbar-width:none}.topbar .tabs::-webkit-scrollbar{display:none}.topbar .tab{flex:0 0 auto;padding-left:10px;padding-right:10px}
  .topbar .grow{display:none}
  .topbar .search{grid-column:1;grid-row:3;width:100%;min-width:0;min-height:36px}
  .topbar .search:focus{width:100%}
  .topbar #peopleBtn{grid-column:2;grid-row:3}
  .topbar #catsBtn{grid-column:3/5;grid-row:3}
  .topbar #addBtn{grid-column:4;grid-row:2}
  .topbar #themeToggle{grid-column:2;grid-row:1}
  .topbar .problem-menu{grid-column:3;grid-row:1}
  .topbar .account-menu{grid-column:4;grid-row:1}
  .topbar .btn{padding:6px 9px;font-size:11px}
  .topbar button,.account-trigger,.icon-topbar{min-height:36px}
  .filters{flex-wrap:nowrap;overflow-x:auto;padding:7px 8px;scrollbar-width:thin}
  .filters>*{flex:0 0 auto}
  .filters label{margin-left:0!important}
  .filters .fsel{min-height:40px}
  .kpis{grid-template-columns:repeat(3,1fr)}
  .kpi{align-items:flex-start;flex-direction:column;gap:3px}
  .search{width:150px}
  .gctl{position:static;top:auto;flex-wrap:wrap;gap:6px;padding:0 8px}
  .gantt-search{width:100%;flex:1 0 100%}
  .gctl .glegend{width:100%;margin-left:0}
  .stats-head{align-items:flex-start;flex-direction:column;padding:14px 12px}
  .stats-actions{justify-content:flex-start}
  .stats-kpis{grid-template-columns:repeat(2,1fr)}
  .stats-detail{grid-template-columns:1fr;padding:12px 18px}
  .modal.modal-folders{max-width:620px}
  .stats-source-manager{grid-template-columns:1fr}
  .stats-source-preview{align-items:center}
  .stats-source-preview>strong{width:100%}
  .account-trigger #accName{display:inline;max-width:48px}.account-trigger .account-caret{display:none}
  .modal .body.mgrid{grid-template-columns:1fr}
  .modal.modal-task{height:94vh;max-height:94vh}.modal.modal-task.is-create{height:auto;max-height:94vh}
  .task-matrix-summary{grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto}
  .task-layout{grid-template-columns:1fr;overflow:auto}
  .task-main{overflow:visible}.task-activity{min-height:360px;border-left:0;border-top:1px solid var(--line2)}
  .task-form-grid,.modal-task.is-create .task-form-grid{grid-template-columns:1fr}.modal-task.is-create .task-form-grid>.field:not(.field-wide),.modal-task.is-create .task-form-grid>.create-pair{grid-column:1}.template-bar{align-items:stretch;flex-wrap:wrap}.template-bar select{flex:1}
  .create-stage-row,.create-stage-row.optional{grid-template-columns:94px minmax(0,1fr)}.create-stage-dates{grid-column:1/-1}.create-stage-remove{grid-column:2;grid-row:1;justify-self:end}
  .modal-task:not(.is-create) .task-format-field{grid-column:1}
  .script-material-inputs{grid-template-columns:1fr}.script-drop{height:38px}
  .scripts-toolbar{position:static;display:grid;grid-template-columns:1fr 1fr;padding:8px}.scripts-heading{grid-column:1/-1;margin:0}.scripts-toolbar label{min-width:0}.scripts-toolbar select{width:100%;max-width:none;min-height:36px}
  .script-row{grid-template-columns:minmax(0,1fr) 82px}.script-row-drop span{display:none}.script-row-drop svg{width:17px;height:17px}
  .prow.person-row{grid-template-columns:1fr auto}
  .person-roles{grid-column:1/-1;grid-row:2}
  .track-table-head,.track-edit-row{grid-template-columns:64px 96px minmax(112px,1fr) 88px 88px 42px 68px}
  .track-edit-row .datein{width:100%}
  .rqueue{flex-direction:column;gap:3px}
  .unavailability-form{grid-template-columns:1fr 1fr}
  .unavailability-form label:first-child,.unavailability-note,.unavailability-form .btn{grid-column:1/-1}
  .unavailability-row{grid-template-columns:minmax(0,1fr) auto 32px;padding:7px 0}
  .unavailability-reason{grid-column:1/3;grid-row:2}
  .unavailability-delete{grid-column:3;grid-row:1/3}
  .manager-row,.series-manager-row{grid-template-columns:1fr}.manager-row>*{grid-column:1!important}.manager-actions{justify-content:flex-start;flex-wrap:wrap}.manager-create{flex-wrap:wrap}.manager-create>*{flex:1 1 130px}.report-summary{grid-template-columns:1fr 1fr}.report-summary>div:nth-child(2){border-right:0}.report-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}

/* ---- unified product UI ----
   The tracker is a dense production tool, so hierarchy comes from rhythm,
   typography and separators rather than a collection of unrelated cards. */
:root{
  --ui-space-1:4px; --ui-space-2:8px; --ui-space-3:12px; --ui-space-4:16px;
  --ui-control-h:36px; --ui-radius:6px; --ui-divider:var(--line2);
}
body{font-size:13px;line-height:1.45}
.topbar{background:var(--panel);border-bottom:2px solid var(--line2);padding:9px 16px;gap:16px}
.tabs{gap:0;padding:0;border:0;border-radius:0;background:transparent}
.tab{height:34px;padding:6px 13px;border-radius:0;border-bottom:2px solid transparent;font-size:12px;font-weight:650}
.tab.on{background:transparent;color:var(--ink);border-bottom-color:var(--accent);box-shadow:none}
.tab:hover:not(.on){background:var(--panel2)}
.btn{min-height:var(--ui-control-h);border-radius:var(--ui-radius);padding:7px 12px;font-size:12px}
.search{height:var(--ui-control-h);border-radius:var(--ui-radius)}
.filters{padding:8px 16px;background:var(--bg);border-bottom:2px solid var(--line2);gap:10px}
.filters label{font-family:var(--sans);font-size:10px;letter-spacing:.35px;text-transform:uppercase;font-weight:700}
.fsel{min-height:32px;border-radius:var(--ui-radius);font-size:12px}
.kpis{background:var(--line2);border-bottom:2px solid var(--line2)}
.kpi{padding:8px 12px}
.kpi .l{font-size:10px;letter-spacing:.35px}
table{font-size:12px}
thead th{padding:10px;font-size:10px;letter-spacing:.45px;border-bottom:2px solid var(--line2)}
tbody td{border-bottom:1px solid var(--line2)}
.clip-stage-row td{border-bottom:2px solid var(--row-divider)}

/* Task surfaces share the same grammar as the tracker pages. */
.modal-bg{background:rgba(8,11,15,.58);backdrop-filter:blur(2px);padding:24px}
.modal.modal-task{border:1px solid var(--line2);border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.42)}
.modal.modal-task.is-create{max-width:760px}
.task-head{min-height:58px;padding:9px 12px 9px 16px;border-bottom:2px solid var(--line2)}
.task-title-input{height:40px;border-radius:var(--ui-radius);padding:7px 10px;font-size:16px;line-height:1.2}
.modal-task.is-create .task-title-input{background:var(--panel2);border-color:var(--line2)}
.modal-task.is-create .task-title-input:focus{background:var(--panel);border-color:var(--line2)}
.modal-close{width:34px;height:34px;border-radius:var(--ui-radius);font-size:22px}
.task-matrix-summary{grid-template-columns:1fr repeat(4,minmax(0,1.08fr));gap:8px;padding:10px;background:var(--bg);border-bottom:2px solid var(--line2);min-height:84px;flex-basis:84px}
.modal-task.is-create .task-matrix-summary{grid-template-columns:1fr repeat(4,minmax(0,1.08fr));min-height:132px;flex-basis:132px}
.task-summary-cell{grid-template-columns:9px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-content:start;min-height:64px;padding:9px 10px;border:1px solid var(--line2);border-top:3px solid var(--stage-accent,var(--mid));border-right:1px solid var(--line2);border-radius:var(--ui-radius);background:var(--panel)}
.task-summary-cell:last-child{border-right:1px solid var(--line2)}
.task-summary-cell>i{width:8px;height:8px;background:var(--stage-accent,var(--mid));margin-top:3px}
.task-summary-overall{--stage-accent:var(--todo)}
.task-summary-cell>span{font-size:10px;letter-spacing:.45px;color:var(--ink-dim)}
.task-summary-cell>strong{font-size:12px;line-height:1.2}
.task-summary-cell>small{font-size:10px}
.task-summary-edit{gap:6px;margin-top:7px}
.task-summary-edit select{height:32px;border-radius:var(--ui-radius);font-size:11px;padding-left:8px}
.task-summary-days{grid-template-columns:24px 30px 24px minmax(10px,auto);gap:2px;font-size:9px}
.task-summary-days button,.task-summary-days input{height:28px;border-radius:var(--ui-radius)}
.task-summary-days button{width:24px;font-size:15px}
.task-summary-days input{width:30px;font-size:11px}
.task-layout{background:var(--panel)}
.modal-task.is-create .task-main{padding:14px 16px 16px}
.task-section-label{margin:0 0 10px;color:var(--ink);font-size:11px;font-weight:750;letter-spacing:.55px;text-transform:uppercase}
.template-disclosure{margin-bottom:14px}
.template-disclosure>summary{min-height:30px;padding:5px 8px;border-radius:var(--ui-radius);font-size:10px}
.task-form-grid{gap:12px 10px}
.modal-task.is-create .task-form-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 10px}
.field label{margin-bottom:5px;color:var(--ink-dim);font-size:10px;letter-spacing:.45px}
.field input,.field select,.field textarea,.field>.rich-note-editor{min-height:var(--ui-control-h);border-radius:var(--ui-radius);padding:8px 10px;font-size:12px}
.series-mode{min-height:var(--ui-control-h);border-radius:var(--ui-radius)}
.series-mode label{font-size:12px}
.script-material-panel{margin-top:18px;padding-top:14px;border-top:2px solid var(--line2)}
.script-material-head{margin-bottom:9px}.script-material-head strong{font-size:11px;letter-spacing:.5px}.script-material-head span{font-size:10px}
.script-link-field,.script-drop{height:var(--ui-control-h);border-radius:var(--ui-radius)}
.script-link-field>span{font-size:10px}.script-link-field input{font-size:12px}.script-drop{font-size:10px}
.task-foot{min-height:58px;padding:10px 16px!important;border-top:2px solid var(--line2)!important}
.task-foot .btn.primary{min-width:92px}

/* Shared density for the remaining work views. */
.gctl{gap:8px;margin-bottom:10px;padding:0 16px;font-size:12px}
.gctl .fsel{min-height:34px}
.gantt{font-size:12px}
.gantt .pname{font-size:12px;padding:7px 9px}
.gantt .role{font-size:11px;padding:5px}
.gantt thead th.day{font-size:9px;height:58px}
.scripts-toolbar{padding:10px 16px;gap:10px;border-bottom:2px solid var(--line2)}
.scripts-toolbar label>span,.scripts-columns{font-size:10px;letter-spacing:.35px}
.scripts-toolbar select,.script-inline-assignee select,.script-due input{height:var(--ui-control-h);font-size:12px;border-radius:var(--ui-radius)}
.scripts-heading strong{font-size:13px}.scripts-heading span{font-size:10px}
.scripts-columns{min-height:36px;padding:0 16px;border-bottom:2px solid var(--line2)}
.script-row{min-height:82px;padding-left:16px;border-bottom:1px solid var(--line2)}
.script-title strong{font-size:13px}.script-title small,.script-stage small,.script-due small{font-size:10px}
.script-status{font-size:11px}
.stats-head,.report-page-head{padding:16px 20px 14px;border-bottom:2px solid var(--line2)}
.stats-head h2,.report-heading h2{font-size:18px}
.stats-kpis,.report-metrics{background:var(--line2);border-bottom:2px solid var(--line2)}
.stats-kpi,.report-metric{padding:12px 16px}
.stats-kpi span,.report-metric span{font-size:10px;letter-spacing:.35px}
.report-workspace{border-top:0}
.report-editor-head,.telegram-frame-head,.report-history-head{border-bottom:2px solid var(--line2)}

/* ---- SERIALS + AUDIT ---- */
.task-series-fields{display:grid;grid-template-columns:minmax(220px,1fr) 110px;gap:8px}
.task-series-fields>label{display:flex;flex-direction:column;min-width:0;margin:0}
.task-series-fields>label>span{margin-bottom:5px}
.task-serial-field .series-picker{margin:0}
.task-serial-field .series-picker select{flex:1;min-width:0}
.task-episode-field input:disabled{opacity:.55;cursor:not-allowed}
.modal.modal-series-manager{max-width:940px}
.modal-series-manager .body{gap:12px;padding-top:12px}
.series-create{padding:0}
.series-create input:nth-child(2){flex:0 0 130px}
.serials-manager-list{max-height:62vh;border-top:2px solid var(--line2)}
.serial-manager-row{border-bottom:1px solid var(--line2);background:var(--panel)}
.serial-manager-row.arch{opacity:.58}
.serial-manager-summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:46px;padding:6px 8px}
.serial-manager-row.expanded .serial-manager-summary{background:var(--panel2);border-bottom:1px solid var(--line2)}
.serial-toggle{display:flex;align-items:center;gap:8px;min-width:0;border:0;background:transparent;text-align:left}
.serial-toggle>span{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px;color:var(--accent);font:800 16px/1 var(--mono)}
.serial-toggle>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.serial-progress{color:var(--ink-faint);font-size:10px;white-space:nowrap}
.serial-progress b{color:var(--final);font:800 11px var(--mono)}
.serial-manager-detail{padding:12px 8px 8px;background:var(--bg)}
.serial-settings{display:grid;grid-template-columns:minmax(180px,1.2fr) 115px minmax(145px,.9fr) minmax(165px,1fr) auto;align-items:end;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--line2)}
.serial-settings label{display:flex;flex-direction:column;gap:4px;min-width:0;color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}
.serial-settings input,.serial-settings select,.serial-add-episodes textarea{width:100%;min-width:0;border:1px solid var(--line2);border-radius:var(--ui-radius);background:var(--panel2);color:var(--ink);padding:7px 9px;font-size:12px}
.serial-settings input,.serial-settings select{height:var(--ui-control-h)}
.serial-description{grid-column:auto}
.serial-episodes-head{display:flex;align-items:center;gap:7px;min-height:38px;padding:8px 2px 5px}
.serial-episodes-head strong{font-size:11px}.serial-episodes-head span{color:var(--ink-faint);font:700 9px var(--mono)}
.serial-episodes{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.serial-episode-row{--serial-status-color:var(--unclear);display:grid;grid-template-columns:76px minmax(160px,1fr) minmax(300px,.8fr);align-items:center;gap:8px;min-height:44px;padding:4px 7px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--serial-status-color) 9%,var(--bg));box-shadow:inset 3px 0 0 color-mix(in srgb,var(--serial-status-color) 68%,transparent)}
.serial-episode-row:hover{background:color-mix(in srgb,var(--serial-status-color) 14%,var(--bg))}
.serial-episode-row.status-unclear{--serial-status-color:var(--unclear)}
.serial-episode-row.status-todo{--serial-status-color:var(--todo)}
.serial-episode-row.status-production{--serial-status-color:var(--production)}
.serial-episode-row.status-review{--serial-status-color:var(--review)}
.serial-episode-row.status-fixes{--serial-status-color:var(--fixes)}
.serial-episode-row.status-paused{--serial-status-color:var(--paused)}
.serial-episode-row.status-final{--serial-status-color:var(--final)}
.serial-episode-row.status-failed{--serial-status-color:var(--failed)}
.serial-episode-row.status-cancel{--serial-status-color:var(--cancel)}
.serial-episode-open{display:block;min-width:0;padding:8px 0;border:0;background:transparent;text-align:left}
.serial-episode-open>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.serial-episode-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(105px,.65fr);align-items:center;gap:7px;min-width:0}
.serial-episode-controls select{width:100%;height:30px;min-width:0;border:1px solid var(--line2);border-radius:var(--ui-radius);background:var(--panel2);color:var(--ink);padding:4px 7px;font-size:10px}
.serial-episode-assignee{min-width:0}.serial-episode-assignee select{padding-left:28px}.serial-episode-assignee .person-avatar{left:6px}
.serial-episode-status{color:var(--serial-status-color)!important;font-weight:700}
.serial-episode-meta{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.serial-episode-meta small{color:var(--serial-status-color);font:700 9px var(--mono);white-space:nowrap}
.serial-episode-assignees{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-dim);font-size:10px}
.serial-episode-number{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;margin:0;color:var(--ink-faint);font:700 10px var(--mono)}
.serial-episode-number input,.serial-start-episode input,.serial-add-count input{width:100%;height:28px;min-width:0;border:1px solid var(--line2);border-radius:var(--ui-radius);background:var(--panel2);color:var(--ink);padding:4px 6px;font:700 11px var(--mono)}
.serial-empty{padding:16px 8px;color:var(--ink-faint);font-size:11px;text-align:center}
.serial-add-episodes{display:grid;grid-template-columns:76px 90px minmax(0,1fr) auto;align-items:stretch;gap:8px;padding:10px 0 2px}
.serial-start-episode,.serial-add-count{display:flex;flex-direction:column;gap:4px;margin:0;color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}
.serial-add-episodes textarea{min-height:68px;resize:vertical;line-height:1.45}
.serial-add-episodes .btn{align-self:end}
.serial-danger{display:flex;justify-content:flex-end;padding-top:8px}
@media(max-width:760px){.serial-episode-row{grid-template-columns:68px minmax(0,1fr)}.serial-episode-controls{grid-column:1/-1;grid-template-columns:1fr 1fr;padding:0 0 4px 76px}}
.directions-manager-list{max-height:62vh;border-top:2px solid var(--line2)}
.direction-manager-row{border-bottom:1px solid var(--line2);background:var(--panel)}
.direction-manager-row.arch{opacity:.58}
.direction-manager-summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:46px;padding:6px 8px}
.direction-manager-row.expanded .direction-manager-summary{background:var(--panel2);border-bottom:1px solid var(--line2)}
.direction-progress{color:var(--ink-faint);font-size:10px;white-space:nowrap}
.direction-progress b{color:var(--production);font:800 11px var(--mono)}
.direction-manager-detail{padding:12px 8px 8px;background:var(--bg)}
.direction-settings{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--line2)}
.direction-settings label{display:flex;flex-direction:column;gap:4px;min-width:0;color:var(--ink-faint);font-size:9px;font-weight:700;text-transform:uppercase}
.direction-settings input{width:100%;height:var(--ui-control-h);min-width:0;border:1px solid var(--line2);border-radius:var(--ui-radius);background:var(--panel2);color:var(--ink);padding:7px 9px;font-size:12px}
.direction-projects{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.direction-project-row{display:grid;grid-template-columns:minmax(0,1fr) 112px 72px;align-items:center;gap:8px;min-height:40px;padding:6px 7px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left}
.direction-project-row:hover{background:var(--panel2)}
.direction-project-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.direction-project-row small{color:var(--ink-faint);font:600 9px var(--mono);text-align:right;white-space:nowrap}
.direction-project-status{padding:4px 7px;border-radius:4px;font-size:9px;font-weight:700;text-align:center;white-space:nowrap}

.clip-main-row.series-anchor td:first-child,.clip-stage-row.series-anchor td:first-child,
.clip-main-row.series-expanded-child td:first-child,.clip-stage-row.series-expanded-child td:first-child{box-shadow:inset 3px 0 var(--accent)}
.series-episode-chip{color:var(--accent);font:800 9px var(--mono)}
.clip-main-row.row-filter-grace,.clip-stage-row.row-filter-grace{background:color-mix(in srgb,var(--row-status-color) 17%,var(--bg))}
html[data-theme="light"] .clip-main-row.row-filter-grace,html[data-theme="light"] .clip-stage-row.row-filter-grace{background:color-mix(in srgb,var(--row-status-color) 22%,var(--bg))}
.clip-main-row.row-filter-grace td:first-child,.clip-stage-row.row-filter-grace td:first-child{box-shadow:inset 3px 0 var(--mid)}
.clip-main-row.row-saving,.clip-stage-row.row-saving{opacity:.72}
.clip-main-row.row-save-error td:first-child,.clip-stage-row.row-save-error td:first-child{box-shadow:inset 3px 0 var(--hi)}
.clip-main-row.row-saved td:first-child,.clip-stage-row.row-saved td:first-child{box-shadow:inset 3px 0 var(--final)}

.modal-decision .body p{max-height:42vh;overflow:auto;white-space:pre-line}
.modal.modal-audit{max-width:900px}
.modal-audit .body{padding:12px 16px}
.audit-toolbar{display:grid;grid-template-columns:150px minmax(180px,1fr) minmax(160px,1fr) auto;gap:8px}
.audit-toolbar select{height:var(--ui-control-h);min-width:0;border:1px solid var(--line2);border-radius:var(--ui-radius);background:var(--panel2);color:var(--ink);padding:6px 9px}
.audit-list{max-height:62vh;overflow:auto;border-top:2px solid var(--line2)}
.audit-item{padding:9px 4px;border-bottom:1px solid var(--line2)}
.audit-item.is-project{cursor:pointer}
.audit-item.is-project:hover{background:var(--panel2)}
.audit-item-head,.audit-item-title{display:flex;align-items:center;gap:8px;min-width:0}
.audit-item-head{justify-content:space-between;color:var(--ink-faint);font-size:9px}
.audit-item-head strong{color:var(--ink-dim);font-size:10px}
.audit-item-title{margin-top:3px}
.audit-item-title>span{flex:0 0 86px;color:var(--ink-faint);font-size:9px;text-transform:uppercase}
.audit-item-title>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.audit-item-title>small{margin-left:auto;color:var(--ink-faint);font-size:9px;white-space:nowrap}
.audit-changes{margin:6px 0 0 94px;border-left:2px solid var(--line2)}
.audit-change{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(100px,1fr) 18px minmax(100px,1fr);gap:7px;align-items:start;padding:3px 8px;color:var(--ink-dim);font-size:10px}
.audit-change::after{content:'\2192';grid-column:3;grid-row:1;color:var(--ink-faint);text-align:center}
.audit-change>span{grid-column:1;font-weight:700}.audit-change>s{grid-column:2;color:var(--ink-faint)}.audit-change>b{grid-column:4;color:var(--ink);font-weight:600}
.audit-more{margin:5px 0 0 94px;color:var(--ink-faint);font-size:9px}

@media(min-width:801px){
  .topbar{gap:8px}
  .topbar .search{width:190px}
  .topbar .search:focus{width:190px}
}

@media(min-width:801px) and (max-width:1050px){
  .serial-settings{grid-template-columns:minmax(180px,1fr) 120px minmax(145px,1fr)}
  .serial-name-field{grid-column:1/3}.serial-count-field{grid-column:3}.serial-template-field{grid-column:1/3}
  .serial-description{grid-column:1/3}.serial-settings>[data-series-save]{grid-column:3}
}

@media(max-width:800px){
  .topbar #serialsBtn{grid-column:1;grid-row:4}
  .topbar #peopleBtn{grid-column:2;grid-row:4}
  .topbar #catsBtn{grid-column:3/5;grid-row:4}
  .series-create{display:grid;grid-template-columns:112px minmax(0,1fr);width:100%}
  .series-create input:first-child{grid-column:1/-1}
  .series-create input:nth-child(2){grid-column:1;grid-row:2;min-width:0}
  .series-create .btn{grid-column:2;grid-row:2;justify-content:center}
  .serial-manager-summary{grid-template-columns:minmax(0,1fr) auto}.serial-progress{grid-column:1;padding-left:30px}.serial-manager-summary>[data-series-archive]{grid-column:2;grid-row:1/3}
  .serial-settings{grid-template-columns:1fr 1fr}.serial-name-field,.serial-template-field,.serial-description{grid-column:1/-1}.serial-count-field{grid-column:1/-1}.serial-settings>[data-series-save]{grid-column:1/-1;justify-content:center}
  .task-series-fields{grid-template-columns:minmax(0,1fr) 92px}
  .serial-add-episodes{grid-template-columns:76px 90px minmax(0,1fr)}.serial-add-episodes textarea{grid-column:1/-1}.serial-add-episodes .btn{grid-column:1/-1;justify-content:center}
  .direction-manager-summary{grid-template-columns:minmax(0,1fr) auto}.direction-progress{grid-column:1;padding-left:30px}.direction-manager-summary>[data-category-archive]{grid-column:2;grid-row:1/3}
  .direction-project-row{grid-template-columns:minmax(0,1fr) 92px}.direction-project-row small{grid-column:1/-1;text-align:left}
  .audit-toolbar{grid-template-columns:1fr 1fr}.audit-toolbar #auditActor{grid-column:1/-1}.audit-toolbar .btn{justify-content:center}
  .audit-item-title>span{flex-basis:64px}.audit-changes,.audit-more{margin-left:0}.audit-change{grid-template-columns:80px minmax(70px,1fr) 14px minmax(70px,1fr)}
}
.modal-task.is-create .task-summary-cell>span{white-space:normal;line-height:1.1;min-height:20px}
.report-section{border-bottom:2px solid var(--row-divider)}

@media(max-width:800px){
  .topbar{border-bottom-width:2px}
  .modal-bg{padding:10px}
  .modal.modal-task.is-create{max-width:100%;border-radius:10px}
  .task-matrix-summary,.modal-task.is-create .task-matrix-summary{grid-template-columns:repeat(5,minmax(148px,1fr));min-height:132px;flex-basis:132px;padding:8px;gap:6px}
  .modal-task.is-create .task-main{padding:12px}
  .task-section-label{margin-bottom:8px}
}
@media(min-width:801px) and (max-width:1200px){.stats-kpis{grid-template-columns:repeat(3,1fr)}}
.tdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 2px}

.tdot{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;margin:0 2px;cursor:pointer;color:#0e1116;font-size:8px;font-weight:800}
html[data-theme="light"] .tdot{color:#fff}
.gpop .tpop-opt{background:transparent!important;color:var(--ink)!important}
.gpop .tpop-opt:hover,.gpop .tpop-opt:focus-visible{background:var(--panel)!important;outline:1px solid var(--line2)}
.tpop-opt.on{font-weight:700}

/* Индикатор загрузки исполнителя на Ганте (capacity) */
.load-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:10px;font-size:10px;
  font-weight:700;font-family:var(--mono);vertical-align:middle;line-height:16px}
.load-badge.single{background:rgba(127,135,147,.14);color:var(--ink-faint)}
.load-badge.busy{background:rgba(224,162,60,.18);color:var(--mid)}
.load-badge.over{background:rgba(240,97,109,.2);color:var(--hi)}
.gantt-task-count{display:inline-block;margin-left:6px;color:var(--ink-faint);font:600 9px/16px var(--mono)}
.pname[data-person-toggle]{cursor:pointer}
.pname[data-person-toggle]:hover,.pname[data-person-toggle]:focus-visible{background:var(--panel2);outline:none}

/* ---- TELEGRAM REPORT ---- */
.report-view .tracker-only,.report-view>.filters,.report-view>.kpis{display:none!important}
.report-page{min-height:calc(100vh - 55px);background:var(--bg)}
.report-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:16px 20px 14px;border-bottom:1px solid var(--line);background:var(--panel)}
.report-heading h2{font-size:18px;line-height:1.2;margin-top:5px}
.report-connection{font-size:10px;color:var(--final);margin-top:5px}
.report-connection.error{color:var(--hi)}
.report-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.report-date-field{height:34px;display:flex;align-items:center;gap:7px;padding:3px 8px;border:1px solid var(--line2);border-radius:6px;background:var(--bg)}
.report-date-field span{font-size:9px;color:var(--ink-faint);text-transform:uppercase}
.report-date-field input{border:0;background:transparent;color:var(--ink);font:600 11px var(--mono)}
.report-date-field input:focus{outline:0}
.report-date-step{width:30px;height:34px;border:1px solid var(--line2);border-radius:5px;background:var(--panel2);font-size:20px;line-height:1;color:var(--ink-dim)}
.report-date-step:hover{color:var(--ink);border-color:var(--accent-dim)}
.report-toolbar .btn:disabled{opacity:.42;cursor:not-allowed}
.report-metrics{display:grid;grid-template-columns:repeat(6,minmax(112px,1fr));gap:1px;border-bottom:1px solid var(--line);background:var(--line);overflow-x:auto}
.report-metric{display:flex;align-items:baseline;gap:8px;min-width:112px;padding:7px 12px;background:var(--panel)}
.report-metric strong{font:800 18px/1 var(--mono)}
.report-metric span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;letter-spacing:.6px;color:var(--ink-faint);text-transform:uppercase}
.report-metric.done strong{color:var(--final)}.report-metric.active strong{color:var(--production)}.report-metric.high strong,.report-metric.warning strong{color:var(--hi)}.report-metric.postponed strong{color:var(--review)}.report-metric.cancelled strong{color:var(--ink-faint)}
.report-skeleton strong,.report-skeleton span,.report-section-skeleton span,.report-section-skeleton i,.telegram-bubble-loading i{border-radius:3px;background:var(--panel2);animation:stats-pulse 1.1s ease-in-out infinite alternate}
.report-skeleton strong{width:28px;height:16px}.report-skeleton span{width:76px;height:8px}
.report-workspace{display:grid;grid-template-columns:minmax(640px,1.45fr) minmax(370px,.75fr);align-items:start;min-height:65vh}
.report-editor{min-width:0;border-right:1px solid var(--line2)}
.report-editor-head{min-height:55px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line2);background:var(--bg)}
.report-editor-head>div{display:flex;flex-direction:column;min-width:0}.report-editor-head strong{font-size:12px}.report-editor-head span{font-size:9px;color:var(--ink-faint);margin-top:2px}
.report-new-section{display:flex;gap:7px;padding:9px 16px;border-bottom:1px solid var(--line2);background:var(--panel)}
.report-new-section input{flex:1;min-width:0;height:33px;border:1px solid var(--line2);border-radius:5px;background:var(--bg);color:var(--ink);padding:6px 9px}
.report-sections{display:flex;flex-direction:column}
.report-section{border-bottom:2px solid var(--row-divider);background:var(--bg)}
.report-section-head{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:50px;padding:7px 14px;border-bottom:1px solid var(--line2);background:var(--panel)}
.report-section-toggle{width:26px;height:26px;border:0;border-radius:4px;background:transparent;color:var(--ink-dim);font-size:17px}
.report-section-toggle:hover{background:var(--panel2);color:var(--ink)}
.report-section-head>div{display:flex;flex-direction:column;min-width:0}.report-section-head strong{font-size:12px}.report-section-head>div span{margin-top:1px;color:var(--ink-faint);font-size:9px}
.report-target{display:flex;align-items:center;gap:5px}.report-target>span{font-size:8px;color:var(--ink-faint);text-transform:uppercase}.report-target input{width:58px;height:29px;border:1px solid var(--line2);border-radius:5px;background:var(--bg);color:var(--ink);padding:4px 6px;font:700 11px var(--mono)}
.report-target button{height:27px;border:0;background:transparent;color:var(--accent);font-size:9px;padding:0 3px}.report-target button:disabled{color:var(--ink-faint);opacity:.55;cursor:default}
.report-section-items{display:grid;grid-template-rows:1fr;transition:grid-template-rows .18s ease-out}
.report-section.is-collapsed .report-section-items{grid-template-rows:0fr;overflow:hidden}.report-section.is-collapsed .report-section-items>*{display:none}
.report-item{display:grid;grid-template-columns:26px 38px minmax(180px,1.35fr) 20px minmax(120px,.55fr) minmax(180px,1fr) 58px;align-items:center;gap:6px;min-height:48px;padding:6px 12px;border-bottom:1px solid var(--line);transition:background .12s,opacity .12s}
.report-item:last-child{border-bottom:0}.report-item:hover{background:var(--panel)}.report-item.is-excluded{opacity:.44}.report-item.is-excluded:hover{opacity:.72}
.report-include{display:flex;align-items:center;justify-content:center;cursor:pointer}.report-include input{position:absolute;opacity:0}.report-include span{width:16px;height:16px;border:1px solid var(--line2);border-radius:4px;background:var(--panel)}.report-include input:checked+span{border-color:var(--accent);background:var(--accent-dim);box-shadow:inset 0 0 0 3px var(--panel)}
.report-item-status{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:26px;border-radius:5px;background:var(--panel2);font:800 13px var(--mono)}
.report-item-status.done{color:var(--final)}.report-item-status.active{color:var(--production)}.report-item-status.failed{color:var(--failed)}.report-item-status.cancel{color:var(--ink-faint)}
.report-item-status b{position:absolute;left:-4px;top:-5px;color:var(--hi);font:900 11px var(--sans)}
.report-item-title{grid-column:3;display:flex;flex-direction:column;min-width:0;border:0;background:transparent;text-align:left;padding:1px 0}
.report-item-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.report-item-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;color:var(--ink-faint);font-size:8px}.report-item-title:hover strong{color:var(--accent)}
.report-item-warning{grid-column:4;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:rgba(240,97,109,.14);color:var(--hi);font:800 10px var(--mono)}
.report-item-section,.report-item-note{width:100%;min-width:0;height:31px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);padding:5px 7px;font-size:9px}
.report-item-section{grid-column:5}.report-item-note{grid-column:6}
.report-item-note:focus,.report-item-section:focus{border-color:var(--accent-dim);outline:0}
.report-item-order{grid-column:7;display:flex;justify-content:flex-end;gap:3px}.report-item-order button{width:26px;height:27px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink-dim)}.report-item-order button:hover:not(:disabled){border-color:var(--accent-dim);color:var(--ink)}.report-item-order button:disabled{opacity:.25;cursor:default}
.report-section-empty{min-height:48px;display:flex;align-items:center;padding:8px 52px;color:var(--ink-faint);font-size:10px}
.report-section-skeleton{height:110px;padding:14px 16px}.report-section-skeleton span{display:block;width:140px;height:11px}.report-section-skeleton i{display:block;width:80%;height:9px;margin-top:18px}.report-section-skeleton i:last-child{width:63%;margin-top:11px}
.report-preview-column{position:sticky;top:55px;align-self:start;max-height:calc(100vh - 55px);overflow:auto;background:var(--panel)}
.telegram-frame{border-bottom:1px solid var(--line2)}
.telegram-frame-head,.report-history-head{height:55px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border-bottom:1px solid var(--line2);background:var(--panel)}
.telegram-frame-head strong,.report-history-head strong{font-size:11px}.telegram-frame-head span{font-size:9px;color:var(--ink-faint)}
.telegram-canvas{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-height:430px;padding:18px 13px 24px;background:#18232c}
html[data-theme="light"] .telegram-canvas{background:#d8e3ec}
.telegram-bubble{position:relative;width:min(100%,520px);padding:9px 11px;border-radius:8px 8px 2px 8px;background:#253746;color:#edf4f8;font-size:11px;line-height:1.34;overflow-wrap:anywhere;box-shadow:0 1px 1px rgba(0,0,0,.18)}
html[data-theme="light"] .telegram-bubble{background:#eff9e9;color:#1b2730}
.telegram-bubble strong{font-weight:750}.telegram-bubble u{text-underline-offset:2px}.telegram-bubble s{opacity:.72}
.tg-custom-emoji{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;margin-right:1px;border-radius:50%;font-size:.8em;font-weight:900;vertical-align:-.08em}.tg-custom-emoji.done{background:#42a84f;color:#fff}.tg-custom-emoji.active{background:#f0c328;color:#594700}
.telegram-bubble-loading{height:130px;align-self:flex-end}.telegram-bubble-loading i{display:block;height:9px;margin:7px 0;background:#314758}.telegram-bubble-loading i:nth-child(1){width:44%}.telegram-bubble-loading i:nth-child(2){width:88%}.telegram-bubble-loading i:nth-child(3){width:73%}.telegram-bubble-loading i:nth-child(4){width:92%}
.telegram-empty{align-self:center;margin:auto;color:#6c8190;font-size:10px}
.report-history{background:var(--panel)}.report-history-head{height:42px}.report-history-head button{width:27px;height:27px;border:0;border-radius:4px;background:transparent;color:var(--ink-dim);font-size:16px}.report-history-head button:hover{background:var(--panel2);color:var(--ink)}
.report-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line)}.report-history-row>span{display:flex;flex-direction:column;min-width:0}.report-history-row strong{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-history-row small{font-size:8px;color:var(--ink-faint);margin-top:2px}.report-history-row>b{font:700 8px var(--mono);color:var(--final);white-space:nowrap}.report-history-row.error>b{color:var(--hi)}.report-history-empty{padding:18px 14px;color:var(--ink-faint);font-size:9px}
.report-quality{margin:14px 16px 24px;border:1px solid var(--line2);border-radius:7px;background:var(--panel)}.report-quality summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;cursor:pointer;font-size:10px;font-weight:700}.report-quality summary span:last-child{color:var(--ink-faint);font:600 8px var(--mono)}.report-quality-body{padding:0 12px 12px}.report-quality-actions{display:flex;gap:7px;margin-top:9px}

@media(max-width:1200px){
  .social-kpis{grid-template-columns:repeat(3,1fr)}
  .social-overview{grid-template-columns:1fr}
  .social-trend-panel{border-right:0;border-bottom:2px solid var(--row-divider)}
  .social-metrics-form{grid-template-columns:repeat(3,minmax(125px,1fr))}
}
@media(max-width:1180px){
  .report-workspace{grid-template-columns:1fr}.report-editor{border-right:0}.report-preview-column{position:static;max-height:none;border-top:2px solid var(--row-divider)}.telegram-canvas{min-height:320px}
}
@media(max-width:800px){
  .social-head{align-items:flex-start;flex-direction:column;padding:12px}
  .social-actions{justify-content:flex-start;width:100%}
  .social-actions .stats-period{order:3;width:100%}
  .social-actions .stats-period button{flex:1}
  .social-kpis{grid-template-columns:repeat(2,1fr)}
  .social-kpi{padding:11px 12px}
  .social-trend-panel{padding:13px 12px 15px}
  .social-trend-panel>header{align-items:flex-start;flex-direction:column}
  .social-chart-legend{justify-content:flex-start}
  .social-trend{height:205px}
  .social-publications>header{padding:12px}
  .social-entry-panel{margin:10px 8px 18px}
  .social-form,.social-metrics-form{grid-template-columns:1fr 1fr;padding:11px}
  .social-form-wide,.social-form-url{grid-column:1/-1}
  .report-page-head{align-items:flex-start;flex-direction:column;padding:12px}.report-toolbar{justify-content:flex-start;width:100%}.report-date-field{flex:1}.report-date-field input{width:100%;min-width:0}.report-toolbar .btn{min-height:36px}.report-preview-column{order:-1}.telegram-canvas{min-height:260px;max-height:48vh;overflow:auto;padding:12px 8px 18px}.report-editor-head{padding:9px 10px}.report-section-head{padding:7px 8px}.report-item{grid-template-columns:24px 34px minmax(0,1fr) 18px 54px;padding:7px 8px;gap:5px}.report-item-title{grid-column:3/4}.report-item-warning{grid-column:4}.report-item-order{grid-column:5;grid-row:1}.report-item-section{grid-column:2/4;grid-row:2}.report-item-note{grid-column:4/6;grid-row:2}.report-section-empty{padding-left:44px}.telegram-bubble{font-size:11px}.report-quality{margin:10px 8px 18px}
}

/* Keep the report in the same visual system after its legacy layout rules. */
.report-page-head{border-bottom:2px solid var(--line2)}
.report-metrics{background:var(--line2);border-bottom:2px solid var(--line2)}
.report-editor-head,.telegram-frame-head,.report-history-head{border-bottom:2px solid var(--line2)}

/* Compact, episode-first social analytics. */
.social-page{width:min(1480px,calc(100% - 24px));min-height:calc(100vh - 55px);margin:0 auto;padding:0 0 32px;background:var(--bg)}
.social-head{display:flex;align-items:flex-start;flex-direction:column;gap:14px;padding:18px 0 14px;border-bottom:2px solid var(--line2);background:transparent}
.social-head h2{margin-top:5px;font-size:20px;line-height:1.2;letter-spacing:-.02em}
.social-head-note{max-width:58ch;margin-top:4px;color:var(--ink-dim);font-size:12px;line-height:1.45}
.social-sync-state{margin-top:5px;line-height:1.35}
.social-actions{display:grid;width:100%;grid-template-columns:1fr;gap:8px}
.social-actions .stats-period{grid-column:1/-1;width:100%}
.social-actions .stats-period button{flex:1}
.social-actions>.btn{min-height:42px}
.social-summary{margin-top:14px;border:1px solid var(--line2);border-radius:8px;background:var(--panel)}
.social-summary>header{padding:13px 14px 10px;border-bottom:1px solid var(--line)}
.social-summary>header h3{font-size:13px}
.social-summary>header p{margin-top:3px;color:var(--ink-faint);font-size:9px;line-height:1.35}
.social-vk-insights{margin-top:14px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);overflow:hidden}
.social-vk-insights>header{padding:13px 14px 10px;border-bottom:1px solid var(--line)}
.social-vk-insights>header h3{font-size:13px}.social-vk-insights>header p{margin-top:3px;color:var(--ink-faint);font-size:9px}
.social-vk-insights-body{display:grid;gap:12px;padding:12px 14px;overflow-x:auto;scrollbar-gutter:stable}
.social-vk-detail-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.social-vk-detail-kpi{padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--bg)}
.social-vk-detail-kpi strong{display:block;font-size:17px}.social-vk-detail-kpi span{display:block;margin-top:3px;color:var(--ink-faint);font-size:9px}
.social-vk-audience{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.social-vk-audience-card{padding:10px;border:1px solid var(--line);border-radius:7px}.social-vk-audience-card h4{font-size:10px;margin-bottom:7px}
.social-vk-audience-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:5px;font-size:9px}.social-vk-audience-row b{font-variant-numeric:tabular-nums}
.social-vk-post-table{width:100%;border-collapse:collapse;font-size:9px}.social-vk-post-table th,.social-vk-post-table td{padding:7px 6px;border-top:1px solid var(--line);text-align:right;white-space:nowrap}.social-vk-post-table th:first-child,.social-vk-post-table td:first-child{text-align:left;white-space:normal}
.social-unified-grid{display:grid;gap:16px}.social-insight-band{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.social-insight-band>header{padding-top:4px}.social-insight-band>header b{display:block;font-size:11px}.social-insight-band>header span{display:block;margin-top:3px;color:var(--ink-faint);font-size:9px}
.social-insight-value{display:block;margin-top:12px;font-size:22px}.social-vk-audience-card>small{display:block;margin-top:4px;color:var(--ink-faint);font-size:9px}
.social-hour-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.social-hour-list>span{display:grid;gap:1px;padding:5px 7px;border:1px solid var(--line);border-radius:5px}.social-hour-list b{font-size:11px}.social-hour-list small{color:var(--ink-faint);font-size:8px}
.social-series-insights h4{margin-bottom:8px;font-size:11px}.social-series-insights-scroll{overflow-x:auto}.social-series-insights .social-vk-post-table th[colspan]{text-align:center;color:var(--ink-faint);font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.social-reaction-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.social-reaction-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 5px;border:1px solid var(--line);border-radius:999px;font-variant-numeric:tabular-nums}.social-reaction-chip b{font-size:13px;line-height:1}
.social-service-comparison-head,.social-service-comparison,.social-service-series-head,.social-service-series-row{display:grid;grid-template-columns:140px repeat(5,minmax(200px,1fr));min-width:1140px}
.social-service-comparison-head{position:sticky;top:0;z-index:1;background:var(--panel);border-bottom:1px solid var(--line)}.social-service-comparison-head b{padding:7px 10px;font-size:10px;text-align:left}.social-service-comparison-head b+b{border-left:1px solid var(--line)}
.social-service-comparison{border-bottom:1px solid var(--line)}.social-service-comparison-label{padding:13px 12px 13px 0}.social-service-comparison-label b{display:block;font-size:10px}.social-service-comparison-label span{display:block;margin-top:3px;color:var(--ink-faint);font-size:8px;line-height:1.35}
.social-service-column{border-left:1px solid var(--line)}.social-service-column>header{padding:10px;border-bottom:1px solid var(--line)}.social-service-column>header b{display:block;font-size:11px}.social-service-column>header span{display:block;margin-top:2px;color:var(--ink-faint);font-size:8px}
.social-service-metrics{display:grid}.social-service-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;align-content:center;gap:4px 8px;min-height:44px;padding:7px 10px;border-top:1px solid var(--line)}.social-service-metric:first-child{border-top:0}.social-service-metric span{font-size:9px;color:var(--ink-soft)}.social-service-metric strong{font-size:13px;font-variant-numeric:tabular-nums}.social-service-metric small{grid-column:1/-1;color:var(--ink-faint);font-size:7px;line-height:1.25}
.social-service-audience-row>section{padding:12px 10px;border-left:1px solid var(--line)}.social-service-audience-note b,.social-service-audience-details h4{font-size:10px}.social-service-audience-note p,.social-service-audience-details>p{margin-top:5px;color:var(--ink-faint);font-size:8px;line-height:1.45}.social-audience-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.social-audience-pair>div>b,.social-service-audience-details>div>b{font-size:8px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.social-service-inline{display:flex;justify-content:space-between;margin-top:9px;padding-top:7px;border-top:1px solid var(--line);font-size:9px}
.social-audience-profile{background:var(--paper-soft)}.social-audience-dimension{display:grid;grid-template-columns:58px minmax(0,1fr);gap:3px 7px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line)}.social-audience-dimension:first-of-type{margin-top:7px}.social-audience-dimension span{color:var(--ink-faint);font-size:8px;text-transform:uppercase;letter-spacing:.04em}.social-audience-dimension b{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.social-audience-dimension small{grid-column:2;color:var(--ink-faint);font-size:7px;line-height:1.35}.social-audience-footnote{display:block;margin-top:8px;color:var(--ink-faint);font-size:7px;line-height:1.4}
.social-service-series-head{border-bottom:1px solid var(--line)}.social-service-series-head>*{padding:7px 10px;font-size:9px;text-align:left}.social-service-series-head>*+*{border-left:1px solid var(--line)}
.social-service-series-row{border-bottom:1px solid var(--line)}.social-service-series-row>h5{padding:12px 10px 12px 0;font-size:10px}.social-series-service-cell{display:flex;min-width:0;flex-direction:column;border-left:1px solid var(--line)}.social-series-service-cell .social-service-metric{box-sizing:border-box;height:44px;min-height:44px;padding:5px 10px}.social-series-reactions{box-sizing:border-box;height:68px;padding:7px 10px;border-top:1px solid var(--line);overflow:hidden}.social-series-reactions>span{display:block;margin-bottom:5px;color:var(--ink-faint);font-size:8px}.social-series-service-cell .social-reaction-list{justify-content:flex-start}
.social-service-feedback .social-reaction-list{justify-content:flex-start}.social-service-audience-details>div:not(.social-service-inline)>b{display:block;margin-top:10px}
@media(max-width:900px){.social-vk-detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.social-vk-audience{grid-template-columns:repeat(2,minmax(0,1fr))}.social-vk-post-table{min-width:900px}.social-vk-insights-body{overflow-x:auto}}
@media(max-width:700px){.social-insight-band{grid-template-columns:1fr}.social-vk-audience{grid-template-columns:1fr}.social-reaction-list{justify-content:flex-start}}
.social-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:0;background:var(--line2)}
.social-kpi{position:relative;min-height:82px;padding:13px 14px;background:var(--panel)}
.social-kpi strong{display:block;font:800 20px/1.1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.social-kpi span.social-kpi-label{display:flex;align-items:center;gap:5px;margin-top:6px}
.social-kpi small{margin-top:4px;font:9px/1.3 var(--sans)}
.social-kpi .social-help-wrap{position:static;display:inline-flex;margin:0}
.social-help{display:inline-flex;width:15px;height:15px;align-items:center;justify-content:center;padding:0;border:1px solid var(--line2);border-radius:50%;background:var(--panel2);color:var(--ink-faint);font:800 8px/1 var(--sans);text-transform:none;cursor:help}
.social-help:hover,.social-help:focus-visible{border-color:var(--accent-dim);color:var(--accent);outline:none}
.social-help-pop{position:absolute;z-index:12;top:58px;right:10px;left:10px;padding:7px 8px;border:1px solid var(--line2);border-radius:6px;background:var(--thead-bg);box-shadow:0 9px 22px rgba(0,0,0,.28);color:var(--ink);font:500 9px/1.4 var(--sans);letter-spacing:0;text-align:left;text-transform:none;opacity:0;visibility:hidden;transform:translateY(3px);transition:opacity .14s ease,transform .14s ease,visibility .14s}
.social-help-wrap:hover .social-help-pop,.social-help:focus-visible+.social-help-pop{opacity:1;visibility:visible;transform:translateY(0)}
.social-overview{display:grid;grid-template-columns:minmax(0,1fr);margin-top:14px;overflow:hidden;border:1px solid var(--line2);border-radius:8px;background:var(--panel)}
.social-trend-panel{min-width:0;padding:15px 14px 17px;border-right:0;border-bottom:1px solid var(--row-divider);background:var(--panel)}
.social-trend-panel p,.social-publications p,.social-entry-panel p{line-height:1.4}
.social-chart-tools{display:grid;min-width:0;justify-items:end;gap:8px}
.social-chart-metric{display:inline-flex;padding:2px;border:1px solid var(--line2);border-radius:6px;background:var(--bg)}
.social-chart-metric button{min-height:24px;padding:3px 7px;border:0;border-radius:4px;background:transparent;color:var(--ink-faint);font-size:8px;font-weight:700;cursor:pointer}
.social-chart-metric button:hover{color:var(--ink)}
.social-chart-metric button.on{background:var(--panel2);color:var(--ink);box-shadow:0 0 0 1px var(--line)}
.social-chart-metric button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.social-chart-metric button:disabled{color:var(--ink-faint);opacity:.36;cursor:not-allowed}
.social-chart-legend{justify-content:flex-start;gap:5px}
.social-chart-legend-item{display:inline-flex;align-items:center;gap:4px;padding:2px 4px;border:0;border-radius:4px;background:transparent;color:var(--ink-dim);font-size:8px;cursor:pointer;transition:opacity .15s ease,background .15s ease}
.social-chart-legend-item i{width:10px;height:2px;background:var(--platform-color)}
.social-chart-legend-item:hover{background:var(--panel2);color:var(--ink)}
.social-chart-legend-item:focus-visible{outline:2px solid var(--platform-color);outline-offset:1px}
.social-chart-legend-item.is-muted{opacity:.38}
.social-chart-legend-item.has-no-data{color:var(--ink-faint)}
.social-trend{position:relative;height:210px;margin-top:12px}
.social-chart-hit{fill:transparent;stroke:transparent;stroke-width:1;cursor:crosshair;vector-effect:non-scaling-stroke}
.social-chart-hit:hover,.social-chart-hit:focus,.social-chart-hit.is-active{fill:color-mix(in srgb,var(--platform-color) 10%,transparent);stroke:var(--platform-color);outline:none}
.social-chart-point{pointer-events:none}
.social-chart-tooltip{position:absolute;z-index:9;display:grid;min-width:128px;gap:2px;padding:7px 9px;border:1px solid var(--line2);border-radius:6px;background:var(--thead-bg);box-shadow:0 9px 22px rgba(0,0,0,.28);color:var(--ink);pointer-events:none}
.social-chart-tooltip[hidden]{display:none}
.social-chart-tooltip strong{font-size:9px}
.social-chart-tooltip span{color:var(--ink-faint);font-size:8px}
.social-chart-tooltip b{margin-top:2px;color:var(--accent);font:800 13px/1 var(--sans);font-variant-numeric:tabular-nums}
.social-chart-tooltip b small{color:var(--ink-dim);font-size:8px;font-weight:600}
.social-connectors>header{padding:14px 14px 10px}
.social-connector{display:grid;grid-template-columns:26px minmax(0,1fr) 9px;align-items:center;gap:10px;padding:10px 14px}
.social-connector-dot{width:7px;height:7px;margin-top:0}
.social-connector-copy{display:grid;min-width:0;gap:2px}
.social-connector-copy strong{color:var(--ink);font-size:11px}
.social-connector-copy small{min-width:0;color:var(--ink-faint);font-size:9px;line-height:1.35;overflow-wrap:anywhere}
.social-connect-btn{justify-self:start;margin-top:4px;padding:4px 7px;border:1px solid color-mix(in srgb,var(--platform-color) 45%,var(--line));border-radius:5px;background:transparent;color:var(--platform-color);font:600 9px var(--sans);cursor:pointer}
.social-connect-btn:hover{background:color-mix(in srgb,var(--platform-color) 8%,transparent)}
.social-connect-code{display:block;margin-top:3px}.social-connect-code b{font-family:var(--mono);color:var(--ink)}
.social-connect-code a{color:var(--platform-color)}.social-connected-account{color:var(--final)!important}
.social-platform-logo{display:inline-flex;flex:0 0 auto;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--platform-color) 24%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--platform-color) 8%,var(--panel));color:var(--platform-color)}
.social-platform-logo svg{display:block;width:19px;height:19px}
.social-platform-logo.compact{width:26px;height:26px;border-radius:7px}
.social-platform-logo.compact svg{width:16px;height:16px}
.social-platform-logo.legend{width:15px;height:15px;border:0;border-radius:0;background:transparent}
.social-platform-logo.legend svg{width:13px;height:13px}
.social-platform-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border-top:1px solid var(--line2);background:var(--line2)}
.social-platform-total{display:grid;min-width:0;gap:10px;padding:12px 14px;border:0;background:var(--panel2);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:opacity .15s ease,background .15s ease}
.social-platform-total:hover{background:color-mix(in srgb,var(--platform-color) 7%,var(--panel2))}
.social-platform-total:focus-visible{position:relative;z-index:2;outline:2px solid var(--platform-color);outline-offset:-2px}
.social-platform-total.is-muted{opacity:.42}
.social-platform-total-head{display:flex;min-width:0;align-items:center;gap:9px}
.social-platform-total-head>div{display:grid;min-width:0;gap:2px}
.social-platform-total-head strong{overflow:hidden;color:var(--ink);font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.social-platform-total-head span{color:var(--ink-faint);font-size:8px}
.social-platform-toggle-mark{display:inline-flex;flex:0 0 auto;width:17px;height:17px;align-items:center;justify-content:center;margin-left:auto;border:1px solid color-mix(in srgb,var(--platform-color) 32%,var(--line));border-radius:50%;color:var(--platform-color);font-size:9px;font-style:normal}
.social-platform-total-value{display:grid;gap:2px}
.social-platform-total-value strong{color:var(--ink);font-size:18px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.social-platform-total-value span{color:var(--ink-faint);font-size:8px;text-transform:uppercase;letter-spacing:.35px}
.social-platform-total-meta{display:flex;min-width:0;flex-wrap:wrap;gap:4px 10px;color:var(--ink-dim);font-size:8px;line-height:1.3}
.social-publications{margin-top:14px;overflow:hidden;border:1px solid var(--line2);border-radius:8px;background:var(--panel)}
.social-publications>header{padding:14px;border-bottom:1px solid var(--line)}
.social-focus-heading{display:grid;min-width:0;gap:3px}
.social-focus-heading span{color:var(--accent);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}
.social-focus-heading strong{overflow:hidden;color:var(--ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.social-focus-metrics,.social-focus-breakdown{display:flex;min-width:0;align-items:center}
.social-focus-metrics>span,.social-focus-breakdown>span{display:grid;min-width:0;gap:2px;padding:0 9px;border-left:1px solid var(--line)}
.social-focus-metrics>span:first-child,.social-focus-breakdown>span:first-child{padding-left:0;border-left:0}
.social-focus-metrics b{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}
.social-focus-breakdown b{color:var(--ink-dim);font-size:10px;font-variant-numeric:tabular-nums}
.social-focus-metrics small,.social-focus-breakdown small{overflow:hidden;color:var(--ink-faint);font-size:7px;text-overflow:ellipsis;white-space:nowrap}
.social-focus-close{position:absolute;top:50%;right:10px;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink-faint);font-size:17px;line-height:1;transform:translateY(-50%);cursor:pointer}
.social-focus-close:hover,.social-focus-close:focus-visible{background:var(--panel);color:var(--ink);outline:1px solid var(--line2)}
.social-series-list{min-width:0}
.social-matrix-wrap{max-width:100%;overflow-x:auto;scrollbar-gutter:stable}
.social-matrix-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.social-episode-matrix{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;table-layout:fixed}
.social-episode-matrix col.social-matrix-episode{width:260px}
.social-episode-matrix col.social-matrix-total{width:132px}
.social-episode-matrix th,.social-episode-matrix td{border-bottom:1px solid var(--line)}
.social-episode-matrix thead th{height:46px;padding:7px 10px;background:var(--thead-bg);color:var(--ink-dim);font-size:10px;font-weight:750;line-height:1.15;text-align:left;vertical-align:middle}
.social-episode-matrix thead th:not(:first-child){text-align:right}
.social-matrix-platform-head{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}
.social-matrix-platform-head .social-platform-logo{width:23px;height:23px;border-radius:6px}
.social-matrix-platform-head .social-platform-logo svg{width:14px;height:14px}
.social-episode-matrix tbody th,.social-episode-matrix tbody td{height:74px;padding:9px 10px;background:var(--panel);vertical-align:middle}
.social-episode-matrix tbody tr:hover>*{background:var(--panel2)}
.social-episode-matrix tbody tr.is-focused>*{background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.social-episode-matrix tbody tr:last-child>*,.social-episode-matrix tfoot tr:last-child>*{border-bottom:0}
.social-episode-layout{display:flex;min-width:0;align-items:center;gap:10px;text-align:left}
.social-episode-select{display:block;width:100%;padding:0;color:inherit;text-align:left}
.social-episode-number{display:inline-flex;flex:0 0 auto;width:30px;height:30px;align-items:center;justify-content:center;border:1px solid var(--line2);border-radius:7px;background:var(--panel2);color:var(--ink-dim);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.social-episode-copy{display:grid;min-width:0;gap:4px}
.social-episode-copy strong{overflow:hidden;color:var(--ink);font-size:12px;font-weight:750;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.social-episode-copy small{overflow:hidden;color:var(--ink-faint);font-size:9px;font-weight:500;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.social-matrix-cell{text-align:right}
.social-matrix-cell>a,.social-matrix-cell>div{display:grid;min-width:0;justify-items:end;gap:2px;color:inherit;text-decoration:none}
.social-matrix-cell>a:hover strong{color:var(--platform-color,var(--accent))}
.social-matrix-cell>a:focus-visible{outline:2px solid var(--platform-color,var(--accent));outline-offset:3px;border-radius:3px}
.social-matrix-cell .social-metric-top{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;margin:0;color:inherit;font:inherit;line-height:1;letter-spacing:0;text-transform:none}
.social-matrix-cell strong{color:var(--ink);font-size:15px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.social-matrix-cell span{color:var(--ink-faint);font-size:8px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.35px}
.social-matrix-cell small{overflow:hidden;max-width:100%;color:var(--ink-dim);font-size:9px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.social-matrix-cell time{color:var(--ink-faint);font-size:8px;line-height:1.2;white-space:nowrap}
.social-matrix-cell i{position:static;display:inline-flex;flex:0 0 auto;align-items:center;color:var(--platform-color,var(--accent));font-size:9px;font-style:normal;line-height:1}
.social-episode-matrix [data-social-platform-column].is-muted{opacity:.38}
.social-cell-empty strong{color:var(--ink-faint);font-weight:600}
.social-cell-empty small{color:var(--ink-faint)}
.social-episode-matrix tbody td:last-child,.social-episode-matrix tfoot td:last-child{border-left:1px solid var(--line2);background:var(--panel2)}
.social-episode-matrix tfoot th,.social-episode-matrix tfoot td{height:68px;padding:9px 10px;border-top:1px solid var(--line2);background:var(--panel2);vertical-align:middle}
.social-episode-matrix tfoot th{text-align:left}
.social-episode-matrix tfoot th strong{display:block;color:var(--ink);font-size:11px}
.social-episode-matrix tfoot th small{display:block;margin-top:4px;color:var(--ink-faint);font-size:9px;font-weight:500}
.social-episode-matrix thead th:first-child,.social-episode-matrix tbody th,.social-episode-matrix tfoot th:first-child{position:sticky;left:0;z-index:2;box-shadow:1px 0 0 var(--line2)}
.social-episode-matrix thead th:first-child{z-index:3;background:var(--thead-bg)}
.social-episode-matrix tbody th{background:var(--panel)}
.social-episode-matrix tbody tr:hover th{background:var(--panel2)}
.social-episode-matrix tbody tr.is-focused th{background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.social-episode-matrix tfoot th:first-child{background:var(--panel2)}
.social-series-empty{display:grid;justify-items:start;gap:5px;padding:24px 14px;color:var(--ink-dim)}
.social-series-empty strong{font-size:13px}
.social-series-empty span{color:var(--ink-faint);font-size:10px}
.social-series-loading,.social-series-skeleton{display:grid;gap:8px;padding:18px 14px;border-bottom:1px solid var(--line)}
.social-entry-panel{margin:14px 0 0}
.social-panel-close{width:44px;height:44px;border-radius:6px;font-size:21px}
.social-form{grid-template-columns:1fr;padding:14px}
.social-form input,.social-form select{height:44px;padding:7px 9px;font-size:16px}
.social-form-wide,.social-form-url{grid-column:1/-1}
.social-platform-instagram{--platform-color:#e05083}
.social-platform-telegram{--platform-color:#289bd3}
.social-platform-vk{--platform-color:#397ee9}
.social-platform-rutube{--platform-color:#ed394f}

@media(max-width:800px){
  .social-episode-matrix{min-width:820px}
  .social-episode-matrix col.social-matrix-episode{width:220px}
  .social-episode-matrix tbody th,.social-episode-matrix tbody td{height:70px;padding:8px}
  .social-episode-matrix thead th,.social-episode-matrix tfoot th,.social-episode-matrix tfoot td{padding-right:8px;padding-left:8px}
  .social-chart-tools{width:100%;justify-items:start}
  .social-chart-metric{width:100%}
  .social-chart-metric button{flex:1}
  .social-focus-metrics,.social-focus-breakdown{overflow-x:auto;padding-bottom:2px}
  .social-focus-metrics>span,.social-focus-breakdown>span{flex:0 0 auto}
  .social-help-pop{top:54px}
}

@media(min-width:801px){
  .social-page{padding-right:20px;padding-left:20px}
  .social-head{align-items:flex-end;flex-direction:row;justify-content:space-between;gap:20px;padding-top:18px;padding-right:0;padding-left:0}
  .social-actions{display:flex;width:auto;align-items:center;justify-content:flex-end;gap:8px}
  .social-actions .stats-period{width:auto}
  .social-actions>.btn{min-height:34px}
  .social-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .social-platform-totals{grid-template-columns:repeat(4,minmax(0,1fr))}
  .social-trend-panel>header{align-items:flex-start;flex-direction:row}
  .social-chart-legend{justify-content:flex-end}
  .social-trend{height:225px}
  .social-form{grid-template-columns:repeat(4,minmax(135px,1fr))}
  .social-form-wide,.social-form-url{grid-column:span 2}
  .social-form input,.social-form select{height:36px;font-size:11px}
  .social-panel-close{width:32px;height:32px}
  .social-metrics-form{grid-template-columns:repeat(3,minmax(125px,1fr))}
}

@media(min-width:1040px){
  .social-overview{grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr)}
  .social-trend-panel{padding:16px 20px 18px;border-right:1px solid var(--row-divider);border-bottom:0}
  .social-connectors>header{padding:16px 16px 10px}
  .social-connector{padding-right:16px;padding-left:16px}
  .social-metrics-form{grid-template-columns:repeat(5,minmax(125px,1fr))}
}

@media(prefers-reduced-motion:reduce){
  .social-help-pop,.social-platform-total,.social-chart-legend-item{transition:none}
}

/* Readable type scale for the complete social analytics workspace. */
.social-page{font-size:.875rem;line-height:1.45}
.social-page .social-head h2{font-size:1.5rem}
.social-page .social-head-note,.social-page .social-sync-state{font-size:.8125rem}
.social-page .btn,.social-page .stats-period button{font-size:.8125rem}
.social-page .social-summary>header h3,.social-page .social-vk-insights>header h3,
.social-page .social-trend-panel h3,.social-page .social-connectors h3,
.social-page .social-publications h3{font-size:1rem}
.social-page .social-summary>header p,.social-page .social-vk-insights>header p,
.social-page .social-trend-panel p,.social-page .social-publications p{font-size:.75rem}
.social-page .social-kpi strong{font-size:1.5rem}
.social-page .social-kpi span.social-kpi-label{font-size:.75rem;line-height:1.35}
.social-page .social-kpi small{font-size:.6875rem}
.social-page .social-help{width:1.125rem;height:1.125rem;font-size:.625rem}
.social-page .social-help-pop{font-size:.75rem}
.social-page .social-platform-total-head strong,.social-page .social-connector-copy strong{font-size:.875rem}
.social-page .social-platform-total-head span,.social-page .social-platform-total-value span,
.social-page .social-platform-total-meta,.social-page .social-connector-copy small{font-size:.6875rem}
.social-page .social-platform-total-value strong{font-size:1.375rem}
.social-page .social-connect-btn,.social-page .social-connect-code{font-size:.75rem}
.social-page .social-chart-metric button,.social-page .social-chart-legend-item{font-size:.75rem}
.social-page .social-chart-axis{font-size:.6875rem}
.social-page .social-chart-tooltip strong{font-size:.75rem}
.social-page .social-chart-tooltip span,.social-page .social-chart-tooltip b small{font-size:.6875rem}
.social-page .social-chart-tooltip b{font-size:1rem}
.social-page .social-empty{font-size:.8125rem}
.social-page .social-vk-detail-kpi strong{font-size:1.25rem}
.social-page .social-vk-detail-kpi span,.social-page .social-vk-audience-row,
.social-page .social-vk-post-table{font-size:.75rem}
.social-page .social-vk-audience-card h4,.social-page .social-series-insights h4{font-size:.875rem}
.social-page .social-vk-audience-card>small,.social-page .social-insight-band>header span{font-size:.6875rem}
.social-page .social-insight-band>header b{font-size:.875rem}
.social-page .social-hour-list b{font-size:.8125rem}
.social-page .social-hour-list small{font-size:.6875rem}
.social-page .social-service-comparison-head b,.social-page .social-service-comparison-label b,
.social-page .social-service-series-head>*{font-size:.75rem}
.social-page .social-service-comparison-label span,.social-page .social-service-column>header span{font-size:.6875rem}
.social-page .social-service-column>header b{font-size:.875rem}
.social-page .social-service-metric{min-height:52px;padding:8px 10px}
.social-page .social-service-metric span{font-size:.75rem}
.social-page .social-service-metric strong{font-size:1rem}
.social-page .social-service-metric small{font-size:.625rem}
.social-page .social-service-audience-note b,.social-page .social-service-audience-details h4{font-size:.8125rem}
.social-page .social-service-audience-note p,.social-page .social-service-audience-details>p,
.social-page .social-audience-dimension span{font-size:.6875rem}
.social-page .social-service-inline,.social-page .social-audience-dimension b{font-size:.75rem}
.social-page .social-audience-dimension small,.social-page .social-audience-footnote{font-size:.625rem}
.social-page .social-service-series-row>h5{font-size:.8125rem}
.social-page .social-series-service-cell .social-service-metric{height:52px;min-height:52px}
.social-page .social-series-reactions{height:76px}
.social-page .social-series-reactions>span{font-size:.6875rem}
.social-page .social-reaction-chip{font-size:.75rem}
.social-page .social-reaction-chip b{font-size:1rem}
.social-page .social-episode-matrix thead th{font-size:.75rem}
.social-page .social-episode-copy strong{font-size:.875rem}
.social-page .social-episode-copy small,.social-page .social-matrix-cell small{font-size:.6875rem}
.social-page .social-matrix-cell strong{font-size:1.125rem}
.social-page .social-matrix-cell span,.social-page .social-matrix-cell time{font-size:.625rem}
.social-page .social-episode-matrix tfoot th strong{font-size:.8125rem}
.social-page .social-episode-matrix tfoot th small,.social-page .social-series-empty span{font-size:.6875rem}
.social-page .social-series-empty strong{font-size:1rem}
