/* Внешний вид владельца — перенесён без изменений из дашборда прототипа
   «AgentStaff — план-факт» (Азбука/01-Руководству/02-…паспорт-карточек…html, 2026-09-06).
   ADR-0005. Правки внешнего вида — только по согласованию с владельцем. */
    :root {
      --bg: #071019;
      --surface: #0b1722;
      --surface-2: #101f2c;
      --line: #203343;
      --line-strong: #315065;
      --text: #e5eef5;
      --muted: #8fa4b3;
      --faint: #627887;
      --accent: #20e6ad;
      --accent-soft: rgba(32, 230, 173, .11);
      --blue: #54b8ff;
      --amber: #f6b94f;
      --red: #ff7474;
      --green: #52d891;
      --shadow: 0 18px 45px rgba(0, 0, 0, .22);
      --radius: 14px;
    }

    * { box-sizing: border-box; }

    html { background: var(--bg); }

    body {
      margin: 0;
      min-width: 320px;
      color: var(--text);
      background:
        radial-gradient(circle at 9% -10%, rgba(32, 230, 173, .08), transparent 31rem),
        var(--bg);
      font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height: 1.45;
      -webkit-font-smoothing: antialiased;
    }

    button, input { font: inherit; }
    button { color: inherit; }

    .shell {
      width: min(1480px, calc(100% - 40px));
      margin: 0 auto;
      padding: 24px 0 64px;
    }

    .topbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      min-height: 62px;
      padding-bottom: 22px;
      border-bottom: 1px solid var(--line);
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 13px;
      min-width: 0;
    }

    .brand-mark {
      display: grid;
      place-items: center;
      width: 34px;
      height: 34px;
      flex: 0 0 auto;
      border: 1px solid rgba(32, 230, 173, .65);
      border-radius: 9px;
      color: var(--accent);
      background: var(--accent-soft);
      font: 700 17px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    }

    .brand-copy { min-width: 0; }
    .brand-title { font-weight: 760; letter-spacing: .01em; }
    .brand-subtitle {
      color: var(--muted);
      font: 12px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .top-actions {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 10px;
      flex-wrap: wrap;
    }

    .connection {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--muted);
      font-size: 12px;
    }

    .pulse {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--faint);
      box-shadow: 0 0 0 0 rgba(32, 230, 173, 0);
    }

    .connection.online .pulse {
      background: var(--accent);
      box-shadow: 0 0 0 5px rgba(32, 230, 173, .09);
    }

    .connection.snapshot .pulse {
      background: var(--amber);
      box-shadow: 0 0 0 5px rgba(246, 185, 79, .09);
    }

    .connection.error .pulse { background: var(--red); }

    .icon-button, .filter-button {
      min-height: 38px;
      border: 1px solid var(--line-strong);
      border-radius: 9px;
      background: rgba(11, 23, 34, .86);
      cursor: pointer;
      transition: border-color .16s ease, background .16s ease, transform .16s ease;
    }

    .icon-button {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 0 13px;
      font-size: 12px;
    }

    .icon-button:hover, .filter-button:hover {
      border-color: rgba(32, 230, 173, .62);
      background: var(--accent-soft);
    }

    .icon-button:active, .filter-button:active { transform: translateY(1px); }
    .icon-button:focus-visible, .filter-button:focus-visible, input:focus-visible, summary:focus-visible {
      outline: 2px solid var(--accent);
      outline-offset: 2px;
    }

    .refresh-icon {
      width: 15px;
      height: 15px;
      transition: transform .35s ease;
    }

    .loading .refresh-icon { animation: rotate .8s linear infinite; }
    @keyframes rotate { to { transform: rotate(360deg); } }

    .hero {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: end;
      gap: 24px;
      padding: 40px 0 26px;
    }

    h1 {
      margin: 0;
      max-width: 880px;
      font-size: clamp(30px, 4.3vw, 58px);
      line-height: 1.03;
      letter-spacing: -.045em;
      text-wrap: balance;
    }

    .hero p {
      max-width: 700px;
      margin: 16px 0 0;
      color: var(--muted);
      font-size: 15px;
    }

    .stamp {
      text-align: right;
      color: var(--faint);
      font: 11px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace;
    }

    .summary-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      border: 1px solid var(--line);
      border-radius: var(--radius);
      overflow: hidden;
      background: var(--surface);
      box-shadow: var(--shadow);
    }

    .summary-card {
      position: relative;
      min-height: 132px;
      padding: 21px;
      border-right: 1px solid var(--line);
    }

    .summary-card:last-child { border-right: 0; }
    .summary-label { color: var(--muted); font-size: 12px; }
    .summary-number {
      margin-top: 5px;
      font: 700 clamp(34px, 4vw, 48px)/1 ui-monospace, SFMono-Regular, Menlo, monospace;
      letter-spacing: -.06em;
    }
    .summary-hint { margin-top: 13px; color: var(--faint); font-size: 11px; }
    .summary-card[data-state="work"] .summary-number { color: var(--amber); }
    .summary-card[data-state="ready"] .summary-number { color: var(--blue); }
    .summary-card[data-state="accepted"] .summary-number { color: var(--green); }

    .drum-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 1px;
      margin-top: 12px;
      border: 1px solid var(--line);
      border-radius: 11px;
      overflow: hidden;
      background: var(--line);
    }
    .drum-card { min-height: 70px; padding: 14px 16px; background: var(--surface); }
    .drum-label { color: var(--faint); font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
    .drum-value { margin-top: 5px; font: 700 23px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
    .drum-card.now .drum-value { color: var(--accent); }
    .drum-card.parked .drum-value { color: var(--muted); }

    .truth-strip {
      display: none;
      grid-template-columns: 22px 1fr;
      gap: 10px;
      margin: 16px 0 0;
      padding: 13px 15px;
      border: 1px solid rgba(255, 116, 116, .35);
      border-radius: 10px;
      color: #ffc1c1;
      background: rgba(255, 116, 116, .08);
      font-size: 13px;
    }
    .truth-strip.visible { display: grid; }

    .focus-panel {
      display: grid;
      grid-template-columns: minmax(260px, .8fr) minmax(0, 2fr);
      gap: 24px;
      margin-top: 24px;
      padding: 24px;
      border: 1px solid rgba(246, 185, 79, .34);
      border-radius: var(--radius);
      background: linear-gradient(120deg, rgba(246, 185, 79, .08), rgba(11, 23, 34, .92) 48%);
    }

    .focus-title { color: var(--amber); font-size: 12px; font-weight: 720; }
    .focus-name { margin-top: 9px; font-size: 20px; font-weight: 720; line-height: 1.25; }
    .focus-meta { margin-top: 11px; color: var(--muted); font-size: 12px; }
    .focus-next { align-self: center; }
    .focus-next-label {
      margin-bottom: 7px;
      color: var(--faint);
      font-size: 10px;
      letter-spacing: .12em;
      text-transform: uppercase;
    }
    .focus-next-text { font-size: 15px; }

    .controls {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin: 32px 0 15px;
    }

    .filters { display: flex; gap: 7px; flex-wrap: wrap; }
    .filter-button { padding: 0 12px; color: var(--muted); font-size: 12px; }
    .filter-button.active {
      color: #042018;
      border-color: var(--accent);
      background: var(--accent);
      font-weight: 700;
    }

    .search-wrap { position: relative; width: min(360px, 100%); }
    .search-wrap svg {
      position: absolute;
      left: 12px;
      top: 50%;
      width: 15px;
      transform: translateY(-50%);
      color: var(--faint);
      pointer-events: none;
    }
    .search-wrap input {
      width: 100%;
      height: 40px;
      padding: 0 12px 0 38px;
      color: var(--text);
      border: 1px solid var(--line-strong);
      border-radius: 9px;
      background: var(--surface);
      font-size: 13px;
    }
    .search-wrap input::placeholder { color: var(--faint); }

    .plan-table {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      overflow: hidden;
      background: var(--surface);
      box-shadow: var(--shadow);
    }

    .table-head, .task-summary {
      display: grid;
      grid-template-columns: 56px minmax(230px, 1.25fr) 120px minmax(220px, 1fr) minmax(220px, 1fr) 28px;
      gap: 14px;
      align-items: center;
    }

    .table-head {
      min-height: 43px;
      padding: 0 18px;
      color: var(--faint);
      border-bottom: 1px solid var(--line);
      font-size: 10px;
      letter-spacing: .11em;
      text-transform: uppercase;
    }

    .task-row { border-bottom: 1px solid var(--line); }
    .task-row:last-child { border-bottom: 0; }
    .task-row[open] { background: rgba(16, 31, 44, .72); }
    .task-summary {
      min-height: 82px;
      padding: 14px 18px;
      cursor: pointer;
      list-style: none;
    }
    .task-summary::-webkit-details-marker { display: none; }
    .task-summary:hover { background: rgba(32, 230, 173, .025); }

    .uid { color: var(--faint); font: 12px ui-monospace, SFMono-Regular, Menlo, monospace; }
    .task-name { font-size: 14px; font-weight: 680; line-height: 1.32; }
    .task-priority { margin-top: 5px; color: var(--faint); font-size: 11px; }
    .task-chip {
      display: inline-flex;
      margin: 6px 5px 0 0;
      padding: 2px 6px;
      border: 1px solid var(--line-strong);
      border-radius: 999px;
      color: var(--muted);
      font: 9px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
      text-transform: uppercase;
    }
    .task-chip.now { color: var(--accent); border-color: rgba(32, 230, 173, .45); }
    .task-chip.passed { color: var(--green); border-color: rgba(82, 216, 145, .4); }
    .cell-copy {
      display: -webkit-box;
      overflow: hidden;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.42;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
    }

    .state-label {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      width: fit-content;
      color: var(--muted);
      font-size: 11px;
      font-weight: 680;
    }
    .state-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--faint); }
    .state-label.work { color: var(--amber); }
    .state-label.work .state-dot { background: var(--amber); }
    .state-label.attention { color: var(--red); }
    .state-label.attention .state-dot { background: var(--red); }
    .state-label.ready { color: var(--blue); }
    .state-label.ready .state-dot { background: var(--blue); }
    .state-label.accepted { color: var(--green); }
    .state-label.accepted .state-dot { background: var(--green); }

    .evidence-ok { color: var(--green); }
    .evidence-missing { color: var(--red); font-weight: 650; }
    .chevron { width: 17px; transition: transform .18s ease; color: var(--faint); }
    .task-row[open] .chevron { transform: rotate(180deg); }

    .passport {
      margin: 0 18px 12px;
      border: 1px solid var(--line);
      border-radius: 10px;
      overflow: hidden;
      background: var(--surface-2);
    }
    .passport-head {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 10px;
      padding: 12px 15px 10px;
      border-bottom: 1px solid var(--line);
    }
    .passport-title {
      color: var(--accent);
      font-size: 10px;
      letter-spacing: .11em;
      text-transform: uppercase;
    }
    .passport-note { color: var(--faint); font-size: 11px; }
    .passport-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 1px;
      background: var(--line);
    }
    .passport-slot {
      padding: 13px 15px;
      overflow-wrap: anywhere;
      background: var(--surface-2);
    }
    /* Семь полей в четыре колонки оставляют пустую восьмую ячейку — последнее поле
       занимает её, чтобы дыра не читалась как «здесь что-то потеряли». */
    .passport-slot:last-child { grid-column: span 2; }
    .passport-slot h4 {
      margin: 0 0 7px;
      color: var(--muted);
      font-size: 11px;
      font-weight: 600;
    }
    .passport-slot p { margin: 0 0 8px; color: var(--text); font-size: 12px; white-space: pre-line; }
    .passport-slot.empty p { color: var(--faint); font-style: italic; }
    .passport-source {
      color: var(--faint);
      font-size: 10px;
      letter-spacing: .06em;
      text-transform: uppercase;
    }
    @media (max-width: 1100px) {
      .passport-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 700px) {
      .passport-grid { grid-template-columns: 1fr; }
      /* Последний слот на широком экране закрывает пустую восьмую ячейку. На
         телефоне span 2 создавал скрытую вторую колонку и обрезал остальные поля. */
      .passport-slot:last-child { grid-column: auto; }
    }

    .task-detail {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 1px;
      margin: 0 18px 18px;
      border: 1px solid var(--line);
      border-radius: 10px;
      overflow: hidden;
      background: var(--line);
    }
    .technical-detail {
      margin: 0 18px 18px;
      border: 1px solid var(--line);
      border-radius: 10px;
      overflow: hidden;
      background: rgba(9, 20, 31, .74);
    }
    .technical-detail > summary {
      padding: 11px 14px;
      cursor: pointer;
      list-style: none;
      color: var(--faint);
      font-size: 11px;
    }
    .technical-detail > summary::-webkit-details-marker { display: none; }
    .technical-detail > summary::before { content: "＋"; margin-right: 8px; }
    .technical-detail[open] > summary::before { content: "−"; }
    .technical-detail .task-detail { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; }
    .detail-section { min-height: 146px; padding: 15px; background: var(--surface-2); }
    .detail-section h3 {
      margin: 0 0 9px;
      color: var(--faint);
      font-size: 10px;
      letter-spacing: .11em;
      text-transform: uppercase;
    }
    .detail-section p { margin: 0; color: var(--muted); font-size: 12px; white-space: pre-line; }
    .detail-section.fact h3 { color: var(--green); }
    .detail-section.deviation h3 { color: var(--amber); }
    .detail-section.next h3 { color: var(--accent); }

    .empty-state {
      padding: 58px 20px;
      text-align: center;
      color: var(--muted);
    }
    .empty-state strong { display: block; margin-bottom: 7px; color: var(--text); }

    .footer {
      display: flex;
      justify-content: space-between;
      gap: 20px;
      padding-top: 19px;
      color: var(--faint);
      font: 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
    }

    @media (max-width: 1100px) {
      .table-head { display: none; }
      .task-summary { grid-template-columns: 44px minmax(0, 1fr) 115px 28px; }
      .task-summary .fact-cell, .task-summary .next-cell { display: none; }
      .task-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .task-detail .next { grid-column: span 2; }
    }

    @media (max-width: 760px) {
      .shell { width: min(100% - 24px, 1480px); padding-top: 14px; }
      .topbar { align-items: flex-start; }
      .brand-subtitle { max-width: 56vw; }
      .connection span:last-child { display: none; }
      .hero { grid-template-columns: 1fr; padding-top: 30px; }
      .stamp { text-align: left; }
      .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .drum-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .drum-card:last-child { grid-column: span 2; }
      .summary-card { min-height: 112px; border-bottom: 1px solid var(--line); }
      .summary-card:nth-child(2) { border-right: 0; }
      .summary-card:nth-child(3), .summary-card:nth-child(4) { border-bottom: 0; }
      .focus-panel { grid-template-columns: 1fr; gap: 18px; }
      .controls { align-items: stretch; flex-direction: column; }
      .search-wrap { width: 100%; }
      .task-summary { grid-template-columns: 34px minmax(0, 1fr) 28px; gap: 9px; }
      .task-summary .state-cell { grid-column: 2; }
      .chevron { grid-column: 3; grid-row: 1; }
      .task-detail { grid-template-columns: 1fr; }
      .task-detail .next { grid-column: auto; }
      .detail-section { min-height: auto; }
      .footer { flex-direction: column; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
    }
