[hidden] { display: none !important; }
@media (prefers-color-scheme: dark) {
  body.tool { --paper: #17151A; --ink: #F3EEE8; --soft: #D9D2CC; --muted: #ABA4AD; --line: #3A353E; --accent: #EBA3B2; --accent-dark: #F6C4CE; --white: #232027; --pale: #4A2631; color-scheme: dark; }
  body.tool .btn { color: #17151A; } body.tool .btn:hover { color: #17151A; }
  body.tool .btn.quiet, body.tool .btn.quiet:hover { color: var(--accent); }
  body.tool .form input, body.tool .form select { border-color: #57505B; }
}
body.tool .wm-dark { display: none; }
@media (prefers-color-scheme: dark) { body.tool .wm-light { display: none; } body.tool .wm-dark { display: inline; } }
.tool-main { display: flex; flex-direction: column; gap: 22px; max-width: 820px; }
.tool-main h1 { font-size: clamp(34px, 6vw, 56px); }
.tool-main h2 { font-size: clamp(24px, 3.4vw, 30px); margin-top: 8px; }
.tool-main ul.plain { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.first { background: var(--pale); border-radius: 14px; padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; }
.first b { font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); }
.first p:focus { outline: none; }
.privacy-line { font-size: 15px; color: var(--muted); }
.form fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.form legend { font-weight: 600; padding: 0; margin-bottom: 4px; }
.subj-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 8px; }
.subj-row input { width: 100%; min-width: 0; }
.fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.days { display: flex; flex-wrap: wrap; gap: 8px; }
.days label { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 10px; font-weight: 400; cursor: pointer; }
.days input { width: 20px; height: 20px; min-height: 0; accent-color: var(--accent); }
.days input:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.two { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.two > div { display: flex; flex-direction: column; gap: 6px; }
.btn.quiet { background: transparent; color: var(--accent); border: 2px solid var(--accent); }
.btn.quiet:hover { background: var(--pale); color: var(--accent); }
.tt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.tt-day { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.tt-day h3 { font-size: 18px; }
.tt-blocks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.tt-blocks li { display: flex; gap: 10px; }
.tt-min { min-width: 4.2em; color: var(--muted); font-variant-numeric: tabular-nums; }
.tt-study { font-weight: 600; } .tt-break { color: var(--muted); font-size: 15px; }
.tt-rest { background: transparent; border-style: dashed; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { min-height: 44px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); color: var(--ink); font: inherit; font-size: 16px; cursor: pointer; }
.chip:hover { border-color: var(--accent); } .chip:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.step-out { background: var(--white); border: 2px solid var(--accent); border-radius: 18px; padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.step-out .big { font-size: clamp(22px, 4vw, 28px); font-weight: 700; line-height: 1.25; }
.step-out .big:focus { outline: none; }
.all-steps h3 { margin-top: 10px; }
.help-out { background: var(--pale); border-radius: 14px; padding: 16px 18px; font-size: 18px; }
.help-out:focus { outline: none; }
.btn[disabled] { opacity: 0.65; cursor: default; }
details summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
details summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.dates { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.dates li { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.dates .when { font-size: 22px; font-weight: 800; }
.dates .gap { color: var(--accent); font-weight: 600; min-height: 1.5em; }
.sources { font-size: 15px; } .sources li { overflow-wrap: anywhere; }
.more-tools { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 16px; }
.made-by { font-size: 15px; color: var(--muted); }
.card10 { background: var(--white, #FFFFFF); color: var(--ink, #1C1B1F); border: 2px solid var(--accent, #6E1A2B); border-radius: 20px; padding: 28px; display: flex; flex-direction: column; gap: 14px; max-width: 720px; }
.card10 h1 { font-size: clamp(34px, 6vw, 52px); line-height: 1.05; letter-spacing: -0.03em; font-weight: 800; margin: 0; color: var(--accent, #6E1A2B); }
.card10-lead { font-size: 19px; margin: 0; }
.card10-list { margin: 0; padding-left: 1.6em; display: flex; flex-direction: column; gap: 10px; font-size: 21px; line-height: 1.35; }
.card10-list li::marker { font-weight: 800; color: var(--accent, #6E1A2B); }
.card10-after { font-size: 17px; margin: 0; }
.card10-foot { font-size: 13px; margin: 0; color: var(--muted, #5A5560); }
@media (max-width: 480px) { .subj-row { grid-template-columns: 1fr; } .card10 { padding: 20px; } .card10-list { font-size: 19px; } }
@media print {
  @page { margin: 14mm; }
  body, body.tool { --paper: #FFFFFF; --ink: #000000; --soft: #000000; --muted: #333333; --line: #999999; --accent: #6E1A2B; --white: #FFFFFF; --pale: #FFFFFF; background: #FFFFFF; color: #000000; font-size: 12pt; }
  header.top, nav, footer, form, .noprint, .made-by, .more-tools, .privacy-line { display: none !important; }
  .wrap { padding: 0; max-width: none; } .pad { padding: 0; }
  .tt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .tt-day, .dates li { break-inside: avoid; border-color: #999999; }
  .first { border: 1px solid #999999; }
  .card10 { border-color: #6E1A2B; max-width: none; }
  a { color: #000000; }
}