/* Generated by scripts/build-sample-bundles.py from assets/js/samples.js and assets/css/samples.css. Do not edit. */
/* =====================================================================
   Parsa Dev live samples (shown on the Features pages)
   Every colour comes from the site theme (--primary, --accent, --ink …), so samples follow the palette
   picker and Light / Night. Each sample is fenced under its own pds- class. ".is-playing" plays a
   sample once on phones, which can't hover.
   Licence note: PDS-01 to PDS-05 started from MIT-licensed Uiverse.io designs (credits beside each).
   ===================================================================== */

/* keyboard users get the same effect as a mouse hover, plus a clear focus ring */
.pds-ink:focus-visible, .pds-plane:focus-visible, .pds-glide:focus-visible,
.pds-bloom__tile:focus-visible, .pds-petal:focus-visible {
  outline: 2px solid var(--primary); outline-offset: 4px;
}

/* ---------- people who turn motion off on their device get instant, still changes ---------- */
@media (prefers-reduced-motion: reduce) {
  [class*="pds-"], [class*="pds-"]::before { transition: none !important; animation: none !important; }
}

/* ---------- shared scroll window for header samples (PDS-11 onwards) ---------- */
.pds-win {
  position: relative; width: min(100%, 520px); height: 320px; overflow-y: auto; overscroll-behavior: contain;
  border-radius: 16px; border: 1px solid var(--border); background: var(--surface); scrollbar-width: thin;
}
.pds-win:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; }
.pds-win__page { margin-top: -3.6rem; }
.pds-win__hero { display: grid; place-items: end start; height: 210px; padding: 1.2rem; color: #fff; font-family: var(--font-display, Georgia, serif); font-size: 1.3rem;
  background: linear-gradient(135deg, var(--primary), var(--accent)); }
.pds-win__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; padding: 1rem; }
.pds-win__row i { height: 90px; border-radius: 12px; background: linear-gradient(160deg, var(--primary-tint), color-mix(in srgb, var(--accent) 55%, var(--surface))); }
.pds-win__row i:nth-child(2) { background: linear-gradient(160deg, color-mix(in srgb, var(--gold) 45%, var(--surface)), var(--primary-tint)); }
.pds-win__band { height: 140px; margin: 0 1rem 1rem; border-radius: 14px; background: linear-gradient(90deg, var(--gold), var(--primary)); }
.pds-win__band--alt { background: linear-gradient(90deg, var(--accent), var(--primary-deep)); }

/* ---------- PDS-27 Halo Search ---------- */
.pds-halo, .pds-halo * { box-sizing: border-box; }
.pds-halo { --pds-halo-base: color-mix(in srgb, var(--ink) 10%, color-mix(in srgb, var(--primary) 16%, #05060b));
  position: relative; isolation: isolate; display: grid; justify-items: center; gap: 1rem;
  width: min(100%, 26rem); margin: 0 auto; padding: 2.4rem 1.25rem 1.25rem; text-align: start; }
.pds-halo::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: 24px;
  background-image: linear-gradient(color-mix(in srgb, var(--border-strong) 60%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--border-strong) 60%, transparent) 1px, transparent 1px);
  background-size: 22px 22px; background-position: center;
  -webkit-mask-image: radial-gradient(70% 65% at 50% 38%, var(--ink), transparent);
  mask-image: radial-gradient(70% 65% at 50% 38%, var(--ink), transparent); }
.pds-halo .pds-halo__field { position: relative; isolation: isolate; width: min(100%, 320px); height: 56px; border-radius: 14px; }
.pds-halo .pds-halo__layer { position: absolute; z-index: 0; overflow: hidden; pointer-events: none; }
.pds-halo .pds-halo__layer::before { content: ""; position: absolute; left: 50%; top: 50%; width: 420px; height: 420px;
  translate: -50% -50%; rotate: var(--pds-halo-r); transition: rotate 2s cubic-bezier(.45, 0, .2, 1); }
.pds-halo .pds-halo__glow { --pds-halo-r: 60deg; inset: -12px; border-radius: 26px; filter: blur(22px); opacity: .7; }
.pds-halo .pds-halo__glow::before { background: conic-gradient(transparent, var(--primary) 6%, transparent 36% 50%, var(--accent) 60%, transparent 86%); }
.pds-halo .pds-halo__edge { --pds-halo-r: 82deg; inset: -4px; border-radius: 18px; filter: blur(2.5px); }
.pds-halo .pds-halo__edge::before { background: conic-gradient(var(--pds-halo-base), var(--primary) 5%, var(--pds-halo-base) 14% 48%,
  var(--accent) 58%, var(--pds-halo-base) 66% 76%, var(--gold) 82%, var(--pds-halo-base) 90%); }
.pds-halo .pds-halo__line { --pds-halo-r: 70deg; inset: -1.5px; border-radius: 15.5px; filter: blur(.5px); }
.pds-halo .pds-halo__line::before { background: conic-gradient(transparent, color-mix(in srgb, var(--primary) 45%, #fff) 4%, transparent 10% 50%,
  color-mix(in srgb, var(--accent) 45%, #fff) 56%, transparent 62% 78%, var(--gold) 82%, transparent 88%); }
.pds-halo .pds-halo__field:hover .pds-halo__glow, .is-playing .pds-halo .pds-halo__glow { --pds-halo-r: -120deg; }
.pds-halo .pds-halo__field:hover .pds-halo__edge, .is-playing .pds-halo .pds-halo__edge { --pds-halo-r: -98deg; }
.pds-halo .pds-halo__field:hover .pds-halo__line, .is-playing .pds-halo .pds-halo__line { --pds-halo-r: -110deg; }
.pds-halo .pds-halo__field:focus-within .pds-halo__glow { --pds-halo-r: 420deg; }
.pds-halo .pds-halo__field:focus-within .pds-halo__edge { --pds-halo-r: 442deg; }
.pds-halo .pds-halo__field:focus-within .pds-halo__line { --pds-halo-r: 430deg; }
.pds-halo .pds-halo__field:focus-within .pds-halo__layer::before { transition-duration: 4s; }
.pds-halo .pds-halo__box { position: relative; z-index: 1; display: flex; align-items: center; gap: .6rem; height: 100%; padding: 0 .5rem 0 .95rem;
  border-radius: 12px; background: var(--pds-halo-base); box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 8%, transparent); }
.pds-halo .pds-halo__box::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: radial-gradient(45% 90% at 22% 50%, color-mix(in srgb, var(--accent) 24%, transparent), transparent); transition: opacity 1.2s; }
.pds-halo .pds-halo__field:focus-within .pds-halo__box::before { opacity: .3; }
.pds-halo .pds-halo__box > * { position: relative; }
.pds-halo .pds-halo__box:has(.pds-halo__input:focus-visible) { outline: 2px solid var(--primary); outline-offset: 6px; }
.pds-halo .pds-halo__icon { flex: none; width: 1.25rem; height: 1.25rem; fill: none; stroke: color-mix(in srgb, var(--primary) 40%, #fff); stroke-width: 2.2; stroke-linecap: round; }
.pds-halo .pds-halo__input { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; font: inherit; font-size: 1rem;
  color: #fff; background: none; caret-color: var(--gold); }
.pds-halo .pds-halo__input::placeholder { color: color-mix(in srgb, #fff 55%, transparent); opacity: 1; }
.pds-halo .pds-halo__filter { flex: none; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 0; border-radius: 10px;
  overflow: hidden; isolation: isolate; cursor: pointer; color: #fff; background: none; }
.pds-halo .pds-halo__filter::before { content: ""; position: absolute; left: 50%; top: 50%; z-index: -2; width: 4.2rem; height: 4.2rem; translate: -50% -50%;
  background: conic-gradient(var(--pds-halo-base), var(--primary) 12%, var(--pds-halo-base) 28% 50%, var(--accent) 62%, var(--gold) 70%, var(--pds-halo-base) 82%);
  animation: pds-halo-spin 4s linear infinite; }
.pds-halo .pds-halo__filter::after { content: ""; position: absolute; inset: 2px; z-index: -1; border-radius: 8px;
  background: color-mix(in srgb, var(--primary) 14%, var(--pds-halo-base)); transition: background .3s; }
.pds-halo .pds-halo__filter svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.pds-halo .pds-halo__filter[aria-pressed="true"]::before { animation-duration: 1.4s; }
.pds-halo .pds-halo__filter[aria-pressed="true"]::after { background: color-mix(in srgb, var(--primary) 60%, var(--pds-halo-base)); }
.pds-halo .pds-halo__filter:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-halo .pds-halo__drop { position: relative; width: min(100%, 320px); min-height: 8.4rem; }
.pds-halo .pds-halo__hint { margin: .2rem 0 0; text-align: center; font-size: .82rem; line-height: 1.45; color: var(--ink-muted); transition: opacity .25s; }
.pds-halo .pds-halo__drop.is-open .pds-halo__hint { opacity: 0; }
.pds-halo .pds-halo__list { position: absolute; top: 0; left: 0; right: 0; z-index: 2; margin: 0; padding: .35rem; list-style: none; border-radius: 14px;
  background: var(--pds-halo-base); border: 1px solid color-mix(in srgb, var(--primary) 35%, transparent);
  box-shadow: 0 22px 40px -24px color-mix(in srgb, var(--primary) 70%, transparent);
  opacity: 0; visibility: hidden; translate: 0 -6px;
  transition: opacity .25s, translate .35s cubic-bezier(.22, 1, .36, 1), visibility .35s; }
.pds-halo .pds-halo__drop.is-open .pds-halo__list { opacity: 1; visibility: visible; translate: 0 0; }
.pds-halo .pds-halo__opt { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: 0; padding: .55rem .7rem;
  border-radius: 10px; font-size: .9rem; color: color-mix(in srgb, #fff 86%, transparent); cursor: pointer; transition: background .2s; }
.pds-halo .pds-halo__opt[hidden] { display: none; }
.pds-halo .pds-halo__opt b { font-weight: 700; color: color-mix(in srgb, var(--gold) 55%, #fff); }
.pds-halo .pds-halo__opt small { font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, #fff 50%, transparent); }
.pds-halo .pds-halo__opt:hover, .pds-halo .pds-halo__opt[aria-selected="true"] { color: #fff; background: color-mix(in srgb, var(--primary) 34%, transparent); }
.pds-halo .pds-halo__live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes pds-halo-spin { to { rotate: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .pds-halo *, .pds-halo *::before, .pds-halo *::after { transition: none !important; animation: none !important; }
}

/* ---------- PDS-49 Float Form ---------- */
.pds-floatform, .pds-floatform * { box-sizing: border-box; }
.pds-floatform { --pds-floatform-bad: color-mix(in srgb, #d6293e 70%, var(--ink)); --pds-floatform-good: color-mix(in srgb, var(--accent-deep) 88%, var(--ink));
  position: relative; isolation: isolate; overflow: hidden; width: min(100%, 380px); min-height: 392px; margin: 0 auto; padding: 1.3rem 1.2rem 1.2rem;
  border-radius: 22px; text-align: start; line-height: 1.45; color: var(--ink); background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 30px 60px -38px color-mix(in srgb, var(--ink) 50%, transparent); }
.pds-floatform::before { content: ""; position: absolute; z-index: -1; top: -90px; right: -80px; width: 240px; height: 240px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, color-mix(in srgb, var(--primary) 14%, transparent), transparent 70%); }
.pds-floatform :where(button, input, select) { font: inherit; color: inherit; }
.pds-floatform :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-floatform__form { display: grid; gap: .2rem; }
.pds-floatform__form[hidden], .pds-floatform__done[hidden] { display: none; }
.pds-floatform__head { display: flex; align-items: center; gap: .7rem; margin-bottom: .7rem; }
.pds-floatform__badge { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; font-size: .72rem; font-weight: 700; letter-spacing: .04em;
  color: var(--bg); background: linear-gradient(135deg, var(--primary), var(--primary-deep)); box-shadow: 0 8px 18px -10px color-mix(in srgb, var(--primary) 80%, transparent); }
.pds-floatform__title { margin: 0; font-family: var(--font-display, Georgia, serif); font-size: 1.25rem; font-weight: 600; line-height: 1.2; }
.pds-floatform__sub { margin: .15rem 0 0; font-size: .8rem; line-height: 1.4; color: var(--ink-muted); }
.pds-floatform__field { position: relative; display: block; height: 54px; border-radius: 14px; cursor: text; background: var(--surface-sunk); border: 1px solid var(--border-strong);
  transition: border-color .25s, box-shadow .35s cubic-bezier(.22, 1, .36, 1), background-color .25s; }
.pds-floatform__field:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--border-strong)); }
.pds-floatform__field:focus-within { background: var(--surface); border-color: var(--primary);
  box-shadow: 0 0 0 1px var(--primary), 0 0 0 5px color-mix(in srgb, var(--primary) 16%, transparent); }
.pds-floatform__input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 1.3rem 2.6rem .3rem .95rem; border: 0; border-radius: inherit; outline: 0;
  background: none; font-size: .98rem; color: var(--ink); caret-color: var(--primary); -webkit-appearance: none; appearance: none; }
.pds-floatform__input--select { cursor: pointer; }
.pds-floatform__input--select option { color: var(--ink); background: var(--surface); }
.pds-floatform__input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px var(--surface) inset; -webkit-text-fill-color: var(--ink); }
.pds-floatform__label { position: absolute; left: .95rem; top: 17px; max-width: calc(100% - 3.4rem); overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  font-size: .95rem; font-weight: 500; line-height: 1.2; color: var(--ink-muted); pointer-events: none; transform-origin: 0 0;
  transition: transform .4s cubic-bezier(.22, 1, .36, 1), color .25s; }
.pds-floatform__field:focus-within .pds-floatform__label,
.pds-floatform__field.is-filled .pds-floatform__label,
.pds-floatform__input:not(.pds-floatform__input--select):not(:placeholder-shown) + .pds-floatform__label { transform: translateY(-10px) scale(.76); }
.pds-floatform__field:focus-within .pds-floatform__label { color: var(--primary); }
.pds-floatform__ok { position: absolute; right: .9rem; top: 50%; width: 20px; height: 20px; margin-top: -10px; pointer-events: none; fill: none; stroke: var(--pds-floatform-good);
  stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 22; stroke-dashoffset: 22; opacity: 0;
  transition: stroke-dashoffset .5s cubic-bezier(.22, 1, .36, 1), opacity .2s; }
.pds-floatform__row.is-valid .pds-floatform__ok { stroke-dashoffset: 0; opacity: 1; }
.pds-floatform__chev { position: absolute; right: 1.1rem; top: 50%; width: 8px; height: 8px; margin-top: -6px; pointer-events: none;
  border-right: 2px solid var(--ink-muted); border-bottom: 2px solid var(--ink-muted); transform: rotate(45deg); transition: border-color .25s; }
.pds-floatform__field:focus-within .pds-floatform__chev { border-color: var(--primary); }
.pds-floatform__row.is-valid .pds-floatform__chev { border-color: var(--pds-floatform-good); }
.pds-floatform__msg { min-height: 1.3rem; margin: 0; padding: .22rem .2rem 0 .95rem; font-size: .74rem; font-weight: 600; line-height: 1.2; color: var(--pds-floatform-bad); }
.pds-floatform__row.is-error .pds-floatform__msg { animation: pds-floatform-in .3s cubic-bezier(.22, 1, .36, 1); }
.pds-floatform__row.is-error .pds-floatform__field { border-color: var(--pds-floatform-bad); box-shadow: 0 0 0 1px var(--pds-floatform-bad), 0 0 0 5px color-mix(in srgb, var(--pds-floatform-bad) 14%, transparent); }
.pds-floatform__row.is-error .pds-floatform__label { color: var(--pds-floatform-bad); }
.pds-floatform__row.is-shake .pds-floatform__field { animation: pds-floatform-shake .42s cubic-bezier(.36, .07, .19, .97); }
.pds-floatform__send { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; height: 48px; margin-top: .35rem; padding: 0 1rem; border: 0; border-radius: 14px;
  cursor: pointer; font-size: .95rem; font-weight: 700; color: var(--bg); background: linear-gradient(135deg, var(--primary), var(--primary-deep));
  box-shadow: 0 14px 26px -16px color-mix(in srgb, var(--primary) 85%, transparent); transition: transform .3s cubic-bezier(.22, 1, .36, 1), box-shadow .3s; }
.pds-floatform__send span { transition: transform .35s cubic-bezier(.22, 1, .36, 1); }
.pds-floatform__send:hover { transform: translateY(-1px); box-shadow: 0 18px 30px -16px color-mix(in srgb, var(--primary) 90%, transparent); }
:is(.pds-floatform__send:hover, .pds-floatform__send:focus-visible, .is-playing .pds-floatform__send) span { transform: translateX(4px); }
.pds-floatform__send:active { transform: scale(.985); }
.pds-floatform__done { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .3rem; padding: 1.5rem; text-align: center; outline: 0;
  background: var(--surface); animation: pds-floatform-in .5s cubic-bezier(.22, 1, .36, 1); }
.pds-floatform__tick { display: grid; place-items: center; width: 66px; height: 66px; margin-bottom: .6rem; border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 16%, var(--surface)); box-shadow: 0 0 0 9px color-mix(in srgb, var(--accent) 8%, transparent);
  animation: pds-floatform-pop .6s cubic-bezier(.34, 1.56, .64, 1); }
.pds-floatform__tick svg { width: 30px; height: 30px; fill: none; stroke: var(--pds-floatform-good); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 22; stroke-dashoffset: 22; animation: pds-floatform-draw .55s .2s cubic-bezier(.22, 1, .36, 1) forwards; }
.pds-floatform__again { margin-top: .9rem; padding: .55rem 1.15rem; border-radius: 999px; border: 1px solid var(--border-strong); background: var(--surface);
  cursor: pointer; font-size: .85rem; font-weight: 600; transition: border-color .2s, color .2s; }
.pds-floatform__again:hover { border-color: var(--primary); color: var(--primary); }
.pds-floatform__live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes pds-floatform-shake { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
@keyframes pds-floatform-in { from { opacity: 0; transform: translateY(6px); } }
@keyframes pds-floatform-pop { from { opacity: 0; transform: scale(.4); } }
@keyframes pds-floatform-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .pds-floatform *, .pds-floatform *::after { transition: none !important; animation: none !important; }
  .pds-floatform__tick svg { stroke-dashoffset: 0; }
}

/* ---------- PDS-50 Frost Pick ---------- */
.pds-frostpick, .pds-frostpick * { box-sizing: border-box; }
.pds-frostpick { --pds-frostpick-glass: color-mix(in srgb, var(--surface) 62%, transparent); --pds-frostpick-thick: color-mix(in srgb, var(--surface) 76%, transparent);
  --pds-frostpick-edge: color-mix(in srgb, var(--surface) 78%, transparent); --pds-frostpick-blur: blur(20px) saturate(170%);
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; gap: .8rem; width: min(100%, 420px); height: 410px; margin: 0 auto;
  padding: 1.1rem; border-radius: 26px; text-align: start; line-height: 1.4; color: var(--ink);
  background: linear-gradient(150deg, color-mix(in srgb, var(--primary) 32%, var(--surface-sunk)), color-mix(in srgb, var(--accent) 26%, var(--surface-sunk)));
  box-shadow: 0 30px 60px -36px color-mix(in srgb, var(--ink) 55%, transparent); }
.pds-frostpick__blob { position: absolute; z-index: -1; border-radius: 50%; filter: blur(26px); opacity: .9; pointer-events: none;
  animation: pds-frostpick-drift 12s ease-in-out infinite alternate; }
.pds-frostpick__blob--a { top: -70px; left: -60px; width: 240px; height: 240px; background: var(--primary); }
.pds-frostpick__blob--b { top: 110px; right: -80px; width: 230px; height: 230px; background: var(--accent); animation-duration: 14s; animation-delay: -4s; }
.pds-frostpick__blob--c { bottom: -100px; left: 14%; width: 260px; height: 220px; background: var(--gold); animation-duration: 16s; animation-delay: -8s; }
.pds-frostpick__brand, .pds-frostpick__note { margin: 0; background: var(--pds-frostpick-glass); border: 1px solid var(--pds-frostpick-edge);
  -webkit-backdrop-filter: var(--pds-frostpick-blur); backdrop-filter: var(--pds-frostpick-blur); }
.pds-frostpick__brand { align-self: flex-start; display: inline-flex; align-items: center; gap: .5rem; padding: .38rem .8rem; border-radius: 999px;
  font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pds-frostpick__brand::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 25%, transparent); }
.pds-frostpick__select { position: relative; }
.pds-frostpick__field { position: relative; padding: .6rem .6rem .65rem; border-radius: 18px; }
.pds-frostpick__field::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: var(--pds-frostpick-glass);
  border: 1px solid var(--pds-frostpick-edge); -webkit-backdrop-filter: var(--pds-frostpick-blur); backdrop-filter: var(--pds-frostpick-blur);
  box-shadow: 0 18px 36px -22px color-mix(in srgb, var(--ink) 55%, transparent), inset 0 1px 0 color-mix(in srgb, #fff 30%, transparent); transition: background-color .3s; }
:is(.pds-frostpick__field:hover, .is-playing .pds-frostpick__field)::before { background: var(--pds-frostpick-thick); }
.pds-frostpick__label { display: block; padding: 0 .4rem .4rem; font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ink-muted); cursor: pointer; }
.pds-frostpick__trigger { display: flex; align-items: center; gap: .7rem; min-height: 50px; padding: .35rem .8rem .35rem .4rem; border-radius: 13px; cursor: pointer;
  -webkit-user-select: none; user-select: none; background: color-mix(in srgb, var(--surface) 55%, transparent); border: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
  transition: border-color .25s, box-shadow .35s cubic-bezier(.22, 1, .36, 1); }
.pds-frostpick__trigger:hover { border-color: color-mix(in srgb, var(--primary) 55%, transparent); }
.pds-frostpick__trigger:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-frostpick__select.is-open .pds-frostpick__trigger { border-color: var(--primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent); }
.pds-frostpick__icon, .pds-frostpick__ico { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; color: var(--primary);
  background: color-mix(in srgb, var(--primary) 14%, var(--surface)); }
.pds-frostpick__icon svg, .pds-frostpick__ico svg, .pds-frostpick__tick { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pds-frostpick__value { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 1rem; font-weight: 600; color: var(--ink-muted); }
.pds-frostpick__select.is-chosen .pds-frostpick__value { color: var(--ink); }
.pds-frostpick__select.is-chosen .pds-frostpick__icon { animation: pds-frostpick-pop .45s cubic-bezier(.34, 1.56, .64, 1); }
.pds-frostpick__chev { flex: none; width: 9px; height: 9px; margin: -4px .2rem 0; border-right: 2px solid var(--ink-muted); border-bottom: 2px solid var(--ink-muted);
  transform: rotate(45deg); transition: transform .4s cubic-bezier(.22, 1, .36, 1), margin .4s cubic-bezier(.22, 1, .36, 1); }
.is-playing .pds-frostpick__chev { animation: pds-frostpick-nudge .8s ease-in-out 2; }
.pds-frostpick__select.is-open .pds-frostpick__chev { margin-top: 5px; transform: rotate(225deg); }
.pds-frostpick__list { position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 3; display: grid; gap: 2px; margin: 0; padding: .3rem; list-style: none;
  border-radius: 18px; background: var(--pds-frostpick-thick); border: 1px solid var(--pds-frostpick-edge);
  -webkit-backdrop-filter: var(--pds-frostpick-blur); backdrop-filter: var(--pds-frostpick-blur);
  box-shadow: 0 26px 50px -24px color-mix(in srgb, var(--ink) 60%, transparent), inset 0 1px 0 color-mix(in srgb, #fff 30%, transparent);
  opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.97); transform-origin: 50% 0;
  transition: opacity .25s, transform .45s cubic-bezier(.22, 1, .36, 1), visibility .45s; }
.pds-frostpick__select.is-open .pds-frostpick__list { opacity: 1; visibility: visible; transform: none; }
.pds-frostpick__opt { display: flex; align-items: center; gap: .65rem; min-height: 44px; padding: .25rem .65rem .25rem .3rem; border-radius: 12px; cursor: pointer; transition: background-color .2s, box-shadow .2s; }
.pds-frostpick__opt .pds-frostpick__ico { width: 32px; height: 32px; border-radius: 9px; }
.pds-frostpick__txt { flex: 1; min-width: 0; display: grid; line-height: 1.25; }
.pds-frostpick__txt b { font-size: .9rem; font-weight: 600; }
.pds-frostpick__txt small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .72rem; color: var(--ink-muted); }
.pds-frostpick__tick { flex: none; color: var(--primary); stroke-width: 2.4; opacity: 0; transform: scale(.5); transition: opacity .2s, transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.pds-frostpick__opt[aria-selected="true"] .pds-frostpick__tick { opacity: 1; transform: none; }
.pds-frostpick__opt.is-active { background: color-mix(in srgb, var(--primary) 16%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 40%, transparent); }
.pds-frostpick__note { margin-top: auto; align-self: center; max-width: 100%; padding: .5rem .9rem; border-radius: 14px; font-size: .78rem; text-align: center; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .pds-frostpick__field::before, .pds-frostpick__list, .pds-frostpick__brand, .pds-frostpick__note { background: color-mix(in srgb, var(--surface) 92%, transparent); }
}
@keyframes pds-frostpick-drift { to { transform: translate(30px, 20px) scale(1.12); } }
@keyframes pds-frostpick-nudge { 50% { translate: 0 3px; } }
@keyframes pds-frostpick-pop { 40% { transform: scale(1.15); } }
@media (prefers-reduced-motion: reduce) {
  .pds-frostpick *, .pds-frostpick *::before { transition: none !important; animation: none !important; }
}

/* ---------- PDS-51 Budget Slide ---------- */
.pds-budgetslide, .pds-budgetslide * { box-sizing: border-box; }
.pds-budgetslide { --pds-budgetslide-k: 24px; --pds-budgetslide-fill: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 50%, var(--accent)));
  position: relative; display: grid; gap: .8rem; width: min(100%, 400px); margin: 0 auto; padding: 1.1rem; overflow: hidden;
  border-radius: 22px; text-align: start; line-height: 1.35; color: var(--ink); background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 30px 60px -38px color-mix(in srgb, var(--ink) 50%, transparent); }
.pds-budgetslide__block { display: block; padding: .85rem 1rem .8rem; border-radius: 16px; background: var(--surface-sunk); border: 1px solid var(--border); }
.pds-budgetslide__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.pds-budgetslide__name { display: grid; gap: .1rem; font-size: .92rem; font-weight: 700; }
.pds-budgetslide__name small { font-size: .72rem; font-weight: 500; color: var(--ink-muted); }
.pds-budgetslide__read { flex: none; font-family: var(--font-mono, ui-monospace, monospace); font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--primary); }
.pds-budgetslide__rail { position: relative; display: block; height: var(--pds-budgetslide-k); margin-top: 2.2rem; }
.pds-budgetslide__range { display: block; width: 100%; height: var(--pds-budgetslide-k); margin: 0; padding: 0; background: none; cursor: pointer; outline: 0;
  -webkit-appearance: none; appearance: none; -webkit-tap-highlight-color: transparent; }
.pds-budgetslide__range::-webkit-slider-runnable-track { height: 8px; border-radius: 99px;
  background: var(--pds-budgetslide-fill) 0 0 / calc(var(--p, 0) * (100% - var(--pds-budgetslide-k)) + var(--pds-budgetslide-k) / 2) 100% no-repeat, color-mix(in srgb, var(--ink) 13%, transparent); }
.pds-budgetslide__range::-moz-range-track { height: 8px; border: 0; border-radius: 99px; background: color-mix(in srgb, var(--ink) 13%, transparent); }
.pds-budgetslide__range::-moz-range-progress { height: 8px; border-radius: 99px; background: var(--pds-budgetslide-fill); }
.pds-budgetslide__range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; box-sizing: border-box; width: var(--pds-budgetslide-k); height: var(--pds-budgetslide-k);
  margin-top: calc((8px - var(--pds-budgetslide-k)) / 2); border-radius: 50%; border: 3px solid var(--surface); background: var(--primary);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 35%, transparent), 0 6px 14px -4px color-mix(in srgb, var(--ink) 50%, transparent);
  transition: transform .3s cubic-bezier(.34, 1.56, .64, 1), box-shadow .25s; }
.pds-budgetslide__range::-moz-range-thumb { box-sizing: border-box; width: var(--pds-budgetslide-k); height: var(--pds-budgetslide-k); border-radius: 50%;
  border: 3px solid var(--surface); background: var(--primary);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 35%, transparent), 0 6px 14px -4px color-mix(in srgb, var(--ink) 50%, transparent);
  transition: transform .3s cubic-bezier(.34, 1.56, .64, 1), box-shadow .25s; }
.pds-budgetslide__range:active::-webkit-slider-thumb { transform: scale(1.15); }
.pds-budgetslide__range:active::-moz-range-thumb { transform: scale(1.15); }
.pds-budgetslide__range:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--primary), 0 6px 14px -4px color-mix(in srgb, var(--ink) 50%, transparent); }
.pds-budgetslide__range:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--primary), 0 6px 14px -4px color-mix(in srgb, var(--ink) 50%, transparent); }
.pds-budgetslide__bubble { position: absolute; bottom: calc(100% + 9px); left: calc(var(--p, 0) * (100% - var(--pds-budgetslide-k)) + var(--pds-budgetslide-k) / 2);
  padding: .32rem .55rem; border-radius: 9px; pointer-events: none; white-space: nowrap; font-family: var(--font-mono, ui-monospace, monospace); font-size: .78rem; font-weight: 600; line-height: 1;
  color: var(--bg); background: var(--ink); box-shadow: 0 8px 16px -8px color-mix(in srgb, var(--ink) 60%, transparent);
  transform: translateX(-50%); transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), opacity .25s; }
.pds-budgetslide__bubble::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border: 5px solid transparent; border-top-color: var(--ink); }
:is(.pds-budgetslide__rail:hover, .pds-budgetslide__rail:focus-within, .is-playing .pds-budgetslide__rail) > .pds-budgetslide__bubble { transform: translateX(-50%) translateY(-3px) scale(1.08); }
.pds-budgetslide__rail--two .pds-budgetslide__range { position: absolute; inset: 0; pointer-events: none; }
.pds-budgetslide__rail--two .pds-budgetslide__range::-webkit-slider-runnable-track { background: none; }
.pds-budgetslide__rail--two .pds-budgetslide__range::-moz-range-track { background: none; }
.pds-budgetslide__rail--two .pds-budgetslide__range::-moz-range-progress { background: none; }
.pds-budgetslide__rail--two .pds-budgetslide__range::-webkit-slider-thumb { pointer-events: auto; }
.pds-budgetslide__rail--two .pds-budgetslide__range::-moz-range-thumb { pointer-events: auto; }
.pds-budgetslide__track { position: absolute; top: 50%; left: calc(var(--pds-budgetslide-k) / 2); right: calc(var(--pds-budgetslide-k) / 2); height: 8px; margin-top: -4px;
  border-radius: 99px; background: color-mix(in srgb, var(--ink) 13%, transparent); }
.pds-budgetslide__fill { position: absolute; top: 0; bottom: 0; left: calc(var(--lo, 0) * 100%); right: calc((1 - var(--hi, 1)) * 100%); border-radius: inherit; background: var(--pds-budgetslide-fill); }
.pds-budgetslide__thumb { position: absolute; inset: 0; display: block; pointer-events: none; }
.pds-budgetslide__tip { left: calc(var(--v, 0) * (100% - var(--pds-budgetslide-k)) + var(--pds-budgetslide-k) / 2); opacity: 0; transform: translateX(-50%) translateY(4px) scale(.85); }
:is(.pds-budgetslide__thumb:focus-within, .is-playing .pds-budgetslide__thumb) .pds-budgetslide__tip { opacity: 1; transform: translateX(-50%); }
.pds-budgetslide__ends { display: flex; justify-content: space-between; margin-top: .4rem; font-family: var(--font-mono, ui-monospace, monospace); font-size: .7rem; color: var(--ink-muted); }
.pds-budgetslide__hint { margin: 0; font-size: .74rem; text-align: center; color: var(--ink-muted); }
.pds-budgetslide__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .pds-budgetslide *, .pds-budgetslide *::after { transition: none !important; }
  .pds-budgetslide__range::-webkit-slider-thumb { transition: none; }
  .pds-budgetslide__range::-moz-range-thumb { transition: none; }
}

/* ---------- PDS-52 Gold Stars ---------- */
.pds-goldstars, .pds-goldstars * { box-sizing: border-box; }
.pds-goldstars { position: relative; width: min(100%, 380px); margin: 0 auto; text-align: start; line-height: 1.4; color: var(--ink); }
.pds-goldstars :where(button, textarea) { font: inherit; color: inherit; }
.pds-goldstars :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-goldstars__card { display: grid; gap: .7rem; padding: 1rem 1.1rem .95rem; border-radius: 22px; background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 30px 60px -38px color-mix(in srgb, var(--ink) 50%, transparent); }
.pds-goldstars__top { display: flex; align-items: center; gap: .65rem; }
.pds-goldstars__logo { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; font-family: var(--font-display, Georgia, serif); font-size: 1.15rem; font-weight: 600;
  color: color-mix(in srgb, var(--gold) 50%, var(--ink)); background: color-mix(in srgb, var(--gold) 20%, var(--surface)); }
.pds-goldstars__biz { flex: 1; min-width: 0; display: grid; margin: 0; line-height: 1.25; }
.pds-goldstars__biz b { font-size: .9rem; }
.pds-goldstars__biz small { font-size: .72rem; color: var(--ink-muted); }
.pds-goldstars__chip { flex: none; align-self: flex-start; padding: .22rem .55rem; border-radius: 999px; font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--primary-deep); background: var(--primary-tint); }
.pds-goldstars__set { display: grid; justify-items: center; gap: .45rem; min-width: 0; margin: 0; padding: .7rem 0 .55rem; border: 0; border-radius: 16px; background: var(--surface-sunk); }
.pds-goldstars__q { float: left; width: 100%; margin: 0 0 .45rem; padding: 0; text-align: center; font-family: var(--font-display, Georgia, serif); font-size: 1.12rem; font-weight: 600; }
.pds-goldstars__row { clear: both; display: flex; gap: 5px; }
.pds-goldstars__star { position: relative; display: flex; width: 40px; height: 40px; border-radius: 10px; transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.pds-goldstars__star:hover { transform: scale(1.12); }
.pds-goldstars__star.is-pop { animation: pds-goldstars-pop .45s cubic-bezier(.34, 1.56, .64, 1); }
.pds-goldstars__half { position: relative; width: 50%; height: 100%; overflow: hidden; cursor: pointer; color: color-mix(in srgb, var(--ink) 15%, transparent); transition: color .2s; }
.pds-goldstars__half.is-on { color: var(--gold); }
.pds-goldstars__row.is-preview .pds-goldstars__half.is-on { color: color-mix(in srgb, var(--gold) 70%, transparent); }
.pds-goldstars__svg { position: absolute; top: 0; width: 40px; height: 40px; fill: currentColor; stroke: currentColor; stroke-width: 1.2; stroke-linejoin: round; }
.pds-goldstars__half--l .pds-goldstars__svg { left: 0; }
.pds-goldstars__half--r .pds-goldstars__svg { right: 0; }
.pds-goldstars__radio { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.pds-goldstars__radio:disabled { pointer-events: none; }
.pds-goldstars__star:has(.pds-goldstars__radio:focus-visible) { outline: 2px solid var(--primary); outline-offset: 3px; }
@supports not selector(:has(*)) { .pds-goldstars__half:focus-within { outline: 2px solid var(--primary); } }
.pds-goldstars__say { display: flex; align-items: baseline; justify-content: center; gap: .55rem; min-height: 1.6rem; margin: 0; }
.pds-goldstars__word { font-family: var(--font-display, Georgia, serif); font-size: 1.05rem; font-weight: 600; }
.pds-goldstars__word.is-new { animation: pds-goldstars-word .4s cubic-bezier(.22, 1, .36, 1); }
.pds-goldstars__row.is-preview ~ .pds-goldstars__say .pds-goldstars__word { color: var(--ink-muted); }
.pds-goldstars__num { font-family: var(--font-mono, ui-monospace, monospace); font-size: .78rem; color: var(--ink-muted); }
.pds-goldstars__note { display: grid; gap: .35rem; font-size: .8rem; font-weight: 600; }
.pds-goldstars__note small { font-weight: 500; color: var(--ink-muted); }
.pds-goldstars__text { width: 100%; height: 56px; padding: .55rem .75rem; resize: none; border-radius: 12px; border: 1px solid var(--border-strong); outline: 0;
  background: var(--surface-sunk); font-size: .88rem; font-weight: 400; line-height: 1.4; color: var(--ink); transition: border-color .25s, box-shadow .3s, background-color .25s; }
.pds-goldstars__text::placeholder { color: var(--ink-faint); opacity: 1; }
.pds-goldstars__text:focus-visible { background: var(--surface); border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary), 0 0 0 5px color-mix(in srgb, var(--primary) 16%, transparent); }
.pds-goldstars__foot { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.pds-goldstars__mode { display: inline-flex; align-items: center; gap: .5rem; padding: .3rem .2rem; border: 0; border-radius: 8px; background: none; cursor: pointer; font-size: .8rem; font-weight: 600; color: var(--ink-muted); }
.pds-goldstars__knob { position: relative; width: 34px; height: 20px; border-radius: 99px; background: color-mix(in srgb, var(--ink) 20%, transparent); transition: background-color .25s; }
.pds-goldstars__knob::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--surface);
  box-shadow: 0 1px 3px color-mix(in srgb, var(--ink) 40%, transparent); transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.pds-goldstars__mode[aria-checked="true"] .pds-goldstars__knob { background: var(--primary); }
.pds-goldstars__mode[aria-checked="true"] .pds-goldstars__knob::after { transform: translateX(14px); }
.pds-goldstars__send { height: 40px; padding: 0 1.15rem; border: 0; border-radius: 999px; cursor: pointer; font-size: .86rem; font-weight: 700; color: var(--bg);
  background: linear-gradient(135deg, var(--primary), var(--primary-deep)); box-shadow: 0 12px 22px -14px color-mix(in srgb, var(--primary) 85%, transparent);
  transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.pds-goldstars__send:hover { transform: translateY(-1px); }
.pds-goldstars__done { min-height: 1.1rem; margin: -.35rem 0 0; font-size: .78rem; font-weight: 600; text-align: center; color: var(--ink-muted); }
@keyframes pds-goldstars-pop { 40% { transform: scale(1.28) rotate(-8deg); } }
@keyframes pds-goldstars-word { from { opacity: 0; transform: translateY(5px); } }
@media (prefers-reduced-motion: reduce) {
  .pds-goldstars *, .pds-goldstars *::after { transition: none !important; animation: none !important; }
}

/* ---------- PDS-53 Pass Meter ---------- */
.pds-passmeter, .pds-passmeter * { box-sizing: border-box; }
.pds-passmeter { --pds-passmeter-c: color-mix(in srgb, var(--ink) 25%, transparent);
  position: relative; display: grid; gap: .75rem; width: min(100%, 400px); margin: 0 auto; padding: 1.25rem 1.2rem 1.2rem;
  border-radius: 22px; text-align: start; line-height: 1.4; color: var(--ink); background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 30px 60px -38px color-mix(in srgb, var(--ink) 50%, transparent); }
.pds-passmeter[data-score="1"] { --pds-passmeter-c: color-mix(in srgb, #e5484d 72%, var(--gold)); }
.pds-passmeter[data-score="2"] { --pds-passmeter-c: var(--gold); }
.pds-passmeter[data-score="3"] { --pds-passmeter-c: color-mix(in srgb, var(--gold) 40%, var(--accent-deep)); }
.pds-passmeter[data-score="4"] { --pds-passmeter-c: var(--accent-deep); }
.pds-passmeter :where(button, input) { font: inherit; color: inherit; }
.pds-passmeter__head { display: flex; align-items: center; gap: .7rem; }
.pds-passmeter__lock { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: var(--primary); background: var(--primary-tint); transition: color .3s, background-color .3s; }
.pds-passmeter[data-score="4"] .pds-passmeter__lock { color: var(--bg); background: var(--accent-deep); }
.pds-passmeter__lock svg, .pds-passmeter__eye svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.pds-passmeter__title { margin: 0; font-family: var(--font-display, Georgia, serif); font-size: 1.2rem; font-weight: 600; line-height: 1.2; }
.pds-passmeter__sub { margin: .12rem 0 0; font-size: .76rem; color: var(--ink-muted); }
.pds-passmeter__box { position: relative; }
.pds-passmeter__field { display: grid; gap: .35rem; }
.pds-passmeter__label { font-size: .8rem; font-weight: 600; }
.pds-passmeter__input { width: 100%; height: 50px; margin: 0; padding: 0 3.3rem 0 .95rem; border-radius: 14px; border: 1px solid var(--border-strong); outline: 0;
  background: var(--surface-sunk); font-size: 1rem; letter-spacing: .03em; color: var(--ink); caret-color: var(--primary);
  transition: border-color .25s, box-shadow .35s cubic-bezier(.22, 1, .36, 1), background-color .25s; }
.pds-passmeter__input::placeholder { color: var(--ink-faint); opacity: 1; letter-spacing: 0; }
.pds-passmeter__input:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--border-strong)); }
.pds-passmeter__input:focus-visible { background: var(--surface); border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary), 0 0 0 5px color-mix(in srgb, var(--primary) 16%, transparent); }
.pds-passmeter__eye { position: absolute; right: 6px; bottom: 6px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 10px;
  cursor: pointer; color: var(--ink-muted); background: none; transition: color .2s, background-color .2s; }
.pds-passmeter__eye:hover, .pds-passmeter__eye[aria-pressed="true"] { color: var(--ink); background: color-mix(in srgb, var(--ink) 8%, transparent); }
.pds-passmeter__eye:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-passmeter__slash { stroke-dasharray: 23; stroke-dashoffset: 23; transition: stroke-dashoffset .35s cubic-bezier(.22, 1, .36, 1); }
.pds-passmeter__eye[aria-pressed="true"] .pds-passmeter__slash { stroke-dashoffset: 0; }
.pds-passmeter__meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.pds-passmeter__meter i { position: relative; height: 6px; overflow: hidden; border-radius: 99px; background: color-mix(in srgb, var(--ink) 11%, transparent); }
.pds-passmeter__meter i::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--pds-passmeter-c); transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .45s cubic-bezier(.22, 1, .36, 1), background-color .35s; }
.pds-passmeter__meter i.is-on::after { transform: scaleX(1); }
.pds-passmeter__meter i:nth-child(2)::after { transition-delay: .04s; }
.pds-passmeter__meter i:nth-child(3)::after { transition-delay: .08s; }
.pds-passmeter__meter i:nth-child(4)::after { transition-delay: .12s; }
.pds-passmeter__verdict { min-height: 2.3em; margin: -.25rem 0 0; font-size: .8rem; line-height: 1.4; color: var(--ink-muted); }
.pds-passmeter__word { display: inline-flex; align-items: center; gap: .4rem; margin-right: .2rem; font-size: .86rem; color: var(--ink); }
.pds-passmeter__word::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pds-passmeter-c); transition: background-color .3s; }
.pds-passmeter__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .5rem .8rem; margin: 0; padding: .8rem .9rem; list-style: none;
  border-radius: 14px; background: var(--surface-sunk); }
.pds-passmeter__rule { display: flex; align-items: center; gap: .5rem; font-size: .8rem; line-height: 1.25; color: var(--ink-muted); transition: color .25s; }
.pds-passmeter__check { flex: none; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--border-strong);
  transition: background-color .3s, border-color .3s; }
.pds-passmeter__check svg { width: 12px; height: 12px; fill: none; stroke: var(--bg); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 18; stroke-dashoffset: 18; transition: stroke-dashoffset .35s .05s cubic-bezier(.22, 1, .36, 1); }
.pds-passmeter__rule.is-met { color: var(--ink); }
.pds-passmeter__rule.is-met .pds-passmeter__check { border-color: var(--accent-deep); background: var(--accent-deep); animation: pds-passmeter-pop .4s cubic-bezier(.34, 1.56, .64, 1); }
.pds-passmeter__rule.is-met .pds-passmeter__check svg { stroke-dashoffset: 0; }
.pds-passmeter__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes pds-passmeter-pop { 50% { transform: scale(1.25); } }
@media (prefers-reduced-motion: reduce) {
  .pds-passmeter *, .pds-passmeter *::after { transition: none !important; animation: none !important; }
}

/* ---------- PDS-54 Sign-in Code ---------- */
.pds-otp, .pds-otp * { box-sizing: border-box; }
.pds-otp { position: relative; isolation: isolate; display: grid; justify-items: center; gap: .7rem; width: min(100%, 380px); margin: 0 auto; padding: 1.4rem 1.2rem .9rem;
  overflow: hidden; border-radius: 22px; text-align: center; line-height: 1.4; color: var(--ink); background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 30px 60px -38px color-mix(in srgb, var(--ink) 50%, transparent); }
.pds-otp::before { content: ""; position: absolute; inset: 0 0 auto; z-index: -1; height: 160px; pointer-events: none;
  background: radial-gradient(60% 100% at 50% 0, color-mix(in srgb, var(--primary) 16%, transparent), transparent); }
.pds-otp :where(button, input) { font: inherit; color: inherit; }
.pds-otp :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-otp__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; color: var(--primary); background: var(--primary-tint); transition: color .3s, background-color .3s; }
.pds-otp__icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pds-otp.is-done .pds-otp__icon { color: var(--bg); background: var(--accent-deep); animation: pds-otp-pop .5s cubic-bezier(.34, 1.56, .64, 1); }
.pds-otp__title { margin: 0; font-family: var(--font-display, Georgia, serif); font-size: 1.22rem; font-weight: 600; line-height: 1.2; }
.pds-otp__sub { max-width: 31ch; margin: -.4rem 0 .2rem; font-size: .8rem; color: var(--ink-muted); }
.pds-otp__boxes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 10px repeat(3, minmax(0, 1fr)); align-items: center; gap: 6px; width: min(100%, 320px); }
.pds-otp__cell { position: relative; display: block; }
.pds-otp__input { display: block; width: 100%; height: 54px; margin: 0; padding: 0; border-radius: 12px; border: 1.5px solid var(--border-strong); outline: 0; background: var(--surface-sunk);
  font-family: var(--font-mono, ui-monospace, monospace); font-size: 1.45rem; font-weight: 600; text-align: center; color: var(--ink); caret-color: var(--primary);
  transition: border-color .2s, box-shadow .35s cubic-bezier(.22, 1, .36, 1), background-color .2s, transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.pds-otp__input:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--border-strong)); }
.pds-otp__input:focus-visible { background: var(--surface); border-color: var(--primary); transform: translateY(-2px);
  box-shadow: 0 0 0 1px var(--primary), 0 0 0 5px color-mix(in srgb, var(--primary) 16%, transparent); }
.pds-otp__cell.is-filled .pds-otp__input { background: var(--surface); border-color: color-mix(in srgb, var(--primary) 55%, var(--border-strong)); animation: pds-otp-in .3s cubic-bezier(.34, 1.56, .64, 1); }
.pds-otp.is-done .pds-otp__input { border-color: var(--accent-deep); background: color-mix(in srgb, var(--accent) 12%, var(--surface));
  animation: pds-otp-wave .55s cubic-bezier(.34, 1.56, .64, 1) both; animation-delay: calc(var(--i, 0) * 55ms); }
.pds-otp__dash { height: 2px; border-radius: 2px; background: var(--border-strong); }
.pds-otp__status { min-height: 1.25rem; margin: -.1rem 0 0; font-size: .86rem; font-weight: 700; color: var(--ink-muted); }
.pds-otp.is-done .pds-otp__status { color: var(--accent-deep); }
.pds-otp__suggest { display: inline-flex; align-items: center; gap: .6rem; min-height: 38px; padding: .35rem .95rem; border-radius: 999px; border: 1px solid var(--border);
  background: var(--surface-sunk); cursor: pointer; font-size: .78rem; color: var(--ink-muted); transition: border-color .2s, transform .3s cubic-bezier(.22, 1, .36, 1); }
.pds-otp__suggest:hover { border-color: var(--primary); transform: translateY(-1px); }
.pds-otp__from { display: inline-flex; align-items: center; gap: .4rem; }
.pds-otp__from::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent-deep); }
.pds-otp__code { font-family: var(--font-mono, ui-monospace, monospace); font-weight: 600; letter-spacing: .12em; color: var(--ink); }
.pds-otp__foot { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: .15rem; padding-top: .6rem; border-top: 1px solid var(--border); }
.pds-otp__link { padding: .35rem .5rem; border: 0; border-radius: 8px; background: none; cursor: pointer; font-size: .8rem; font-weight: 600; color: var(--primary); }
.pds-otp__link:hover { background: color-mix(in srgb, var(--primary) 10%, transparent); }
.pds-otp__resend[aria-disabled="true"] { cursor: default; color: var(--ink-muted); background: none; }
.pds-otp__secs { display: inline-block; min-width: 2ch; font-family: var(--font-mono, ui-monospace, monospace); font-variant-numeric: tabular-nums; }
.pds-otp__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes pds-otp-in { from { transform: scale(.88); } }
@keyframes pds-otp-wave { 40% { transform: translateY(-7px); } }
@keyframes pds-otp-pop { 40% { transform: scale(1.18); } }
@media (max-width: 360px) { .pds-otp .pds-otp__input { height: 48px; font-size: 1.25rem; } }
@media (prefers-reduced-motion: reduce) {
  .pds-otp *, .pds-otp *::after { transition: none !important; animation: none !important; }
}

/* ---------- PDS-55 Call Calendar ---------- */
.pds-callcal, .pds-callcal * { box-sizing: border-box; }
.pds-callcal { --pds-callcal-ease: cubic-bezier(.22, 1, .36, 1);
  container-type: inline-size; position: relative; width: min(100%, 340px); height: 424px; margin: 0 auto; font-size: .9375rem; line-height: 1.4; color: var(--ink); text-align: left; }
.pds-callcal :where(p) { margin: 0; }
.pds-callcal :where(button) { margin: 0; padding: 0; border: 0; font: inherit; color: inherit; background: none; cursor: pointer; }
.pds-callcal :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-callcal svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pds-callcal__vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pds-callcal__eyebrow { margin-bottom: .45rem; font-family: var(--font-mono, ui-monospace, monospace); font-size: .66rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.pds-callcal__field { display: flex; align-items: center; gap: .6rem; width: 100%; height: 48px; padding: 0 .85rem; border-radius: 14px; font-weight: 600;
  background: var(--surface); border: 1px solid var(--border-strong); box-shadow: 0 12px 26px -20px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 60%, transparent);
  transition: border-color .25s, box-shadow .25s; }
.pds-callcal__field:hover { border-color: var(--primary); }
.pds-callcal__field[aria-expanded="true"] { border-color: var(--primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent); }
.pds-callcal__field svg { flex: none; width: 20px; height: 20px; }
.pds-callcal__ico { color: var(--primary); }
.pds-callcal__chev { color: var(--ink-faint); transition: transform .4s var(--pds-callcal-ease); }
.pds-callcal__field[aria-expanded="true"] .pds-callcal__chev { transform: rotate(180deg); }
.pds-callcal__value { flex: 1; min-width: 0; overflow: hidden; text-align: left; white-space: nowrap; text-overflow: ellipsis; color: var(--ink-muted); }
.pds-callcal.has-time .pds-callcal__value { color: var(--ink); }
.pds-callcal__foot { position: absolute; top: 84px; left: 0; right: 0; display: grid; gap: .75rem; transition: opacity .3s, filter .3s; }
.pds-callcal.is-open .pds-callcal__foot { opacity: .35; filter: blur(1px); }
.pds-callcal__ticket { display: flex; align-items: center; gap: .85rem; padding: .85rem; border-radius: 18px; background: var(--surface); border: 1px dashed var(--border-strong); transition: border-color .3s, box-shadow .3s; }
.pds-callcal.has-time .pds-callcal__ticket { border-style: solid; border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
  box-shadow: 0 18px 36px -26px color-mix(in srgb, var(--primary) 70%, transparent); }
.pds-callcal__date { flex: none; display: grid; place-items: center; align-content: center; width: 58px; height: 62px; border-radius: 14px; color: var(--primary-deep); background: var(--primary-tint); }
.pds-callcal__date small { font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pds-callcal__date b { font-family: var(--font-mono, ui-monospace, monospace); font-size: 1.45rem; line-height: 1.05; }
.pds-callcal__info { min-width: 0; }
.pds-callcal__when { display: block; font-size: 1rem; font-weight: 700; }
.pds-callcal__info small { display: block; margin-top: .15rem; font-size: .76rem; color: var(--ink-muted); }
.pds-callcal__book { height: 46px; border-radius: 999px; font-weight: 700; color: var(--bg); background: linear-gradient(135deg, var(--primary), var(--primary-deep));
  box-shadow: 0 14px 26px -16px color-mix(in srgb, var(--primary) 80%, transparent); transition: transform .3s var(--pds-callcal-ease), box-shadow .3s; }
.pds-callcal__book:hover { transform: translateY(-1px); box-shadow: 0 18px 30px -14px color-mix(in srgb, var(--primary) 90%, transparent); }
.pds-callcal .pds-callcal__book:focus-visible { outline-offset: 3px; }
.pds-callcal__status { min-height: 2.8em; font-size: .78rem; text-align: center; color: var(--ink-muted); }
.pds-callcal.is-booked .pds-callcal__status { font-weight: 600; color: var(--accent-deep); }
.pds-callcal.is-booked .pds-callcal__date { animation: pds-callcal-pop .6s var(--pds-callcal-ease); }
.pds-callcal__pop { position: absolute; top: 84px; left: 0; right: 0; z-index: 2; padding: .7rem .7rem .75rem; border-radius: 18px;
  background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 30px 60px -28px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 50%, transparent), 0 2px 8px -2px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 12%, transparent);
  opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.97); transform-origin: 28px 0;
  transition: opacity .2s, transform .45s var(--pds-callcal-ease), visibility 0s .45s; }
.pds-callcal.is-open .pds-callcal__pop { opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .45s var(--pds-callcal-ease), visibility 0s; }
.pds-callcal__pop::before { content: ""; position: absolute; top: -7px; left: 22px; width: 12px; height: 12px; background: var(--surface);
  border-left: 1px solid var(--border); border-top: 1px solid var(--border); transform: rotate(45deg); }
.pds-callcal__cal[hidden], .pds-callcal__times[hidden] { display: none; }
.pds-callcal__head { position: relative; display: flex; align-items: center; gap: .3rem; margin-bottom: .35rem; }
.pds-callcal__title { flex: 1; text-align: center; font-family: var(--font-display, Georgia, serif); font-size: 1.02rem; font-weight: 600; }
.pds-callcal__nav, .pds-callcal__spacer { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: var(--ink-muted); transition: background .2s, color .2s; }
.pds-callcal__nav svg { width: 18px; height: 18px; }
.pds-callcal__nav:hover:not(:disabled) { color: var(--ink); background: var(--surface-sunk); }
.pds-callcal__nav:disabled { opacity: .3; cursor: default; }
.pds-callcal__grid { display: grid; gap: 2px; }
.pds-callcal__row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.pds-callcal__wk span { padding: .1rem 0 .25rem; text-align: center; font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-faint); }
.pds-callcal__d { position: relative; display: grid; place-items: center; width: 100%; height: 34px; border-radius: 10px;
  font-family: var(--font-mono, ui-monospace, monospace); font-size: .8rem; font-weight: 600;
  transition: background .2s, color .2s, transform .3s var(--pds-callcal-ease); }
.pds-callcal__d:hover { color: var(--primary-deep); background: var(--primary-tint); }
.pds-callcal__d:active { transform: scale(.92); }
.pds-callcal__d[aria-disabled="true"] { color: var(--ink-faint); background: none; cursor: not-allowed; }
.pds-callcal__d.is-past { opacity: .5; }
.pds-callcal__d.is-closed { background: var(--surface-sunk); }
.pds-callcal__d.is-booked { text-decoration: line-through; text-decoration-thickness: 1.5px; }
.pds-callcal__d.is-today::after { content: ""; position: absolute; bottom: 4px; left: 50%; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--primary); }
.pds-callcal [aria-selected="true"] > .pds-callcal__d { color: var(--bg); background: linear-gradient(135deg, var(--primary), var(--primary-deep));
  box-shadow: 0 8px 16px -10px color-mix(in srgb, var(--primary) 90%, transparent); }
.pds-callcal [aria-selected="true"] > .pds-callcal__d::after { background: var(--bg); }
.pds-callcal__d.is-no { animation: pds-callcal-no .35s; }
.pds-callcal__legend { display: flex; flex-wrap: wrap; justify-content: center; gap: .2rem .9rem; margin-top: .45rem; font-size: .66rem; color: var(--ink-muted); }
.pds-callcal__legend span { display: inline-flex; align-items: center; gap: .35rem; }
.pds-callcal__legend i { width: 10px; height: 10px; border-radius: 3px; }
.pds-callcal__legend .pds-callcal__k-today { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
.pds-callcal__legend .pds-callcal__k-booked { border: 1px solid var(--border-strong);
  background: linear-gradient(135deg, transparent 43%, var(--ink-faint) 43% 57%, transparent 57%); }
.pds-callcal__legend .pds-callcal__k-closed { border: 1px solid var(--border-strong); background: var(--surface-sunk); }
.pds-callcal__times { animation: pds-callcal-in .4s var(--pds-callcal-ease); }
.pds-callcal__ask { margin: 0 0 .7rem; text-align: center; font-size: .76rem; color: var(--ink-muted); }
.pds-callcal__slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.pds-callcal__slot { height: 46px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface);
  font-family: var(--font-mono, ui-monospace, monospace); font-size: .86rem; font-weight: 600;
  animation: pds-callcal-in .45s var(--pds-callcal-ease) both; animation-delay: calc(var(--i, 0) * 45ms);
  transition: background .2s, border-color .2s, color .2s; }
.pds-callcal__slot:hover:not(:disabled) { color: var(--primary-deep); background: var(--primary-tint); border-color: color-mix(in srgb, var(--primary) 45%, transparent); }
.pds-callcal__slot[aria-pressed="true"], .pds-callcal__slot[aria-pressed="true"]:hover { color: var(--bg); background: linear-gradient(135deg, var(--primary), var(--primary-deep)); border-color: transparent; }
.pds-callcal__slot:disabled { color: var(--ink-faint); background: var(--surface-sunk); text-decoration: line-through; cursor: not-allowed; }
@container (max-width: 290px) {
  .pds-callcal__ticket { gap: .65rem; padding: .7rem; }
  .pds-callcal__date { width: 48px; height: 56px; }
  .pds-callcal__when { font-size: .92rem; }
}
@keyframes pds-callcal-in { from { opacity: 0; transform: translateY(6px); } }
@keyframes pds-callcal-no { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }
@keyframes pds-callcal-pop { 40% { transform: scale(1.08) rotate(-3deg); } }

/* ---------- PDS-56 Monthly Notes ---------- */
.pds-pdnotes, .pds-pdnotes * { box-sizing: border-box; }
.pds-pdnotes { --pds-pdnotes-err: color-mix(in srgb, #d23a2f 72%, var(--ink)); --pds-pdnotes-ease: cubic-bezier(.22, 1, .36, 1);
  container-type: inline-size; width: min(100%, 420px); margin: 0 auto; font-size: .9375rem; line-height: 1.4; color: var(--ink); }
.pds-pdnotes :where(p) { margin: 0; }
.pds-pdnotes :where(button, input) { margin: 0; font: inherit; color: inherit; }
.pds-pdnotes :where(button) { padding: 0; border: 0; background: none; cursor: pointer; }
.pds-pdnotes :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-pdnotes [tabindex="-1"]:focus { outline: none; }
.pds-pdnotes__vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pds-pdnotes__card { position: relative; overflow: hidden; padding: 1.5rem 1.4rem 1.2rem; border-radius: 24px; text-align: center;
  background: var(--surface); border: 1px solid var(--border); box-shadow: 0 30px 60px -36px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 55%, transparent); }
.pds-pdnotes__card::before { content: ""; position: absolute; inset: 0 0 auto; height: 150px; pointer-events: none;
  background: radial-gradient(60% 100% at 50% 0%, color-mix(in srgb, var(--primary) 16%, transparent), transparent); }
.pds-pdnotes__card > * { position: relative; }
.pds-pdnotes__art { display: grid; place-items: center; width: 72px; height: 58px; margin: 0 auto .55rem; }
.pds-pdnotes__art > svg { grid-area: 1 / 1; }
.pds-pdnotes__env { width: 72px; height: 56px; overflow: visible; transform-origin: 50% 70%; animation: pds-pdnotes-drop .7s var(--pds-pdnotes-ease) both; }
.pds-pdnotes__back { fill: color-mix(in srgb, var(--primary) 30%, var(--surface)); }
.pds-pdnotes__paper { fill: var(--surface); stroke: var(--border-strong); stroke-width: 1.2; }
.pds-pdnotes__lines { fill: none; stroke: color-mix(in srgb, var(--primary) 55%, var(--surface)); stroke-width: 2.4; stroke-linecap: round; }
.pds-pdnotes__front { fill: var(--primary); }
.pds-pdnotes__seal { fill: var(--gold); stroke: var(--surface); stroke-width: 1.5; }
.pds-pdnotes__letter { transition: transform .35s ease; }
.pds-pdnotes.is-sent .pds-pdnotes__letter { transform: translateY(13px); }
.pds-pdnotes.is-sent .pds-pdnotes__env { animation: pds-pdnotes-fly 1s cubic-bezier(.55, 0, .3, 1) forwards; }
.pds-pdnotes__tick { width: 56px; height: 56px; opacity: 0; }
.pds-pdnotes__tick circle { fill: color-mix(in srgb, var(--accent) 14%, transparent); stroke: var(--accent-deep); stroke-width: 3; stroke-dasharray: 100; stroke-dashoffset: 100; }
.pds-pdnotes__tick path { fill: none; stroke: var(--accent-deep); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; stroke-dashoffset: 100; }
.pds-pdnotes.is-sent .pds-pdnotes__tick { opacity: 1; transition: opacity .2s .7s; }
.pds-pdnotes.is-sent .pds-pdnotes__tick circle { animation: pds-pdnotes-draw .6s .75s cubic-bezier(.65, 0, .35, 1) forwards; }
.pds-pdnotes.is-sent .pds-pdnotes__tick path { animation: pds-pdnotes-draw .45s 1.2s cubic-bezier(.65, 0, .35, 1) forwards; }
.pds-pdnotes__kicker { font-family: var(--font-mono, ui-monospace, monospace); font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--primary-deep); }
.pds-pdnotes__title { margin-top: .3rem; font-family: var(--font-display, Georgia, serif); font-size: 1.45rem; font-weight: 600; line-height: 1.15; }
.pds-pdnotes__sub { max-width: 32ch; margin: .45rem auto 0; font-size: .84rem; color: var(--ink-muted); }
.pds-pdnotes__sub b { color: var(--ink); overflow-wrap: anywhere; }
.pds-pdnotes__row { display: flex; gap: .35rem; margin-top: 1.1rem; padding: .3rem; border-radius: 999px;
  background: var(--surface-sunk); border: 1px solid var(--border); transition: border-color .25s, box-shadow .25s; }
.pds-pdnotes__row:focus-within { border-color: var(--primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 14%, transparent); }
.pds-pdnotes__row.is-bad { border-color: var(--pds-pdnotes-err); box-shadow: 0 0 0 4px color-mix(in srgb, var(--pds-pdnotes-err) 14%, transparent); }
.pds-pdnotes__field { flex: 1; display: flex; min-width: 0; }
.pds-pdnotes__input { flex: 1; min-width: 0; height: 42px; padding: 0 .95rem; border: 0; border-radius: 999px; background: transparent; font-size: .92rem; color: var(--ink); }
.pds-pdnotes__input::placeholder { color: var(--ink-faint); opacity: 1; }
.pds-pdnotes__input:focus { outline: none; }
.pds-pdnotes__input:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-pdnotes__go { flex: none; height: 42px; padding: 0 1.2rem; border-radius: 999px; font-weight: 700; color: var(--bg);
  background: linear-gradient(135deg, var(--primary), var(--primary-deep)); box-shadow: 0 10px 20px -12px color-mix(in srgb, var(--primary) 80%, transparent);
  transition: transform .3s var(--pds-pdnotes-ease), box-shadow .3s; }
.pds-pdnotes__go:hover { transform: translateY(-1px); box-shadow: 0 14px 24px -12px color-mix(in srgb, var(--primary) 90%, transparent); }
.pds-pdnotes__consent { position: relative; display: flex; align-items: flex-start; gap: .55rem; margin-top: .85rem; text-align: left; font-size: .78rem; color: var(--ink-muted); cursor: pointer; }
.pds-pdnotes__check { position: absolute; top: 0; left: 0; width: 18px; height: 18px; margin: 0; opacity: 0; cursor: pointer; }
.pds-pdnotes__box { flex: none; display: grid; place-items: center; width: 18px; height: 18px; margin-top: 1px; border-radius: 6px;
  border: 1.5px solid var(--border-strong); background: var(--surface); transition: background .2s, border-color .2s; }
.pds-pdnotes__box svg { width: 12px; height: 12px; fill: none; stroke: var(--bg); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 20; stroke-dashoffset: 20; transition: stroke-dashoffset .3s .05s; }
.pds-pdnotes__check:checked + .pds-pdnotes__box { background: var(--primary); border-color: var(--primary); }
.pds-pdnotes__check:checked + .pds-pdnotes__box svg { stroke-dashoffset: 0; }
.pds-pdnotes__check:focus-visible + .pds-pdnotes__box { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-pdnotes__consent.is-bad .pds-pdnotes__box { border-color: var(--pds-pdnotes-err); }
.pds-pdnotes__msg { min-height: 2.5em; margin-top: .7rem; font-size: .76rem; color: var(--ink-faint); }
.pds-pdnotes__msg.is-err { font-weight: 600; color: var(--pds-pdnotes-err); }
.pds-pdnotes__msg.is-info { font-weight: 600; color: var(--primary-deep); }
.pds-pdnotes .is-shake { animation: pds-pdnotes-shake .4s; }
.pds-pdnotes__intro[hidden], .pds-pdnotes__done[hidden] { display: none; }
.pds-pdnotes__done { padding-bottom: .4rem; animation: pds-pdnotes-up .6s .45s var(--pds-pdnotes-ease) both; }
.pds-pdnotes__reset { margin-top: 1rem; padding: .55rem 1.2rem; border-radius: 999px; font-size: .84rem; font-weight: 600;
  border: 1px solid var(--border-strong); transition: border-color .2s, background .2s; }
.pds-pdnotes__reset:hover { border-color: var(--primary); background: var(--surface-sunk); }
@container (max-width: 340px) {
  .pds-pdnotes__row { flex-direction: column; border-radius: 18px; }
  .pds-pdnotes__go { width: 100%; border-radius: 14px; }
  .pds-pdnotes__input { border-radius: 14px; }
  .pds-pdnotes__title { font-size: 1.2rem; }
  .pds-pdnotes__card { padding: 1.15rem 1.05rem 1rem; }
  .pds-pdnotes__art { width: 60px; height: 48px; margin-bottom: .4rem; }
  .pds-pdnotes__env { width: 60px; height: 47px; }
  .pds-pdnotes__tick { width: 46px; height: 46px; }
  .pds-pdnotes__row { margin-top: .9rem; }
}
@keyframes pds-pdnotes-drop { from { opacity: 0; transform: translateY(-14px) rotate(-8deg); } }
@keyframes pds-pdnotes-fly { 0%, 30% { transform: none; opacity: 1; } 45% { transform: translate(-6px, 6px) rotate(6deg); }
  100% { transform: translate(150px, -120px) rotate(-26deg) scale(.45); opacity: 0; } }
@keyframes pds-pdnotes-draw { to { stroke-dashoffset: 0; } }
@keyframes pds-pdnotes-up { from { opacity: 0; transform: translateY(10px); } }
@keyframes pds-pdnotes-shake { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
@media (prefers-reduced-motion: reduce) {
  .pds-pdnotes.is-sent .pds-pdnotes__env { opacity: 0; }
  .pds-pdnotes .pds-pdnotes__tick :is(circle, path) { animation: none; stroke-dashoffset: 0; }
}

/* ---------- PDS-57 Quote Builder ---------- */
.pds-quotekit, .pds-quotekit * { box-sizing: border-box; }
.pds-quotekit { --pds-quotekit-err: color-mix(in srgb, #d23a2f 72%, var(--ink)); --pds-quotekit-ease: cubic-bezier(.22, 1, .36, 1);
  position: relative; display: flex; flex-direction: column; width: min(100%, 520px); max-height: 440px; margin: 0 auto; overflow: hidden;
  border-radius: 22px; background: var(--surface); border: 1px solid var(--border); color: var(--ink); text-align: left; font-size: .9375rem; line-height: 1.4;
  box-shadow: 0 30px 60px -36px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 55%, transparent); }
.pds-quotekit :where(p, fieldset, legend) { margin: 0; padding: 0; border: 0; min-width: 0; }
.pds-quotekit :where(button, input, select, textarea) { margin: 0; font: inherit; color: inherit; }
.pds-quotekit :where(button) { padding: 0; border: 0; background: none; cursor: pointer; }
.pds-quotekit :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-quotekit [tabindex="-1"]:focus { outline: none; }
.pds-quotekit__vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pds-quotekit__body { flex: 1; min-height: 0; display: grid; gap: .7rem; padding: 1.05rem 1.1rem .85rem; overflow-y: auto; scrollbar-width: thin; }
.pds-quotekit__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .2rem .6rem; }
.pds-quotekit__title { font-family: var(--font-display, Georgia, serif); font-size: 1.3rem; font-weight: 600; line-height: 1.15; }
.pds-quotekit__note { font-size: .72rem; color: var(--ink-faint); }
.pds-quotekit__label { display: block; width: 100%; margin-bottom: .4rem; font-size: .72rem; font-weight: 700; letter-spacing: .02em; color: var(--ink-muted); }
.pds-quotekit__err { margin-left: .25rem; font-style: normal; font-weight: 600; color: var(--pds-quotekit-err); }
.pds-quotekit__err:not(:empty)::before { content: "· "; }
.pds-quotekit__count { float: right; font-family: var(--font-mono, ui-monospace, monospace); font-size: .68rem; font-weight: 500; color: var(--ink-faint); transition: color .2s; }
.pds-quotekit__count.is-near { color: var(--gold); }
.pds-quotekit__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.pds-quotekit__chip { position: relative; display: inline-flex; cursor: pointer; }
.pds-quotekit__chip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.pds-quotekit__chip span { position: relative; display: inline-flex; align-items: center; height: 32px; padding: 0 .7rem; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap;
  color: var(--ink-muted); background: var(--surface); border: 1px solid var(--border-strong);
  transition: background .2s, color .2s, border-color .2s, transform .3s var(--pds-quotekit-ease); }
.pds-quotekit__chip span::before { content: ""; position: absolute; top: -5px; right: -4px; width: 15px; height: 15px; border-radius: 50%;
  background: var(--primary); box-shadow: 0 0 0 2px var(--surface); transform: scale(0); transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.pds-quotekit__chip span::after { content: ""; position: absolute; top: -2px; right: 1px; width: 5px; height: 8px; border-right: 2px solid var(--bg); border-bottom: 2px solid var(--bg);
  transform: rotate(45deg) scale(0); transition: transform .3s .08s var(--pds-quotekit-ease); }
.pds-quotekit__chip:hover span { color: var(--ink); border-color: var(--primary); }
.pds-quotekit__chip:active span { transform: scale(.95); }
.pds-quotekit__chip input:checked + span { color: var(--primary-deep); background: var(--primary-tint); border-color: color-mix(in srgb, var(--primary) 60%, transparent); }
.pds-quotekit__chip input:checked + span::before { transform: scale(1); }
.pds-quotekit__chip input:checked + span::after { transform: rotate(45deg) scale(1); }
.pds-quotekit__chip input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-quotekit__set.is-bad .pds-quotekit__chip span { border-color: color-mix(in srgb, var(--pds-quotekit-err) 55%, transparent); }
.pds-quotekit__pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .85rem; }
.pds-quotekit__field { display: block; min-width: 0; }
.pds-quotekit__input { display: block; width: 100%; height: 40px; padding: 0 .75rem; border-radius: 12px; font-size: .86rem; color: var(--ink);
  background: var(--surface-sunk); border: 1px solid var(--border-strong); transition: border-color .2s, background .2s; }
.pds-quotekit__input::placeholder { color: var(--ink-faint); opacity: 1; }
.pds-quotekit__input:hover { border-color: color-mix(in srgb, var(--primary) 50%, var(--border-strong)); }
.pds-quotekit__input:focus { outline: none; border-color: var(--primary); background: var(--surface); }
.pds-quotekit__input:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-quotekit__field.is-bad .pds-quotekit__input { border-color: var(--pds-quotekit-err); }
.pds-quotekit__select { appearance: none; -webkit-appearance: none; padding-right: 2rem; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-muted) 50%), linear-gradient(135deg, var(--ink-muted) 50%, transparent 50%);
  background-position: calc(100% - 17px) 52%, calc(100% - 12px) 52%; background-size: 5px 5px; background-repeat: no-repeat; }
.pds-quotekit__area { height: 52px; padding: .55rem .75rem; resize: none; line-height: 1.4; }
.pds-quotekit__foot { display: grid; gap: .5rem; padding: .65rem 1.1rem .8rem; border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface-sunk) 65%, var(--surface)); }
.pds-quotekit__summary { display: flex; align-items: center; gap: .55rem; min-height: 1.5em; font-size: .8rem; font-weight: 600; color: var(--ink-faint); }
.pds-quotekit__summary::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--border-strong); transition: background .3s, box-shadow .3s; }
.pds-quotekit__summary.is-set { color: var(--ink); }
.pds-quotekit__summary.is-set::before { background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent); }
.pds-quotekit__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem .8rem; }
.pds-quotekit__attach { position: relative; display: inline-flex; align-items: center; gap: .4rem; min-width: 0; max-width: 100%; padding: .35rem .2rem;
  border-radius: 10px; font-size: .78rem; font-weight: 600; color: var(--primary-deep); cursor: pointer; }
.pds-quotekit__attach:focus-within { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-quotekit__file { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.pds-quotekit__attach svg { flex: none; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pds-quotekit__fname { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.pds-quotekit__fname small { font-size: inherit; font-weight: 500; color: var(--ink-faint); }
.pds-quotekit.has-file .pds-quotekit__attach { color: var(--ink); }
.pds-quotekit__send { height: 42px; margin-left: auto; padding: 0 1.25rem; border-radius: 999px; font-weight: 700; color: var(--bg);
  background: linear-gradient(135deg, var(--primary), var(--primary-deep)); box-shadow: 0 12px 22px -14px color-mix(in srgb, var(--primary) 85%, transparent);
  transition: transform .3s var(--pds-quotekit-ease), box-shadow .3s; }
.pds-quotekit__send:hover { transform: translateY(-1px); box-shadow: 0 16px 26px -14px color-mix(in srgb, var(--primary) 95%, transparent); }
.pds-quotekit__done { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; justify-items: center; gap: .5rem; padding: 1.5rem;
  text-align: center; background: var(--surface); animation: pds-quotekit-in .5s var(--pds-quotekit-ease); }
.pds-quotekit__done[hidden] { display: none; }
.pds-quotekit__tick { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: .3rem; border-radius: 50%; color: var(--accent-deep);
  background: color-mix(in srgb, var(--accent) 16%, transparent); animation: pds-quotekit-pop .6s var(--pds-quotekit-ease) both; }
.pds-quotekit__tick svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.pds-quotekit__tick path { stroke-dasharray: 20; stroke-dashoffset: 20; animation: pds-quotekit-draw .45s .3s ease forwards; }
.pds-quotekit__recap { font-weight: 700; overflow-wrap: anywhere; }
.pds-quotekit__small { max-width: 30ch; font-size: .8rem; color: var(--ink-muted); }
.pds-quotekit__again { margin-top: .5rem; padding: .55rem 1.15rem; border-radius: 999px; font-size: .84rem; font-weight: 600; border: 1px solid var(--border-strong); transition: border-color .2s, background .2s; }
.pds-quotekit__again:hover { border-color: var(--primary); background: var(--surface-sunk); }
@keyframes pds-quotekit-in { from { opacity: 0; transform: scale(.98); } }
@keyframes pds-quotekit-pop { from { transform: scale(.4); opacity: 0; } 60% { transform: scale(1.08); } }
@keyframes pds-quotekit-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .pds-quotekit .pds-quotekit__tick path { animation: none; stroke-dashoffset: 0; }
}

/* ---------- PDS-58 Drop Zone ---------- */
.pds-dropzone, .pds-dropzone * { box-sizing: border-box; }
.pds-dropzone { --pds-dropzone-err: color-mix(in srgb, #d23a2f 72%, var(--ink)); --pds-dropzone-ease: cubic-bezier(.22, 1, .36, 1);
  container-type: inline-size; display: flex; flex-direction: column; gap: .65rem; width: min(100%, 440px); max-height: 440px; margin: 0 auto; font-size: .9375rem; line-height: 1.4; color: var(--ink); text-align: left; }
.pds-dropzone :where(p, ul) { margin: 0; padding: 0; }
.pds-dropzone :where(button) { margin: 0; padding: 0; border: 0; font: inherit; color: inherit; background: none; cursor: pointer; }
.pds-dropzone :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-dropzone svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pds-dropzone__vh, .pds-dropzone__input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; opacity: 0; }
.pds-dropzone__zone { position: relative; flex: none; display: grid; justify-items: center; align-content: center; gap: .25rem; min-height: 220px; padding: 1.25rem 1rem 1.15rem; border-radius: 20px; text-align: center; cursor: pointer;
  background: var(--surface); border: 1.5px dashed var(--border-strong);
  transition: border-color .25s, background .25s, transform .4s var(--pds-dropzone-ease), box-shadow .3s, min-height .5s var(--pds-dropzone-ease); }
.pds-dropzone.has-files .pds-dropzone__zone { min-height: 0; }
.pds-dropzone__zone:hover { border-color: var(--primary); }
.pds-dropzone__zone:has(.pds-dropzone__input:focus-visible) { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-dropzone.is-over .pds-dropzone__zone { border-style: solid; border-color: var(--primary); transform: scale(1.015);
  background: color-mix(in srgb, var(--primary-tint) 70%, var(--surface)); box-shadow: 0 0 0 6px color-mix(in srgb, var(--primary) 14%, transparent); }
.pds-dropzone__icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: .3rem; border-radius: 16px; color: var(--primary-deep); background: var(--primary-tint);
  transition: transform .45s var(--pds-dropzone-ease); }
.pds-dropzone__icon svg { width: 26px; height: 26px; }
:is(.pds-dropzone__zone:hover, .pds-dropzone.is-over, .is-playing .pds-dropzone) .pds-dropzone__icon { transform: translateY(-4px); }
.pds-dropzone.is-over .pds-dropzone__arrow { animation: pds-dropzone-bob .8s ease-in-out infinite; }
.pds-dropzone__big { font-size: .95rem; font-weight: 700; }
.pds-dropzone__big u { color: var(--primary-deep); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.pds-dropzone__types { font-size: .74rem; color: var(--ink-muted); }
.pds-dropzone__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .2rem .8rem; font-size: .74rem; color: var(--ink-muted); }
.pds-dropzone__note { display: inline-flex; align-items: center; gap: .35rem; }
.pds-dropzone__note svg { flex: none; width: 14px; height: 14px; }
.pds-dropzone__demo { padding: .25rem .1rem; font-weight: 700; color: var(--primary-deep); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.pds-dropzone__msg { font-size: .76rem; font-weight: 600; color: var(--pds-dropzone-err); }
.pds-dropzone__msg:empty { display: none; }
.pds-dropzone__list { display: grid; gap: .45rem; min-height: 0; padding: 2px; margin: -2px; overflow-y: auto; list-style: none; scrollbar-width: thin; }
.pds-dropzone__file { display: flex; align-items: center; gap: .65rem; padding: .55rem .55rem .55rem .6rem; border-radius: 14px; background: var(--surface); border: 1px solid var(--border);
  animation: pds-dropzone-in .45s var(--pds-dropzone-ease) both; }
.pds-dropzone__type { flex: none; display: grid; place-items: center; width: 34px; height: 38px; border-radius: 8px;
  font-family: var(--font-mono, ui-monospace, monospace); font-size: .58rem; font-weight: 700; color: var(--primary-deep); background: var(--primary-tint); }
.pds-dropzone__type.is-pdf { color: color-mix(in srgb, var(--gold) 55%, var(--ink)); background: color-mix(in srgb, var(--gold) 18%, var(--surface)); }
.pds-dropzone__meta { flex: 1; min-width: 0; display: grid; gap: .2rem; }
.pds-dropzone__name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .82rem; font-weight: 600; }
.pds-dropzone__size { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-family: var(--font-mono, ui-monospace, monospace); font-size: .66rem; color: var(--ink-muted); }
.pds-dropzone__prog { display: block; height: 4px; overflow: hidden; border-radius: 4px; background: var(--surface-sunk); }
.pds-dropzone__prog i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--accent)); transition: width .2s linear; }
.pds-dropzone__file.is-done .pds-dropzone__prog i { background: var(--accent-deep); }
.pds-dropzone__ok { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: var(--bg); background: var(--accent-deep);
  transform: scale(0); transition: transform .45s cubic-bezier(.34, 1.56, .64, 1); }
.pds-dropzone__ok svg { width: 13px; height: 13px; stroke-width: 3; }
.pds-dropzone__file.is-done .pds-dropzone__ok { transform: scale(1); }
.pds-dropzone__x { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: var(--ink-faint); transition: background .2s, color .2s; }
.pds-dropzone__x:hover { color: var(--ink); background: var(--surface-sunk); }
.pds-dropzone__x svg { width: 15px; height: 15px; }
@container (max-width: 340px) {
  .pds-dropzone__zone { padding: .95rem .8rem .9rem; }
  .pds-dropzone__icon { width: 42px; height: 42px; margin-bottom: .15rem; border-radius: 13px; }
  .pds-dropzone__icon svg { width: 22px; height: 22px; }
  .pds-dropzone__big { font-size: .88rem; }
  .pds-dropzone__file { gap: .5rem; }
  .pds-dropzone__type { width: 30px; height: 34px; }
}
@keyframes pds-dropzone-in { from { opacity: 0; transform: translateY(8px) scale(.98); } }
@keyframes pds-dropzone-bob { 50% { transform: translateY(-3px); } }

/* ---------- PDS-59 Brief Steps ---------- */
.pds-briefsteps, .pds-briefsteps * { box-sizing: border-box; }
.pds-briefsteps { --pds-briefsteps-err: color-mix(in srgb, #d23a2f 72%, var(--ink)); --pds-briefsteps-ease: cubic-bezier(.22, 1, .36, 1);
  container-type: inline-size; position: relative; display: flex; flex-direction: column; gap: .75rem; width: min(100%, 440px); height: 424px; margin: 0 auto; padding: 1.1rem;
  overflow: hidden; border-radius: 22px; background: var(--surface); border: 1px solid var(--border); color: var(--ink); text-align: left; font-size: .9375rem; line-height: 1.4;
  box-shadow: 0 30px 60px -36px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 55%, transparent); }
.pds-briefsteps :where(p, fieldset, legend, ol, dl, dd) { margin: 0; padding: 0; border: 0; min-width: 0; }
.pds-briefsteps :where(button, input, select, textarea) { margin: 0; font: inherit; color: inherit; }
.pds-briefsteps :where(button) { padding: 0; border: 0; background: none; cursor: pointer; }
.pds-briefsteps :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-briefsteps [tabindex="-1"]:focus { outline: none; }
.pds-briefsteps__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; margin-bottom: .7rem; list-style: none; }
.pds-briefsteps__step { display: flex; align-items: center; gap: .45rem; min-width: 0; font-size: .74rem; font-weight: 600; color: var(--ink-faint); transition: color .3s; }
.pds-briefsteps__dot { position: relative; flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%;
  font-family: var(--font-mono, ui-monospace, monospace); font-size: .72rem; background: var(--surface); border: 1.5px solid var(--border-strong);
  transition: background .3s, border-color .3s, color .3s, box-shadow .3s; }
.pds-briefsteps__dot b { transition: opacity .2s, transform .3s var(--pds-briefsteps-ease); }
.pds-briefsteps__dot svg { position: absolute; width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 20; stroke-dashoffset: 20; transition: stroke-dashoffset .4s .1s; }
.pds-briefsteps__step.is-on { color: var(--ink); }
.pds-briefsteps__step.is-on .pds-briefsteps__dot { color: var(--primary-deep); border-color: var(--primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent); }
.pds-briefsteps__step.is-done { color: var(--ink-muted); }
.pds-briefsteps__step.is-done .pds-briefsteps__dot { color: var(--bg); background: var(--primary); border-color: var(--primary); }
.pds-briefsteps__step.is-done .pds-briefsteps__dot b { opacity: 0; transform: scale(.4); }
.pds-briefsteps__step.is-done .pds-briefsteps__dot svg { stroke-dashoffset: 0; }
.pds-briefsteps__lbl { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.pds-briefsteps__bar { height: 4px; overflow: hidden; border-radius: 4px; background: var(--surface-sunk); }
.pds-briefsteps__bar i { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--accent));
  transform: scaleX(var(--p, .3333)); transform-origin: left; transition: transform .6s var(--pds-briefsteps-ease); }
.pds-briefsteps__stage { flex: 1; min-height: 0; margin: -3px; padding: 3px; overflow-y: auto; scrollbar-width: thin; }
.pds-briefsteps__panel { display: grid; gap: .65rem; }
.pds-briefsteps__panel[hidden], .pds-briefsteps__done[hidden], .pds-briefsteps__nav[hidden] { display: none; }
.pds-briefsteps__panel.is-fwd { animation: pds-briefsteps-fwd .5s var(--pds-briefsteps-ease); }
.pds-briefsteps__panel.is-back { animation: pds-briefsteps-back .5s var(--pds-briefsteps-ease); }
.pds-briefsteps__h { margin-bottom: .1rem; font-family: var(--font-display, Georgia, serif); font-size: 1.15rem; font-weight: 600; line-height: 1.2; }
.pds-briefsteps__field { display: grid; gap: .3rem; min-width: 0; }
.pds-briefsteps__name { display: block; width: 100%; font-size: .72rem; font-weight: 700; color: var(--ink-muted); }
.pds-briefsteps__name small { font-size: inherit; font-weight: 500; color: var(--ink-faint); }
.pds-briefsteps__err { float: right; font-style: normal; font-weight: 600; color: var(--pds-briefsteps-err); }
.pds-briefsteps__when .pds-briefsteps__name { margin-bottom: .3rem; }
.pds-briefsteps__input { display: block; width: 100%; height: 40px; padding: 0 .75rem; border-radius: 12px; font-size: .88rem; color: var(--ink);
  background: var(--surface-sunk); border: 1px solid var(--border-strong); transition: border-color .2s, background .2s; }
.pds-briefsteps__input::placeholder { color: var(--ink-faint); opacity: 1; }
.pds-briefsteps__input:hover { border-color: color-mix(in srgb, var(--primary) 50%, var(--border-strong)); }
.pds-briefsteps__input:focus { outline: none; border-color: var(--primary); background: var(--surface); }
.pds-briefsteps__input:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-briefsteps__field.is-bad .pds-briefsteps__input { border-color: var(--pds-briefsteps-err); }
.pds-briefsteps__select { appearance: none; -webkit-appearance: none; padding-right: 2rem; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-muted) 50%), linear-gradient(135deg, var(--ink-muted) 50%, transparent 50%);
  background-position: calc(100% - 17px) 52%, calc(100% - 12px) 52%; background-size: 5px 5px; background-repeat: no-repeat; }
.pds-briefsteps__area { height: 58px; padding: .55rem .75rem; resize: none; line-height: 1.4; }
.pds-briefsteps__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.pds-briefsteps__chip { position: relative; display: inline-flex; cursor: pointer; }
.pds-briefsteps__chip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.pds-briefsteps__chip span { display: inline-flex; align-items: center; height: 34px; padding: 0 .85rem; border-radius: 999px; font-size: .8rem; font-weight: 600; white-space: nowrap;
  color: var(--ink-muted); border: 1px solid var(--border-strong); transition: background .2s, color .2s, border-color .2s; }
.pds-briefsteps__chip:hover span { color: var(--ink); border-color: var(--primary); }
.pds-briefsteps__chip input:checked + span { color: var(--primary-deep); background: var(--primary-tint); border-color: color-mix(in srgb, var(--primary) 60%, transparent); }
.pds-briefsteps__chip input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-briefsteps__when.is-bad .pds-briefsteps__chip span { border-color: color-mix(in srgb, var(--pds-briefsteps-err) 55%, transparent); }
.pds-briefsteps__review { display: grid; gap: .45rem; }
.pds-briefsteps__rhead { display: flex; align-items: center; justify-content: space-between; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.pds-briefsteps__edit { padding: .15rem .45rem; border-radius: 8px; font-size: .76rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--primary-deep); transition: background .2s; }
.pds-briefsteps__edit:hover { background: var(--primary-tint); }
.pds-briefsteps__dl { display: grid; margin-top: .2rem; padding: .15rem .75rem; border-radius: 12px; background: var(--surface-sunk); }
.pds-briefsteps__rrow { display: grid; grid-template-columns: 4.8rem minmax(0, 1fr); gap: .5rem; padding: .2rem 0; font-size: .78rem; }
.pds-briefsteps__rrow + .pds-briefsteps__rrow { border-top: 1px solid var(--border); }
.pds-briefsteps__rrow dt { color: var(--ink-muted); }
.pds-briefsteps__rrow dd { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-weight: 600; overflow-wrap: anywhere; }
.pds-briefsteps__done { display: grid; justify-items: center; align-content: center; gap: .5rem; min-height: 100%; padding: .5rem; text-align: center;
  animation: pds-briefsteps-fwd .5s var(--pds-briefsteps-ease); }
.pds-briefsteps__tick { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; color: var(--accent-deep); background: color-mix(in srgb, var(--accent) 16%, transparent); }
.pds-briefsteps__tick svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.pds-briefsteps__tick path { stroke-dasharray: 20; stroke-dashoffset: 20; animation: pds-briefsteps-draw .45s .25s ease forwards; }
.pds-briefsteps__small { max-width: 32ch; font-size: .82rem; color: var(--ink-muted); }
.pds-briefsteps__small b { color: var(--ink); overflow-wrap: anywhere; }
.pds-briefsteps__again { margin-top: .4rem; padding: .55rem 1.15rem; border-radius: 999px; font-size: .84rem; font-weight: 600; border: 1px solid var(--border-strong); transition: border-color .2s, background .2s; }
.pds-briefsteps__again:hover { border-color: var(--primary); background: var(--surface-sunk); }
.pds-briefsteps__msg { font-size: .76rem; font-weight: 600; color: var(--pds-briefsteps-err); }
.pds-briefsteps__msg:empty { display: none; }
.pds-briefsteps__msg.is-info { color: var(--accent-deep); }
.pds-briefsteps__nav { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.pds-briefsteps__nav button { white-space: nowrap; }
.pds-briefsteps__back { height: 40px; padding: 0 .95rem; border-radius: 999px; font-size: .84rem; font-weight: 600; border: 1px solid var(--border-strong); transition: border-color .2s, opacity .2s; }
.pds-briefsteps__back:hover:not(:disabled) { border-color: var(--primary); }
.pds-briefsteps__back:disabled { opacity: .35; cursor: default; }
.pds-briefsteps__save { margin-right: auto; padding: .4rem .35rem; border-radius: 8px; font-size: .78rem; font-weight: 600; color: var(--primary-deep); text-decoration: underline; text-underline-offset: 3px; }
.pds-briefsteps__next { height: 40px; padding: 0 1.2rem; border-radius: 999px; font-size: .86rem; font-weight: 700; color: var(--bg);
  background: linear-gradient(135deg, var(--primary), var(--primary-deep)); box-shadow: 0 12px 22px -14px color-mix(in srgb, var(--primary) 85%, transparent);
  transition: transform .3s var(--pds-briefsteps-ease), box-shadow .3s; }
.pds-briefsteps__next:hover { transform: translateY(-1px); box-shadow: 0 16px 26px -14px color-mix(in srgb, var(--primary) 95%, transparent); }
@container (max-width: 330px) {
  .pds-briefsteps__step { flex-direction: column; gap: .25rem; font-size: .64rem; text-align: center; }
  .pds-briefsteps__lbl { max-width: 100%; }
  .pds-briefsteps__save { order: 3; flex-basis: 100%; margin: 0; text-align: center; }
  .pds-briefsteps__back { padding: 0 .75rem; }
  .pds-briefsteps__next { flex: 1 1 auto; padding: 0 .8rem; font-size: .82rem; }
}
@keyframes pds-briefsteps-fwd { from { opacity: 0; transform: translateX(18px); } }
@keyframes pds-briefsteps-back { from { opacity: 0; transform: translateX(-18px); } }
@keyframes pds-briefsteps-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .pds-briefsteps .pds-briefsteps__tick path { animation: none; stroke-dashoffset: 0; }
}

/* ---------- PDS-60 Quick Estimate ---------- */
.pds-estimator, .pds-estimator * { box-sizing: border-box; }
.pds-estimator { --pds-estimator-ease: cubic-bezier(.22, 1, .36, 1);
  container-type: inline-size; position: relative; display: flex; flex-direction: column; gap: .8rem; width: min(100%, 480px); max-height: 440px; margin: 0 auto; padding: 1.05rem;
  overflow: hidden; border-radius: 22px; background: var(--surface); border: 1px solid var(--border); color: var(--ink); text-align: left; font-size: .9375rem; line-height: 1.4;
  box-shadow: 0 30px 60px -36px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 55%, transparent); }
.pds-estimator :where(p, fieldset, legend) { margin: 0; padding: 0; border: 0; min-width: 0; }
.pds-estimator :where(button, input) { margin: 0; font: inherit; color: inherit; }
.pds-estimator :where(button) { padding: 0; border: 0; background: none; cursor: pointer; }
.pds-estimator :where(button):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-estimator__vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pds-estimator__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem .6rem; }
.pds-estimator__title { font-family: var(--font-display, Georgia, serif); font-size: 1.2rem; font-weight: 600; line-height: 1.15; }
.pds-estimator__flag { padding: .2rem .55rem; border-radius: 999px; font-size: .68rem; font-weight: 700; color: var(--ink-muted); background: var(--surface-sunk); border: 1px solid var(--border); }
.pds-estimator__opts { flex: 1; min-height: 0; display: grid; gap: .8rem; margin: -3px; padding: 3px; overflow-y: auto; scrollbar-width: thin; }
.pds-estimator__legend { margin-bottom: .4rem; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.pds-estimator__chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.pds-estimator__chip { position: relative; display: inline-flex; cursor: pointer; }
.pds-estimator__chip input, .pds-estimator__tier input, .pds-estimator__add input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.pds-estimator__chip span { display: inline-flex; align-items: center; height: 30px; padding: 0 .75rem; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap;
  color: var(--ink-muted); border: 1px solid var(--border-strong); transition: background .2s, color .2s, border-color .2s, transform .3s var(--pds-estimator-ease); }
.pds-estimator__chip:hover span { color: var(--ink); border-color: var(--primary); }
.pds-estimator__chip:active span { transform: scale(.95); }
.pds-estimator__chip input:checked + span { color: var(--bg); background: var(--primary); border-color: var(--primary); }
.pds-estimator__chip input:focus-visible + span, .pds-estimator__tier input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }
.pds-estimator__seg { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 3px; border-radius: 12px; background: var(--surface-sunk); border: 1px solid var(--border); }
.pds-estimator__pill { position: absolute; top: 3px; bottom: 3px; left: 3px; width: calc((100% - 6px) / 4); border-radius: 9px; background: var(--surface);
  box-shadow: 0 0 0 1px var(--border), 0 6px 14px -8px color-mix(in srgb, color-mix(in srgb, var(--ink) 15%, #000) 50%, transparent);
  transform: translateX(calc(var(--n, 0) * 100%)); transition: transform .45s var(--pds-estimator-ease); }
.pds-estimator__tier { position: relative; display: grid; cursor: pointer; }
.pds-estimator__tier span { display: grid; place-items: center; height: 32px; border-radius: 9px; font-size: .74rem; font-weight: 600; color: var(--ink-muted); transition: color .25s; }
.pds-estimator__tier:hover span { color: var(--ink); }
.pds-estimator__tier input:checked + span { color: var(--primary-deep); font-weight: 700; }
.pds-estimator__adds { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .35rem; }
.pds-estimator__add { position: relative; display: flex; align-items: center; gap: .55rem; min-width: 0; padding: .45rem .6rem; border-radius: 12px; cursor: pointer;
  border: 1px solid var(--border); transition: border-color .2s, background .2s; }
.pds-estimator__add:hover { border-color: color-mix(in srgb, var(--primary) 50%, var(--border)); }
.pds-estimator__add:has(input:checked) { border-color: color-mix(in srgb, var(--primary) 55%, var(--border)); background: color-mix(in srgb, var(--primary-tint) 55%, var(--surface)); }
.pds-estimator__box { flex: none; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 6px; border: 1.5px solid var(--border-strong); background: var(--surface);
  transition: background .2s, border-color .2s; }
.pds-estimator__box svg { width: 12px; height: 12px; fill: none; stroke: var(--bg); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 20; stroke-dashoffset: 20; transition: stroke-dashoffset .3s .05s; }
.pds-estimator__add input:checked ~ .pds-estimator__box { background: var(--primary); border-color: var(--primary); }
.pds-estimator__add input:checked ~ .pds-estimator__box svg, .pds-estimator__add.is-included .pds-estimator__box svg { stroke-dashoffset: 0; }
.pds-estimator__add input:focus-visible ~ .pds-estimator__box { outline: 2px solid var(--primary); outline-offset: 3px; }
.pds-estimator__an { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .8rem; font-weight: 600; }
.pds-estimator__ap { font-family: var(--font-mono, ui-monospace, monospace); font-size: .74rem; font-weight: 600; color: var(--ink-muted); }
.pds-estimator .pds-estimator__add.is-included { cursor: default; border-color: var(--border); background: var(--surface-sunk); }
.pds-estimator__add.is-included input { cursor: default; }
.pds-estimator__add.is-included .pds-estimator__box { background: var(--accent-deep); border-color: var(--accent-deep); }
.pds-estimator__add.is-included .pds-estimator__ap { font-family: inherit; font-weight: 700; color: var(--accent-deep); }
.pds-estimator__total { flex: none; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .1rem .8rem; padding: .8rem .9rem; border-radius: 16px;
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--primary) 16%, transparent), transparent 60%), var(--surface-sunk); border: 1px solid var(--border); }
.pds-estimator__sum { min-width: 0; display: grid; }
.pds-estimator__from { font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.pds-estimator__num { justify-self: start; font-family: var(--font-mono, ui-monospace, monospace); font-size: 1.7rem; font-weight: 600; line-height: 1.15; letter-spacing: -.02em; }
.pds-estimator__num.is-bump { animation: pds-estimator-bump .6s var(--pds-estimator-ease); }
.pds-estimator__note { grid-column: 1; font-size: .72rem; color: var(--ink-muted); }
.pds-estimator__note.is-sent { font-weight: 600; color: var(--accent-deep); }
.pds-estimator__send { grid-row: 1 / span 2; grid-column: 2; height: 42px; padding: 0 1.1rem; border-radius: 999px; font-size: .84rem; font-weight: 700; color: var(--bg);
  background: linear-gradient(135deg, var(--primary), var(--primary-deep)); box-shadow: 0 12px 22px -14px color-mix(in srgb, var(--primary) 85%, transparent);
  transition: transform .3s var(--pds-estimator-ease), box-shadow .3s; }
.pds-estimator__send:hover { transform: translateY(-1px); box-shadow: 0 16px 26px -14px color-mix(in srgb, var(--primary) 95%, transparent); }
@container (max-width: 340px) {
  .pds-estimator__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .pds-estimator__chip span { padding: 0 .6rem; font-size: .74rem; }
  .pds-estimator__tier span { font-size: .62rem; letter-spacing: -.02em; }
  .pds-estimator__total { column-gap: .6rem; padding: .75rem .8rem; }
  .pds-estimator__send { grid-row: 1; padding: 0 1rem; }
  .pds-estimator__long { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .pds-estimator__note { grid-column: 1 / -1; margin-top: .25rem; }
  .pds-estimator__num { font-size: min(1.45rem, 9cqi); }
}
@keyframes pds-estimator-bump { 30% { color: var(--primary-deep); transform: translateY(-2px); } }

