  :root {
    --bg: #f5f4f0; --card: #ffffff; --text: #1d1d1b; --muted: #6b6a66;
    --line: #e2e0da; --accent: #2f6f4f; --accent-soft: #e4efe8;
    --warn: #a3471f; --warn-soft: #f8e7df; --mid: #a07a12; --mid-soft: #f6efd9;
    --input: #fbfaf8; --bar: #6a9e82;
  }
  @media (prefers-color-scheme: dark) {
    :root {
      --bg: #161615; --card: #1f1f1d; --text: #ecebe7; --muted: #9a9892;
      --line: #33322f; --accent: #6fbf94; --accent-soft: #1f3328;
      --warn: #e8946d; --warn-soft: #3a2419; --mid: #e0bd5a; --mid-soft: #362d14;
      --input: #262624; --bar: #4f8a6b;
    }
  }
  .pdfbox, .pdfbox * {
    --bg: #fff; --card: #fff; --text: #1d1d1b; --muted: #5f5e5a; --line: #dddbd5;
    --accent: #2f6f4f; --accent-soft: #e4efe8; --warn: #a3471f; --warn-soft: #f8e7df;
    --mid: #a07a12; --mid-soft: #f6efd9; --bar: #6a9e82;
  }
  .pdfbox { position: absolute; left: -10000px; top: 0; width: 794px; background: #fff; color: #1d1d1b; font-size: 12.5px; }
  .pdfbox .rep { border: none; padding: 0 4px; }
  * { box-sizing: border-box; }
  body { margin: 0; background: var(--bg); color: var(--text); font: 15px/1.5 -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
  .wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
  .top { background: var(--card); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5; }
  .hrow { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; padding-top: 10px; padding-bottom: 10px; }
  .brand b { font-size: 18px; display: block; line-height: 1.2; }
  .brand span { color: var(--muted); font-size: 13px; }
  .tabs { display: flex; gap: 2px; overflow-x: auto; align-items: center; }
  .tabs .cname { font-weight: 700; margin-right: 10px; white-space: nowrap; }
  .tabs button { border: none; border-bottom: 3px solid transparent; border-radius: 0; background: none; padding: 9px 11px; font-weight: 600; color: var(--muted); white-space: nowrap; }
  .tabs button.on { color: var(--accent); border-bottom-color: var(--accent); }
  main { padding-top: 18px; padding-bottom: 60px; }
  h1 { font-size: 24px; margin: 0 0 4px; }
  h2 { font-size: 17px; margin: 0 0 12px; }
  h3 { font-size: 15px; margin: 16px 0 8px; }
  .card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-bottom: 16px; }
  .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
  .f.wide { grid-column: span 2; }
  @media (max-width: 560px) { .f.wide { grid-column: span 1; } }
  .f label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 4px; }
  .f small { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; line-height: 1.35; }
  input, select, textarea { width: 100%; padding: 7px 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--input); color: var(--text); font: inherit; }
  textarea { resize: vertical; }
  input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
  button { font: inherit; padding: 7px 12px; border-radius: 6px; border: 1px solid var(--line); background: var(--card); color: var(--text); cursor: pointer; }
  button:hover { border-color: var(--accent); }
  button.primary { background: var(--accent); color: #fff; border-color: var(--accent); }
  button.ghost { color: var(--muted); }
  button.link { border: none; background: none; color: var(--accent); padding: 0; text-decoration: underline; }
  .row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
  .between { justify-content: space-between; margin-top: 0; }
  .help { color: var(--muted); font-size: 13px; }
  .hidden { display: none !important; }
  .altbox { margin-top: 8px; padding: 6px 8px 8px; border: 1px dashed var(--line); border-radius: 6px; }
  .altbox > span { font-size: 12px; color: var(--muted); }
  .altl label { font-size: 12px; color: var(--muted); font-weight: 400; display: block; margin-top: 4px; }
  .altl input { margin-top: 2px; }
  .altl small { display: block; font-size: 11.5px; color: var(--muted); }
  small.der { color: var(--accent); }
  .imp { font-size: 10.5px; font-weight: 600; padding: 1px 6px; border-radius: 9px; margin-left: 6px; vertical-align: 1px; white-space: nowrap; }
  .imp:empty { display: none; }
  .imp.lv-req { background: var(--warn-soft); color: var(--warn); }
  .imp.lv-imp { background: var(--mid-soft); color: var(--mid); }
  .fill-next { margin: 8px 0 0 0; padding-left: 18px; }
  .fill-next li { margin: 5px 0; }
  .flash { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 6px; transition: outline-color .3s; }
  .chan-box { border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; margin-top: 14px; }
  button.link.rk-t { text-align: left; font-weight: 500; color: inherit; text-decoration: none; cursor: pointer; }
  button.link.rk-t:hover { color: var(--accent); }
  .rk-arr { display: inline-block; transition: transform .15s; color: var(--accent); }
  .rk-row.open .rk-arr { transform: rotate(90deg); }
  .rk-row.open td { background: var(--accent-soft); }
  .rk-det td { text-align: left !important; white-space: normal; background: var(--accent-soft); }
  .rk-box { padding: 4px 6px 8px; font-size: 13.5px; line-height: 1.45; }
  .rk-box p { margin: 6px 0; }
  .rk-steps { margin: 6px 0 4px 18px; padding: 0; }
  .rk-steps li { margin: 6px 0; }
  .rk-steps small { display: block; color: var(--muted); margin-top: 2px; }
  .pq { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .pq > b { display: block; margin-bottom: 8px; }
  .opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
  .opt { border: 1.5px solid var(--line); border-radius: 8px; padding: 8px 10px; cursor: pointer; display: block; }
  .opt input { display: none; }
  .opt span { display: block; font-weight: 600; font-size: 14px; }
  .opt small { display: block; color: var(--muted); font-size: 12px; line-height: 1.3; }
  .opt:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
  .tbl-wrap { overflow-x: auto; }
  table { width: 100%; border-collapse: collapse; }
  th, td { padding: 7px 6px; border-bottom: 1px solid var(--line); text-align: right; vertical-align: middle; }
  th { font-size: 12px; color: var(--muted); font-weight: 600; }
  th:first-child, td:first-child { text-align: left; }
  td.l, th.l { text-align: left; }
  th input { font-size: 12px; font-weight: 600; text-align: right; min-width: 82px; }
  td input { min-width: 72px; text-align: right; }
  td.name input { text-align: left; min-width: 150px; }
  td.out { font-variant-numeric: tabular-nums; white-space: nowrap; }
  .hi { font-weight: 700; color: var(--accent); }
  .neg { color: var(--warn); font-weight: 600; }
  .del { padding: 3px 8px; color: var(--muted); }
  .abc { display: inline-block; min-width: 24px; text-align: center; font-weight: 700; border-radius: 4px; padding: 0 6px; color: #fff; }
  .abc.A { background: var(--accent); } .abc.B { background: var(--mid); } .abc.C { background: var(--warn); }
  .msg { padding: 10px 12px; border-radius: 6px; margin-top: 12px; }
  .msg.warn { background: var(--warn-soft); color: var(--warn); }
  .msg.ok { background: var(--accent-soft); color: var(--accent); }
  .totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
  .tot { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; break-inside: avoid; }
  .tot span { color: var(--muted); font-size: 12px; display: block; }
  .tot b { display: block; font-size: 18px; font-variant-numeric: tabular-nums; line-height: 1.3; }
  .tot small { color: var(--muted); font-size: 12px; }
  .tot.bad { border-color: var(--warn); background: var(--warn-soft); }
  .tot.good { border-color: var(--accent); background: var(--accent-soft); }
  .badge { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 13px; background: var(--line); }
  .badge.good { background: var(--accent-soft); color: var(--accent); }
  .badge.mid { background: var(--mid-soft); color: var(--mid); }
  .badge.bad { background: var(--warn-soft); color: var(--warn); }
  .muted { color: var(--muted); }
  .wzt td { white-space: nowrap; } .wzt td.l { white-space: normal; }
  .wzres { display: grid; gap: 0; margin-top: 6px; max-height: 380px; overflow-y: auto; border: 1px solid var(--line); border-radius: 6px; }
  .wzres:empty { display: none; }
  .wzres button { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 10px; text-align: left; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: var(--card); padding: 7px 10px; font-weight: 400; }
  .wzres button:hover { background: var(--accent-soft); }
  .wzres small, .wzsel small { grid-column: 2; color: var(--muted); font-size: 12.5px; }
  .wzcode { font-family: ui-monospace, Menlo, Consolas, monospace; color: var(--accent); white-space: nowrap; }
  .wzsel { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 2px 10px; align-items: baseline; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--input); }
  .wzsel small { grid-column: 2 / 4; }
  .wzhint { margin-top: 8px; font-size: 13px; color: var(--muted); }
  .wzhead { padding: 6px 10px; font-size: 13px; color: var(--muted); background: var(--input); border-bottom: 1px solid var(--line); }
  .wzres .wzhead button.link { display: inline; border: 0; padding: 0; background: none; font-size: 13px; color: var(--accent); }
  .wzres button.wzgrp { grid-template-columns: auto minmax(0, 1fr) auto; align-items: baseline; }
  .wzn { font-size: 12.5px; color: var(--muted); background: var(--line); border-radius: 10px; padding: 0 7px; }
  .q { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--line); }
  .q > span { flex: 1 1 320px; }
  .seg { display: inline-flex; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
  .seg label { padding: 5px 12px; cursor: pointer; font-size: 13px; border-left: 1px solid var(--line); }
  .seg label:first-child { border-left: none; }
  .seg input { display: none; }
  .seg label:has(input:checked) { background: var(--accent); color: #fff; }
  .bars { display: grid; gap: 8px; }
  .bar { display: grid; grid-template-columns: minmax(130px, 250px) 1fr auto; gap: 10px; align-items: center; break-inside: avoid; }
  .bar > div { background: var(--line); height: 12px; border-radius: 6px; overflow: hidden; }
  .bar i { display: block; height: 100%; background: var(--bar); border-radius: 6px; }
  .bar i.g { background: var(--accent); } .bar i.m { background: var(--mid); } .bar i.r { background: var(--warn); }
  .bar b { font-variant-numeric: tabular-nums; white-space: nowrap; font-size: 14px; }
  .bar small { display: block; color: var(--muted); font-size: 11px; }
  .sl { margin-bottom: 14px; }
  .sl label { display: block; margin-bottom: 4px; }
  .sl input { padding: 0; accent-color: var(--accent); }
  .slrow { display: flex; gap: 10px; align-items: center; }
  .slrow input[type=range] { flex: 1; }
  .slrow .slnum { width: 90px; padding: 4px 6px; text-align: right; }
  .insights li { margin-bottom: 6px; }
  svg text { fill: var(--muted); font-size: 11px; }
  .legend { display: flex; gap: 16px; font-size: 12px; color: var(--muted); margin-top: 4px; flex-wrap: wrap; }
  .legend i { display: inline-block; width: 14px; height: 3px; vertical-align: middle; margin-right: 6px; }
  details summary { cursor: pointer; font-weight: 600; }
  details.src { margin: 6px 0 10px; font-size: 13px; }
  details.src summary { font-weight: 500; color: var(--accent, #2a6df4); font-size: 12.5px; }
  details.src ul { margin: 6px 0 0; padding-left: 18px; } details.src li { margin-bottom: 4px; line-height: 1.4; }
  details.src.tile { margin: 4px 0 0; font-size: 12px; } details.src.tile div { font-weight: 400; color: inherit; margin-top: 4px; line-height: 1.35; }
  details.src-all { margin-top: 18px; }
  .sv-row { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-top: 10px; } .sv-part { margin-left: 28px; border-style: dashed; } .sv-of { margin: 0 0 4px; }
  .sv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px 12px; } .sv-f { min-width: 0; display: flex; flex-direction: column; gap: 3px; } .sv-f label { font-size: 12.5px; color: var(--muted); }
  .sv-name { grid-column: span 2; } .sv-time { grid-column: span 2; } .sv-f .pair { display: flex; gap: 6px; align-items: center; } .sv-f .pair select { width: auto; } .sv-f .chk1 { font-size: 13px; display: flex; align-items: center; gap: 6px; color: var(--text); } .sv-f .chk1 input { width: auto; margin: 0; } .sv-f .pair .pl { font-size: 12.5px; color: var(--muted); min-width: 74px; } .sv-f .pair span { white-space: nowrap; }
  .sv-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 8px; flex-wrap: wrap; }
  @media (max-width: 520px) { .sv-name, .sv-time { grid-column: auto; } }
  .f small.fh:not(.s) { display: none; } .f:focus-within small.fh:not(.s) { display: block; }
  .qh { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; margin-left: 6px; border-radius: 50%; font-size: 12px; font-weight: 700; line-height: 1; vertical-align: 2px; color: var(--muted); background: transparent; border: 1px solid var(--line); cursor: pointer; }
  .qh:hover { color: var(--accent); border-color: var(--accent); }
  .lead { color: var(--muted); margin: 2px 0 10px; font-size: 14px; }
  .docp { position: fixed; top: 0; right: 0; width: min(440px, 100vw); height: 100vh; overflow-y: auto; background: var(--card); border-left: 1px solid var(--line); box-shadow: -8px 0 24px rgba(0,0,0,.12); padding: 16px 18px 40px; z-index: 50; }
  .dochead { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; } .dochead > div { display: flex; gap: 8px; align-items: center; }
  .docbody h3 { margin: 4px 0 10px; } .docbody p, .docbody li { line-height: 1.5; } .docbody ul, .docbody ol { padding-left: 20px; }
  .doctoc { display: grid; gap: 4px; } .doctoc h4 { margin: 12px 0 2px; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; } .doctoc .link { text-align: left; }
  details.accd > summary { cursor: pointer; } details.accd > summary h2 { display: inline; }
  .tsub { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); } .tsub > h3 { margin: 0 0 4px; }
  .card.sectc { padding: 0; } details.sect > summary { list-style: none; cursor: pointer; padding: 14px 16px; display: flex; align-items: center; gap: 10px; }
  details.sect > summary::-webkit-details-marker { display: none; }
  details.sect > summary::before { content: "›"; font-size: 22px; line-height: 1; color: var(--muted); transition: transform .15s; width: 12px; }
  details.sect[open] > summary::before { transform: rotate(90deg); }
  details.sect > summary .sh { font-size: 18px; font-weight: 700; } details.sect > summary .sh h2, details.sect > summary .sh h3 { display: inline; margin: 0; }
  details.sect > summary:hover .sh { color: var(--accent); } details.sect > .sbody { padding: 0 16px 16px; }
  .sectbar { display: flex; gap: 16px; justify-content: flex-end; margin: 0 0 8px; font-size: 13px; }
  details.sect > summary .sh .badge { margin-left: 8px; font-weight: 600; } details.rsect { border-top: 1px solid var(--line); } details.rsect > summary { padding: 12px 0; } details.rsect > .sbody { padding: 0 0 12px; }
  .roleopts, .accopts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 12px; }
  .roleopts button, .accopts button { text-align: left; padding: 14px 16px; display: grid; gap: 6px; height: 100%; white-space: normal; }
  .roleopts button span, .accopts button span { color: var(--muted); font-weight: 400; font-size: 13px; }
  .accopts button.on { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
  .xlist { display: grid; gap: 0; } .xrow { padding: 12px 0; border-top: 1px solid var(--line); } .xrow:first-child { border-top: 0; }
  .xh { display: grid; gap: 2px; margin-bottom: 6px; } .xg { margin-top: 4px; } .xres { display: grid; gap: 4px; margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: var(--soft, rgba(127,127,127,.08)); }
  .xrow.st-done .xh b { color: var(--accent); } .xrow.st-skip .xh b, .xrow.st-later .xh b { opacity: .75; }
  table.lg th input { min-width: 90px; } tr.lgsec td { font-weight: 700; padding-top: 12px; background: transparent; }
  .acc-list { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 8px; } .acc-list li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 8px 0; border-top: 1px solid var(--line); }
  .acc-list .mk { font-weight: 700; color: var(--muted); } .acc-list li.done .mk { color: var(--accent); } .acc-list button { white-space: nowrap; }
  .f .idk { font-size: 12.5px; margin-top: 4px; align-self: flex-start; }
  .f small.assume { color: var(--warn); } .f small.rng:empty { display: none; }
  .rel { margin: 12px 0 4px; } .rel-top { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; } .rel-top b { font-size: 17px; } .rel .bars { margin-top: 6px; } .rel .bar { grid-template-columns: 1fr; }
  .fixrow { margin-top: 8px; gap: 6px; } .fixbtn { font-size: 13px; padding: 5px 10px; }
  input::placeholder, textarea::placeholder { color: var(--muted); font-style: italic; opacity: .65; }
  details.altbox { margin-top: 6px; border: 1px dashed var(--line); border-radius: 8px; padding: 4px 10px; }
  details.altbox > summary { font-size: 12.5px; font-weight: 500; color: var(--accent); padding: 2px 0; }
  details.altbox[open] { padding-bottom: 8px; } details.altbox .altl { margin-top: 6px; } details.altbox .altl label { font-size: 13px; }
  details.dop { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 10px; }
  details.dop > summary { font-weight: 600; color: var(--accent); } details.dop > .grid { margin-top: 10px; } .steps3 { margin: 6px 0 0; padding-left: 22px; } .steps3 li { margin-bottom: 6px; } .seg button { min-width: 150px; } .pair { display: flex; gap: 4px; align-items: center; } .pair input { min-width: 56px; } .warn-t { color: var(--warn); } .acc-btn { font-size: 12.5px; white-space: nowrap; margin-left: 4px; } tr.hl td { font-weight: 600; }
  details li { margin-bottom: 4px; }
  .status { font-size: 12px; padding: 1px 8px; border-radius: 10px; white-space: nowrap; }
  .status.s0 { background: var(--warn-soft); color: var(--warn); }
  .status.s1 { background: var(--mid-soft); color: var(--mid); }
  .status.s2 { background: var(--accent-soft); color: var(--accent); }
  .rep { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 28px; }
  .rep h1 { font-size: 26px; }
  .rep h2 { font-size: 18px; margin: 26px 0 10px; padding-bottom: 6px; border-bottom: 2px solid var(--accent); }
  .rep-head { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
  .rep-kicker { color: var(--accent); font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; }
  .rep-sub { color: var(--muted); }
  .rep-prof { margin-top: 8px; font-size: 13px; color: var(--muted); }
  .rep-meta { text-align: right; color: var(--muted); font-size: 13px; }
  .rep-summary { margin-top: 16px; }
  .rec { border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; margin-bottom: 10px; break-inside: avoid; }
  .rec-h { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
  .rec-n { background: var(--accent); color: #fff; border-radius: 50%; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; flex: none; }
  .rec-h b { font-size: 15px; }
  .tag { font-size: 11px; padding: 1px 7px; border-radius: 10px; background: var(--line); color: var(--muted); }
  .tag.ph { background: var(--accent-soft); color: var(--accent); }
  .rec p { margin: 6px 0; }
  .rec ul { margin: 4px 0 6px; padding-left: 20px; }
  .eff { font-size: 13px; color: var(--accent); font-weight: 600; }
  .kpi-l { font-size: 13px; color: var(--muted); }
  .phase { border-left: 3px solid var(--accent); padding: 4px 0 4px 14px; margin-bottom: 14px; break-inside: avoid; }
  .phase h3 { margin-top: 0; }
  .phase ul { margin: 4px 0; padding-left: 20px; }
  .month { border-left: 3px solid var(--accent); padding: 2px 0 2px 14px; margin-bottom: 18px; }
  .month h3 { margin: 0 0 4px; }
  .tasks { list-style: none; padding: 0; margin: 8px 0 0; }
  .task { border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; margin-bottom: 8px; break-inside: avoid; }
  .task b { display: inline; }
  .task .tag { margin-left: 4px; }
  .task small { display: block; color: var(--muted); margin-top: 3px; }
  .check { background: var(--mid-soft); border-radius: 8px; padding: 8px 12px; font-size: 13px; break-inside: avoid; }
  .diag { background: var(--accent-soft); border-radius: 8px; padding: 10px 14px; margin-top: 14px; break-inside: avoid; }
  .chk { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 4px 12px; font-size: 14px; }
  .chk label { display: flex; gap: 6px; align-items: flex-start; cursor: pointer; }
  .chk input { width: auto; margin-top: 3px; }
  .kind { font-size: 11px; padding: 1px 7px; border-radius: 10px; font-weight: 600; }
  .kind.remove { background: var(--warn-soft); color: var(--warn); } .kind.fix { background: var(--mid-soft); color: var(--mid); }
  .kind.simplify { background: var(--accent-soft); color: var(--accent); } .kind.add { background: var(--line); color: var(--text); } .kind.automate { background: var(--line); color: var(--muted); }
  .disc { color: var(--muted); font-size: 12px; margin-top: 26px; border-top: 1px solid var(--line); padding-top: 10px; }
  @media print {
    @page { margin: 14mm; }
    :root { --bg: #fff; --card: #fff; --text: #111; --muted: #555; --line: #ddd; --accent: #2f6f4f; --accent-soft: #e4efe8; }
    body { background: #fff; font-size: 12px; }
    .noprint, .top { display: none !important; }
    main { padding: 0; } .wrap { max-width: none; padding: 0; } .rep { border: none; padding: 0; }
    .rep h2 { break-after: avoid; }
    * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  }

.welcome { display: grid; gap: 16px; margin-top: 20px; }
.wl-hero { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 32px 28px; }
.wl-hero h1 { margin: 0 0 10px; font-size: 28px; line-height: 1.2; } .wl-hero p { margin: 0; color: var(--muted); font-size: 16px; max-width: 760px; line-height: 1.5; }
.wl-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; } button.big { padding: 12px 20px; font-size: 15px; }
.wl-role { margin-top: 20px; }
.wl-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.wl-steps > div { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; } .wl-steps p { margin: 6px 0 0; color: var(--muted); font-size: 13.5px; line-height: 1.45; }
.wl-n { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-weight: 700; align-items: center; justify-content: center; margin-right: 8px; font-size: 13px; }
.wl-what ul { margin: 6px 0 8px; padding-left: 20px; } .wl-what li { margin-bottom: 4px; }
.stepbar { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: var(--accent-soft); border-radius: 10px; padding: 10px 14px; margin: 0 0 12px; }
.stepbar.demo { background: var(--mid-soft); } .stepbar button { white-space: nowrap; }
  .uidlg { position: fixed; inset: 0; z-index: 100; background: rgba(20, 20, 18, .45); display: flex; align-items: center; justify-content: center; padding: 16px; }
  .uidlg-box { background: var(--card); color: var(--text); border: 1px solid var(--line); border-radius: 10px; max-width: 460px; width: 100%; padding: 20px; box-shadow: 0 12px 40px rgba(0, 0, 0, .25); }
  .uidlg-box p { margin: 0 0 16px; line-height: 1.5; }
  .uidlg-row { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
  .uidlg-row .danger { background: var(--warn); border-color: var(--warn); color: #fff; }
  .xtbl td:first-child { min-width: 220px; }
  .xbox { padding: 8px 6px 10px; display: grid; gap: 10px; font-size: 13.5px; line-height: 1.45; }
  .xbox .rk-box { padding: 0; }
  .xst-wrap { display: grid; gap: 6px; }
  .xst { display: flex; flex-wrap: wrap; gap: 6px; }
  .xst button { font-size: 13px; padding: 6px 11px; border-radius: 999px; background: var(--card); }
  .xst button.on { background: var(--accent); border-color: var(--accent); color: #fff; }
  .xst button.on.st-fail { background: var(--warn); border-color: var(--warn); }
  .xst button.on.st-later, .xst button.on.st-skip { background: var(--muted); border-color: var(--muted); }
  .xst button.on.st-doing { background: var(--mid); border-color: var(--mid); }
  .xr.st-done td:first-child .rk-t { color: var(--accent); }
  .xr.st-skip td:first-child .rk-t, .xr.st-later td:first-child .rk-t { opacity: .75; }
