/* Дашборд из виджетов. Палитра и карточки — из cabinet.css (переменные тем),
   здесь только сетка, карточки виджетов и их внутренности. */

/* ── шапка ── */
.dash-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.dash-fresh{font-size:13.5px;color:var(--dim);margin-right:auto;display:flex;gap:8px;align-items:center}
.dash-empty{background:var(--surface);border-radius:var(--rad)}

/* ── сетка: S = 1 колонка, M = 2, L = 4 ── */
.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
.w-card{grid-column:span 2}
.w-card.w-S{grid-column:span 1}
.w-card.w-M{grid-column:span 2}
.w-card.w-L{grid-column:span 4}
@media (max-width:1100px){
  .dash-grid{grid-template-columns:repeat(2,1fr)}
  .w-card.w-S,.w-card.w-M{grid-column:span 1}
  .w-card.w-L{grid-column:span 2}
}
@media (max-width:700px){
  .dash-grid{grid-template-columns:1fr}
  .w-card.w-S,.w-card.w-M,.w-card.w-L{grid-column:span 1}
}

/* ── карточка виджета ── */
.w-card{background:var(--surface);border-radius:var(--rad);box-shadow:var(--shadow);overflow:hidden}
.w-card.dragging{opacity:.45}
.w-head{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;cursor:grab}
.w-head:active{cursor:grabbing}
.w-head h3{font-size:13px;font-weight:500;color:var(--dim);margin:0;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.04em}
.w-drag{color:var(--dim2);font-size:13px;flex:none;user-select:none}
.w-cico{flex:none;color:var(--dim2);font-size:13px;line-height:1}
.w-btn{border:none;background:none;color:var(--dim2);cursor:pointer;font-size:14px;width:26px;height:26px;border-radius:7px;flex:none;line-height:1}
.w-btn:hover{background:var(--surface2);color:var(--text)}
.w-body{padding:2px 16px 14px;font-size:14px}
/* свёрнутый виджет: тело скрыто, данные и настройки живы (история 43, R10) */
.w-card.collapsed .w-body{display:none}
.w-card.collapsed .w-head{padding-bottom:12px}

/* ссылка-кнопка внутри списка виджета — тот же вид, что у обычной ссылки */
.w-linklike{border:none;background:none;padding:0;margin:0;font:inherit;color:var(--accent);cursor:pointer;text-align:left}
.w-linklike:hover{text-decoration:underline}

/* ── общие внутренности виджетов ── */
.w-dim{color:var(--dim2);font-size:12.5px}
.w-num{font-size:15px;white-space:nowrap}
.w-empty{padding:18px 0;color:var(--dim2);font-size:13.5px}
.w-empty.w-ok{color:var(--up);font-size:15px}
.w-empty.w-error{color:var(--down)}
.w-note{margin-top:8px;font-size:12px;color:var(--dim2)}
.w-more{display:inline-block;margin-top:10px;font-size:13px}
.w-list{display:flex;flex-direction:column}
.w-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.w-row:last-child{border-bottom:none}
.w-row-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-chips{display:flex;gap:6px;flex-wrap:wrap}
/* чип-кнопка мини-календаря: тот же .chip (cabinet.css), без браузерной рамки кнопки */
.w-chips button.chip{border:none;margin:0;appearance:none;cursor:pointer}

/* строка списка, открывающая общую карточку ролика (R39, R42): «Требует внимания»
   и «Советы» уже вели в карточку кнопкой внутри строки, здесь кликабельна вся
   строка целиком, кроме вложенных ссылок и кнопок (см. wire() в каждом виджете). */
.w-row[data-reel]{cursor:pointer}
.w-row[data-reel]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* отметка «опубликовал» в «Публикую сегодня» — тот же смысл, что и в выдаче,
   поэтому такой же маленький вид кнопки (см. .d-mark в delivery.html) */
.w-mark{padding:3px 10px;font-size:11px;border-radius:99px}

/* инлайн-переключатели периода и площадки сводки (условие 6 доводки): тот же
   .vswitch, что и viewSwitch() из ui.js, просто отрисован строкой (см. views-summary.js) */
.w-sum-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.w-spark{color:var(--accent);flex:none}
.w-item{display:flex;align-items:baseline;gap:8px;padding:6px 0;font-size:13.5px}
.w-dot{width:8px;height:8px;border-radius:50%;flex:none;position:relative;top:-1px}
.w-dot.red{background:var(--down)}
.w-dot.orange{background:var(--chip-orange-fg)}
.w-dot.blue{background:var(--chip-blue-fg)}
.w-dot.gray{background:var(--dim2)}

/* сводка-цифры */
.w-stats{display:flex;gap:22px;flex-wrap:wrap;padding-top:6px}
.w-stat{min-width:120px}
.w-stat-label{font-size:12.5px;color:var(--dim)}
.w-stat-num{font-size:28px;font-weight:500;letter-spacing:-.01em;line-height:1.15;margin:2px 0 6px}
.w-stat-sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px}

/* сводка: период точными датами, площадки блоками, каждая — ферма/официальные/сумма */
.w-sum-head{font-size:13px;margin-bottom:6px}
.w-sum-block{padding:10px 0;border-bottom:1px solid var(--line)}
.w-sum-block:last-child{border-bottom:none}
.w-sum-plat{font-size:12.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}

/* советы */
.w-advice{padding:8px 0;border-bottom:1px solid var(--line)}
.w-advice:last-child{border-bottom:none}
.w-advice-text{font-size:14px;line-height:1.4}
.w-facts{margin-top:4px}
.w-fact{font-size:12.5px;color:var(--dim2);line-height:1.4}

/* гео */
.w-geo{padding:8px 0;border-bottom:1px solid var(--line)}
.w-geo:last-child{border-bottom:none}
.w-geo-head{font-size:13.5px;margin-bottom:4px}
.w-geo-big{font-size:22px;font-weight:500;margin:2px 0 8px;display:flex;gap:8px;align-items:center}
.w-geo-row{display:flex;align-items:center;gap:8px;padding:2px 0;font-size:12.5px}
.w-geo-row.w-geo-uk .w-geo-country{font-weight:500;color:var(--text)}
.w-geo-country{width:110px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim)}
.w-geo-bar{flex:1;height:6px;border-radius:4px;background:var(--surface2);overflow:hidden}
.w-geo-bar i{display:block;height:100%;border-radius:4px;background:var(--accent)}
.w-geo-share{width:48px;flex:none;text-align:right;color:var(--dim)}

/* таблица медиан */
.w-tbl-wrap{overflow-x:auto}
.w-tbl{border-collapse:collapse;width:100%;font-size:13px}
.w-tbl th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--dim2);font-weight:500;text-align:left;padding:6px 10px 6px 0;border-bottom:1px solid var(--line)}
.w-tbl td{padding:7px 10px 7px 0;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.w-tbl tr:last-child td{border-bottom:none}

/* мини-календарь */
.w-cal-day{padding:7px 0;border-bottom:1px solid var(--line)}
.w-cal-day:last-child{border-bottom:none}
.w-cal-date{font-size:12.5px;color:var(--dim);margin-bottom:4px;display:flex;gap:8px;align-items:center}

/* своя заметка */
.w-note-label{font-size:12.5px;color:var(--dim);margin-bottom:6px}
.w-note-text,.w-note-num{width:100%;border:none;background:none;outline:none;resize:vertical;padding:0;color:var(--text)}
.w-note-text{font-size:14px;line-height:1.45;min-height:60px}
.w-note-num{font-size:30px;font-weight:500;letter-spacing:-.01em}

/* формы настроек и каталог (в выдвижной панели) */
.w-drawer-title{font-size:17px;font-weight:500;margin:0 0 16px}
.w-form-label{font-size:12.5px;color:var(--dim);margin-bottom:6px}
.field{margin-bottom:14px}
.w-sizes{display:flex;gap:8px}
.w-size-pick{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--line);border-radius:var(--rad-s);cursor:pointer;font-size:14px}
.w-size-pick:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.w-size-pick input{margin:0}
.w-check{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:14px;cursor:pointer}
.w-cat{display:flex;flex-direction:column}
.w-cat-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.w-cat-item:last-child{border-bottom:none}
.w-cat-ico{flex:none;width:22px;text-align:center;color:var(--dim);font-size:15px}
.w-cat-info{flex:1;min-width:0}
.w-cat-title{font-weight:500}
.w-cat-blurb{font-size:12.5px;color:var(--dim2);margin-top:2px}
