/* Region planning workbook. Fluent 2 as used in the Azure portal, on the tokens of site.css.
   Every rule is scoped to #planner (or .tool for the page shell). The id beats the site's .prose rules for tables, headings,
   paragraphs, and lists, which otherwise leak into the workbook. */

/* The workbook needs the full width: no "In this article" rail, no reading measure. */
.tool .shell { grid-template-columns: var(--side-w) minmax(0, 1fr); }
.tool .rail { display: none; }
.tool h1.title, .tool .prose > * { max-width: none; }
.tool .prose { margin-top: 20px; }

/* ───────── tokens. Controls and surfaces are neutral; color is for state and data. */
#planner {
  --pl-surface: var(--bg); --pl-subtle: var(--bg-soft); --pl-sunk: var(--bg-sunk);
  --pl-ink: var(--ink); --pl-text: var(--text); --pl-muted: var(--muted);
  --pl-line: var(--line); --pl-divider: var(--line); --pl-faint: #6A7483;
  --pl-stroke: #8A8886; --pl-stroke-b: #616161;
  --pl-brand: var(--accent); --pl-brand-h: var(--accent-ink); --pl-brand-t: var(--accent-soft); --pl-brand-l: var(--accent-line);
  --pl-ok: #107C10; --pl-ok-bg: #F1FAF1; --pl-warn: #BC4B09; --pl-warn-bg: #FFF9F5; --pl-bad: #C50F1F; --pl-bad-bg: #FDF3F4;
  --pl-lower: #0F6CBD; --pl-higher: #C4501B;
  --pl-on: #FFFFFF; --pl-on-brand: #FFFFFF;
  --pl-tip-bg: #242424; --pl-tip-fg: #FFFFFF;
  --pl-pop: 0 0 2px rgba(0,0,0,.12), 0 8px 16px rgba(0,0,0,.14);
  --pl-track: color-mix(in srgb, var(--pl-brand) 14%, var(--pl-surface));
  color-scheme: light;
  position: relative; max-width: 1180px; font-family: var(--font); font-size: 14px; line-height: 20px; color: var(--pl-text); font-variant-numeric: normal;
}
:root[data-theme="dark"] #planner {
  --pl-faint: var(--faint); --pl-stroke: #8C8F94; --pl-stroke-b: #ADADAD;
  --pl-ok: #54B054; --pl-ok-bg: #0B2A0B; --pl-warn: #FAA06B; --pl-warn-bg: #3D1D07; --pl-bad: #E37D80; --pl-bad-bg: #3B0D10;
  --pl-lower: #5AA9F0; --pl-higher: #F0A06E; --pl-on: #16181C; --pl-on-brand: #0B1B2E;
  --pl-tip-bg: #E6E6E6; --pl-tip-fg: #1A1A1A; --pl-pop: 0 0 2px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.5);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) #planner {
    --pl-faint: var(--faint); --pl-stroke: #8C8F94; --pl-stroke-b: #ADADAD;
    --pl-ok: #54B054; --pl-ok-bg: #0B2A0B; --pl-warn: #FAA06B; --pl-warn-bg: #3D1D07; --pl-bad: #E37D80; --pl-bad-bg: #3B0D10;
    --pl-lower: #5AA9F0; --pl-higher: #F0A06E; --pl-on: #16181C; --pl-on-brand: #0B1B2E;
    --pl-tip-bg: #E6E6E6; --pl-tip-fg: #1A1A1A; --pl-pop: 0 0 2px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.5);
    color-scheme: dark;
  }
}

/* ───────── reset against the site's .prose rules */
#planner *, #planner *::before, #planner *::after { box-sizing: border-box; }
#planner p, #planner h2, #planner h3, #planner h4, #planner dl, #planner dd, #planner ul, #planner figure { margin: 0; padding: 0; }
#planner h2, #planner h3, #planner h4 { position: static; font-size: inherit; line-height: inherit; font-weight: 600; color: var(--pl-ink); letter-spacing: 0; }
#planner ul { list-style: none; }
#planner li { margin: 0; }
#planner strong, #planner b { color: inherit; font-weight: 600; }
#planner em { color: inherit; }
#planner table { width: 100%; min-width: 0; margin: 0; border-collapse: separate; border-spacing: 0; font-size: 14px; line-height: 20px; }
#planner th, #planner td { width: auto; padding: 0; border: 0; background: none; color: inherit; font-size: inherit; font-weight: 400; letter-spacing: 0; text-transform: none; text-align: left; vertical-align: middle; }
#planner a { color: var(--pl-brand); }
#planner button, #planner input, #planner select, #planner textarea { font: inherit; letter-spacing: 0; }
#planner svg { display: block; flex: none; }
#planner [hidden] { display: none !important; }
#planner .pl-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
#planner .pl-muted { color: var(--pl-muted); }
#planner .pl-cap { display: block; font-size: 12px; line-height: 16px; color: var(--pl-muted); font-weight: 400; }
#planner .pl-n { font-variant-numeric: tabular-nums; }
#planner .pl-blk { display: block; }
#planner :focus-visible { outline: 2px solid var(--pl-brand); outline-offset: 2px; }

/* ───────── icons and status glyphs */
#planner .pl-i { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
#planner .pl-st { width: 16px; height: 16px; }
#planner .pl-st .bg { stroke: none; }
#planner .pl-st .g { fill: none; stroke: var(--pl-on); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
#planner .pl-st .ring { fill: none; stroke: var(--pl-muted); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
#planner .pl-st.success .bg { fill: var(--pl-ok); }
#planner .pl-st.warning .bg { fill: var(--pl-warn); }
#planner .pl-st.error .bg { fill: var(--pl-bad); }
#planner .pl-st.info .bg { fill: var(--pl-brand); }
#planner .pl-st.info .g { stroke: var(--pl-on-brand); }
#planner .pl-st.half .bg { fill: var(--pl-brand); }
#planner .pl-st.half .ring { stroke: var(--pl-brand); }
#planner .pl-st.none .ring { stroke: var(--pl-faint); }
#planner .pl-st.lock .ring { stroke: var(--pl-faint); }
#planner .pl-it { display: inline-flex; align-items: center; gap: 6px; vertical-align: middle; }

/* ───────── buttons */
#planner .pl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid var(--pl-stroke); border-bottom-color: var(--pl-stroke-b); border-radius: 4px; background: var(--pl-surface); color: var(--pl-ink); font-size: 14px; line-height: 20px; font-weight: 600; white-space: nowrap; cursor: pointer; text-decoration: none; }
#planner .pl-btn:hover { background: var(--pl-subtle); }
#planner .pl-btn:active { background: var(--pl-sunk); }
#planner .pl-btn.primary { background: var(--pl-brand); border-color: var(--pl-brand); color: var(--pl-on-brand); }
#planner .pl-btn.primary:hover { background: var(--pl-brand-h); border-color: var(--pl-brand-h); }
#planner .pl-btn.subtle { border-color: transparent; background: transparent; }
#planner .pl-btn.subtle:hover { background: var(--pl-sunk); }
#planner .pl-btn.subtle:active { background: color-mix(in srgb, var(--pl-sunk) 70%, var(--pl-line)); }
#planner .pl-btn.subtle .pl-i { color: var(--pl-brand); }
#planner .pl-btn.icon { width: 32px; padding: 0; }
#planner .pl-btn.icon .pl-i { color: var(--pl-muted); }
#planner .pl-btn.icon:hover .pl-i { color: var(--pl-ink); }
#planner .pl-btn.sm { height: 24px; padding: 0 6px; font-size: 12px; line-height: 16px; font-weight: 400; color: var(--pl-brand); gap: 4px; }
#planner .pl-btn.sm.icon { width: 24px; padding: 0; }
#planner .pl-btn.danger { background: var(--pl-bad-bg); border-color: var(--pl-bad); color: var(--pl-ink); }
#planner .pl-btn.danger .pl-i { color: var(--pl-bad); }
#planner .pl-btn.danger:hover { background: var(--pl-bad-bg); }
#planner .pl-btn:disabled { opacity: .45; cursor: default; }
#planner .pl-linkbtn { border: 0; padding: 0; background: none; color: var(--pl-brand); font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
#planner .pl-link { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 600; color: var(--pl-brand); text-decoration: none; }
#planner .pl-link:hover { text-decoration: underline; }
#planner .pl-link .pl-i { width: 14px; height: 14px; }

/* ───────── form controls: 32px, bottom edge a little stronger, brand 2px bottom edge on focus */
#planner .pl-in, #planner .pl-sel { display: block; width: 100%; min-width: 0; height: 32px; padding: 0 8px; border: 1px solid var(--pl-stroke); border-bottom-color: var(--pl-stroke-b); border-radius: 4px; background-color: var(--pl-surface); color: var(--pl-text); font-size: 14px; line-height: 20px; }
#planner .pl-in::placeholder { color: var(--pl-faint); opacity: 1; }
#planner .pl-in:hover, #planner .pl-sel:hover { border-color: var(--pl-stroke-b); }
#planner .pl-in:focus, #planner .pl-sel:focus { outline: none; border-bottom-color: var(--pl-brand); box-shadow: inset 0 -1px 0 var(--pl-brand); }
#planner .pl-in:focus-visible, #planner .pl-sel:focus-visible { outline: 1px solid var(--pl-brand); outline-offset: 0; }
#planner .pl-in:disabled, #planner .pl-sel:disabled { background: var(--pl-subtle); color: var(--pl-faint); border-color: var(--pl-line); cursor: default; }
#planner .pl-area { height: auto; min-height: 64px; padding: 6px 8px; resize: vertical; }
#planner input[type="date"].pl-in { min-width: 150px; }
#planner input[type="number"].pl-in { max-width: 120px; font-variant-numeric: tabular-nums; }
#planner .pl-sel-wrap { position: relative; display: block; width: 100%; min-width: 0; }
#planner .pl-sel { appearance: none; -webkit-appearance: none; padding-right: 28px; text-overflow: ellipsis; cursor: pointer; }
#planner .pl-sel-wrap.has-ic .pl-sel { padding-left: 30px; }
#planner .pl-sel-wrap.is-empty .pl-sel { color: var(--pl-muted); }
#planner .pl-sel-ic { position: absolute; left: 8px; top: 8px; pointer-events: none; }
#planner .pl-sel-caret { position: absolute; right: 8px; top: 8px; pointer-events: none; color: var(--pl-muted); }
#planner .pl-sel option { background: var(--pl-surface); color: var(--pl-text); }
#planner .pl-sel-wrap.sm { max-width: 200px; }
#planner .pl-radio { width: 16px; height: 16px; margin: 0; accent-color: var(--pl-brand); cursor: pointer; }

/* form rows: label at the left, control at the right */
#planner .pl-row { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 4px 24px; align-items: start; padding: 8px 0; }
#planner .pl-label { padding-top: 6px; font-size: 14px; line-height: 20px; color: var(--pl-ink); }
#planner .pl-ctl { min-width: 0; max-width: 420px; }
#planner .pl-ctl.wide { max-width: none; }
#planner .pl-hint { margin-top: 4px; font-size: 12px; line-height: 16px; color: var(--pl-muted); }
#planner .pl-subform { margin-top: 8px; }

/* segmented control (radio semantics) */
#planner .pl-seg { display: inline-flex; max-width: 100%; border: 1px solid var(--pl-stroke); border-bottom-color: var(--pl-stroke-b); border-radius: 4px; background: var(--pl-surface); }
#planner .pl-seg-b { position: relative; height: 30px; padding: 0 12px; border: 0; border-left: 1px solid var(--pl-line); background: transparent; color: var(--pl-text); font-size: 14px; line-height: 20px; cursor: pointer; white-space: nowrap; }
#planner .pl-seg-b:first-child { border-left: 0; border-radius: 3px 0 0 3px; }
#planner .pl-seg-b:last-child { border-radius: 0 3px 3px 0; }
#planner .pl-seg-b:hover:not(:disabled):not(.on) { background: var(--pl-subtle); }
#planner .pl-seg-b.on { background: var(--pl-brand-t); color: var(--pl-ink); font-weight: 600; box-shadow: inset 0 0 0 1px var(--pl-brand); z-index: 1; }
#planner .pl-seg-b:focus-visible { outline-offset: -2px; z-index: 2; }
#planner .pl-seg-b:disabled { color: var(--pl-faint); cursor: default; }
#planner .pl-seg-b.on:disabled { box-shadow: none; }

/* switch */
#planner .pl-switch { position: relative; flex: none; width: 40px; height: 20px; padding: 0; border: 1px solid var(--pl-stroke-b); border-radius: 10px; background: transparent; cursor: pointer; }
#planner .pl-switch-knob { position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: var(--pl-stroke-b); transition: transform .12s ease, background .12s; }
#planner .pl-switch.on { background: var(--pl-brand); border-color: var(--pl-brand); }
#planner .pl-switch.on .pl-switch-knob { transform: translateX(20px); background: var(--pl-on-brand); }

/* tags and badges */
#planner .pl-tag { display: inline-flex; align-items: center; height: 20px; padding: 0 6px; border-radius: 4px; background: var(--pl-sunk); color: var(--pl-text); font-size: 12px; line-height: 16px; font-weight: 600; white-space: nowrap; vertical-align: middle; }
#planner .pl-tag.brand { background: var(--pl-brand-t); color: var(--pl-brand-h); }
#planner .pl-tag.warn { background: var(--pl-warn-bg); color: var(--pl-ink); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pl-warn) 45%, transparent); }
#planner .pl-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--pl-ink); }
#planner .pl-badge.lg { padding: 4px 10px 4px 8px; border-radius: 4px; font-size: 14px; line-height: 20px; background: var(--pl-subtle); box-shadow: inset 0 0 0 1px var(--pl-line); }
#planner .pl-badge.lg.success { background: var(--pl-ok-bg); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pl-ok) 35%, transparent); }
#planner .pl-badge.lg.warning { background: var(--pl-warn-bg); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pl-warn) 35%, transparent); }
#planner .pl-badge.lg.error { background: var(--pl-bad-bg); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pl-bad) 35%, transparent); }
#planner .pl-badge.lg.info { background: var(--pl-brand-t); box-shadow: inset 0 0 0 1px var(--pl-brand-l); }

/* message bars */
#planner .pl-mb { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0; padding: 8px 12px; border: 1px solid var(--pl-line); border-radius: 4px; background: var(--pl-subtle); font-size: 14px; line-height: 20px; color: var(--pl-ink); }
#planner .pl-mb > .pl-st { margin-top: 2px; }
#planner .pl-mb-t { flex: 1; min-width: 0; }
#planner .pl-mb.info { background: var(--pl-brand-t); border-color: var(--pl-brand-l); }
#planner .pl-mb.warning { background: var(--pl-warn-bg); border-color: color-mix(in srgb, var(--pl-warn) 40%, transparent); }
#planner .pl-mb.success { background: var(--pl-ok-bg); border-color: color-mix(in srgb, var(--pl-ok) 40%, transparent); }
#planner .pl-mb.error { background: var(--pl-bad-bg); border-color: color-mix(in srgb, var(--pl-bad) 40%, transparent); }
#planner .pl-miss { margin-top: 4px; }
#planner .pl-miss li { padding: 2px 0; }

/* ───────── frame */
#planner .pl-app { position: relative; border: 1px solid var(--pl-line); border-radius: 8px; background: var(--pl-surface); }
#planner .pl-cmd { display: flex; align-items: center; gap: 4px; min-height: 44px; padding: 6px 8px; border-bottom: 1px solid var(--pl-divider); overflow-x: auto; scrollbar-width: none; }
#planner .pl-sep { align-self: center; width: 1px; height: 20px; margin: 0 6px; background: var(--pl-line); flex: none; }
#planner .pl-msgslot { position: relative; height: 0; z-index: 8; }
#planner .pl-msgslot .pl-mb { position: absolute; top: 8px; right: 12px; width: min(460px, calc(100% - 24px)); margin: 0; box-shadow: var(--pl-pop); background-clip: padding-box; transition: opacity .35s; }
#planner .pl-msgslot.fade .pl-mb { opacity: 0; }
#planner .pl-msgslot .pl-mb.info { background: var(--pl-surface); border-color: var(--pl-brand); }
#planner .pl-msgslot .pl-mb.success { background: var(--pl-surface); border-color: var(--pl-ok); }
#planner .pl-msgslot .pl-mb.error { background: var(--pl-surface); border-color: var(--pl-bad); }

/* Essentials */
#planner .pl-ess { border-bottom: 1px solid var(--pl-divider); }
#planner .pl-ess-h { padding: 8px 12px 0; }
#planner .pl-ess-t { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 8px 0 4px; border: 0; border-radius: 4px; background: none; color: var(--pl-ink); font-size: 14px; font-weight: 600; cursor: pointer; }
#planner .pl-ess-t:hover { background: var(--pl-sunk); }
#planner .pl-ess-t .pl-i { color: var(--pl-muted); }
#planner .pl-ess-b { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; padding: 4px 28px 16px; }
#planner .pl-ess-b[hidden] { display: none !important; }
#planner .pl-kv-r { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 0 12px; padding: 3px 0; }
#planner .pl-kv-r dt { color: var(--pl-muted); }
#planner .pl-kv-r dd { color: var(--pl-ink); overflow-wrap: anywhere; }
#planner .pl-brk { display: flex; flex-wrap: wrap; gap: 0 16px; margin-top: 2px; }
#planner .pl-brk .pl-it { font-size: 12px; line-height: 16px; color: var(--pl-text); }
#planner .pl-ess .pl-tag { margin-left: 4px; }

/* step tabs, in the style of the portal's create flows */
#planner .pl-tabswrap { border-bottom: 1px solid var(--pl-divider); overflow-x: auto; scrollbar-width: thin; }
#planner .pl-tabs { display: flex; align-items: flex-end; gap: 0; min-width: max-content; padding: 0 12px; }
#planner .pl-tabgrp { padding: 8px 0 0; }
#planner .pl-tabgrp + .pl-tabgrp { margin-left: 16px; padding-left: 16px; border-left: 1px solid var(--pl-line); }
#planner .pl-tabgrp-l { display: block; padding: 0 12px 2px; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--pl-muted); }
#planner .pl-tabrow { display: flex; }
#planner .pl-tab { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 0; background: none; color: var(--pl-text); font-size: 14px; line-height: 20px; cursor: pointer; white-space: nowrap; }
#planner .pl-tab:hover { background: var(--pl-subtle); }
#planner .pl-tab::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 0; height: 2px; border-radius: 1px; background: transparent; }
#planner .pl-tab.on { color: var(--pl-ink); font-weight: 600; }
#planner .pl-tab.on::after { background: var(--pl-brand); }
#planner .pl-tab:focus-visible { outline-offset: -2px; }

/* tab content */
#planner .pl-panel { padding: 24px 32px 40px; min-height: 360px; }
#planner .pl-panel:focus { outline: none; }
#planner .pl-head { margin-bottom: 20px; }
#planner .pl-title { font-size: 20px; line-height: 28px; font-weight: 600; color: var(--pl-ink); }
#planner .pl-sub { margin-top: 2px; color: var(--pl-muted); }
#planner .pl-sec { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--pl-divider); }
#planner .pl-head + .pl-sec { margin-top: 0; padding-top: 0; border-top: 0; }
#planner .pl-sec-h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
#planner .pl-sec-h h3 { font-size: 16px; line-height: 22px; font-weight: 600; }
#planner .pl-sec-d { margin-top: 2px; color: var(--pl-muted); }
#planner .pl-sec > :not(.pl-sec-h):not(.pl-sec-d):first-of-type { margin-top: 16px; }
#planner .pl-sec-d + * { margin-top: 16px; }
#planner .pl-sec-h + :not(.pl-sec-d) { margin-top: 16px; }
#planner .pl-after { margin-top: 12px; }
#planner .pl-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 16px; }
#planner .pl-sec > .pl-bar:last-child, #planner .pl-panel > .pl-bar:last-child { margin-bottom: 0; }
#planner .pl-count { color: var(--pl-muted); font-variant-numeric: tabular-nums; }
#planner .pl-inline { display: inline-flex; align-items: center; gap: 8px; }
#planner .pl-inline .pl-sel-wrap { width: 220px; }
#planner .pl-label-i { color: var(--pl-ink); }
#planner .pl-fn { margin-top: 12px; font-size: 12px; line-height: 16px; color: var(--pl-muted); max-width: 820px; }
#planner .pl-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
#planner .pl-lg { display: inline-flex; align-items: center; gap: 6px; }
#planner .pl-key { width: 20px; height: 8px; border-radius: 4px; }
#planner .pl-key.c1 { background: var(--pl-cheap-1); } #planner .pl-key.c2 { background: var(--pl-cheap-2); } #planner .pl-key.c3 { background: var(--pl-cheap-3); } #planner .pl-key.c4 { background: var(--pl-cheap-4); }
#planner .pl-key.d1 { background: var(--pl-dear-1); } #planner .pl-key.d2 { background: var(--pl-dear-2); } #planner .pl-key.d3 { background: var(--pl-dear-3); } #planner .pl-key.d4 { background: var(--pl-dear-4); }
#planner .pl-key.z { background: var(--pl-par); }
#planner .pl-ramps { flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 12px; }
#planner .pl-ramp { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
#planner .pl-ramp-t { min-width: 160px; font-weight: 600; color: var(--pl-ink); }
#planner .pl-ramp-n { margin-top: 2px; }
#planner .pl-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 32px; margin-top: 8px; border: 1px dashed var(--pl-stroke); border-radius: 8px; }
#planner .pl-empty-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--pl-sunk); color: var(--pl-muted); }
#planner .pl-empty-ic .pl-i { width: 20px; height: 20px; }
#planner .pl-empty p { color: var(--pl-ink); }

/* sticky footer, as in the portal's create flows */
#planner .pl-foot-bar { position: sticky; bottom: 0; z-index: 10; border-top: 1px solid var(--pl-divider); border-radius: 0 0 8px 8px; background: var(--pl-surface); box-shadow: 0 -2px 8px rgba(0,0,0,.05); }
#planner .pl-foot-in { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding: 12px 32px; }
#planner .pl-foot-l { display: flex; gap: 8px; }
#planner .pl-foot-r { color: var(--pl-muted); }

/* ───────── detail lists (tables) */
#planner .pl-scroll { position: relative; max-width: 100%; overflow-x: auto; scrollbar-width: thin; }
#planner .pl-tabswrap, #planner .pl-cgw, #planner .pl-cmd { position: relative; }
#planner .pl-scroll:focus-visible { outline-offset: -2px; }
#planner .pl-dl th, #planner .pl-dl td { padding: 8px 12px; border-bottom: 1px solid var(--pl-line); }
#planner .pl-dl thead th { padding-top: 6px; padding-bottom: 6px; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--pl-muted); white-space: nowrap; border-bottom-color: var(--pl-stroke); }
#planner .pl-dl thead th .pl-cap { margin-top: 0; font-weight: 400; }
#planner .pl-dl tbody th { font-weight: 400; color: var(--pl-ink); }
#planner .pl-dl .pl-badge { font-size: 14px; line-height: 20px; font-weight: 400; }
#planner .pl-dl tbody tr:hover > * { background: var(--pl-subtle); }
#planner .pl-dl th:first-child, #planner .pl-dl td:first-child { padding-left: 8px; }
#planner .pl-dl .is-cur { background: color-mix(in srgb, var(--pl-brand) 4%, transparent); }
#planner .pl-dl .pl-x { width: 40px; padding-left: 0; padding-right: 8px; text-align: right; }
#planner .pl-rn { display: inline-flex; align-items: center; gap: 12px; }
#planner .pl-rn > span { display: block; }
#planner .pl-rn b { display: block; font-weight: 600; color: var(--pl-ink); }
#planner .pl-rn-ic { color: var(--pl-muted); width: 20px; height: 20px; }
#planner .pl-idx { width: 40px; color: var(--pl-muted); font-variant-numeric: tabular-nums; }
#planner .pl-sn { font-weight: 600; color: var(--pl-ink); white-space: nowrap; }
#planner .pl-pr { min-width: 168px; }
#planner .pl-mx { min-width: 640px; }
#planner .pl-mx tbody td { min-width: 120px; }
#planner .pl-mx .pl-idx, #planner .pl-mx .pl-x { min-width: 0; }
/* Tints for the Services cells and the shades of the Pricing bars. Services: a faint green for available, a clear red for not available.
   Pricing: four shades each way, light for a small difference and strong for a large one, plus a gray for no difference or no data.
   In the dark theme the shades run from dim to bright, so a larger difference is still the more intense one. */
#planner {
  --pl-av-yes: #EDF7ED; --pl-av-no: #F9D4D7;
  --pl-cheap-1: #34A353; --pl-cheap-2: #22863E; --pl-cheap-3: #126631; --pl-cheap-4: #06451F;
  --pl-dear-1: #E8605F; --pl-dear-2: #D13A40; --pl-dear-3: #AE1E2D; --pl-dear-4: #7A0E1D;
  --pl-par: #848A94;
}
:root[data-theme="dark"] #planner {
  --pl-av-yes: #15291A; --pl-av-no: #46191E;
  --pl-cheap-1: #26803F; --pl-cheap-2: #35A455; --pl-cheap-3: #4DC86F; --pl-cheap-4: #76EE98;
  --pl-dear-1: #B03F47; --pl-dear-2: #D04C55; --pl-dear-3: #EC5F68; --pl-dear-4: #FF8089;
  --pl-par: #8C93A0;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) #planner {
    --pl-av-yes: #15291A; --pl-av-no: #46191E;
    --pl-cheap-1: #26803F; --pl-cheap-2: #35A455; --pl-cheap-3: #4DC86F; --pl-cheap-4: #76EE98;
    --pl-dear-1: #B03F47; --pl-dear-2: #D04C55; --pl-dear-3: #EC5F68; --pl-dear-4: #FF8089;
    --pl-par: #8C93A0;
  }
}
#planner .pl-dl tbody tr td.av-yes, #planner .pl-dl tbody tr td.av-global { background-color: var(--pl-av-yes); }
#planner .pl-dl tbody tr td.av-no { background-color: var(--pl-av-no); }
/* The current-region column keeps its brand tint under the state tint. */
#planner .pl-dl tbody tr td.is-cur.av-yes, #planner .pl-dl tbody tr td.is-cur.av-global, #planner .pl-dl tbody tr td.is-cur.av-no { background-image: linear-gradient(color-mix(in srgb, var(--pl-brand) 6%, transparent), color-mix(in srgb, var(--pl-brand) 6%, transparent)); }
#planner td.av-no .pl-av-t { font-weight: 600; color: var(--pl-ink); }
#planner .pl-av { display: inline-flex; align-items: center; gap: 6px; padding: 2px 0; white-space: nowrap; }
#planner .pl-av-globe { color: var(--pl-muted); }
#planner [data-tip][tabindex="0"]:focus-visible { outline-offset: 2px; border-radius: 2px; }

/* combobox */
#planner .pl-cb { position: relative; width: 100%; max-width: 360px; }
#planner .pl-cb-in { display: block; width: 100%; height: 32px; padding: 0 8px 0 30px; border: 1px solid var(--pl-stroke); border-bottom-color: var(--pl-stroke-b); border-radius: 4px; background: var(--pl-surface); color: var(--pl-text); font-size: 14px; line-height: 20px; text-overflow: ellipsis; }
#planner .pl-cb-in::placeholder { color: var(--pl-muted); opacity: 1; }
#planner .pl-cb-in:hover { border-color: var(--pl-stroke-b); }
#planner .pl-cb-in:focus { outline: none; border-bottom-color: var(--pl-brand); box-shadow: inset 0 -1px 0 var(--pl-brand); }
#planner .pl-cb-in:focus-visible { outline: 1px solid var(--pl-brand); }
#planner .pl-cb-in:disabled { background: var(--pl-subtle); color: var(--pl-faint); border-color: var(--pl-line); }
#planner .pl-cb-ic { position: absolute; left: 8px; top: 8px; pointer-events: none; color: var(--pl-muted); }
#planner .pl-cb.off .pl-cb-ic { color: var(--pl-faint); }
#planner .pl-cb-x { position: absolute; right: 2px; top: 2px; display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 4px; background: none; color: var(--pl-muted); cursor: pointer; }
#planner .pl-cb-x:hover { background: var(--pl-sunk); color: var(--pl-ink); }
#planner .pl-cb-in:has(+ .pl-cb-x) { padding-right: 30px; }
#planner .pl-cb.val .pl-cb-in { padding: 0 28px 0 8px; cursor: pointer; }
#planner .pl-cb.txt { max-width: none; }
#planner .pl-cb.txt .pl-cb-in { padding: 0 28px 0 8px; }
#planner .pl-cb.txt .pl-cb-in::placeholder { color: var(--pl-faint); }
#planner .pl-cb-caret { position: absolute; right: 8px; top: 8px; pointer-events: none; color: var(--pl-muted); }
#planner .pl-pr .pl-cb { min-width: 160px; max-width: 200px; }
#planner .pl-pl .pl-cb { min-width: 168px; }
#planner .pl-add { margin-bottom: 16px; }
#planner .pl-pop { position: fixed; z-index: 70; overflow-y: auto; padding: 4px; border: 1px solid var(--pl-line); border-radius: 4px; background: var(--pl-surface); box-shadow: var(--pl-pop); }
#planner .pl-pop-g { padding: 8px 8px 2px; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--pl-muted); }
#planner .pl-pop-o { display: flex; align-items: center; gap: 8px; min-height: 32px; padding: 4px 8px; border-radius: 4px; color: var(--pl-ink); cursor: pointer; }
#planner .pl-pop-o.on { background: var(--pl-sunk); box-shadow: inset 2px 0 0 var(--pl-brand); }
#planner .pl-pop-l { flex: none; max-width: 70%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#planner .pl-pop-l:only-child { max-width: 100%; }
#planner .pl-pop-s { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: var(--pl-muted); }
#planner .pl-pop-o .pl-tag { margin-left: auto; }
#planner .pl-pop-n { padding: 8px; font-size: 12px; color: var(--pl-muted); }
#planner .pl-tip { position: fixed; z-index: 80; max-width: 320px; padding: 6px 10px; border-radius: 4px; background: var(--pl-tip-bg); color: var(--pl-tip-fg); box-shadow: var(--pl-pop); pointer-events: none; font-size: 12px; line-height: 16px; }
#planner .pl-tip-v, #planner .pl-tip-s { display: block; }
#planner .pl-tip-v { font-size: 14px; line-height: 20px; font-weight: 600; }
#planner .pl-tip-s { opacity: .85; }

/* ───────── Scope */
#planner .pl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
#planner .pl-cards.sm { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#planner .pl-cards.profiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#planner .pl-cards.two { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 460px; }
#planner .pl-cards.plain { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#planner .pl-choice { position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 0; padding: 12px; border: 1px solid var(--pl-line); border-radius: 8px; background: var(--pl-surface); color: var(--pl-text); text-align: left; cursor: pointer; }
#planner .pl-choice:hover:not(:disabled) { border-color: var(--pl-stroke); background: var(--pl-subtle); }
#planner .pl-choice.on { border-color: var(--pl-brand); background: var(--pl-brand-t); box-shadow: inset 0 0 0 1px var(--pl-brand); }
#planner .pl-choice:disabled { opacity: .5; cursor: default; }
#planner .pl-choice-art { display: block; padding: 8px; border-radius: 4px; background: var(--pl-subtle); }
#planner .pl-choice.on .pl-choice-art { background: var(--pl-surface); }
#planner .pl-choice-art .pl-dg { width: 100%; height: auto; max-height: 120px; }
#planner .pl-choice-t { display: block; padding-right: 24px; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--pl-ink); }
#planner .pl-choice-t .pl-tag { display: flex; width: max-content; margin-bottom: 4px; }
#planner .pl-choice-x { display: block; font-size: 12px; line-height: 16px; color: var(--pl-muted); }
#planner .pl-choice-mark { position: absolute; top: 12px; right: 12px; width: 16px; height: 16px; }
#planner .pl-choice-mark:empty { border: 1.5px solid var(--pl-stroke); border-radius: 50%; }
#planner .pl-choice.on .pl-choice-mark .pl-st.success .bg { fill: var(--pl-brand); }
#planner .pl-choice.on .pl-choice-mark .pl-st .g { stroke: var(--pl-on-brand); }
#planner .pl-choice:has(.pl-choice-art) .pl-choice-mark { top: 20px; right: 20px; }
#planner .pl-choice:has(.pl-choice-art) .pl-choice-mark:empty { background: var(--pl-surface); }

#planner .pl-rn-ic.pl-i { width: 20px; height: 20px; }
#planner .pl-rcs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
#planner .pl-rc { display: flex; flex-direction: column; gap: 12px; padding: 16px; border: 1px solid var(--pl-line); border-radius: 8px; background: var(--pl-surface); }
#planner .pl-rc-h { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin: -4px -8px 0 0; }
#planner .pl-rc-h h4 { font-size: 16px; line-height: 22px; font-weight: 600; margin-top: 4px; }
#planner .pl-facts { display: flex; flex-direction: column; border-top: 1px solid var(--pl-line); }
#planner .pl-fact { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 0 8px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--pl-line); }
#planner .pl-fact .pl-fact-ic { color: var(--pl-muted); align-self: start; margin-top: 2px; }
#planner .pl-fact dt { font-size: 12px; line-height: 20px; color: var(--pl-muted); }
#planner .pl-fact dd { text-align: right; color: var(--pl-ink); }
#planner .pl-fact dd .pl-tag { height: 16px; margin-left: 2px; font-weight: 400; padding: 0 4px; }
#planner .pl-rc-f { margin-top: auto; }

/* ───────── Checks */
#planner .pl-cgw { margin: 0 -32px; padding: 0 32px; overflow-x: auto; scrollbar-width: thin; }
#planner .pl-cgw.fit { overflow: visible; }
#planner .pl-cg { --q: 320px; table-layout: fixed; min-width: calc(var(--q) + var(--n, 1) * 190px); border-collapse: separate; }
#planner .pl-cgw.fit .pl-cg { min-width: 0; }
#planner .pl-cg th, #planner .pl-cg td { padding: 8px 8px; border-bottom: 1px solid var(--pl-line); vertical-align: top; }
#planner .pl-cg .pl-cg-q { width: var(--q); padding-left: 0; }
#planner .pl-cg thead th { position: relative; z-index: 3; padding-top: 10px; padding-bottom: 10px; background: var(--pl-surface); border-bottom: 1px solid var(--pl-stroke); vertical-align: bottom; font-weight: 400; }
#planner .pl-cgw.fit .pl-cg thead th { position: sticky; top: var(--top-h); }
#planner .pl-cg thead .pl-cg-q { font-size: 12px; line-height: 16px; color: var(--pl-muted); font-weight: 600; padding-bottom: 12px; }
#planner .pl-cg-name { display: block; margin-bottom: 4px; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--pl-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#planner .pl-cgw:not(.fit) .pl-cg .pl-cg-q { position: sticky; left: 0; z-index: 2; background: var(--pl-surface); box-shadow: 1px 0 0 var(--pl-line); }
#planner .pl-cgw:not(.fit) .pl-cg thead .pl-cg-q { z-index: 4; }
#planner .pl-band th, #planner .pl-band td { padding-top: 16px; padding-bottom: 12px; background: var(--pl-subtle); border-bottom: 1px solid var(--pl-line); vertical-align: middle; }
#planner .pl-cg tbody:not(:first-of-type) .pl-band th, #planner .pl-cg tbody:not(:first-of-type) .pl-band td { border-top: 8px solid var(--pl-surface); }
#planner .pl-cg .pl-band th.pl-cg-q { padding-left: 12px; }
#planner .pl-cgw:not(.fit) .pl-cg .pl-band th.pl-cg-q { background: var(--pl-subtle); }
#planner .pl-band-q { display: flex; align-items: flex-start; gap: 12px; }
#planner .pl-band-n { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--pl-brand); color: var(--pl-on-brand); font-size: 12px; line-height: 16px; font-weight: 600; }
#planner .pl-band-t { display: block; min-width: 0; }
#planner .pl-band-t b { display: block; font-size: 16px; line-height: 22px; font-weight: 600; color: var(--pl-ink); white-space: normal; }
#planner .pl-band-t > span { display: block; margin-top: 2px; font-size: 14px; line-height: 20px; font-weight: 400; color: var(--pl-text); }
#planner .pl-band-t .pl-link { margin-top: 4px; font-size: 12px; line-height: 16px; }
#planner .pl-roll { text-align: left; }
#planner .pl-roll > span { display: inline-flex; padding: 2px; border-radius: 4px; }
#planner .pl-qt { display: flex; gap: 8px; color: var(--pl-ink); }
#planner .pl-id { flex: none; width: 24px; padding-top: 1px; font-size: 12px; line-height: 20px; font-weight: 600; color: var(--pl-brand); font-variant-numeric: tabular-nums; }
#planner .pl-note-cell { margin: 4px 0 0 32px; }
/* An empty note is one quiet icon at the end of the question, so fifteen rows don't each carry an "Add note" line. */
@media (min-width: 961px) {
  #planner .pl-cg tbody .pl-cg-q { padding-right: 40px; }
  #planner .pl-cgw.fit .pl-cg tbody .pl-cg-q { position: relative; }
  #planner .pl-note-cell:not(:has(.pl-note, .pl-note-in)) { position: absolute; top: 6px; right: 6px; margin: 0; }
  #planner .pl-note-cell:not(:has(.pl-note, .pl-note-in)) .pl-btn { width: 28px; padding: 0; justify-content: center; color: var(--pl-muted); }
  #planner .pl-note-cell:not(:has(.pl-note, .pl-note-in)) .pl-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
#planner .pl-note { margin-bottom: 2px; font-size: 12px; line-height: 16px; color: var(--pl-muted); white-space: pre-wrap; overflow-wrap: anywhere; }
#planner .pl-note-in { min-height: 56px; font-size: 12px; line-height: 16px; }
#planner .pl-ev { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; margin-top: 6px; padding: 0; border: 0; background: none; font-size: 12px; line-height: 16px; color: var(--pl-text); text-align: left; }
#planner button.pl-ev { cursor: pointer; border-radius: 2px; }
#planner button.pl-ev > span { text-decoration: underline; text-decoration-color: var(--pl-stroke); text-underline-offset: 2px; }
#planner button.pl-ev:hover > span { color: var(--pl-brand); text-decoration-color: var(--pl-brand); }

#planner .pl-ocs { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
#planner .pl-oc { display: flex; flex-direction: column; gap: 12px; padding: 16px; border: 1px solid var(--pl-line); border-radius: 8px; background: var(--pl-surface); }
#planner .pl-oc.sel { border-color: var(--pl-brand); box-shadow: inset 0 0 0 1px var(--pl-brand); }
#planner .pl-oc h4 { font-size: 16px; line-height: 22px; }
#planner .pl-oc .pl-badge.lg { align-self: flex-start; }
#planner .pl-oc-why { margin-top: -4px; font-size: 12px; line-height: 16px; color: var(--pl-muted); }
#planner .pl-fld > label { display: block; margin-bottom: 4px; font-size: 12px; line-height: 16px; color: var(--pl-muted); }
#planner .pl-fld2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
#planner .pl-fld2 input[type="date"].pl-in { min-width: 0; }
#planner .pl-pick { display: flex; align-items: flex-start; gap: 12px; margin-top: auto; padding: 12px; border: 1px solid var(--pl-stroke); border-radius: 4px; cursor: pointer; }
#planner .pl-pick input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--pl-brand); }
#planner .pl-pick-t { display: block; }
#planner .pl-pick-t b { display: block; color: var(--pl-ink); }
#planner .pl-pick-t > span { display: block; font-size: 12px; line-height: 16px; color: var(--pl-muted); }
#planner .pl-pick.on { border-color: var(--pl-brand); background: var(--pl-brand-t); box-shadow: inset 0 0 0 1px var(--pl-brand); }
#planner .pl-pick.off { border-color: var(--pl-line); cursor: default; background: var(--pl-subtle); }
#planner .pl-pick.off b { color: var(--pl-muted); }
#planner .pl-pick:has(input:focus-visible) { outline: 2px solid var(--pl-brand); outline-offset: 2px; }
#planner .pl-ocs + .pl-after .pl-mb, #planner .pl-after .pl-mb { margin: 16px 0 0; }

/* ───────── stat tiles and meters */
#planner .pl-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin-bottom: 20px; }
#planner .pl-tile { padding: 12px 16px; border: 1px solid var(--pl-line); border-radius: 8px; background: var(--pl-surface); }
#planner .pl-tile-l { font-size: 12px; line-height: 16px; color: var(--pl-muted); }
#planner .pl-tile-v { margin: 2px 0 8px; font-size: 24px; line-height: 32px; font-weight: 600; color: var(--pl-ink); }
#planner .pl-tile-v span { font-size: 14px; line-height: 20px; font-weight: 400; color: var(--pl-muted); }
#planner .pl-tile .pl-cap { margin-top: 8px; }
#planner .pl-meter { display: block; height: 4px; border-radius: 2px; background: var(--pl-track); overflow: hidden; }
#planner .pl-meter i { display: block; height: 100%; border-radius: 2px; background: var(--pl-brand); }
/* Services tiles take the state of the worst cell in their column; pricing tiles take the shade of their average. */
#planner .pl-tile-s { display: flex; align-items: center; gap: 6px; }
#planner .pl-tile-s .pl-st { flex: none; }
#planner .pl-tile.s-ok { --pl-tn: var(--pl-ok); }
#planner .pl-tile.s-warn { --pl-tn: var(--pl-warn); }
#planner .pl-tile.s-bad { --pl-tn: var(--pl-bad); }
#planner .pl-tile.c1 { --pl-tn: var(--pl-cheap-1); } #planner .pl-tile.c2 { --pl-tn: var(--pl-cheap-2); } #planner .pl-tile.c3 { --pl-tn: var(--pl-cheap-3); } #planner .pl-tile.c4 { --pl-tn: var(--pl-cheap-4); }
#planner .pl-tile.d1 { --pl-tn: var(--pl-dear-1); } #planner .pl-tile.d2 { --pl-tn: var(--pl-dear-2); } #planner .pl-tile.d3 { --pl-tn: var(--pl-dear-3); } #planner .pl-tile.d4 { --pl-tn: var(--pl-dear-4); }
#planner .pl-tile.z, #planner .pl-tile.n { --pl-tn: var(--pl-par); }
#planner .pl-tile.pl-tn { border-top-color: var(--pl-tn); background: color-mix(in srgb, var(--pl-tn) 8%, var(--pl-surface)); }
#planner .pl-tile.pl-tn .pl-meter { background: color-mix(in srgb, var(--pl-tn) 20%, var(--pl-surface)); }
#planner .pl-tile.pl-tn .pl-meter i { background: var(--pl-tn); }
#planner .pl-tile.pl-tn.z, #planner .pl-tile.pl-tn.n { background: var(--pl-surface); }
/* diverging bar: two hues, a neutral center line, one scale for the whole table */
#planner .pl-div { position: relative; flex: none; display: block; width: 112px; height: 10px; background: linear-gradient(var(--pl-line), var(--pl-line)) center / 100% 1px no-repeat; }
#planner .pl-div::before { content: ""; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--pl-stroke); }
#planner .pl-div i { position: absolute; top: 1px; left: 50%; height: 8px; min-width: 3px; border-radius: 0 4px 4px 0; background: var(--pl-par); }
#planner .pl-div i.lo { left: auto; right: 50%; border-radius: 4px 0 0 4px; }
#planner .pl-div i.z { left: calc(50% - 1.5px); width: 3px; border-radius: 0; }
#planner .pl-div i.c1 { background: var(--pl-cheap-1); } #planner .pl-div i.c2 { background: var(--pl-cheap-2); } #planner .pl-div i.c3 { background: var(--pl-cheap-3); } #planner .pl-div i.c4 { background: var(--pl-cheap-4); }
#planner .pl-div i.d1 { background: var(--pl-dear-1); } #planner .pl-div i.d2 { background: var(--pl-dear-2); } #planner .pl-div i.d3 { background: var(--pl-dear-3); } #planner .pl-div i.d4 { background: var(--pl-dear-4); }
#planner .pl-tile .pl-div { width: 100%; margin: 4px 0 6px; }
#planner .pl-pc { display: flex; align-items: center; gap: 12px; min-width: 150px; }
#planner .pl-pc-v { width: 56px; flex: none; text-align: right; font-variant-numeric: tabular-nums; color: var(--pl-ink); }
#planner .pl-pt tfoot th, #planner .pl-pt tfoot td { padding-top: 10px; font-weight: 600; color: var(--pl-ink); border-top: 1px solid var(--pl-stroke); border-bottom: 0; }
#planner .pl-pt tfoot .pl-pc-v { font-weight: 600; }
#planner .pl-pt thead th .pl-cap { white-space: nowrap; }
#planner .pl-pct { display: inline-flex; align-items: center; gap: 6px; }
#planner .pl-pct .pl-in { width: 72px; text-align: right; }
#planner .pl-pct i { font-style: normal; color: var(--pl-muted); }

/* ───────── Latency */
#planner .pl-path { display: flex; align-items: flex-start; gap: 0; padding: 20px 24px; border: 1px solid var(--pl-line); border-radius: 8px; background: var(--pl-subtle); max-width: 760px; }
#planner .pl-node { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 132px; flex: none; text-align: center; }
#planner .pl-node-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--pl-surface); box-shadow: inset 0 0 0 1px var(--pl-stroke); color: var(--pl-brand); }
#planner .pl-node-ic .pl-i { width: 20px; height: 20px; }
#planner .pl-node-l { font-size: 12px; line-height: 16px; font-weight: 600; color: var(--pl-ink); }
#planner .pl-leg { flex: 1; min-width: 40px; display: flex; flex-direction: column; align-items: center; gap: 2px; margin-top: 2px; }
#planner .pl-leg-l { font-size: 12px; line-height: 16px; color: var(--pl-muted); text-align: center; }
#planner .pl-leg-t { display: flex; flex-direction: column; align-items: center; }
#planner .pl-leg-n { font-size: 12px; line-height: 16px; color: var(--pl-muted); text-align: center; font-variant-numeric: tabular-nums; }
#planner .pl-leg-n b { color: var(--pl-ink); }
#planner .pl-leg-line { position: relative; align-self: stretch; height: 2px; background: var(--pl-stroke); border-radius: 1px; }
#planner .pl-leg-line::after { content: ""; position: absolute; right: -1px; top: -3px; width: 6px; height: 6px; border-top: 2px solid var(--pl-stroke); border-right: 2px solid var(--pl-stroke); transform: rotate(45deg); }
#planner .pl-path + .pl-cap { margin-top: 8px; }
#planner .pl-bc { display: flex; align-items: center; gap: 8px; min-width: 190px; }
#planner .pl-bc-v { width: 52px; flex: none; text-align: right; color: var(--pl-ink); }
/* The latency scale: four colors, tuned for each theme. The stops sit at the square root of the milliseconds over 250 (30 ms 34.6%,
   60 ms 49.0%, 120 ms 69.3%, 200 ms 89.4%), the same positions planner-core.js uses for the bar length and the legend marks. */
#planner { --pl-lat-1: #2E9B57; --pl-lat-2: #F2C230; --pl-lat-3: #E5483F; --pl-lat-4: #8C1D2C;
  --pl-lat-grad: linear-gradient(90deg, var(--pl-lat-1) 0 34.6%, var(--pl-lat-2) 49%, var(--pl-lat-3) 69.3%, var(--pl-lat-4) 89.4%, var(--pl-lat-4)); }
:root[data-theme="dark"] #planner { --pl-lat-1: #4CBF78; --pl-lat-2: #F5D04B; --pl-lat-3: #F0645F; --pl-lat-4: #C8404E; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) #planner { --pl-lat-1: #4CBF78; --pl-lat-2: #F5D04B; --pl-lat-3: #F0645F; --pl-lat-4: #C8404E; } }
#planner .pl-hbar { display: block; flex: 1; min-width: 40px; height: 10px; border: 1px solid var(--pl-stroke); border-radius: 5px; background: var(--pl-sunk); overflow: hidden; }
#planner .pl-hbar i { display: block; height: 100%; width: calc(var(--p) * 100%); border-radius: 0 4px 4px 0; background-image: var(--pl-lat-grad); background-repeat: no-repeat; background-size: calc(100% / var(--p)) 100%; }
#planner .pl-latlg { margin-top: 12px; max-width: 460px; }
#planner .pl-latlg-l { display: block; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--pl-ink); }
#planner .pl-latlg-m { position: relative; height: 34px; margin-top: 4px; }
#planner .pl-latlg-bar { display: block; height: 10px; border: 1px solid var(--pl-stroke); border-radius: 5px; background: var(--pl-lat-grad); }
#planner .pl-latlg-t { position: absolute; top: 10px; width: 0; height: 0; }
#planner .pl-latlg-t::before { content: ""; position: absolute; left: 0; top: 1px; width: 1px; height: 4px; background: var(--pl-stroke); }
#planner .pl-latlg-t > span { position: absolute; left: 0; top: 5px; transform: translateX(-50%); font-size: 12px; line-height: 16px; color: var(--pl-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
#planner .pl-latlg-t > span.first { transform: none; }
#planner .pl-latlg-n { font-size: 12px; line-height: 16px; color: var(--pl-muted); }
#planner .pl-src { flex: none; width: 8px; height: 8px; border-radius: 50%; box-sizing: border-box; }
#planner .pl-src.m { background: var(--pl-ink); }
#planner .pl-src.e { border: 1.5px solid var(--pl-ink); background: transparent; }
#planner .pl-lt { min-width: 760px; }
#planner .pl-lt tbody td, #planner .pl-lt tbody th { vertical-align: top; }
#planner .pl-lt .pl-lc { min-width: 116px; padding-left: 6px; padding-right: 6px; }
#planner .pl-lt .pl-rn .pl-cap { white-space: nowrap; }
#planner .pl-lc-in { position: relative; display: flex; align-items: center; gap: 4px; width: 100%; max-width: 104px; height: 32px; padding: 0 6px; border: 1px solid transparent; border-radius: 4px; }
#planner .pl-lc-in:hover { border-color: var(--pl-stroke); border-bottom-color: var(--pl-stroke-b); background: var(--pl-surface); }
#planner .pl-lc-in:focus-within { border-color: var(--pl-stroke); border-bottom-color: var(--pl-brand); background: var(--pl-surface); box-shadow: inset 0 -1px 0 var(--pl-brand); }
#planner .pl-lc-num { width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--pl-ink); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; outline: none; -moz-appearance: textfield; appearance: textfield; }
#planner .pl-lc-num::-webkit-outer-spin-button, #planner .pl-lc-num::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#planner .pl-lc-u { flex: none; font-size: 12px; color: var(--pl-muted); }
#planner .pl-lc-pen { position: absolute; right: 6px; top: 9px; width: 14px; height: 14px; color: var(--pl-faint); opacity: 0; pointer-events: none; }
#planner .pl-lc-in:hover .pl-lc-pen, #planner .pl-lc-in:focus-within .pl-lc-pen { opacity: 1; }
#planner .pl-lc-in { padding-right: 24px; }
#planner .pl-lc-meta { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 0 6px; }
#planner .pl-lc-meta .pl-hbar { flex: none; width: 100%; max-width: 104px; margin-bottom: 2px; }
#planner .pl-lc-cap { font-size: 12px; line-height: 16px; color: var(--pl-muted); font-variant-numeric: tabular-nums; text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; }
#planner .pl-lc-st { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 16px; color: var(--pl-text); white-space: nowrap; }
#planner .pl-lc-ed { display: inline-flex; align-items: center; gap: 2px; margin-left: -4px; }
#planner .pl-lt .pl-pl { min-width: 168px; }
#planner .pl-lt tbody td.pl-tg { min-width: 0; width: 100px; }
#planner .pl-pl-v { display: inline-block; padding: 6px 0; }
#planner .pl-lt .pl-in[type="number"] { width: 80px; }
#planner .pl-lt .pl-cb { max-width: 220px; }

/* ───────── Regional design */
#planner .pl-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
#planner .pl-pill { display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 12px; border: 1px solid var(--pl-stroke); border-radius: 16px; background: var(--pl-surface); color: var(--pl-text); cursor: pointer; }
#planner .pl-pill:hover { background: var(--pl-subtle); }
#planner .pl-pill.on { border-color: var(--pl-brand); background: var(--pl-brand-t); color: var(--pl-ink); font-weight: 600; box-shadow: inset 0 0 0 1px var(--pl-brand); }
#planner .pl-pqs { margin-bottom: 20px; }
#planner .pl-pq { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--pl-line); }
#planner .pl-pq:first-child { border-top: 1px solid var(--pl-line); }
#planner .pl-pq-n { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--pl-sunk); color: var(--pl-ink); font-size: 12px; line-height: 16px; font-weight: 600; }
#planner .pl-pq.off { color: var(--pl-faint); }
#planner .pl-pq.off .pl-pq-n { color: var(--pl-faint); }
#planner .pl-cards.profiles + .pl-hint { margin-top: 12px; }

#planner .pl-ssl { border-top: 1px solid var(--pl-line); }
#planner .pl-ssr { display: grid; grid-template-columns: minmax(200px, 1fr) 412px minmax(0, 220px) 32px; gap: 8px 16px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--pl-line); }
#planner .pl-ss-n { display: flex; align-items: center; gap: 12px; min-width: 0; }
#planner .pl-ss-n > span:last-child { display: block; min-width: 0; }
#planner .pl-ss-n b { display: block; font-weight: 600; color: var(--pl-ink); }
#planner .pl-ss-ic { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 4px; background: var(--pl-sunk); color: var(--pl-muted); }
#planner .pl-ss-p { display: flex; align-items: center; gap: 8px; }
#planner .pl-ss-p .pl-tag { flex: none; }
#planner .pl-ss-x { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
#planner .pl-ss-x .pl-sel-wrap { max-width: none; }
#planner .pl-ssl + .pl-bar { margin-top: 16px; }
#planner .pl-mb + .pl-ssl { margin-top: 0; }

/* ───────── Review + export */
#planner .pl-rec { margin-top: 20px; padding: 16px 20px 12px; border: 1px solid var(--pl-line); border-radius: 8px; }
#planner .pl-rec-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-bottom: 12px; }
#planner .pl-rec-h h3 { margin-right: 4px; font-size: 16px; line-height: 22px; }
#planner .pl-rec-b { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
#planner .pl-rec-art { padding: 12px; border-radius: 4px; background: var(--pl-subtle); }
#planner .pl-rec-art .pl-dg { width: 100%; height: auto; }
#planner .pl-kv > div { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 12px; padding: 6px 0; border-top: 1px solid var(--pl-line); }
#planner .pl-kv > div:first-child { border-top: 0; padding-top: 0; }
#planner .pl-kv dt { color: var(--pl-muted); }
#planner .pl-kv dd { color: var(--pl-ink); overflow-wrap: anywhere; }
#planner .pl-rec .pl-after { margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--pl-line); }
#planner .pl-sec .pl-scroll .pl-dl { min-width: 480px; }

/* ───────── diagrams: one grammar. Dashed rounded rectangle = region, square = workload spoke, hexagon = hub, building = on-premises. */
#planner .pl-dg { display: block; overflow: visible; }
#planner .pl-dg * { vector-effect: non-scaling-stroke; }
#planner .dg-region { fill: none; stroke: var(--pl-stroke); stroke-width: 1.25; stroke-dasharray: 4 3; }
#planner .dg-region.dg-small { stroke: var(--pl-faint); }
#planner .dg-spoke { fill: var(--pl-surface); stroke: var(--pl-text); stroke-width: 1.5; }
#planner .dg-hub { fill: var(--pl-surface); stroke: var(--pl-brand); stroke-width: 1.75; }
#planner .dg-hub.dg-fill { fill: var(--pl-brand-t); }
#planner .dg-hub.dg-solid { fill: var(--pl-brand); }
#planner .dg-hub.dg-open { fill: var(--pl-surface); stroke-width: 1.5; }
#planner .dg-hub.dg-ghost { fill: none; stroke: var(--pl-faint); stroke-dasharray: 3 3; stroke-width: 1.25; }
#planner .dg-ring { fill: none; stroke: var(--pl-brand); stroke-width: 1.25; stroke-dasharray: 2 3; }
#planner .dg-line { fill: none; stroke: var(--pl-text); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
#planner .dg-line.dg-ghost { stroke: var(--pl-faint); stroke-dasharray: 3 3; }
#planner .dg-line.dg-peer { stroke: var(--pl-brand); stroke-dasharray: 4 3; }
#planner .dg-bldg rect, #planner .dg-bldg path { fill: none; stroke: var(--pl-text); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
#planner .dg-dim { opacity: .5; }

/* ───────── small screens */
/* ───────── accents. Each step group has a hue: blue for "Qualify regions", purple for "Select the regional design".
   The hue marks structure only: the step tabs, the tab title, section headers, check bands, and the top edge of cards.
   State keeps the status colors, and selection keeps the brand blue. */
#planner {
  --pl-g1: var(--accent); --pl-g1-t: var(--accent-soft); --pl-g1-l: var(--accent-line);
  --pl-g2: #6B3FB8; --pl-g2-t: #F4F0FB; --pl-g2-l: #D9CCF2;
  --pl-acc: var(--pl-g1); --pl-acc-t: var(--pl-g1-t); --pl-acc-l: var(--pl-g1-l);
}
:root[data-theme="dark"] #planner { --pl-g2: #BFA6F5; --pl-g2-t: #272040; --pl-g2-l: #4A3C73; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) #planner { --pl-g2: #BFA6F5; --pl-g2-t: #272040; --pl-g2-l: #4A3C73; } }
#planner [data-step="2"] { --pl-acc: var(--pl-g2); --pl-acc-t: var(--pl-g2-t); --pl-acc-l: var(--pl-g2-l); }

#planner .pl-app::before { content: ""; display: block; height: 3px; border-radius: 7px 7px 0 0; background: linear-gradient(90deg, var(--pl-g1) 0 50%, var(--pl-g2)); }
#planner .pl-cmd .pl-btn:not(.danger) .pl-i { color: var(--pl-brand); }
#planner .pl-ess { background: var(--pl-subtle); }

#planner .pl-tabgrp-l { display: flex; align-items: center; gap: 6px; color: var(--pl-acc); }
#planner .pl-tabgrp-l::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 2px; background: var(--pl-acc); }
#planner .pl-tab { border-radius: 4px 4px 0 0; }
#planner .pl-tab:hover { background: var(--pl-acc-t); }
#planner .pl-tab.on { background: var(--pl-acc-t); }
#planner .pl-tab.on::after { left: 0; right: 0; height: 3px; border-radius: 0; background: var(--pl-acc); }

#planner .pl-head { padding: 2px 0 2px 14px; border-left: 4px solid var(--pl-acc); }
#planner .pl-sec { padding-top: 0; border-top: 0; }
#planner .pl-sec-h { align-items: center; min-height: 40px; padding: 8px 12px; border-left: 3px solid var(--pl-acc); border-radius: 0 4px 4px 0; background: var(--pl-acc-t); }
#planner .pl-sec-h .pl-link { color: var(--pl-acc); }
#planner .pl-sec-d { margin-top: 8px; }

#planner .pl-band th, #planner .pl-band td { background: var(--pl-acc-t); border-bottom-color: var(--pl-acc-l); }
#planner .pl-cg .pl-band th.pl-cg-q { box-shadow: inset 3px 0 0 var(--pl-acc); }
#planner .pl-cgw:not(.fit) .pl-cg .pl-band th.pl-cg-q { background: var(--pl-acc-t); box-shadow: inset 3px 0 0 var(--pl-acc), 1px 0 0 var(--pl-line); }
#planner .pl-band-n { background: var(--pl-acc); }

#planner .pl-rc, #planner .pl-tile, #planner .pl-rec { border-top: 3px solid var(--pl-acc); }
#planner .pl-oc { border-top: 3px solid var(--pl-stroke); }
#planner .pl-oc.k-success { border-top-color: var(--pl-ok); }
#planner .pl-oc.k-warning { border-top-color: var(--pl-warn); }
#planner .pl-oc.k-error { border-top-color: var(--pl-bad); }
#planner .pl-oc.k-info { border-top-color: var(--pl-brand); }

@media (max-width: 1100px) {
  #planner .pl-cards.profiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #planner .pl-ssr { grid-template-columns: minmax(0, 1fr) auto 32px; }
  #planner .pl-ss-x { grid-column: 1 / 3; grid-row: 2; flex-direction: row; flex-wrap: wrap; }
  #planner .pl-ss-x > * { flex: 1 1 180px; }
  #planner .pl-ss-x:empty { display: none; }
  #planner .pl-ss-r { grid-column: 3; grid-row: 1; }
}
@media (max-width: 960px) {
  #planner .pl-cg { --q: 260px; }
  #planner .pl-panel { padding: 20px 16px 32px; }
  #planner .pl-foot-in { padding: 12px 16px; }
  #planner .pl-cgw { margin: 0 -16px; padding: 0 16px; }
  #planner .pl-cards.sm { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  #planner .pl-row { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 6px 0; }
  #planner .pl-label { padding-top: 0; padding-bottom: 4px; }
  #planner .pl-ctl { max-width: none; }
  #planner .pl-ess-b { grid-template-columns: minmax(0, 1fr); padding: 4px 16px 12px; }
  #planner .pl-kv-r { grid-template-columns: 140px minmax(0, 1fr); }
  #planner .pl-cards.profiles, #planner .pl-cards.plain, #planner .pl-cards.two { grid-template-columns: minmax(0, 1fr); }
  #planner .pl-cards.sm:not(.two) { gap: 8px; }
  #planner .pl-cards.sm .pl-choice { padding: 8px; }
  #planner .pl-cards.sm .pl-choice-art { padding: 4px; }
  #planner .pl-cards.sm .pl-choice-t { font-size: 13px; line-height: 18px; padding-right: 0; }
  #planner .pl-cards.sm .pl-choice-mark { top: 14px; right: 14px; }
  #planner .pl-cmd .pl-btn:not(.danger) > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  #planner .pl-cmd .pl-btn:not(.danger) { width: 36px; padding: 0; }
  #planner .pl-dl thead th { white-space: normal; }
  #planner .pl-ramp-t { flex-basis: 100%; min-width: 0; }
  #planner .pl-rn { gap: 8px; }
  #planner .pl-choice-art .pl-dg { max-height: 130px; }
  #planner .pl-rec-b { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #planner .pl-kv > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #planner .pl-pq { grid-template-columns: 24px minmax(0, 1fr); }
  #planner .pl-pq .pl-seg { grid-column: 2; justify-self: start; }
  #planner .pl-ssr { grid-template-columns: minmax(0, 1fr) 32px; }
  #planner .pl-ss-p { grid-column: 1 / 3; flex-wrap: wrap; }
  #planner .pl-ss-x { grid-column: 1 / 3; }
  #planner .pl-seg-b { padding: 0 10px; }
  #planner .pl-ss-p .pl-seg { flex-wrap: wrap; }
  #planner .pl-fld2 { grid-template-columns: minmax(0, 1fr); }
  #planner .pl-path { flex-direction: column; align-items: center; gap: 4px; padding: 16px; }
  #planner .pl-leg { flex-direction: row; margin: 0; gap: 12px; min-height: 40px; align-self: stretch; justify-content: center; }
  #planner .pl-leg-line { align-self: auto; width: 2px; height: 28px; flex: none; }
  #planner .pl-leg-line::after { right: -3px; top: auto; bottom: -1px; transform: rotate(135deg); }
  #planner .pl-empty { padding: 20px; }
  #planner .pl-msgslot .pl-mb { right: 12px; left: 12px; width: auto; }
  #planner .pl-ctl .pl-cb, #planner .pl-add .pl-cb { max-width: none; }
  #planner .pl-foot-in { flex-direction: column; align-items: stretch; }
  #planner .pl-foot-l { justify-content: space-between; }
  #planner .pl-foot-r { text-align: center; }
}

/* The checks grid becomes a list on phones: the question, then one answer for each region under it. */
@media (max-width: 720px) {
  #planner .pl-cgw { margin: 0; padding: 0; overflow: visible; }
  #planner .pl-cg, #planner .pl-cg tbody, #planner .pl-cg tr, #planner .pl-cg th, #planner .pl-cg td { display: block; width: auto; min-width: 0; }
  #planner .pl-cg { table-layout: auto; }
  #planner .pl-cg thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  #planner .pl-cgw:not(.fit) .pl-cg .pl-cg-q, #planner .pl-cg .pl-cg-q { position: static; width: auto; box-shadow: none; padding: 0 0 8px; background: none; }
  #planner .pl-cg th, #planner .pl-cg td { border: 0; padding: 0; }
  #planner .pl-cg tbody tr:not(.pl-band) { padding: 12px 0 8px; border-bottom: 1px solid var(--pl-line); }
  #planner .pl-cg td[data-r] { padding: 4px 0 4px 32px; }
  #planner .pl-cg td[data-r]::before { content: attr(data-r); display: block; margin-bottom: 2px; font-size: 12px; line-height: 16px; color: var(--pl-muted); }
  #planner .pl-cg tbody + tbody { margin-top: 16px; }
  #planner .pl-cg .pl-band { padding: 12px; border-radius: 4px; background: var(--pl-subtle); }
  #planner .pl-cg .pl-band th, #planner .pl-cg .pl-band td { background: none; border: 0; padding: 0; }
  #planner .pl-cg tbody:not(:first-of-type) .pl-band th, #planner .pl-cg tbody:not(:first-of-type) .pl-band td { border-top: 0; }
  #planner .pl-cg .pl-band th.pl-cg-q { padding: 0 0 8px; }
  #planner .pl-cg .pl-band td.pl-roll { display: flex; align-items: center; gap: 8px; padding: 2px 0 2px 36px; }
  #planner .pl-cg .pl-band td.pl-roll::before { content: none; }
  #planner .pl-cg .pl-band td.pl-roll::after { content: attr(data-r); font-size: 12px; line-height: 16px; color: var(--pl-text); }
  #planner .pl-note-cell { margin-left: 32px; }
}

/* ───────── print: the records only */
@media print {
  #planner .pl-cmd, #planner .pl-msgslot, #planner .pl-ess, #planner .pl-tabswrap, #planner .pl-foot-bar, #planner .pl-layer, #planner .pl-noprint, #planner .pl-head { display: none !important; }
  #planner .pl-app { border: 0; }
  #planner .pl-panel { padding: 0; min-height: 0; }
  #planner .pl-rec { break-inside: avoid; }
}

/* accents on small screens and in print */
@media (max-width: 720px) {
  #planner .pl-cg .pl-band { background: var(--pl-acc-t); box-shadow: inset 3px 0 0 var(--pl-acc); }
}
@media print {
  #planner .pl-app::before { display: none; }
  #planner .pl-sec-h { background: none; }
}
