:root{
    --bg:#f5f6fa; --panel:#ffffff; --ink:#1f2430; --muted:#6b7280;
    --accent:#2563eb; --accent-dark:#1d4ed8; --green:#16a34a; --red:#dc2626;
    --amber:#eab308; --border:#e5e7eb; --radius:12px;
  }
  *{box-sizing:border-box;}
  body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);}
  #app{max-width:1700px;margin:0 auto;padding:24px 16px 80px;}
  h1{font-size:22px;margin:0 0 4px;}
  h2{font-size:18px;margin:0 0 12px;}
  h3{font-size:15px;margin:0 0 8px;}
  p.sub{color:var(--muted);margin:0 0 24px;font-size:14px;}
  .header-links{margin:-14px 0 20px;}
  .link-btn{background:none;border:none;padding:0;font-size:13px;font-weight:600;color:var(--accent-dark);cursor:pointer;}
  .link-btn:hover{text-decoration:underline;}
  .lang-switch{display:flex;gap:6px;justify-content:flex-end;margin:0 0 8px;}
  .lang-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:3px 10px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;}
  .lang-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
  .panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;}
  .row{display:flex;gap:16px;flex-wrap:wrap;align-items:end;}
  .field{flex:1;min-width:160px;margin-bottom:14px;}
  .field label{display:flex;align-items:flex-end;min-height:2.6em;font-size:13px;color:var(--muted);margin-bottom:6px;line-height:1.3;}
  .setup-group{margin-bottom:20px;}
  .setup-group:last-child{margin-bottom:0;}
  .setup-group + .setup-group{border-top:1px solid var(--border);padding-top:18px;}
  .group-label{font-size:12px;font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px;}
  input[type=number], input[type=text]{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff;color:var(--ink);}
  input:focus{outline:2px solid var(--accent);outline-offset:1px;}
  button{cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;}
  .btn-primary{background:var(--accent);color:#fff;}
  .btn-primary:hover{background:var(--accent-dark);}
  .btn-secondary{background:#fff;color:var(--ink);border:1px solid var(--border);}
  .btn-secondary:hover{background:#f0f1f5;}
  .btn-primary:disabled{background:#93b4f4;cursor:not-allowed;}
  .teamname-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
  .topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;background:var(--bg);padding:10px 4px;box-shadow:0 2px 10px rgba(15,18,25,0.07);}
  .topbar .info{font-size:14px;color:var(--muted);}
  select{padding:8px 10px;border-radius:8px;border:1px solid var(--border);font-size:14px;background:#fff;}
  .progress{height:6px;background:var(--border);border-radius:4px;overflow:hidden;margin-top:6px;width:220px;}
  .progress > div{height:100%;background:var(--accent);}
  .cards{display:grid;gap:10px;min-width:0;}
  @media (max-width: 600px){ .cards{grid-template-columns:1fr !important;} }
  .team-rows-grid{display:grid;gap:14px 16px;}
  @media (max-width: 900px){ .team-rows-grid{grid-template-columns:1fr !important;} }
  .team-group{margin-bottom:0;min-width:0;}
  .team-group-title{font-size:16px;padding:6px 10px;background:#eef2ff;color:var(--accent-dark);border-radius:8px;display:inline-block;margin-bottom:10px;}
  .timer-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px 10px;}
  .timer-box label{font-size:12px;color:var(--muted);white-space:nowrap;}
  .timer-box input[type=number]{width:56px;padding:4px 6px;}
  .timer-display{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;min-width:56px;text-align:center;color:var(--accent-dark);}
  .timer-display.timer-expired{color:#fff;background:var(--red);border-radius:6px;padding:2px 8px;animation:timerFlash 1s infinite;}
  @keyframes timerFlash{0%,100%{opacity:1;}50%{opacity:.35;}}
  .timer-fullscreen-overlay{position:fixed;inset:0;background:rgba(220,38,38,0.95);color:#fff;display:flex;flex-direction:column;gap:26px;align-items:center;justify-content:center;z-index:100;cursor:pointer;animation:timerBgPulse 1.2s ease-in-out infinite;}
  .timer-fullscreen-text{font-size:clamp(32px,7vw,64px);font-weight:800;text-align:center;padding:0 24px;cursor:default;}
  .timer-fullscreen-overlay button{background:#fff;color:var(--red);padding:12px 30px;font-size:16px;cursor:pointer;}
  @keyframes timerBgPulse{0%,100%{background-color:rgba(220,38,38,0.95);}50%{background-color:rgba(153,27,27,0.98);}}
  .guide-content p{margin:0 0 12px;line-height:1.6;font-size:14px;}
  .guide-content ul{margin:0 0 14px;padding-left:22px;}
  .guide-content li{margin-bottom:6px;line-height:1.55;font-size:14px;}
  .guide-content h2{margin-top:26px;}
  .guide-content h2:first-child{margin-top:0;}
  .guide-content h3{margin-top:18px;color:var(--accent-dark);}
  .guide-content .panel + .panel{margin-top:0;}
  .card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;min-width:0;}
  .card h3{display:flex;justify-content:space-between;align-items:center;}
  .lead-badge{font-size:11px;background:#eef2ff;color:var(--accent-dark);padding:2px 8px;border-radius:999px;font-weight:600;}
  .kv{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;color:var(--ink);}
  .kv .k{color:var(--muted);}
  .kv.highlight{background:#eef2ff;border-radius:8px;padding:6px 8px;margin:6px 0;align-items:center;}
  .kv.highlight .k{color:var(--accent-dark);font-weight:600;}
  .kv .big-num{font-size:17px;font-weight:700;color:var(--accent-dark);}
  .dbm-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;padding:6px 8px;border-radius:8px;margin:4px 0 2px;line-height:1.3;}
  .dbm-banner.increase{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;}
  .dbm-banner.decrease{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;}
  .dbm-banner button{flex-shrink:0;}
  .daytable-wrap{overflow-x:auto;margin:6px 0 4px;}
  table.daytable{border-collapse:collapse;font-size:11px;}
  table.daytable th, table.daytable td{padding:2px 3px;text-align:center;border-bottom:1px solid var(--border);color:var(--ink);white-space:nowrap;}
  table.daytable thead th{color:var(--muted);font-weight:600;font-size:10px;border-bottom:2px solid var(--border);}
  table.daytable td:first-child, table.daytable th:first-child{text-align:left;color:var(--muted);font-weight:600;padding-right:4px;width:52px;white-space:normal;line-height:1.15;}
  /* Зона буфера красится ФОНОМ ячейки (не просто цветом текста) — так гораздо заметнее при
     проекции на экран; текст всегда контрастный по отношению к фону. */
  table.daytable td.stock-cell{font-weight:700;border-radius:4px;}
  table.daytable td.zone-black{background:#111827;color:#fff;}
  table.daytable td.zone-red{background:var(--red);color:#fff;}
  table.daytable td.zone-yellow{background:var(--amber);color:#1f2430;}
  table.daytable td.zone-green{background:var(--green);color:#fff;}
  table.daytable td.zone-blue{background:#0891b2;color:#fff;}
  /* Сегодняшняя, ещё не подтверждённая колонка — лёгкая подсветка поверх любого фона (в т.ч.
     цвета зоны), чтобы сразу отличать историю от дня, по которому сейчас нужно решение. */
  table.daytable td.today-col, table.daytable th.today-col{box-shadow: inset 0 0 0 999px rgba(37,99,235,0.12);}
  table.daytable td.stock-cell.today-col{box-shadow: inset 0 0 0 999px rgba(37,99,235,0.16);}
  .buffer-legend{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:12px;color:var(--muted);margin:8px 0 4px;}
  .buffer-legend .swatch{display:inline-flex;align-items:center;gap:5px;}
  .buffer-legend .swatch-box{width:12px;height:12px;border-radius:3px;display:inline-block;}
  .q-stage{margin-bottom:16px;border:1px dashed transparent;border-radius:10px;padding:4px;}
  .q-stage h3{font-size:14px;margin-bottom:8px;}
  .q-droplist{min-height:8px;}
  .q-row{display:flex;gap:6px;margin-bottom:6px;align-items:center;cursor:grab;border-radius:6px;transition:background .1s;}
  .q-row:active{cursor:grabbing;}
  .q-row.drag-over{background:#eef2ff;outline:2px dashed var(--accent);}
  .q-handle{color:var(--muted);font-size:14px;flex-shrink:0;padding:0 2px;}
  .q-row input{flex:1;}
  .q-row button{flex-shrink:0;padding:6px 10px;}
  .metric-help{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5;}
  .order-input{margin-top:8px;}
  .order-input label{font-size:12px;color:var(--muted);display:block;margin-bottom:4px;}
  .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
  .modal-overlay{position:fixed;inset:0;background:rgba(15,18,25,0.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;}
  .modal{background:#fff;border-radius:var(--radius);padding:24px;max-width:720px;width:100%;max-height:88vh;overflow-y:auto;}
  .modal.modal-wide{max-width:1280px;}
  .stage-transition-modal{max-width:520px;border-top:6px solid var(--accent);text-align:center;}
  .stage-transition-modal h2{margin-top:4px;}
  .stage-transition-modal p{font-size:15px;text-align:left;}
  .recap-charts-grid{display:grid;grid-template-columns:1fr;gap:14px;}
  @media (min-width: 900px){ .recap-charts-grid{grid-template-columns:1fr 1fr;} }
  table{border-collapse:collapse;width:100%;font-size:13px;}
  th,td{border:1px solid var(--border);padding:6px 8px;text-align:right;}
  th:first-child,td:first-child{text-align:left;}
  th{background:#f9fafb;font-weight:600;color:var(--muted);}
  td.metric-primary{font-weight:700;color:var(--accent-dark);font-size:14px;}
  td.metric-secondary{color:var(--muted);font-weight:400;font-size:12px;}
  th.metric-secondary{color:#9ca3af;font-weight:500;}
  textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px;font-size:13px;font-family:inherit;resize:vertical;min-height:44px;margin-top:4px;}
  .qa{margin-bottom:12px;}
  .qa label{font-size:13px;font-weight:600;display:block;}
  .badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;}
  .badge.ok{background:#dcfce7;color:var(--green);}
  .badge.bad{background:#fee2e2;color:var(--red);}
  .chart-wrap{margin-top:10px;height:160px;}
  .navlinks{display:flex;gap:8px;align-items:center;}
  .facilitator-menu-wrap{position:relative;display:inline-block;}
  .facilitator-menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(15,18,25,0.15);padding:6px;display:flex;flex-direction:column;gap:2px;min-width:200px;z-index:30;}
  .facilitator-menu button{background:none;border:none;text-align:left;padding:8px 10px;border-radius:6px;font-size:13px;cursor:pointer;color:var(--ink);}
  .facilitator-menu button:hover{background:var(--bg);}
  .facilitator-menu button.danger{color:var(--red);}
  .footnote{font-size:12px;color:var(--muted);margin-top:6px;}
  .intro-box{background:#eef2ff;border:1px solid #c7d7fb;border-radius:10px;padding:14px 16px;margin-bottom:18px;font-size:13px;}
  .intro-box h3{margin-bottom:6px;}
  .rules-section{margin-top:10px;font-size:13px;}
  .rules-section:first-child{margin-top:0;}
  .rules-section h3{margin:0 0 6px;}
  .rules-section p, .rules-section ol{margin:4px 0;}
  .rules-section ol{padding-left:20px;}
  .rule-note{background:#eef2ff;border:1px solid #c7d7fb;border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:13px;}
  .rules-dbm-details{margin-top:10px;}
  .rules-dbm-details summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--accent);padding:4px 0;}
  .rules-dbm-details .rules-section{margin-top:6px;}
  .thanks-box{margin-top:20px;text-align:center;padding:18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
  .thanks-box p{margin:0 0 10px;font-size:14px;color:#475569;}
  .thanks-box .btn-secondary{display:inline-block;text-decoration:none;}
  .stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0;}
  .stat{background:#f9fafb;border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
  .stat .num{font-size:20px;font-weight:700;}
  .stat .lbl{font-size:12px;color:var(--muted);}
  .team-tag{font-weight:700;}
  .small-btn{padding:5px 10px;font-size:12px;}
  .finished-note{background:#fef3c7;border:1px solid #fde68a;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px;}
  details{border-top:1px solid var(--border);padding:4px 0;}
  details summary{list-style:none;}
  details summary::-webkit-details-marker{display:none;}
  details summary::before{content:"▸ ";color:var(--muted);}
  details[open] summary::before{content:"▾ ";}
