/* _dashboard_style.html: the rules that were its <style> block (#753). Linked from the page's head, after app.css and the skin, so the cascade is the one the block had. */
  details.drill > summary { list-style:none; cursor:pointer; }
  details.drill > summary::-webkit-details-marker { display:none; }
  details.drill > summary .k::before { content:"▸"; display:inline-block; width:1em; color:var(--ink-3); transition:transform .15s; }
  details.drill[open] > summary .k::before { transform:rotate(90deg); }
  details.drill[open] > summary { background:var(--surface-2); }
  .drill-tbl { width:100%; font-size:12.5px; margin:4px 0 6px; }
  .drill-tbl td, .drill-tbl th { padding:4px 6px; }
  .drill-tbl th { font-weight:500; color:var(--ink-2); text-align:left; }
  .drill-tbl .num { text-align:right; white-space:nowrap; font-family:var(--mono, "IBM Plex Mono", monospace); }
  .drill-tbl tr.over td:first-child { color:var(--critical); }
  details.drill .note { margin:2px 6px 8px; display:block; }
  .drill-tbl .note:not(tr) { display:inline; margin:0; }  /* a greyed row (tr.note) stays a row */
  details.pace { margin-top:6px; font-size:13px; }
  details.pace > summary { cursor:pointer; list-style:none; }
  details.pace > summary::-webkit-details-marker { display:none; }
  details.pace > summary::before { content:"▸ "; color:var(--ink-3); }
  details.pace[open] > summary::before { content:"▾ "; }
  details.pace > summary .note { display:block; }  /* the summary's line, not the table's greyed rows */
  .month-nav { display:flex; gap:10px; align-items:baseline; }
  .month-nav a { font-size:12px; text-decoration:none; color:var(--accent); white-space:nowrap; }
  .review-tbl > tbody > tr.sec > td { border-top:1px solid var(--border); vertical-align:top; }
  .review-tbl tr.result td { border-top:1.5px solid var(--border); padding-top:8px; }
  details.rv > summary { cursor:pointer; list-style:none; font-weight:500; }
  details.rv > summary::-webkit-details-marker { display:none; }
  details.rv > summary::before { content:"▸ "; color:var(--ink-3); }
  details.rv[open] > summary::before { content:"▾ "; }
  .review-tbl button.house-toggle { all:unset; cursor:pointer; display:inline; color:inherit; background:none; border:0; border-radius:0; padding:0; min-height:0; box-shadow:none; font:inherit; text-align:left; }
  .review-tbl button.house-toggle:hover, .review-tbl button.house-toggle:active, .review-tbl button.house-toggle:focus { background:none; color:inherit; box-shadow:none; transform:none; }
  .review-tbl .house-toggle::before { content:"▸ "; color:var(--ink-3); }
  .review-tbl .house-toggle[aria-expanded="true"]::before { content:"▾ "; }
  .review-tbl .house-toggle:focus-visible { outline:2px solid var(--accent); }
  tr.house-part[hidden] { display:none; }
  tr.house-part td.part-label { padding-left:22px; color:var(--ink-2); }
  .gs-steps { list-style:none; padding:0; margin:4px 0 0; display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:6px; }
  .gs-steps a { display:flex; gap:10px; align-items:flex-start; padding:8px 10px; border:1px solid var(--border); border-radius:6px; color:inherit; text-decoration:none; }
  .gs-steps a:hover { border-color:var(--accent); }
  /* a step that is done steps back by its name, not by fading: at .6 its grey note was 2.5:1 in every look but
     Structured, which was mended alone on 5 October 2026 (#187). tests/test_accessibility.py pins it. */
  .gs-steps li.done strong { font-weight:500; color:var(--ink-2); }
  .gs-mark { flex:0 0 22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
             font-size:12px; font-weight:600; background:var(--accent-tint); color:var(--accent-strong); }
  .gs-steps li.done .gs-mark { background:var(--good-tint); color:var(--good); }
  .syncline { margin:0 0 8px; font-size:12px; color:var(--ink-2); text-align:right; }
  .syncline a { color:var(--accent); }
  .spin { display:inline-block; width:9px; height:9px; border:2px solid var(--ink-3); border-top-color:transparent;
          border-radius:50%; animation:spin .8s linear infinite; vertical-align:-1px; margin-right:4px; }
  @keyframes spin { to { transform:rotate(360deg); } }
  @media (prefers-reduced-motion: reduce) { .spin { animation:none; } }
  .makeit { margin:10px 0 4px; padding:10px 12px; border:1px solid var(--warning); border-radius:6px; background:var(--warning-tint); }
  .makeit h3 { margin:0; font-size:13px; }
  .makeit > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; }
  .makeit > summary::-webkit-details-marker { display:none; }
  .makeit > summary::before { content:"▸"; color:var(--warning); transition:transform .15s; }
  .makeit[open] > summary::before { transform:rotate(90deg); }
  .makeit[open] > summary { margin-bottom:6px; }
  .makeit-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
  .makeit .sub { margin:0 0 6px; }
