popup.css

254.3 KB · raw

1html,2body,3#app,4.popup-root {5  width: 320px;6  min-height: 520px;7  height: 520px;8  margin: 0;9}1011body {12  overflow: hidden;13  background: var(--bg);14  color: var(--t0);15  font-family: var(--font-ui);16  font-weight: 300;17  position: relative;18}1920* {21  box-sizing: border-box;22}2324button,25input,26textarea,27select {28  font: inherit;29}3031button {32  border: 0;33}3435.popup-root {36  position: relative;37  overflow: hidden;38}3940.peach-theme {41  color: var(--peach-t0);42  font-family: var(--font-ui);43  font-weight: 300;44  box-sizing: border-box;45  text-align: left;46}47.peach-theme, .peach-theme * { box-sizing: inherit; }4849.peach-brand-mark {50  width: 14px;51  height: 14px;52  flex-shrink: 0;53}5455.peach-status-pip.is-hidden {56  display: none;57}5859.peach-status-pip.unlocked {60  background: var(--peach-health-ok);61  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);62}6364.peach-status-pip.pulse {65  animation: pip-pulse 400ms var(--peach-curve-settle) both;66}6768/* Shell */69.peach-shell, .peach-screen {70  background:71    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),72    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),73    var(--peach-bg);74  border: 1px solid var(--peach-t3);75  box-shadow:76    0 2px 8px rgba(0,0,0,0.55),77    0 14px 48px rgba(0,0,0,0.7),78    0 0 0 1px rgba(240,232,216,0.04);79  overflow: hidden;80}81.peach-shell {82  display: grid;83  grid-template-rows: auto 1fr;84  min-height: 520px;85  position: relative;86  isolation: isolate;87}8889.peach-shell[data-surface="extension"] {90  width: min(320px, 100vw);91  border-radius: 0;92  height: 520px;93  max-height: 520px;94  overflow: hidden;95}9697/* ── Lock screen – full-window lock/create stage ── */98.lock-screen--vault-stage {99  display: flex;100  flex-direction: column;101  gap: 18px;102  padding: 20px 18px 18px;103  justify-content: flex-start;104}105.lock-screen--vault-stage .peach-lock-panel {106  margin-top: auto;107}108.peach-lock-headline--unlock {109  max-width: 220px;110  text-align: center;111  margin: 0 auto;112  padding: 0;113}114.peach-lock-hero--unlock {115  flex: 1 1 auto;116  padding-top: 0;117}118.peach-lock-panel--unlock {119  gap: 10px;120}121122.peach-lock-restore-link {123  background: transparent;124  border: none;125  cursor: pointer;126  font-family: var(--font-mono);127  font-size: 0.625rem;128  letter-spacing: 0.08em;129  color: var(--t1);130  padding: 5px 0;131  text-align: left;132  transition: color 150ms ease;133}134135.peach-lock-restore-link:hover {136  color: var(--t0);137}138.peach-shell[data-surface="extension"] .peach-stage {139  min-height: 250px;140}141142/* Screen (unlock) */143.peach-screen {144  width: min(320px, 100vw);145  min-height: 100%;146  height: 100%;147  border-radius: 0;148  padding: 16px 20px 18px;149  display: grid;150  gap: 14px;151}152.peach-screen[data-motion-phase="enter"] {153  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;154}155.peach-screen-header { min-height: 20px; }156157/* Wordmark */158.peach-wordmark {159  margin: 0;160  font-family: var(--font-display);161  font-size: 0.9375rem;162  font-style: italic;163  letter-spacing: 0.03em;164  color: var(--peach-t0);165  display: inline-flex;166  min-height: 1em;167}168169/* Motion text / char animation */170.peach-motion-text { display: inline-flex; min-height: 1em; }171.peach-motion-char {172  display: inline-block;173  white-space: pre;174  opacity: 0;175  transform: translateY(0.22em);176  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;177  animation-delay: calc(var(--peach-char-index, 0) * 20ms);178}179180/* Chrome */181.peach-chrome {182  position: relative;183  z-index: 10;184  padding: 16px 20px 0;185  display: flex;186  justify-content: space-between;187  align-items: center;188  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense189     fallback) per §15 regression guard. Without pointer-events:none, the190     empty header strip also sits above `.peach-overlay-view` (z-index:2)191     and swallows clicks meant for an overlay's back button / top search. */192  pointer-events: none;193}194.peach-chrome .peach-btn { pointer-events: auto; }195.peach-chrome.is-hidden-for-overlay,196.peach-search-wrap.is-hidden-for-overlay {197  opacity: 0;198  visibility: hidden;199  pointer-events: none;200}201/* The pair-device surface owns its own header and header — fully collapse the global202   chrome row so the warm gradient reaches the popup edge. */203.peach-chrome.is-collapsed,204.peach-search-wrap.is-collapsed {205  display: none;206}207.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }208.peach-status-pip {209  width: 5px;210  height: 5px;211  border-radius: 50%;212  background: var(--peach-t3);213  display: inline-flex;214  flex-shrink: 0;215  transition: background 400ms ease, box-shadow 400ms ease;216}217.peach-chrome-actions { display: flex; gap: 6px; }218219/* Shell body */220.peach-shell-body {221  position: relative;222  display: grid;223  grid-template-rows: 1fr auto;224  min-height: 0;225  min-width: 0;226  width: 100%;227  overflow: hidden;228  height: 100%;229}230.peach-shell-veil {231  position: absolute; inset: 0;232  background: #000; opacity: 0;233  pointer-events: none; z-index: 1;234}235.peach-shell[data-motion-phase="enter"] .peach-shell-body {236  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;237}238.peach-shell[data-motion-phase="exit"] .peach-shell-veil {239  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;240}241242/* Content frame */243.peach-content-frame {244  display: grid;245  grid-template-rows: 1fr auto;246  grid-template-columns: minmax(0, 1fr);247  align-content: start;248  min-height: 0;249  min-width: 0;250  overflow: hidden;251  transition: opacity 80ms ease, transform 80ms ease;252}253.peach-content-frame.navigating {254  opacity: 0.93;255  transform: translateX(2px);256}257.peach-content-frame[data-content-phase="enter"] {258  animation: peach-content-enter 135ms ease-out both;259}260.peach-content-frame[data-content-phase="exit"] {261  animation: peach-content-exit 95ms ease-in forwards;262}263.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }264265/* Stage */266.peach-stage {267  padding: 10px 20px 12px;268  display: grid;269  gap: 12px;270  align-content: start;271  min-width: 0;272  min-height: 0;273  max-width: 100%;274  overflow-y: auto;275  overflow-x: hidden;276  scrollbar-width: none;277  -ms-overflow-style: none;278  overscroll-behavior: contain;279}280.peach-stage::-webkit-scrollbar { display: none; }281282/* Entry name */283.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }284.peach-entry-header {285  position: relative;286  z-index: 1;287  display: flex;288  align-items: flex-start;289  gap: 6px;290  min-width: 0;291}292.peach-entry-header-name {293  flex: 1;294  min-width: 0;295}296.peach-entry-name {297  margin: 0;298  padding-bottom: 0.12em;299  font-family: var(--font-display);300  font-style: italic; font-weight: 400;301  font-size: 44px; line-height: 0.95;302  color: var(--peach-t0);303  display: -webkit-box;304  -webkit-line-clamp: 2;305  -webkit-box-orient: vertical;306  overflow: hidden;307  text-wrap: balance;308}309.peach-entry-name--lg { font-size: 40px; }310.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }311.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }312.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }313314/* Trash icon in entry header */315.peach-entry-trash-btn {316  flex-shrink: 0;317  padding: 4px;318  margin-top: 4px;319  background: transparent;320  border: none;321  cursor: pointer;322  color: var(--peach-t2);323  border-radius: 4px;324  transition: color 140ms ease, background 140ms ease;325  display: flex;326  align-items: center;327  justify-content: center;328}329.peach-entry-trash-btn:hover {330  color: var(--peach-t1);331  background: var(--peach-t3);332}333.peach-entry-trash-confirm {334  display: flex;335  align-items: center;336  gap: 6px;337  flex-shrink: 0;338  margin-top: 6px;339  flex-wrap: nowrap;340}341.peach-entry-trash-confirm-label {342  font-family: var(--font-mono);343  font-size: 0.5625rem;344  letter-spacing: 0.1em;345  color: var(--peach-t2);346  white-space: nowrap;347}348.peach-entry-name-button {349  padding: 0;350  background: transparent;351  text-align: left;352  cursor: pointer;353  max-width: 100%;354  overflow: hidden;355  display: block;356}357.peach-entry-name-char {358  display: inline-block;359  white-space: pre;360  opacity: 0;361  transform: translateY(0.22em);362  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;363  animation-delay: calc(var(--char-index, 0) * 20ms);364}365366/* Domain */367.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }368.peach-domain-row {369  width: 100%; border: 0; background: transparent; color: inherit;370  padding: 0; display: flex; justify-content: space-between; align-items: baseline;371  cursor: default;372}373.peach-domain-value {374  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;375  font-size: 0.625rem; font-style: italic;376  letter-spacing: 0.12em; color: var(--peach-t1);377}378379/* Fields */380.peach-fields { display: grid; gap: 10px; }381.peach-field-card { display: grid; gap: 7px; }382.peach-label {383  font-family: Inter, system-ui, sans-serif;384  text-transform: uppercase; letter-spacing: 0.2em;385  font-size: 0.5rem; color: var(--peach-t2);386}387.peach-add-field-btn {388  align-self: flex-start;389  background: none; border: none; padding: 2px 0;390  font-family: Inter, system-ui, sans-serif;391  font-size: 0.6875rem; color: var(--peach-accent);392  cursor: pointer; opacity: 0.75;393  letter-spacing: 0.02em;394}395.peach-add-field-btn:hover { opacity: 1; }396.peach-field-value-row {397  display: flex; justify-content: space-between;398  align-items: center; gap: 8px;399  min-width: 0;400}401.peach-field-value {402  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;403  font-size: 0.8125rem; color: var(--peach-t1);404  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;405  flex: 1;406  min-width: 0;407}408.peach-password-value {409  display: inline-flex;410  align-items: center;411  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;412  font-size: 1rem; letter-spacing: 0.3em; color: var(--peach-t0);413  overflow: hidden;414  text-overflow: ellipsis;415  white-space: nowrap;416  flex: 1;417  min-width: 0;418  max-width: 100%;419}420.peach-password-value.is-revealed {421  font-size: 0.875rem;422  letter-spacing: 0.08em;423}424.peach-password-text,425.peach-password-mask {426  display: block;427  width: 100%;428  overflow: hidden;429  white-space: nowrap;430  /* Render as uniform mid-line bullets, not baseline periods */431  font-family: Inter, system-ui, sans-serif;432  font-size: 0.625rem;433  letter-spacing: 3px;434  user-select: none;435}436.peach-field-actions { display: flex; gap: 4px; align-items: center; }437.peach-password-strength { display: flex; align-items: center; gap: 8px; }438.peach-strength-bar { display: flex; gap: 3px; }439.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }440.peach-strength-label {441  font-family: "IBM Plex Mono", monospace;442  font-style: italic;443  font-size: 0.5625rem;444  font-weight: 300;445  min-width: 36px;446  text-align: right;447  color: var(--peach-t2);448  letter-spacing: 0.06em;449}450451.peach-strength-hairline {452  display: flex;453  align-items: center;454  gap: 10px;455  margin-top: -2px;456}457458.peach-strength-hairline-track {459  flex: 1;460  height: 3px;461  border-radius: 2px;462  background: var(--peach-s2);463  overflow: hidden;464}465466.peach-strength-hairline-fill {467  height: 100%;468  border-radius: 2px;469  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),470    background 400ms ease;471}472473/* Note content (display) */474.peach-note-content {475  border-top: 1px solid var(--peach-t3);476  padding-top: 10px;477  font-family: var(--font-display);478  font-size: 0.9375rem;479  line-height: 1.75;480  color: var(--peach-t1);481}482483/* ── Inline editing ─────────────────────────────────────────────────── */484485/* Clickable display values */486.peach-inline-clickable {487  cursor: text;488  border-radius: 3px;489  transition: background 150ms ease;490}491.peach-inline-clickable:hover {492  background: rgba(240, 232, 216, 0.05);493}494495/* Subtle "edit" hint that appears on hover */496.peach-inline-edit-hint {497  font-family: Inter, system-ui, sans-serif;498  font-size: 0.5625rem;499  text-transform: uppercase;500  letter-spacing: 0.14em;501  color: var(--peach-t2);502  opacity: 0;503  transition: opacity 120ms ease;504  pointer-events: none;505  margin-left: 6px;506  flex-shrink: 0;507}508.peach-domain-row:hover .peach-inline-edit-hint {509  opacity: 1;510}511512/* Title editing */513.peach-inline-title-wrap {514  display: flex;515  flex-direction: column;516  gap: 6px;517}518.peach-inline-title-input {519  font-family: var(--font-display);520  font-style: italic;521  font-weight: 400;522  font-size: 40px;523  line-height: 0.95;524  color: var(--peach-t0);525  background: transparent;526  border: none;527  border-bottom: 1px solid var(--peach-accent);528  outline: none;529  width: 100%;530  padding: 2px 0;531}532533/* Generic inline field */534.peach-inline-field-wrap {535  display: flex;536  flex-direction: column;537  gap: 6px;538}539.peach-inline-input {540  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;541  font-size: 0.8125rem;542  color: var(--peach-t0);543  background: transparent;544  border: none;545  border-bottom: 1px solid var(--peach-accent);546  outline: none;547  width: 100%;548  padding: 3px 0;549}550.peach-inline-textarea {551  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;552  font-size: 0.6875rem;553  line-height: 1.7;554  color: var(--peach-t0);555  background: rgba(240, 232, 216, 0.04);556  border: 1px solid var(--peach-accent);557  border-radius: 4px;558  outline: none;559  width: 100%;560  padding: 8px;561  resize: vertical;562  min-height: 80px;563}564565/* Save / cancel row */566.peach-inline-actions {567  display: flex;568  gap: 6px;569  align-items: center;570}571.peach-inline-save-btn,572.peach-inline-cancel-btn {573  display: inline-flex;574  align-items: center;575  justify-content: center;576  width: 26px;577  height: 26px;578  border-radius: 4px;579  border: none;580  cursor: pointer;581  transition: background 140ms ease, opacity 140ms ease;582  flex-shrink: 0;583}584.peach-inline-save-btn {585  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);586  color: var(--peach-accent);587}588.peach-inline-save-btn:hover:not(:disabled) {589  background: color-mix(in srgb, var(--peach-accent) 30%, transparent);590}591.peach-inline-cancel-btn {592  background: rgba(240, 232, 216, 0.06);593  color: var(--peach-t2);594}595.peach-inline-cancel-btn:hover:not(:disabled) {596  background: rgba(240, 232, 216, 0.12);597  color: var(--peach-t1);598}599.peach-inline-save-btn:disabled,600.peach-inline-cancel-btn:disabled {601  opacity: 0.4;602  cursor: not-allowed;603}604605/* Inline password generator wrapper */606.peach-inline-generator-wrap {607  margin-top: 10px;608  padding-top: 10px;609  border-top: 1px solid var(--peach-t3);610  display: flex;611  flex-direction: column;612  gap: 8px;613}614.peach-inline-generator-cancel {615  align-self: flex-start;616  font-size: 0.6875rem;617  color: var(--peach-t2);618}619620/* "is-editing" card state */621.peach-field-card.is-editing {622  background: rgba(240, 232, 216, 0.02);623  border-radius: 6px;624  padding: 8px;625  margin: -8px;626}627628/* Inline tag editor on Entry detail view */629.peach-inline-tag-editor {630  display: flex;631  flex-direction: column;632  gap: 6px;633}634635/* Quiet inline "+ add X" link in the entry detail body */636.peach-entry-add-link {637  justify-self: start;638  margin-top: 8px;639}640641/* Additional URLs editor revealed by clicking the URL field */642.peach-additional-urls {643  display: flex;644  flex-direction: column;645  gap: 6px;646  margin-top: 8px;647}648.peach-additional-urls-label {649  font-size: 0.5625rem;650  letter-spacing: 0.1em;651  text-transform: uppercase;652  color: var(--peach-t2);653  margin-bottom: 2px;654}655/* UI-5 / LV-4: recovery words grid in the view-words reveal. */656.peach-recovery-words-grid {657  display: grid;658  grid-template-columns: 1fr 1fr;659  gap: 4px 10px;660}661.peach-recovery-word {662  font-family: "IBM Plex Mono", "SFMono-Regular", monospace;663  font-size: 11px;664  color: var(--peach-t0);665}666.peach-recovery-word b {667  color: var(--peach-t2);668  font-weight: 400;669  margin-right: 4px;670}671672/* UI-1 / HV-1b: dismissible sync alert banners at the top of the vault view. */673.peach-sync-alerts {674  display: flex;675  flex-direction: column;676  gap: 6px;677  padding: 8px 12px 0;678  /* Grid item of .peach-shell: without a zero min-width the nowrap alert text679     sizes this item to its min-content, blowing the fixed-width shell past680     320px and clipping/distorting everything else in it. */681  min-width: 0;682}683.peach-sync-alert {684  display: flex;685  align-items: center;686  gap: 8px;687  padding: 8px 10px;688  border-radius: 7px;689  min-width: 0;690  max-width: 100%;691  background: color-mix(in srgb, #C8A840 14%, transparent);692  border: 1px solid color-mix(in srgb, #C8A840 38%, transparent);693}694.peach-sync-alert-text {695  flex: 1;696  min-width: 0;697  font-family: "IBM Plex Mono", "SFMono-Regular", monospace;698  font-size: 10px;699  line-height: 1.45;700  color: var(--peach-t0);701  overflow: hidden;702  text-overflow: ellipsis;703  white-space: nowrap;704}705.peach-sync-alert-flip {706  flex-shrink: 0;707  background: none;708  border: none;709  color: var(--peach-t2);710  font-size: 14px;711  line-height: 1;712  cursor: pointer;713  padding: 0 2px;714}715.peach-sync-alert-flip:hover { color: var(--peach-t0); }716.peach-sync-alert-count {717  flex-shrink: 0;718  font-family: "IBM Plex Mono", "SFMono-Regular", monospace;719  font-size: 9px;720  color: var(--peach-t2);721  min-width: 24px;722  text-align: center;723}724.peach-sync-alert-dismiss {725  flex-shrink: 0;726  background: none;727  border: none;728  color: var(--peach-t2);729  font-size: 14px;730  line-height: 1;731  cursor: pointer;732  padding: 0 2px;733}734.peach-sync-alert-dismiss:hover { color: var(--peach-t0); }735736/* UI-8 / LV-2: non-blocking homograph warning under the URL editor. */737.peach-homograph-warning {738  margin: 4px 0 2px;739  padding: 6px 8px;740  border-radius: 6px;741  background: color-mix(in srgb, var(--peach-breach) 12%, transparent);742  border: 1px solid color-mix(in srgb, var(--peach-breach) 36%, transparent);743  color: var(--peach-t1);744  font-size: 0.6875rem;745  line-height: 1.4;746}747.peach-additional-url-row {748  display: flex;749  align-items: center;750  gap: 6px;751}752.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }753.peach-additional-url-remove {754  background: transparent;755  border: 1px solid var(--peach-t3);756  color: var(--peach-t2);757  width: 22px;758  height: 22px;759  border-radius: 4px;760  cursor: pointer;761  font-size: 0.875rem;762  line-height: 1;763  display: inline-flex;764  align-items: center;765  justify-content: center;766  flex-shrink: 0;767  transition: color 120ms ease, border-color 120ms ease;768}769.peach-additional-url-remove:hover:not(:disabled) {770  color: var(--peach-accent);771  border-color: var(--peach-border-accent);772}773.peach-additional-urls-add { align-self: flex-start; }774775/* Delete row */776.peach-entry-delete-row {777  display: flex;778  align-items: center;779  gap: 8px;780  padding-top: 18px;781  margin-top: 8px;782  border-top: 1px solid var(--peach-t3);783}784.peach-delete-btn {785  font-size: 0.6875rem;786  color: var(--peach-t2);787  padding: 4px 0;788}789.peach-delete-confirm-text {790  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;791  font-size: 0.6875rem;792  font-style: italic;793  color: var(--peach-t2);794  flex-shrink: 0;795}796797/* TOTP band */798.peach-totp-band {799  border-top: 1px solid var(--peach-t3);800  padding: 12px 20px 14px;801  position: relative;802  display: grid;803  grid-template-columns: 1fr auto;804  gap: 10px;805}806.peach-totp-main {807  min-width: 0;808  cursor: pointer;809  user-select: none;810}811.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }812.peach-totp-code-row {813  display: flex;814  align-items: flex-end;815  gap: 10px;816  min-width: 0;817}818.peach-totp-code {819  margin: 2px 0 0;820  font-family: var(--font-display);821  font-style: italic;822  font-weight: 300;823  font-size: 38px; color: var(--peach-accent);824  line-height: 0.95; min-height: 1em;825  min-width: 0;826}827.peach-totp-code-text {828  display: inline-flex;829  overflow: hidden;830  text-overflow: ellipsis;831  white-space: nowrap;832}833.peach-totp-copy-btn {834  margin-bottom: 2px;835  flex-shrink: 0;836  border-color: transparent;837}838.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }839.peach-totp-countdown {840  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;841  font-size: 22px; color: var(--peach-t1);842}843.peach-totp-ring { transform: rotate(-90deg); }844.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }845.peach-totp-ring-progress {846  fill: none; stroke: var(--peach-accent); stroke-width: 2;847  stroke-linecap: round;848  transition: stroke-dashoffset 1s linear, stroke 500ms ease;849}850/* Search bar */851.peach-search-wrap {852  border-top: 1px solid var(--peach-t3);853  background: var(--peach-s1);854  min-height: 54px; position: relative;855  box-shadow: inset 0 6px 18px transparent;856  transition: box-shadow 700ms ease;857}858.peach-search-wrap::before {859  content: "";860  position: absolute;861  left: 0;862  top: 0;863  height: 2px;864  width: var(--peach-totp-progress, 0%);865  background: var(--peach-accent);866  opacity: 0;867  transition: width 1s linear, opacity 180ms ease;868  pointer-events: none;869}870.peach-shell[data-totp-active="true"] .peach-search-wrap::before {871  opacity: 0.9;872}873.peach-shell[data-totp-active="true"] .peach-search-wrap {874  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);875}876877@keyframes peach-totp-code-flare {878  0%   { filter: brightness(1); }879  25%  { filter: brightness(1.3); }880  100% { filter: brightness(1); }881}882.peach-totp-code.is-hot {883  animation: peach-totp-code-flare 3000ms ease-in-out both;884}885.peach-search-bar {886  min-height: 54px;887  display: grid;888  grid-template-columns: auto minmax(0, 1fr) auto;889  align-items: center;890  gap: 8px; padding: 0 9px 0 12px;891}892.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }893.peach-search-input {894  border: 0; background: transparent; color: var(--peach-t0);895  font-family: var(--font-display);896  font-style: italic; font-size: 18px;897  outline: none; width: 100%; min-width: 0; padding: 0;898  caret-color: var(--peach-accent);899}900.peach-search-input::placeholder { color: var(--peach-t2); }901.peach-search-meta {902  display: grid;903  grid-auto-flow: column;904  align-items: center;905  justify-content: end;906  gap: 6px;907  min-width: max-content;908}909.peach-search-counter {910  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;911  font-size: 0.625rem; color: var(--peach-t2);912  display: inline-flex;913  align-items: center;914  line-height: 1;915}916.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }917918/* Buttons */919.peach-btn {920  border: 1px solid transparent; border-radius: 12px;921  background: transparent; color: var(--peach-t0);922  font-family: Inter, system-ui, sans-serif;923  font-size: 0.75rem; letter-spacing: 0.02em; padding: 8px 12px;924  cursor: pointer;925  transition:926    background-color var(--peach-dur-80) var(--peach-curve-arrival),927    color var(--peach-dur-80) var(--peach-curve-arrival),928    border-color var(--peach-dur-150) var(--peach-curve-arrival);929}930.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }931.peach-btn:disabled {932  opacity: 0.45;933  cursor: not-allowed;934}935.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 0.6875rem; }936.peach-btn--md { min-height: 38px; }937.peach-btn--accent {938  background: var(--peach-accent);939  color: rgba(0,0,0,0.92);940  font-weight: 500;941  box-shadow:942    0 1px 0 rgba(255,255,255,0.08) inset,943    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),944    0 3px 16px var(--peach-glow),945    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);946}947.peach-btn--accent:hover:not(:disabled) {948  background: var(--peach-accent);949  filter: brightness(1.10) saturate(1.05);950  box-shadow:951    0 1px 0 rgba(255,255,255,0.10) inset,952    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),953    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),954    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);955}956.peach-btn--ghost:not(.peach-icon-btn) { border-color: var(--peach-t3); color: var(--peach-t1); }957.peach-btn--ghost.peach-icon-btn { color: var(--peach-t1); }958.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }959.peach-icon-btn {960  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;961  display: inline-flex; align-items: center; justify-content: center;962  border-color: transparent;963  transition:964    color var(--peach-dur-80) var(--peach-curve-arrival),965    box-shadow var(--peach-dur-150) var(--peach-curve-arrival),966    background-color var(--peach-dur-80) var(--peach-curve-arrival);967}968.peach-icon-btn:hover:not(:disabled) {969  background: transparent;970  color: var(--peach-accent);971  box-shadow: 0 0 12px color-mix(in srgb, var(--peach-accent) 28%, transparent),972              0 0 4px color-mix(in srgb, var(--peach-accent) 16%, transparent);973}974975/* Topbar sync. Only rendered when a device is paired, so it never sits there976   as a control that cannot do anything. */977.peach-sync-btn.is-syncing { color: var(--peach-accent); }978.peach-sync-btn.is-syncing .peach-sync-icon {979  animation: peach-sync-spin 900ms linear infinite;980  transform-origin: 50% 50%;981}982.peach-sync-btn.is-ok { color: var(--peach-accent); }983.peach-sync-btn.is-error { color: var(--peach-breach, #d66); }984@keyframes peach-sync-spin { to { transform: rotate(360deg); } }985986/* Sync indicator light — same taxonomy as the Settings pip, sized for the987   14px topbar icon. Unlit when nothing has happened yet; never green when988   sync is not actually working. */989.peach-sync-btn { position: relative; }990.peach-sync-pip {991  position: absolute;992  top: 2px;993  right: 2px;994  width: 5px;995  height: 5px;996  border-radius: 50%;997  background: transparent;998}999.peach-sync-pip.is-ok,1000.peach-sync-pip.is-busy {1001  background: var(--peach-health-ok);1002  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-health-ok) 60%, transparent);1003}1004.peach-sync-pip.is-busy { animation: peach-sync-pip-pulse 1600ms ease-in-out infinite; }1005/* Yellow — the dial did not reach the peer, but the alarm will retry. Distinct1006   from is-error (red) so a transient network miss does not look like a real1007   fault. */1008.peach-sync-pip.is-warn {1009  background: var(--peach-health-warn);1010  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-health-warn) 60%, transparent);1011}1012.peach-sync-pip.is-error {1013  background: var(--peach-breach);1014  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-breach) 60%, transparent);1015}1016@keyframes peach-sync-pip-pulse {1017  0%, 100% { opacity: 1; }1018  50% { opacity: 0.35; }1019}1020@media (prefers-reduced-motion: reduce) {1021  .peach-sync-btn.is-syncing .peach-sync-icon { animation: none; opacity: 0.6; }1022  .peach-sync-pip.is-busy { animation: none; }1023}10241025.peach-btn:focus-visible {1026  outline: none;1027  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);1028}10291030/* Lock button */1031.peach-lock-icon { transform-origin: center; }1032/* Beat .peach-btn--ghost.peach-icon-btn (rest) and .peach-icon-btn:hover1033   (hover) so the lock reads accent in both states. */1034.peach-btn--ghost.peach-icon-btn.peach-lock-btn { color: var(--peach-accent); }1035.peach-lock-btn.is-locking .peach-lock-icon {1036  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);1037}10381039/* Biometric unlock button */1040.peach-biometric-btn {1041  display: flex;1042  align-items: center;1043  justify-content: center;1044  gap: 6px;1045  margin-top: 8px;1046  width: 100%;1047}10481049/* Copy button */1050.peach-copy-btn {1051  position: relative; overflow: hidden;1052  color: var(--peach-t2); border-color: var(--peach-t3);1053}1054.peach-copy-icon {1055  display: inline-flex; align-items: center; justify-content: center;1056  position: relative; z-index: 1;1057}1058.peach-copy-icon-svg { display: block; }1059.peach-copy-sheen {1060  position: absolute; inset: 0;1061  background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 30%, color-mix(in srgb, var(--peach-accent) 8%, transparent) 100%);1062  opacity: 0; transform: scaleX(0.15); transform-origin: left center;1063}1064.peach-copy-btn.is-copied {1065  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;1066  box-shadow:1067    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),1068    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),1069    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);1070}1071.peach-copy-btn.is-copied .peach-copy-icon {1072  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;1073}1074.peach-copy-btn.is-copied .peach-copy-sheen {1075  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;1076}1077.peach-copy-btn.is-retreat {1078  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;1079}1080.peach-copy-btn.is-retreat .peach-copy-sheen {1081  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;1082}1083.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }1084.peach-copy-drain-bar {1085  display: block; width: 100%; height: 100%;1086  background: var(--peach-accent); opacity: 0.7;1087  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;1088}10891090/* Unlock screen elements */1091.peach-underline-input {1092  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);1093  padding: 6px 0; background: transparent; color: var(--peach-t0);1094  outline: none;1095  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1096  font-size: 0.8125rem;1097  caret-color: var(--peach-accent);1098}1099.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }1100.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }1101.peach-hint {1102  margin: 0;1103  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1104  font-size: 0.625rem; color: var(--peach-t2);1105}1106.peach-unlock-footer {1107  margin-top: 4px; display: flex; align-items: center; gap: 7px;1108  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1109  font-size: 0.625rem; color: var(--peach-t2);1110}1111.peach-unlock-footer--lock {1112  padding-top: 2px;1113}11141115/* Desktop helper (peach-sync) code pairing — additive hooks. The shared pairing1116   classes (peach-pair-*) carry the shared layout; these only style the parts1117   unique to the typed-code path. Inline styles cover the SAS/confirm gate. */1118.peach-desktop-pair { display: flex; flex-direction: column; }1119.peach-desktop-enter,1120.peach-desktop-searching,1121.peach-desktop-paired,1122.peach-desktop-error {1123  display: flex; flex-direction: column; gap: 8px;1124  padding: 4px 18px 16px; text-align: center; align-items: center;1125}1126.peach-desktop-enter .peach-label { align-self: flex-start; }1127/* Sized for a full 19-character pairing code (A74H-48J3-KI32-OEP4) in a1128   320px popup — a 6-digit legacy helper code still reads fine at this size. */1129.peach-code-input {1130  text-align: center; letter-spacing: 0.12em; padding-left: 0.12em;1131  font-size: 15px;1132}1133.peach-code-input::placeholder { letter-spacing: 0.12em; }11341135/* Sync card "pair a device" options — bordered, raised tappable rows that read1136   as buttons on any card hue (theme-neutral light overlay, not the peach accent). */1137.peach-sync-pair-option {1138  display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;1139  width: 100%; text-align: left; cursor: pointer; font-family: inherit;1140  padding: 11px 12px; border-radius: 10px;1141  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);1142  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);1143  color: var(--peach-t0);1144  transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;1145}1146.peach-sync-pair-option + .peach-sync-pair-option { margin-top: 8px; }1147.peach-sync-pair-option:hover {1148  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);1149  border-color: color-mix(in srgb, var(--peach-t0) 28%, transparent);1150}1151.peach-sync-pair-option:active { transform: translateY(1px); }1152.peach-sync-pair-option:disabled { opacity: 0.5; cursor: default; }1153.peach-sync-pair-option-icon { flex-shrink: 0; display: flex; align-items: center; color: var(--peach-t1); margin-top: 1px; }1154.peach-sync-pair-option-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }1155.peach-sync-pair-option-title { font-size: 0.8125rem; font-weight: 600; }1156.peach-sync-pair-option-sub { font-size: 0.6875rem; line-height: 1.45; color: var(--peach-t2); }1157.peach-sync-pair-option-chevron { flex-shrink: 0; color: var(--peach-t2); font-size: 1.05rem; line-height: 1.3; }11581159/* Breach badge */1160.peach-breach-badge {1161  display: flex;1162  position: relative;1163  z-index: 1;1164  align-items: center;1165  gap: 7px;1166  font-size: 0.5625rem;1167  color: var(--peach-breach);1168  padding: 5px 10px;1169  margin-bottom: 4px;1170  border-radius: 8px;1171  background: rgba(220, 80, 60, 0.07);1172  border: 1px solid rgba(220, 80, 60, 0.18);1173  letter-spacing: 0.04em;1174}11751176.peach-password-value.is-breached {1177  color: rgba(220, 80, 60, 0.75);1178  border-bottom: 1px solid rgba(220, 80, 60, 0.22);1179}11801181/* ── Overlay views ─────────────────────────────────────────────────── */1182.peach-overlay-view {1183  position: absolute;1184  inset: 0;1185  display: flex;1186  flex-direction: column;1187  background:1188    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1189    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1190    var(--peach-bg);1191  z-index: 2;1192  overflow: hidden;1193  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1194}11951196.peach-overlay-view:has(.stk-shell) {1197  background: var(--peach-bg);1198}1199@keyframes overlay-in {1200  from { opacity: 0; transform: translateY(8px); }1201  to   { opacity: 1; transform: translateY(0); }1202}1203.peach-overlay-view.ov-enter-up {1204  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1205}1206.peach-overlay-view.ov-exit-up {1207  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1208}1209.peach-overlay-view.ov-enter-right {1210  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1211}1212.peach-overlay-view.ov-exit-right {1213  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1214}12151216@keyframes ov-enter-up {1217  from { opacity: 0; transform: translateY(18px); }1218  to   { opacity: 1; transform: translateY(0); }1219}1220@keyframes ov-exit-up {1221  from { opacity: 1; transform: translateY(0); }1222  to   { opacity: 0; transform: translateY(-12px); }1223}1224@keyframes ov-enter-right {1225  from { opacity: 0; transform: translateX(20px); }1226  to   { opacity: 1; transform: translateX(0); }1227}1228@keyframes ov-exit-right {1229  from { opacity: 1; transform: translateX(0); }1230  to   { opacity: 0; transform: translateX(20px); }1231}12321233/* Overlay shared header */1234.peach-overlay-header {1235  padding: 10px 12px 8px;1236  display: flex;1237  align-items: center;1238  gap: 10px;1239  flex-shrink: 0;1240}1241/* Back button — circular pill matching the settings stack masthead (.stk-back) */1242.peach-overlay-header .peach-btn--ghost.peach-icon-btn {1243  width: 28px;1244  height: 28px;1245  flex: 0 0 28px;1246  border-radius: 999px;1247  border: 1px solid var(--peach-border);1248  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);1249  color: var(--peach-t1);1250  padding: 0;1251}1252.peach-overlay-header .peach-btn--ghost.peach-icon-btn:hover {1253  color: var(--peach-t0);1254  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);1255  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1256}1257.peach-overlay-title {1258  font-family: var(--font-display);1259  font-style: italic;1260  font-weight: 400;1261  font-size: 20px;1262  line-height: 1;1263  color: var(--peach-t0);1264  flex: 1;1265  text-align: center;1266}1267/* Balances the 28px back button so the title stays visually centred */1268.peach-overlay-spacer {1269  width: 28px;1270  flex: 0 0 28px;1271}12721273.peach-overlay-card {1274  background: var(--peach-s1);1275  border: 1px solid var(--peach-t3);1276  border-radius: 12px;1277  overflow: hidden;1278  width: 100%;1279}12801281.peach-onboarding-alt-actions {1282  display: flex;1283  flex-direction: column;1284  gap: 4px;1285  padding: 0;1286}12871288.peach-settings-copy {1289  margin: 0 0 10px;1290  font-size: 0.6875rem;1291  line-height: 1.5;1292  color: var(--peach-t2);1293}12941295.peach-settings-copy strong {1296  color: var(--peach-t0);1297}12981299.peach-settings-copy--spacious {1300  margin-bottom: 12px;1301}13021303.peach-settings-copy--result {1304  color: var(--peach-accent);1305  font-size: 0.8125rem;1306  text-align: center;1307  padding: 8px 0;1308}13091310.peach-settings-copy--danger {1311  color: var(--peach-breach);1312}13131314.peach-settings-copy--success {1315  color: var(--peach-accent);1316}13171318.peach-inline-feedback {1319  font-size: 0.6875rem;1320  margin: 10px 0 0;1321}13221323.peach-inline-feedback--ok {1324  color: var(--peach-accent);1325}13261327.peach-inline-feedback--error {1328  color: var(--peach-breach);1329}13301331.peach-inline-feedback--muted {1332  color: var(--peach-t2);1333  font-size: 0.625rem;1334  margin: 4px 0;1335}13361337.peach-inline-feedback--spaced {1338  margin-top: 12px;1339}13401341.peach-settings-actions--row {1342  display: flex;1343  gap: 6px;1344}13451346.peach-settings-actions--end {1347  margin-top: 14px;1348  justify-content: flex-end;1349}13501351.peach-settings-stack {1352  display: flex;1353  flex-direction: column;1354  gap: 6px;1355}13561357.peach-settings-stack--tight {1358  gap: 4px;1359}13601361.peach-settings-stack--spacious {1362  gap: 8px;1363}13641365.peach-settings-input {1366  width: 100%;1367  box-sizing: border-box;1368  padding: 8px 10px;1369  background: rgba(0, 0, 0, 0.22);1370  border: 1px solid transparent;1371  border-radius: 6px;1372  color: var(--peach-t0);1373  font-family: var(--font-ui);1374  font-size: 0.75rem;1375  outline: none;1376  transition: border-color 120ms ease, background 120ms ease;1377}13781379.peach-settings-input:focus {1380  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1381  background: rgba(0, 0, 0, 0.28);1382}13831384.peach-settings-input[type="password"] {1385  font-family: var(--font-mono);1386  letter-spacing: 0.04em;1387}13881389.peach-hidden-file-input {1390  display: none;1391}13921393.peach-checkbox-note {1394  display: flex;1395  align-items: flex-start;1396  gap: 8px;1397  font-size: 0.6875rem;1398  color: var(--peach-t1);1399  cursor: pointer;1400  margin: 12px 0;1401}14021403.peach-checkbox-note input {1404  margin-top: 1px;1405}14061407.peach-danger-notice {1408  background: rgba(220, 80, 60, 0.08);1409  border: 1px solid rgba(220, 80, 60, 0.2);1410  border-radius: 6px;1411  padding: 9px 11px;1412  font-size: 0.6875rem;1413  color: var(--peach-t1);1414  line-height: 1.5;1415}14161417.peach-info-notice {1418  font-size: 0.6875rem;1419  color: var(--peach-t1);1420  line-height: 1.5;1421  background: var(--surface-card);1422  border: 1px solid var(--peach-t3);1423  border-radius: 6px;1424  padding: 8px 10px;1425}14261427.peach-info-notice--warn {1428  border-color: rgba(220, 38, 38, 0.4);1429  background: rgba(220, 38, 38, 0.06);1430  color: rgba(220, 38, 38, 0.92);1431  margin-bottom: 8px;1432}14331434/* Warm helpful-context note — reads as a soft aside, not an alert. */1435.peach-info-notice--note {1436  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);1437  border-color: color-mix(in srgb, var(--peach-accent) 18%, transparent);1438  color: var(--peach-t2);1439}14401441.peach-strength-row {1442  display: flex;1443  align-items: center;1444  gap: 8px;1445  margin-bottom: 10px;1446}14471448.peach-strength-track {1449  flex: 1;1450  height: 4px;1451  background: var(--peach-s2);1452  border-radius: 2px;1453  overflow: hidden;1454}14551456.peach-strength-fill {1457  height: 100%;1458  border-radius: 2px;1459  transition: width 120ms ease, background 120ms ease;1460}14611462/* ── Type selector tabs ── */1463.peach-type-tabs {1464  display: flex;1465  gap: 0;1466  background: var(--peach-t4);1467  border-radius: 8px;1468  padding: 3px;1469}14701471.peach-type-tab {1472  flex: 1;1473  display: flex;1474  align-items: center;1475  justify-content: center;1476  gap: 6px;1477  padding: 6px 10px;1478  border-radius: 6px;1479  border: none;1480  background: transparent;1481  cursor: pointer;1482  font-family: Inter, system-ui, sans-serif;1483  font-size: 0.6875rem;1484  font-weight: 400;1485  letter-spacing: 0.04em;1486  color: var(--peach-t1);1487  transition: background 150ms ease, color 150ms ease;1488}14891490.peach-type-tab.is-active {1491  background: var(--peach-s2);1492  color: var(--peach-t0);1493  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1494}14951496.peach-type-tab:not(.is-active):hover {1497  color: var(--peach-t0);1498}14991500.peach-type-tab svg {1501  opacity: 0.7;1502  flex-shrink: 0;1503}15041505.peach-type-tab.is-active svg {1506  opacity: 1;1507}15081509/* ── List view ───────────────────────────────────────────────────────── */1510.peach-list-top {1511  padding: 0 10px;1512  min-height: 46px;1513  display: flex;1514  align-items: center;1515  gap: 6px;1516  border-bottom: 1px solid var(--peach-t3);1517  flex-shrink: 0;1518  background: var(--peach-s1);1519}15201521.peach-vault-list {1522  flex: 1;1523  overflow-y: auto;1524  scrollbar-width: none;1525}1526.peach-vault-list::-webkit-scrollbar { display: none; }15271528/* Scrollbar — vault list */1529.peach-vault-list {1530  scrollbar-width: thin;1531  scrollbar-color: var(--peach-t3) transparent;1532}15331534.peach-vault-list::-webkit-scrollbar {1535  width: 3px;1536}15371538.peach-vault-list::-webkit-scrollbar-thumb {1539  background: var(--peach-t3);1540  border-radius: 2px;1541}15421543.peach-entry-row {1544  width: 100%;1545  display: flex;1546  align-items: center;1547  gap: 10px;1548  padding: 9px 16px;1549  background: transparent;1550  border: none;1551  border-bottom: 1px solid var(--peach-t3);1552  cursor: pointer;1553  color: inherit;1554  text-align: left;1555  transition: background 80ms ease;1556}1557.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1558.peach-entry-row:last-child { border-bottom: none; }1559.peach-entry-row.is-active {1560  box-shadow: inset 2px 0 0 var(--peach-accent);1561  background: rgba(240,232,216,0.03);1562}1563.peach-entry-row:focus-visible {1564  outline: none;1565  box-shadow: 0 0 0 1px var(--peach-border-accent);1566  background: rgba(240,232,216,0.03);1567}1568.peach-entry-row-icon {1569  width: 26px; height: 26px;1570  border-radius: 7px;1571  border: 1px solid var(--peach-t3);1572  display: flex; align-items: center; justify-content: center;1573  color: var(--peach-t2);1574  flex-shrink: 0;1575}1576.peach-entry-row-icon.is-breach {1577  border-color: rgba(220,80,60,0.3);1578  color: rgba(220,80,60,0.7);1579}15801581/* Title-initials chip used as the favicon fallback for login entries whose1582 * real favicon hasn't been cached by the browser yet (freshly-imported,1583 * never-visited domains). Background colour is hashed from the title so1584 * the same entry always shows the same chip. The chip fits the same1585 * 26×26 row icon slot the favicon would take. */1586.peach-favicon-initials {1587  display: inline-flex;1588  align-items: center;1589  justify-content: center;1590  width: 100%;1591  height: 100%;1592  border-radius: 4px;1593  font-family: "IBM Plex Mono", monospace;1594  font-size: 0.5625rem;1595  font-weight: 600;1596  letter-spacing: 0.04em;1597  color: rgba(240, 232, 216, 0.92);1598  text-transform: uppercase;1599  user-select: none;1600}1601.peach-entry-row-info { flex: 1; min-width: 0; }1602.peach-entry-row-name {1603  display: block;1604  font-family: var(--font-display);1605  font-size: 1.0625rem;1606  font-style: italic;1607  font-weight: 400;1608  color: var(--peach-t0);1609  line-height: 1.2;1610  white-space: nowrap;1611  overflow: hidden;1612  text-overflow: ellipsis;1613}1614.peach-entry-row-meta {1615  display: block;1616  font-family: "IBM Plex Mono", monospace;1617  font-size: 0.5625rem;1618  color: var(--peach-t2);1619  margin-top: 1px;1620  letter-spacing: 0.05em;1621}1622.peach-entry-row-dot {1623  width: 5px; height: 5px;1624  border-radius: 50%;1625  background: rgba(220,80,60,0.7);1626  flex-shrink: 0;1627}1628.peach-new-entry-row {1629  display: flex;1630  align-items: center;1631  justify-content: center;1632  gap: 6px;1633  width: 100%;1634  padding: 11px;1635  background: transparent;1636  border: none;1637  border-top: 1px solid var(--peach-t3);1638  color: var(--peach-t2);1639  font-family: "IBM Plex Mono", monospace;1640  font-size: 0.5625rem;1641  text-transform: uppercase;1642  letter-spacing: 0.14em;1643  cursor: pointer;1644  flex-shrink: 0;1645  transition: color 120ms ease, background 120ms ease;1646}1647.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }16481649/* ── Multi-select mode ─────────────────────────────────────────────── */16501651/* Select-mode trigger button in sort bar — same shape as trash btn */1652.peach-sort-select-btn {1653  display: flex;1654  align-items: center;1655  justify-content: center;1656  padding: 3px 5px;1657  background: transparent;1658  border: none;1659  cursor: pointer;1660  color: var(--peach-t2);1661  border-radius: 4px;1662  transition: color 140ms ease, background 140ms ease;1663}1664.peach-sort-select-btn:hover {1665  color: var(--peach-t1);1666  background: var(--peach-t3);1667}16681669/* Sort bar in select mode */1670.peach-select-cancel-btn {1671  background: transparent;1672  border: none;1673  padding: 0 4px;1674  cursor: pointer;1675  font-family: "IBM Plex Mono", monospace;1676  font-size: 0.5625rem;1677  letter-spacing: 0.12em;1678  text-transform: uppercase;1679  color: var(--peach-t2);1680  transition: color 140ms ease;1681  flex-shrink: 0;1682}1683.peach-select-cancel-btn:hover { color: var(--peach-t0); }16841685.peach-select-count-label {1686  flex: 1;1687  text-align: center;1688  font-family: "IBM Plex Mono", monospace;1689  font-size: 0.5625rem;1690  letter-spacing: 0.14em;1691  text-transform: uppercase;1692  color: var(--peach-t1);1693}16941695.peach-select-all-btn {1696  background: transparent;1697  border: none;1698  padding: 0 4px;1699  cursor: pointer;1700  font-family: "IBM Plex Mono", monospace;1701  font-size: 0.5625rem;1702  letter-spacing: 0.12em;1703  text-transform: uppercase;1704  color: var(--peach-t2);1705  transition: color 140ms ease;1706  flex-shrink: 0;1707}1708.peach-select-all-btn:hover { color: var(--peach-accent); }17091710/* List in select mode */1711.peach-vault-list.is-selecting .peach-entry-row {1712  cursor: default;1713}1714.peach-vault-list.is-selecting .peach-entry-row:hover {1715  background: rgba(240,232,216,0.02);1716}1717.peach-vault-list.is-selecting .peach-entry-row.is-selected {1718  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1719}1720.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1721  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1722}17231724/* Select indicator circles in icon slot */1725.peach-entry-row-icon.is-select-icon {1726  color: var(--peach-t2);1727}1728.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1729  color: var(--peach-accent);1730}17311732/* Delete action bar at bottom (replaces new-entry row) */1733.peach-select-action-bar {1734  display: flex;1735  align-items: center;1736  justify-content: center;1737  gap: 7px;1738  width: 100%;1739  padding: 11px;1740  background: transparent;1741  border: none;1742  border-top: 1px solid var(--peach-t3);1743  color: var(--peach-t1);1744  font-family: "IBM Plex Mono", monospace;1745  font-size: 0.5625rem;1746  text-transform: uppercase;1747  letter-spacing: 0.14em;1748  cursor: pointer;1749  flex-shrink: 0;1750  transition: color 120ms ease, background 120ms ease;1751}1752.peach-select-action-bar:not(:disabled):hover {1753  color: var(--peach-t0);1754  background: rgba(220,80,60,0.06);1755}1756.peach-select-action-bar:not(:disabled):hover svg {1757  stroke: rgba(220,80,60,0.8);1758}1759.peach-select-action-bar:disabled,1760.peach-select-action-bar.is-empty {1761  color: var(--peach-t2);1762  cursor: default;1763  opacity: 0.5;1764}1765.peach-search-counter-list {1766  white-space: nowrap;1767  flex-shrink: 0;1768}1769.peach-list-empty {1770  min-height: 180px;1771  display: grid;1772  place-items: center;1773  color: var(--peach-t2);1774  font-family: "IBM Plex Mono", monospace;1775  font-size: 0.6875rem;1776}17771778/* ── Settings view ───────────────────────────────────────────────────── */1779.peach-settings-body {1780  flex: 1;1781  overflow-y: auto;1782  min-height: 0;1783  display: flex;1784  flex-direction: column;1785  padding: 2px 0 10px;1786}1787.peach-settings-group {1788  margin: 4px 10px;1789  padding: 9px 14px 11px;1790  border-radius: 12px;1791  border: 1px solid rgba(255, 255, 255, 0.07);1792  background: rgba(26, 20, 16, 0.60);1793  backdrop-filter: blur(10px) saturate(1.3);1794  -webkit-backdrop-filter: blur(10px) saturate(1.3);1795}17961797.peach-settings-group + .peach-settings-group {1798  margin-top: 6px;1799}18001801@supports not (backdrop-filter: blur(1px)) {1802  .peach-settings-group {1803    background: rgba(26, 20, 16, 0.90);1804    border-color: rgba(255, 255, 255, 0.09);1805    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1806  }1807}18081809.light .peach-settings-group,1810[data-theme="light"] .peach-settings-group {1811  background: rgba(245, 237, 226, 0.70);1812  border-color: rgba(26, 18, 8, 0.08);1813  backdrop-filter: blur(10px) saturate(1.2);1814  -webkit-backdrop-filter: blur(10px) saturate(1.2);1815}18161817@supports not (backdrop-filter: blur(1px)) {1818  .light .peach-settings-group,1819  [data-theme="light"] .peach-settings-group {1820    background: rgba(245, 237, 226, 0.97);1821    border-color: rgba(26, 18, 8, 0.10);1822  }1823}1824.peach-export-intro {1825  padding-bottom: 8px;1826}1827.peach-export-card {1828  display: grid;1829  gap: 10px;1830}1831.peach-rune-canvas {1832  border-radius: 8px;1833  background: rgba(0, 0, 0, 0.22);1834  flex: 1;1835  align-self: center;1836}1837.peach-script-input {1838  font-family: "PeachScript", monospace;1839  font-size: 0.6875rem;1840  line-height: 1.9;1841  letter-spacing: 0.06em;1842  color: var(--peach-t0);1843  background: rgba(0, 0, 0, 0.22);1844  border: none;1845  border-radius: 6px;1846  padding: 12px;1847  width: 100%;1848  min-height: 96px;1849  resize: vertical;1850  word-break: break-all;1851  scrollbar-width: none;1852  -ms-overflow-style: none;1853}18541855.peach-script-input::-webkit-scrollbar { display: none; }1856.peach-csv-warning {1857  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1858  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1859  color: var(--peach-t0);1860  border-radius: 6px;1861  padding: 10px 12px;1862  margin-bottom: 8px;1863  font-size: 0.75rem;1864  line-height: 1.45;1865}1866.peach-export-card--primary {1867  background:1868    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1869}18701871/* Export menu — distribute the three format cards across the popup. */1872.peach-export-menu {1873  display: flex;1874  flex-direction: column;1875  flex: 1;1876  min-height: 0;1877}1878.peach-export-menu .peach-settings-group {1879  flex: 1;1880  display: flex;1881  flex-direction: column;1882  justify-content: center;1883  gap: 10px;1884}18851886/* Result view — the script-string fills the remaining vertical surface. */1887.peach-export-result-group {1888  flex: 1;1889  display: flex;1890  flex-direction: column;1891  min-height: 0;1892  border-bottom: none;1893}1894.peach-export-result-group .peach-export-card {1895  flex: 1;1896  min-height: 0;1897  display: flex;1898  flex-direction: column;1899  gap: 10px;1900}1901.peach-export-result-group .peach-export-card-copy {1902  flex-shrink: 0;1903}1904.peach-export-result-group .peach-settings-label {1905  flex-shrink: 0;1906}1907.peach-export-result-group button {1908  flex-shrink: 0;1909}1910.peach-export-card-head {1911  display: flex;1912  align-items: center;1913  justify-content: space-between;1914  gap: 10px;1915}1916.peach-export-card-copy {1917  margin: 0;1918  font-size: 0.75rem;1919  line-height: 1.55;1920  color: var(--peach-t1);1921}1922.peach-export-note {1923  margin: 0;1924  font-size: 0.625rem;1925  line-height: 1.5;1926  color: var(--peach-t2);1927}1928.peach-export-strength-track {1929  height: 3px;1930  background: var(--peach-border);1931  border-radius: 2px;1932  margin: 4px 0 2px;1933  overflow: hidden;1934}1935.peach-export-strength-fill {1936  height: 100%;1937  border-radius: 2px;1938  transition: width 250ms ease, background 250ms ease;1939}1940.peach-export-strength-warn {1941  margin: 0;1942  font-size: 0.625rem;1943  line-height: 1.5;1944  color: #e84040;1945  font-family: "IBM Plex Mono", monospace;1946}1947.peach-export-strength-hint {1948  margin: 0;1949  font-size: 0.625rem;1950  line-height: 1.5;1951  color: var(--peach-t2);1952  font-family: "IBM Plex Mono", monospace;1953}1954.peach-export-pill {1955  display: inline-flex;1956  align-items: center;1957  padding: 4px 8px;1958  border-radius: 999px;1959  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1960  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1961  color: var(--peach-accent);1962  font-family: "IBM Plex Mono", monospace;1963  font-size: 0.5rem;1964  letter-spacing: 0.12em;1965  text-transform: uppercase;1966  white-space: nowrap;1967}1968.peach-export-pill--danger {1969  border-color: rgba(220,80,60,0.22);1970  background: rgba(220,80,60,0.08);1971  color: var(--peach-breach);1972}1973.peach-settings-label {1974  margin: 0 0 6px;1975  font-family: "IBM Plex Mono", monospace;1976  font-size: 0.5rem;1977  text-transform: uppercase;1978  letter-spacing: 0.18em;1979  color: var(--peach-t2);1980}1981.peach-settings-row {1982  display: flex;1983  align-items: center;1984  justify-content: space-between;1985  gap: 12px;1986  min-height: 34px;1987  padding: 6px 0;1988  font-size: 0.8125rem;1989  color: var(--peach-t1);1990}1991.peach-settings-row--meta { color: var(--peach-t2); font-size: 0.75rem; }1992.peach-settings-value {1993  font-family: "IBM Plex Mono", monospace;1994  font-size: 0.625rem;1995  color: var(--peach-t2);1996}19971998.peach-settings-value--status {1999  display: flex;2000  align-items: center;2001  gap: 6px;2002}20032004.peach-settings-link {2005  font-family: "IBM Plex Mono", monospace;2006  font-size: 0.625rem;2007  color: var(--peach-accent);2008  text-decoration: none;2009  cursor: pointer;2010}2011.peach-settings-link:hover {2012  text-decoration: underline;2013}20142015.peach-settings-row--stack {2016  flex-direction: column;2017  align-items: stretch;2018  gap: 6px;2019}20202021.peach-settings-row--top {2022  align-items: flex-start;2023}20242025.peach-settings-row-main {2026  display: flex;2027  flex-direction: column;2028  gap: 4px;2029  flex: 1;2030}2031.peach-toggle {2032  width: 28px; height: 16px;2033  border-radius: 999px;2034  background: var(--peach-t3);2035  border: 1px solid var(--peach-t3);2036  display: flex; align-items: center; justify-content: flex-start; padding: 2px;2037  flex-shrink: 0;2038  transition: background 200ms ease, border-color 200ms ease;2039  cursor: pointer;2040}2041.peach-toggle.is-on {2042  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);2043  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2044}2045.peach-toggle-knob {2046  width: 10px; height: 10px;2047  border-radius: 50%;2048  background: var(--peach-t2);2049  flex-shrink: 0;2050  transform: translateX(0px);2051  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);2052}2053.peach-toggle.is-on .peach-toggle-knob {2054  background: var(--peach-accent);2055  transform: translateX(12px);2056}2057.peach-settings-footer {2058  display: flex;2059  align-items: center;2060  gap: 8px;2061  margin-top: auto;2062  padding: 14px 16px 8px;2063  font-family: "IBM Plex Mono", monospace;2064  font-size: 0.5625rem;2065  color: var(--peach-t2);2066}20672068/* ── Settings home navigation ──────────────────────────────────────────── */2069.peach-settings-nav-label {2070  margin: 0 0 2px;2071  padding: 12px 16px 4px;2072  font-family: "IBM Plex Mono", monospace;2073  font-size: 0.5rem;2074  text-transform: uppercase;2075  letter-spacing: 0.18em;2076  color: var(--peach-t2);2077}20782079.peach-settings-cat-row {2080  display: flex;2081  align-items: center;2082  gap: 10px;2083  width: 100%;2084  padding: 9px 16px;2085  background: none;2086  border: none;2087  border-bottom: 1px solid var(--peach-t3);2088  cursor: pointer;2089  text-align: left;2090  color: inherit;2091  transition: background var(--peach-dur-80) ease;2092}2093.peach-settings-cat-row:hover {2094  background: var(--peach-t3);2095}2096.peach-settings-cat-row:last-child {2097  border-bottom: none;2098}20992100.peach-settings-cat-icon {2101  width: 28px;2102  height: 28px;2103  border-radius: 7px;2104  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2105  color: var(--peach-accent);2106  display: flex;2107  align-items: center;2108  justify-content: center;2109  flex-shrink: 0;2110}2111/* Light theme: peach-on-cream is too low-contrast — both colors are warm.2112   Darken the icon stroke to ink and bump the bg tint so the icon reads2113   sharply while the cell still feels accent-tinted. */2114.light .peach-settings-cat-icon {2115  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);2116  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));2117}21182119.peach-settings-cat-content {2120  flex: 1;2121  display: flex;2122  flex-direction: column;2123  gap: 2px;2124  min-width: 0;2125}21262127.peach-settings-cat-name {2128  font-size: 0.8125rem;2129  font-weight: 450;2130  color: var(--peach-t0);2131  line-height: 1.2;2132}21332134.peach-settings-cat-desc {2135  font-size: 0.625rem;2136  color: var(--peach-t2);2137  line-height: 1.3;2138  white-space: nowrap;2139  overflow: hidden;2140  text-overflow: ellipsis;2141}21422143.peach-settings-cat-chevron {2144  color: var(--peach-t2);2145  flex-shrink: 0;2146  opacity: 0.5;2147}21482149/* ── Settings sub-view section labels ──────────────────────────────────── */2150.peach-settings-sub-label {2151  margin: 12px 0 4px;2152  font-family: "IBM Plex Mono", monospace;2153  font-size: 0.5rem;2154  text-transform: uppercase;2155  letter-spacing: 0.18em;2156  color: var(--peach-t2);2157}2158.peach-settings-sub-label:first-child {2159  margin-top: 4px;2160}21612162/* ── Settings: collapsible Advanced section ─────────────────────────────── */2163.peach-settings-advanced-toggle {2164  display: flex;2165  align-items: center;2166  justify-content: space-between;2167  width: 100%;2168  background: none;2169  border: none;2170  cursor: pointer;2171  padding: 12px 0 4px;2172  margin: 0;2173  color: inherit;2174}2175.peach-settings-advanced-toggle:hover .peach-settings-advanced-chevron {2176  color: var(--peach-t1);2177}2178.peach-settings-advanced-chevron {2179  font-size: 0.5625rem;2180  color: var(--peach-t3);2181  letter-spacing: 0;2182  transition: color 120ms ease;2183}21842185.peach-sync-disclosure-toggle {2186  min-height: 48px;2187  padding: 10px 0;2188  text-align: left;2189}21902191.peach-sync-disclosure-toggle > span:first-child {2192  display: flex;2193  flex-direction: column;2194  gap: 3px;2195}21962197.peach-sync-disclosure-summary {2198  color: var(--peach-t2);2199  font-size: 0.6875rem;2200  line-height: 1.35;2201}22022203.peach-sync-disclosure-content {2204  padding-bottom: 4px;2205}22062207/* ── Feedback form ──────────────────────────────────────────────────────── */2208.peach-feedback-group {2209  flex: 1;2210  display: flex;2211  flex-direction: column;2212  border-bottom: none;2213}22142215.peach-feedback-intro {2216  margin: 4px 0 14px;2217  font-size: 0.75rem;2218  line-height: 1.55;2219  color: var(--peach-t1);2220}22212222.peach-feedback-chips {2223  display: flex;2224  flex-wrap: wrap;2225  gap: 6px;2226  margin-bottom: 14px;2227}22282229.peach-feedback-chip {2230  padding: 4px 10px;2231  border-radius: 999px;2232  border: 1px solid var(--peach-t3);2233  background: none;2234  color: var(--peach-t2);2235  font-size: 0.6875rem;2236  font-family: var(--font-ui);2237  cursor: pointer;2238  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,2239    background var(--peach-dur-80) ease;2240}2241.peach-feedback-chip:hover {2242  border-color: var(--peach-t2);2243  color: var(--peach-t1);2244}2245.peach-feedback-chip.is-active {2246  border-color: color-mix(in srgb, var(--peach-accent) 82%, white 18%);2247  background: color-mix(in srgb, var(--peach-accent) 22%, rgba(255, 255, 255, 0.08));2248  color: color-mix(in srgb, var(--peach-accent) 86%, white 14%);2249  box-shadow:2250    0 0 0 1px color-mix(in srgb, var(--peach-accent) 42%, transparent),2251    0 0 14px color-mix(in srgb, var(--peach-accent) 22%, transparent);2252  font-weight: 700;2253}22542255.peach-feedback-textarea {2256  flex: 1;2257  width: 100%;2258  min-height: 120px;2259  box-sizing: border-box;2260  background: rgba(0, 0, 0, 0.22);2261  border: 1px solid transparent;2262  border-radius: 6px;2263  color: var(--peach-t0);2264  font-size: 0.75rem;2265  font-family: var(--font-ui);2266  line-height: 1.5;2267  padding: 8px 10px;2268  resize: none;2269  outline: none;2270  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;2271}2272.peach-feedback-textarea:focus {2273  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);2274  background: rgba(0, 0, 0, 0.28);2275}2276.peach-feedback-textarea:focus {2277  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2278}2279.peach-feedback-textarea::placeholder {2280  color: var(--peach-t2);2281}22822283.peach-feedback-meta {2284  margin: 6px 0 0;2285  font-size: 0.625rem;2286  color: var(--peach-t2);2287  font-family: "IBM Plex Mono", monospace;2288}22892290.peach-feedback-result {2291  margin: 8px 0 0;2292  font-size: 0.6875rem;2293  font-family: "IBM Plex Mono", monospace;2294}2295.peach-feedback-result--ok { color: var(--peach-sync-ok); }2296.peach-feedback-result--err { color: var(--peach-breach); }22972298.peach-feedback-submit {2299  width: 100%;2300  margin-top: 12px;2301  justify-content: center;2302}23032304.peach-feedback-anon {2305  margin: 8px 0 0;2306  font-size: 0.625rem;2307  color: var(--peach-t2);2308  text-align: center;2309}23102311.peach-feedback-thanks {2312  margin: auto 0;2313  padding: 18px 14px;2314  border: 1px solid color-mix(in srgb, var(--peach-accent) 42%, transparent);2315  border-radius: 8px;2316  background:2317    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 16%, transparent), transparent),2318    rgba(0, 0, 0, 0.18);2319  color: var(--peach-t1);2320  text-align: center;2321}23222323.peach-feedback-thanks p {2324  margin: 0;2325  font-size: 0.75rem;2326  line-height: 1.5;2327}23282329.peach-feedback-thanks-title {2330  color: var(--peach-t0);2331  font-family: "Cormorant Garamond", serif;2332  font-size: 1.375rem !important;2333  line-height: 1.1 !important;2334  margin-bottom: 8px !important;2335}23362337.peach-passkey-badge {2338  margin-left: 8px;2339  font-size: 0.625rem;2340  letter-spacing: 0.06em;2341  text-transform: uppercase;2342  color: var(--peach-t2);2343  font-family: var(--font-ui);2344  vertical-align: middle;2345}23462347.peach-passkey-delete-btn {2348  color: var(--peach-breach);2349  border-color: rgba(229, 85, 85, 0.25);2350}23512352.peach-passkey-delete-confirm {2353  display: flex;2354  align-items: center;2355  gap: 8px;2356  padding: 8px 10px;2357  background: rgba(229, 85, 85, 0.06);2358  border: 1px solid rgba(229, 85, 85, 0.2);2359  border-radius: 6px;2360}23612362.peach-passkey-delete-confirm-copy {2363  flex: 1;2364  font-size: 0.6875rem;2365  color: var(--peach-t1);2366}23672368.peach-passkey-delete-btn--confirm {2369  color: var(--peach-breach);2370  border-color: rgba(229, 85, 85, 0.4);2371}23722373.peach-passkey-activity {2374  flex-direction: column;2375  align-items: flex-start;2376  gap: 4px;2377}23782379.peach-passkey-meta {2380  font-size: 0.6875rem;2381  color: var(--peach-t2);2382}23832384.peach-passkey-actions {2385  position: relative;2386  z-index: 1;2387  margin-top: 14px;2388  display: flex;2389  flex-direction: column;2390  gap: 8px;2391}23922393.peach-passkey-approval {2394  display: flex;2395  flex-direction: column;2396  align-items: center;2397  padding: 16px 20px 14px;2398  gap: 8px;2399  text-align: center;2400}24012402.peach-passkey-approval-icon {2403  width: 36px;2404  height: 36px;2405  border-radius: 10px;2406  background: var(--peach-s2);2407  border: 1px solid var(--peach-t3);2408  display: flex;2409  align-items: center;2410  justify-content: center;2411  flex-shrink: 0;2412  color: var(--peach-accent);2413}24142415.peach-passkey-approval-icon img,2416.peach-passkey-approval-icon svg {2417  width: 22px;2418  height: 22px;2419  border-radius: 5px;2420}24212422.peach-passkey-approval-rp {2423  font-family: var(--font-ui);2424  font-size: 0.75rem;2425  color: var(--peach-t2);2426  letter-spacing: 0.03em;2427}24282429.peach-passkey-approval-action {2430  font-family: var(--font-display);2431  font-style: italic;2432  font-weight: 300;2433  font-size: 18px;2434  color: var(--peach-t0);2435  line-height: 1.1;2436  margin: 1px 0;2437}24382439.peach-passkey-approval-user {2440  font-family: var(--font-mono);2441  font-size: 0.6875rem;2442  color: var(--peach-t1);2443  background: var(--peach-s2);2444  border: 1px solid var(--peach-t3);2445  border-radius: 4px;2446  padding: 3px 8px;2447}24482449.peach-passkey-approval-notice {2450  font-size: 0.625rem;2451  color: var(--peach-t2);2452  line-height: 1.5;2453  max-width: 220px;2454}24552456.peach-passkey-approval-actions {2457  display: flex;2458  gap: 8px;2459  width: 100%;2460  margin-top: 6px;2461}24622463.peach-passkey-approval-actions .peach-btn {2464  flex: 1;2465}24662467/* ── Inline generator drawer ── */2468.peach-generator-drawer {2469  display: grid;2470  grid-template-rows: 0fr;2471  transition: grid-template-rows 320ms var(--peach-curve-arrival);2472  overflow: hidden;2473}2474.peach-generator-drawer.is-open {2475  grid-template-rows: 1fr;2476}2477.peach-generator-drawer-inner {2478  min-height: 0;2479  overflow: hidden;2480}2481.peach-generator-drawer-content {2482  border-top: 1px solid var(--peach-t3);2483  padding: 8px 0 4px;2484  display: flex;2485  flex-direction: column;2486  gap: 8px;2487}24882489/* ── Compact generator (inside entry edit) ── */2490.peach-generator-drawer-content--compact {2491  border-top: 1px solid var(--peach-t3);2492  padding: 8px 0 2px;2493  gap: 7px;2494}2495.peach-pwgen-compact-display-row {2496  display: flex;2497  align-items: center;2498  gap: 6px;2499}2500.peach-pwgen-compact-output {2501  flex: 1;2502  min-width: 0;2503  font-family: "IBM Plex Mono", monospace;2504  font-size: 0.6875rem;2505  font-weight: 400;2506  letter-spacing: 0.04em;2507  color: var(--peach-t0);2508  background: rgba(240, 232, 216, 0.04);2509  border: 1px solid var(--peach-t3);2510  border-radius: 5px;2511  padding: 5px 8px;2512  line-height: 1.5;2513  outline: none;2514  transition: border-color 120ms ease;2515}25162517.peach-pwgen-compact-output:focus {2518  border-color: var(--peach-t1);2519}2520.peach-pwgen-compact-controls {2521  display: flex;2522  align-items: center;2523  gap: 6px;2524}2525.peach-pwgen-compact-slider {2526  flex: 1;2527  min-width: 0;2528  height: 2px !important;2529}2530.peach-pwgen-compact-controls .peach-pwgen-len-num {2531  flex-shrink: 0;2532  min-width: 18px;2533  text-align: right;2534}2535.peach-pwgen-compact-pills {2536  display: flex;2537  gap: 3px;2538  flex-shrink: 0;2539}2540.peach-pwgen-compact-pills .peach-pwgen-pill {2541  padding: 2px 7px;2542  font-size: 0.5rem;2543}2544.peach-pwgen-compact-use {2545  flex-shrink: 0;2546  font-size: 0.625rem !important;2547  padding: 3px 9px !important;2548  min-height: 22px !important;2549  border-radius: 5px !important;2550}25512552/* ── Password edit row (input + eye toggle side-by-side) ── */2553.peach-password-edit-row {2554  display: flex;2555  align-items: center;2556  gap: 6px;2557}2558.peach-password-edit-row .peach-inline-input {2559  flex: 1;2560  min-width: 0;2561}25622563/* ── Generate toggle link ── */2564.peach-generate-toggle-link {2565  display: inline-flex;2566  align-items: center;2567  gap: 5px;2568  background: none;2569  border: none;2570  padding: 0;2571  cursor: pointer;2572  font-family: "IBM Plex Mono", monospace;2573  font-size: 0.625rem;2574  color: var(--peach-t2);2575  letter-spacing: 0.04em;2576  transition: color 120ms ease;2577  align-self: flex-start;2578}2579.peach-generate-toggle-link:hover {2580  color: var(--peach-accent);2581}25822583/* Holds the generate + history toggle links on one row under the editor. */2584.peach-password-edit-links {2585  display: flex;2586  align-items: center;2587  gap: 14px;2588  flex-wrap: wrap;2589}25902591/* ── Past-password history list ── */2592.peach-password-history {2593  display: grid;2594  gap: 4px;2595  margin-top: 2px;2596  max-height: 168px;2597  overflow-y: auto;2598  scrollbar-width: thin;2599}2600.peach-history-row {2601  display: flex;2602  align-items: center;2603  justify-content: space-between;2604  gap: 8px;2605  padding: 5px 7px;2606  border-radius: 7px;2607  background: color-mix(in srgb, var(--peach-accent) 5%, transparent);2608  border: 1px solid color-mix(in srgb, var(--peach-accent) 9%, transparent);2609}2610.peach-history-main {2611  display: flex;2612  flex-direction: column;2613  gap: 1px;2614  min-width: 0;2615  flex: 1;2616}2617.peach-history-pw {2618  font-family: "IBM Plex Mono", monospace;2619  font-size: 0.6875rem;2620  color: var(--peach-t1);2621  white-space: nowrap;2622  overflow: hidden;2623  text-overflow: ellipsis;2624}2625.peach-history-pw .peach-password-mask {2626  letter-spacing: 0.08em;2627  color: var(--peach-t2);2628}2629.peach-history-age {2630  font-family: "IBM Plex Mono", monospace;2631  font-size: 0.5625rem;2632  color: var(--peach-t3, var(--peach-t2));2633  letter-spacing: 0.03em;2634}2635.peach-history-actions {2636  display: flex;2637  align-items: center;2638  gap: 2px;2639  flex-shrink: 0;2640}2641.peach-history-use {2642  font-family: "IBM Plex Mono", monospace;2643  font-size: 0.5625rem;2644  letter-spacing: 0.05em;2645  padding: 3px 7px;2646}2647.peach-history-empty {2648  font-family: "IBM Plex Mono", monospace;2649  font-size: 0.625rem;2650  line-height: 1.45;2651  color: var(--peach-t2);2652  padding: 6px 8px;2653  border-radius: 7px;2654  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);2655  border: 1px solid color-mix(in srgb, var(--peach-accent) 8%, transparent);2656}26572658/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2659.peach-entry-body {2660  flex: 1;2661  overflow-y: auto;2662  overflow-x: hidden;2663  scrollbar-width: none;2664  -ms-overflow-style: none;2665  overscroll-behavior: contain;2666  display: grid;2667  gap: 10px;2668  align-content: start;2669  padding: 10px 20px 14px;2670  min-width: 0;2671  min-height: 0;2672}2673.peach-entry-body::-webkit-scrollbar { display: none; }26742675/* Type-toggle pills + inline note toolbar */2676.peach-new-type-row {2677  display: flex;2678  align-items: center;2679  gap: 6px;2680  margin-bottom: 2px;2681}2682.peach-new-type-btn {2683  background: transparent;2684  border: 1px solid var(--peach-t3);2685  border-radius: 12px;2686  padding: 3px 10px;2687  font-family: "IBM Plex Mono", monospace;2688  font-size: 0.5625rem;2689  letter-spacing: 0.12em;2690  text-transform: uppercase;2691  color: var(--peach-t2);2692  cursor: pointer;2693  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2694}2695.peach-new-type-btn.is-active {2696  color: var(--peach-t0);2697  border-color: var(--peach-accent);2698  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2699}2700.peach-new-type-btn:not(.is-active):hover {2701  color: var(--peach-t1);2702  border-color: var(--peach-t2);2703}27042705/* Editable title */2706.peach-new-title-wrap { margin: 0 0 2px; }2707.peach-new-title-input {2708  background: transparent;2709  border: none;2710  outline: none;2711  width: 100%;2712  color: var(--peach-t0);2713  font-family: var(--font-display);2714  font-style: italic;2715  font-weight: 400;2716  font-size: 40px;2717  line-height: 0.95;2718  caret-color: var(--peach-accent);2719}2720.peach-new-title-input::placeholder { color: var(--peach-t2); }27212722/* Editable domain field */2723.peach-domain-edit-row {2724  display: flex;2725  align-items: center;2726  gap: 6px;2727}27282729.peach-domain-edit-row .peach-domain-value--edit {2730  flex: 1;2731  width: 0;2732}27332734.peach-domain-url-btn {2735  flex-shrink: 0;2736  background: transparent;2737  border: none;2738  cursor: pointer;2739  color: var(--peach-t3);2740  padding: 2px 3px;2741  display: flex;2742  align-items: center;2743  line-height: 0;2744  border-radius: 3px;2745  transition: color 120ms ease;2746}27472748.peach-domain-url-btn:hover {2749  color: var(--peach-accent);2750}27512752.peach-domain-value--edit {2753  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2754  font-size: 0.625rem;2755  font-style: italic;2756  letter-spacing: 0.12em;2757  color: var(--peach-t1);2758  background: transparent;2759  border: none;2760  border-bottom: 1px solid var(--peach-t3);2761  outline: none;2762  width: 100%;2763  padding: 2px 0;2764  caret-color: var(--peach-accent);2765  transition: border-color 140ms ease, color 140ms ease;2766}2767.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2768.peach-domain-value--edit:focus {2769  border-bottom-color: rgba(240, 232, 216, 0.28);2770  color: var(--peach-t0);2771}27722773/* Editable field values (username, password, totp) */2774.peach-field-value--edit {2775  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2776  font-size: 0.8125rem;2777  color: var(--peach-t0);2778  background: transparent;2779  border: none;2780  border-bottom: 1px solid var(--peach-t3);2781  outline: none;2782  flex: 1;2783  min-width: 0;2784  padding: 3px 0;2785  caret-color: var(--peach-accent);2786  transition: border-color 140ms ease, color 140ms ease;2787}2788.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2789.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2790.peach-field-value--edit:focus {2791  border-bottom-color: rgba(240, 232, 216, 0.28);2792  color: var(--peach-t0);2793}27942795/* "+ add optional field" links */2796.peach-entry-add-links {2797  display: flex;2798  gap: 12px;2799  flex-wrap: wrap;2800  margin-top: -2px;2801}2802.peach-add-field-link {2803  background: transparent;2804  border: none;2805  padding: 0;2806  cursor: pointer;2807  font-family: "IBM Plex Mono", monospace;2808  font-size: 0.5625rem;2809  letter-spacing: 0.1em;2810  text-transform: uppercase;2811  color: var(--peach-t2);2812  transition: color 140ms ease;2813}2814.peach-add-field-link:hover { color: var(--peach-accent); }28152816/* ── New entry form (legacy classes) ────────────────────────────────── */2817.peach-new-body {2818  flex: 1;2819  overflow-y: auto;2820  padding: 10px 20px 14px;2821}2822.peach-new-name-input {2823  background: transparent;2824  border: none;2825  outline: none;2826  width: 100%;2827  color: var(--peach-t0);2828  font-family: var(--font-display);2829  font-style: italic;2830  font-weight: 400;2831  font-size: 40px;2832  line-height: 0.95;2833  caret-color: var(--peach-accent);2834}2835.peach-new-name-input::placeholder { color: var(--peach-t2); }2836.peach-new-field-input {2837  background: transparent;2838  border: none;2839  outline: none;2840  flex: 1;2841  min-width: 0;2842  caret-color: var(--peach-accent);2843}2844.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }28452846/* ── Canary card ── */2847.peach-canary-card {2848  border: 1px solid rgba(217, 160, 48, 0.2);2849  background: rgba(217, 160, 48, 0.03);2850  border-radius: 8px;2851  padding: 12px;2852}28532854.peach-canary-settings-header {2855  display: flex;2856  align-items: center;2857  justify-content: space-between;2858  cursor: pointer;2859  user-select: none;2860}28612862.peach-canary-card .peach-label {2863  color: rgba(217, 160, 48, 0.85);2864}28652866.peach-canary-card .peach-new-field-input {2867  border-color: rgba(217, 160, 48, 0.25);2868}28692870.peach-canary-card .peach-new-field-input:focus {2871  border-color: rgba(217, 160, 48, 0.5);2872}28732874.peach-canary-body {2875  margin-top: 12px;2876  display: flex;2877  flex-direction: column;2878  gap: 10px;2879}28802881.peach-canary-explainer {2882  display: flex;2883  gap: 10px;2884  padding: 10px 12px;2885  border-radius: 10px;2886  background: rgba(217, 160, 48, 0.06);2887  border: 1px solid rgba(217, 160, 48, 0.22);2888  margin-bottom: 4px;2889}28902891.peach-canary-explainer-icon {2892  font-size: 1rem;2893  flex-shrink: 0;2894  line-height: 1.2;2895}28962897.peach-canary-explainer-title {2898  font-family: var(--font-ui);2899  font-size: 0.6875rem;2900  font-weight: 500;2901  color: rgba(217, 160, 48, 0.9);2902  margin: 0 0 3px;2903}29042905.peach-canary-explainer-copy {2906  font-family: var(--font-ui);2907  font-size: 0.625rem;2908  color: var(--peach-t2);2909  line-height: 1.55;2910  margin: 0;2911}29122913.peach-canary-hint {2914  font-size: 0.625rem;2915  color: var(--peach-t2);2916  font-family: Inter, system-ui, sans-serif;2917  line-height: 1.5;2918  margin-top: 4px;2919}29202921.peach-canary-actions-row {2922  display: flex;2923  align-items: center;2924  gap: 8px;2925}29262927.peach-canary-test-btn {2928  border-color: rgba(217, 160, 48, 0.3);2929  color: rgba(217, 160, 48, 0.85);2930}29312932.peach-canary-test-result {2933  font-size: 0.625rem;2934  font-family: Inter, system-ui, sans-serif;2935}29362937.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2938.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }29392940.peach-canary-badge {2941  display: flex;2942  position: relative;2943  z-index: 1;2944  align-items: center;2945  gap: 5px;2946  padding: 4px 10px;2947  background: rgba(217, 160, 48, 0.12);2948  border: 1px solid rgba(217, 160, 48, 0.35);2949  border-radius: 6px;2950  margin-bottom: 6px;2951  width: fit-content;2952}29532954.peach-canary-badge-label {2955  font-size: 0.625rem;2956  letter-spacing: 0.06em;2957  color: rgba(217, 160, 48, 0.9);2958  font-family: var(--font-ui);2959  text-transform: uppercase;2960}29612962.peach-canary-badge-icon {2963  font-size: 0.6875rem;2964}29652966.peach-canary-suppress-row {2967  display: flex;2968  align-items: center;2969  gap: 8px;2970  padding: 6px 10px;2971  background: rgba(217, 160, 48, 0.08);2972  border-radius: 6px;2973  margin-bottom: 8px;2974}29752976.peach-canary-suppress-label {2977  font-size: 0.6875rem;2978  color: rgba(217, 160, 48, 0.85);2979  cursor: pointer;2980  font-family: var(--font-ui);2981  letter-spacing: 0.04em;2982}29832984.peach-regen-panel {2985  position: relative;2986  z-index: 1;2987  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2988  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2989  border-radius: 8px;2990  padding: 12px;2991  margin-bottom: 8px;2992}29932994.peach-regen-panel-header {2995  display: flex;2996  align-items: center;2997  justify-content: space-between;2998  margin-bottom: 10px;2999}30003001.peach-regen-panel-title {3002  font-size: 0.6875rem;3003  font-weight: 600;3004  letter-spacing: 0.06em;3005  text-transform: uppercase;3006  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);3007}30083009.peach-regen-output {3010  background: rgba(0, 0, 0, 0.2);3011  border-radius: 6px;3012  padding: 10px;3013  margin-bottom: 10px;3014  font-family: var(--font-mono);3015  font-size: 0.8125rem;3016  word-break: break-all;3017  color: var(--peach-t1);3018}30193020.peach-regen-actions {3021  display: flex;3022  gap: 6px;3023}30243025.peach-regen-actions--spaced {3026  margin-bottom: 8px;3027}30283029.peach-regen-action-grow {3030  flex: 1;3031}30323033.peach-regen-copy-btn {3034  padding: 0 8px;3035}30363037.peach-regen-success {3038  position: relative;3039  z-index: 1;3040  background: rgba(40, 180, 80, 0.1);3041  border: 1px solid rgba(40, 180, 80, 0.3);3042  border-radius: 8px;3043  padding: 10px 12px;3044  margin-bottom: 8px;3045  display: flex;3046  align-items: center;3047  gap: 8px;3048  font-size: 0.6875rem;3049  color: rgba(40, 180, 80, 0.9);3050}30513052/* ── Note editor overlay ── */3053.peach-note-editor {3054  position: absolute;3055  inset: 0;3056  z-index: 200;3057  display: flex;3058  flex-direction: column;3059  background:3060    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),3061    var(--peach-bg);3062  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;3063}30643065.peach-note-editor-header {3066  display: flex;3067  align-items: center;3068  gap: 10px;3069  padding: 14px 16px 10px;3070  border-bottom: 1px solid var(--peach-t3);3071  flex-shrink: 0;3072}30733074.peach-note-editor-back {3075  background: transparent;3076  border: none;3077  cursor: pointer;3078  color: var(--peach-t2);3079  padding: 4px 6px;3080  border-radius: 6px;3081  display: flex;3082  align-items: center;3083  transition: color 120ms ease, background 120ms ease;3084  flex-shrink: 0;3085}3086.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }30873088.peach-note-editor-label {3089  flex: 1;3090  font-family: var(--font-display);3091  font-style: italic;3092  font-size: 0.9375rem;3093  color: var(--peach-t1);3094  letter-spacing: 0.02em;3095}30963097.peach-note-editor-save-btn {3098  background: transparent;3099  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);3100  border-radius: 8px;3101  color: var(--peach-accent);3102  font-family: "IBM Plex Mono", monospace;3103  font-size: 0.625rem;3104  letter-spacing: 0.06em;3105  text-transform: uppercase;3106  padding: 3px 10px;3107  cursor: pointer;3108  transition: background 120ms ease, border-color 120ms ease;3109}3110.peach-note-editor-save-btn:hover:not(:disabled) {3111  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3112  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3113}3114.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }31153116.peach-note-toolbar {3117  display: flex;3118  align-items: center;3119  gap: 3px;3120  padding: 6px 14px 5px;3121  border-bottom: 1px solid var(--peach-t3);3122  flex-shrink: 0;3123}31243125.peach-note-tool-btn {3126  background: transparent;3127  border: 1px solid transparent;3128  border-radius: 5px;3129  color: var(--peach-t2);3130  font-family: "IBM Plex Mono", monospace;3131  font-size: 0.625rem;3132  letter-spacing: 0.04em;3133  padding: 2px 8px;3134  cursor: pointer;3135  line-height: 1.6;3136  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;3137}3138.peach-note-tool-btn:hover {3139  background: var(--peach-t4);3140  color: var(--peach-t0);3141  border-color: var(--peach-t3);3142}31433144.peach-note-tool-icon {3145  padding: 3px 7px;3146  display: inline-flex;3147  align-items: center;3148  justify-content: center;3149}31503151.peach-note-tool-divider {3152  width: 1px;3153  height: 14px;3154  background: var(--peach-t3);3155  margin: 0 4px;3156  flex-shrink: 0;3157}31583159.peach-note-editor-body {3160  flex: 1;3161  overflow-y: auto;3162  padding: 16px 20px 20px;3163  outline: none;3164  font-family: var(--font-display);3165  font-size: 1rem;3166  line-height: 1.75;3167  color: var(--peach-t0);3168  scrollbar-width: none;3169  word-break: break-word;3170}3171.peach-note-editor-body:empty::before {3172  content: "write your note…";3173  color: var(--peach-t3);3174  font-style: italic;3175  pointer-events: none;3176}31773178/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */3179.peach-note-editor-inline {3180  display: flex;3181  flex-direction: column;3182  flex: 1;3183  min-height: 0;3184}3185.peach-note-editor-body--inline {3186  flex: 1;3187  min-height: 0;3188  font-size: 0.9375rem;3189  padding: 10px 20px 14px;3190}31913192/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)3193   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn3194   and .peach-note-tool-divider button-level styles. */3195.peach-note-toolbar-inline {3196  display: flex;3197  align-items: center;3198  gap: 3px;3199  margin-left: auto;3200  padding-left: 10px;3201  border-left: 1px solid var(--peach-t3);3202  min-height: 22px;3203}32043205/* Entry.tsx toolbar row (no tabs, toolbar only) */3206.peach-entry-note-toolbar-row {3207  display: flex;3208  align-items: center;3209  margin: 4px 0 6px;3210  position: relative;3211  z-index: 1;3212}3213.peach-entry-note-toolbar-row .peach-note-toolbar-inline {3214  border-left: none;3215  padding-left: 0;3216  margin-left: 0;3217}32183219/* Note body — fills available vertical space in Add.tsx and Entry.tsx */3220.peach-note-body {3221  display: flex;3222  flex-direction: column;3223  flex: 1;3224  min-height: 0;3225  margin: 4px 0 0;3226}3227/* Rich content element styles (editor + display) */3228.peach-note-editor-body h2,3229.peach-note-content h2 {3230  font-family: var(--font-display);3231  font-size: 20px;3232  font-weight: 600;3233  font-style: italic;3234  color: var(--peach-t0);3235  margin: 6px 0 2px;3236  line-height: 1.3;3237}3238.peach-note-editor-body ul,3239.peach-note-content ul {3240  padding-left: 18px;3241  margin: 3px 0;3242  list-style: disc;3243}3244.peach-note-editor-body ol,3245.peach-note-content ol {3246  padding-left: 18px;3247  margin: 3px 0;3248  list-style: decimal;3249}3250.peach-note-editor-body li,3251.peach-note-content li { margin: 2px 0; }3252.peach-note-editor-body hr,3253.peach-note-content hr {3254  border: none;3255  border-top: 1px solid var(--peach-t3);3256  margin: 10px 0;3257}32583259/* font size elements from execCommand */3260.peach-note-editor-body font[size="1"],3261.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }3262.peach-note-editor-body font[size="2"],3263.peach-note-content font[size="2"] { font-size: 0.8125rem; }3264.peach-note-editor-body font[size="3"],3265.peach-note-content font[size="3"] { font-size: 1rem; }3266.peach-note-editor-body font[size="4"],3267.peach-note-content font[size="4"] { font-size: 20px; }3268.peach-note-editor-body font[size="5"],3269.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }32703271/* bold / italic inside the editor and note display */3272.peach-note-editor-body b, .peach-note-editor-body strong,3273.peach-note-content b, .peach-note-content strong { font-weight: 700; }3274.peach-note-editor-body em, .peach-note-editor-body i,3275.peach-note-content em, .peach-note-content i { font-style: italic; }3276.peach-note-content blockquote {3277  border-left: 2px solid var(--peach-accent);3278  margin: 12px 0;3279  padding-left: 16px;3280  color: var(--peach-t1);3281  font-style: italic;3282}32833284/* note display — rendered HTML, no pre-wrap */3285.peach-note-content {3286  overflow: auto;3287  max-height: 340px;3288  word-break: break-word;3289}32903291/* ── Note textarea ── */3292.peach-note-textarea {3293  width: 100%;3294  min-height: 180px;3295  max-height: 280px;3296  resize: vertical;3297  background: var(--peach-t4);3298  border: 1px solid var(--peach-t3);3299  border-radius: 8px;3300  padding: 10px 12px;3301  font-family: "IBM Plex Mono", monospace;3302  font-size: 0.75rem;3303  line-height: 1.7;3304  color: var(--peach-t1);3305  outline: none;3306  transition: border-color 150ms ease;3307}33083309.peach-note-textarea:focus {3310  border-color: var(--peach-t2);3311}33123313.peach-note-char-count {3314  font-family: "IBM Plex Mono", monospace;3315  font-size: 0.5625rem;3316  color: var(--peach-t3);3317  text-align: right;3318  margin-top: 4px;3319  letter-spacing: 0.1em;3320}33213322/* ── Field input baseline ── */3323.peach-new-field-input {3324  width: 100%;3325  background: transparent;3326  border: none;3327  border-bottom: 1px solid var(--peach-t3);3328  padding: 4px 0;3329  color: var(--peach-t1);3330  font-family: "IBM Plex Mono", monospace;3331  font-size: 0.8125rem;3332  outline: none;3333  transition: border-color 150ms ease;3334}33353336.peach-new-field-input:focus {3337  border-bottom-color: var(--peach-t0);3338  color: var(--peach-t0);3339}33403341.peach-new-name-input {3342  width: 100%;3343  background: transparent;3344  border: none;3345  border-bottom: 1px solid var(--peach-t3);3346  padding: 6px 0;3347  font-family: var(--font-display);3348  font-style: italic;3349  font-size: 28px;3350  color: var(--peach-t0);3351  outline: none;3352  transition: border-color 150ms ease;3353}33543355.peach-new-name-input:focus {3356  border-bottom-color: var(--peach-t1);3357}33583359.peach-new-name-input::placeholder {3360  color: var(--peach-t2);3361  font-style: italic;3362}33633364.peach-new-field-input::placeholder {3365  color: var(--peach-t3);3366}33673368/* ── Demo entrance animation ── */3369#hd-shell {3370  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3371}3372@keyframes hd-shell-enter {3373  from { opacity: 0; transform: scale(0.96) translateY(16px); }3374  to   { opacity: 1; transform: scale(1) translateY(0); }3375}33763377/* ── Keyframes ── */3378@keyframes peach-char-enter {3379  from { opacity: 0; transform: translateY(0.22em); }3380  to   { opacity: 1; transform: translateY(0); }3381}3382@keyframes peach-content-enter {3383  from { opacity: 0.96; transform: translateY(4px); }3384  to   { opacity: 1; transform: translateY(0); }3385}3386@keyframes peach-content-exit {3387  from { opacity: 1; transform: translateY(0); }3388  to   { opacity: 0.92; transform: translateY(-3px); }3389}3390@keyframes peach-screen-enter {3391  from { opacity: 0; transform: translateY(14px); }3392  to   { opacity: 1; transform: translateY(0); }3393}3394@keyframes peach-shell-fade-in {3395  from { opacity: 0; }3396  to   { opacity: 1; }3397}3398@keyframes peach-veil-in {3399  from { opacity: 0; }3400  to   { opacity: 1; }3401}3402@keyframes peach-lock-settle {3403  0%   { transform: scale(0.9); }3404  65%  { transform: scale(1.08); }3405  100% { transform: scale(1); }3406}3407@keyframes peach-copy-confirm {3408  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3409  to   { color: var(--peach-accent); border-color: color-mix(in srgb, var(--peach-accent) 42%, transparent); background-color: color-mix(in srgb, var(--peach-accent) 9%, transparent); box-shadow: 0 0 18px color-mix(in srgb, var(--peach-accent) 22%, transparent), inset 0 0 18px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3410}3411@keyframes peach-copy-retreat {3412  from { color: var(--peach-accent); border-color: color-mix(in srgb, var(--peach-accent) 42%, transparent); background-color: color-mix(in srgb, var(--peach-accent) 9%, transparent); box-shadow: 0 0 18px color-mix(in srgb, var(--peach-accent) 22%, transparent), inset 0 0 18px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3413  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3414}3415@keyframes peach-copy-flood {3416  from { opacity: 0; transform: scaleX(0.15); }3417  to   { opacity: 1; transform: scaleX(1); }3418}3419@keyframes peach-copy-icon-settle {3420  from  { transform: scale(0.84); }3421  70%   { transform: scale(1.08); }3422  to    { transform: scale(1); }3423}3424@keyframes peach-copy-sheen-retreat {3425  from { opacity: 1; transform: scaleX(1); }3426  to   { opacity: 0; transform: scaleX(0.15); }3427}3428@keyframes peach-copy-drain {3429  from { width: 100%; }3430  to   { width: 0; }3431}3432@keyframes peach-shake {3433  0%, 100% { transform: translateX(0); }3434  20%      { transform: translateX(-6px); }3435  40%      { transform: translateX(6px); }3436  60%      { transform: translateX(-4px); }3437  80%      { transform: translateX(4px); }3438}34393440@keyframes pip-pulse {3441  0% { transform: scale(1); }3442  40% { transform: scale(2.2); }3443  100% { transform: scale(1); }3444}344534463447/* ── Password generator ── */3448.peach-pwgen-body {3449  flex: 1; overflow-y: auto;3450  display: flex; flex-direction: column;3451}3452.peach-policy-badge {3453  display: flex; align-items: center;3454  padding: 6px 20px 0;3455  font-size: 0.625rem; font-family: Inter, sans-serif;3456  color: var(--peach-t2); letter-spacing: 0.04em;3457}3458.peach-pwgen-display {3459  padding: 14px 20px 12px;3460  border-bottom: 1px solid var(--peach-t3);3461  display: flex; align-items: flex-start; gap: 10px;3462}3463.peach-pwgen-display-row {3464  display: flex;3465  align-items: flex-start;3466  gap: 8px;3467  padding-bottom: 8px;3468  border-bottom: 1px solid var(--peach-t3);3469}3470.peach-pwgen-output {3471  flex: 1; min-width: 0; margin: 0;3472  font-family: "IBM Plex Mono", monospace;3473  font-size: 0.8125rem; color: var(--peach-t0);3474  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3475  white-space: normal;3476  padding: 10px 12px;3477  background: var(--peach-t4);3478  border-radius: 6px;3479  min-height: 36px;3480}3481.peach-pwgen-output-display {3482  flex: 1;3483  min-width: 0;3484  margin: 0;3485  font-family: var(--font-display);3486  font-style: italic;3487  font-weight: 300;3488  font-size: 32px;3489  line-height: 1.05;3490  color: var(--peach-t0);3491  word-break: break-all;3492  overflow-wrap: break-word;3493  white-space: normal;3494  letter-spacing: 0.02em;3495}3496.peach-pwgen-display-actions {3497  display: flex;3498  flex-direction: column;3499  gap: 4px;3500  flex-shrink: 0;3501  margin-top: 2px;3502}3503.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3504.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3505.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3506.peach-pwgen-len-num {3507  font-family: "IBM Plex Mono", monospace;3508  font-size: 0.75rem; color: var(--peach-accent);3509}3510.peach-pwgen-len-num--edit {3511  cursor: text;3512  border-bottom: 1px dotted color-mix(in srgb, var(--peach-accent) 50%, transparent);3513}3514.peach-pwgen-len-input {3515  font-family: "IBM Plex Mono", monospace;3516  font-size: 0.75rem;3517  color: var(--peach-accent);3518  background: transparent;3519  border: none;3520  border-bottom: 1px solid var(--peach-accent);3521  outline: none;3522  width: 32px;3523  text-align: right;3524  padding: 0;3525}3526.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3527.peach-pwgen-toggles { display: flex; flex-direction: column; }3528.peach-pwgen-charset-pills {3529  display: flex;3530  gap: 6px;3531  flex-wrap: wrap;3532}3533.peach-pwgen-pill {3534  padding: 4px 11px;3535  border-radius: 999px;3536  border: 1px solid var(--peach-t3);3537  background: transparent;3538  color: var(--peach-t2);3539  font-family: "IBM Plex Mono", monospace;3540  font-size: 0.5625rem;3541  letter-spacing: 0.08em;3542  cursor: pointer;3543  transition: all 150ms ease;3544}3545.peach-pwgen-pill.is-on {3546  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3547  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3548  color: var(--peach-accent);3549}3550.peach-pwgen-pill:not(.is-on):hover {3551  color: var(--peach-t1);3552  border-color: var(--peach-t2);3553}3554.peach-pwgen-use-btn {3555  width: 100%;3556  min-height: 34px;3557  border-radius: 8px;3558  margin-top: 2px;3559}3560.peach-generator-constraint-note {3561  font-family: 'IBM Plex Mono', monospace;3562  font-size: 10px;3563  color: var(--peach-t3);3564  letter-spacing: 0.04em;3565  margin: 0;3566  transition: opacity 200ms ease;3567}3568.peach-pwgen-toggle-row {3569  display: flex; align-items: center; justify-content: space-between;3570  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3571}3572.peach-pwgen-toggle-row:last-child { border-bottom: none; }3573.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }35743575/* Peach popup should not expose native scrollbars on internal panels. */3576.peach-settings-body,3577.peach-new-body,3578.peach-pwgen-body,3579.lock-screen,3580.peach-import-preview {3581  scrollbar-width: none;3582  -ms-overflow-style: none;3583  overscroll-behavior: contain;3584}3585.peach-settings-body::-webkit-scrollbar,3586.peach-new-body::-webkit-scrollbar,3587.peach-pwgen-body::-webkit-scrollbar,3588.lock-screen::-webkit-scrollbar,3589.peach-import-preview::-webkit-scrollbar {3590  width: 0;3591  height: 0;3592  display: none;3593}35943595.lock-screen {3596  height: 100%;3597  min-height: 100%;3598  overflow-y: auto;3599  padding: 18px 18px 16px;3600  gap: 14px;3601  grid-template-rows: auto auto auto 1fr auto;3602  align-content: stretch;3603  position: relative;3604  isolation: isolate;3605}3606.peach-screen.lock-screen--vault-stage {3607  display: flex;3608  flex-direction: column;3609  justify-content: flex-start;3610  gap: 18px;3611  padding: 20px 18px 18px;3612  overflow: hidden;3613}3614.peach-screen.lock-screen--vault-stage .peach-lock-panel {3615  margin-top: 0;3616}3617.lock-screen--onboarding {3618  display: flex;3619  flex-direction: column;3620  gap: 12px;3621  justify-content: flex-start;3622}36233624.lock-screen::before {3625  content: "";3626  position: absolute;3627  inset: 12px 18px auto auto;3628  width: 160px;3629  height: 160px;3630  border-radius: 999px;3631  background:3632    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 42%, transparent 72%);3633  filter: blur(6px);3634  opacity: 0.7;3635  pointer-events: none;3636  z-index: 0;3637}36383639.peach-lock-rune-string {3640  flex: 1;3641  display: flex;3642  align-items: center;3643  justify-content: center;3644  gap: 6px;3645  font-family: PeachScript, monospace;3646  font-size: 0.8125rem;3647  letter-spacing: 0.05em;3648  pointer-events: none;3649  user-select: none;3650  position: relative;3651  z-index: 1;3652}36533654.peach-lock-rune-string span {3655  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3656  text-shadow:3657    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3658    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3659  transition: color 0.9s ease, text-shadow 0.9s ease;3660}36613662.peach-lock-rune-string span.is-glowing {3663  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3664  text-shadow:3665    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3666    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3667}36683669.lock-screen-header {3670  display: flex;3671  align-items: center;3672  justify-content: space-between;3673  position: relative;3674  z-index: 1;3675}36763677.lock-password-input.shake {3678  animation: peach-shake 300ms ease-in-out;3679}36803681.peach-hint-error {3682  color: rgba(220, 80, 60, 0.92);3683}36843685.peach-onboarding-headline {3686  margin: 0;3687  font-family: var(--font-display);3688  font-size: 35px;3689  line-height: 0.88;3690  font-style: italic;3691  font-weight: 400;3692  max-width: 252px;3693}36943695.peach-lock-copy {3696  display: grid;3697  gap: 8px;3698  position: relative;3699  z-index: 1;3700}37013702.peach-lock-copy--onboarding {3703  gap: 10px;3704}37053706.peach-lock-hero {3707  position: relative;3708  z-index: 1;3709  display: flex;3710  flex-direction: column;3711  align-items: center;3712  justify-content: center;3713  text-align: center;3714  gap: 10px;3715  min-height: 0;3716  padding: 4px 2px 0;3717  border: none;3718  border-radius: 0;3719  background: transparent;3720  box-shadow: none;3721}3722.peach-lock-hero > * {3723  position: relative;3724  z-index: 1;3725}37263727.peach-lock-mark {3728  width: 40px;3729  height: 40px;3730  margin: 0 auto 6px;3731  display: block;3732}37333734.peach-lock-eyebrow {3735  display: inline-flex;3736  align-items: center;3737  width: fit-content;3738  margin: 0 auto;3739  padding: 4px 9px;3740  border-radius: 999px;3741  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3742  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3743  color: var(--peach-t0);3744  font-family: "IBM Plex Mono", monospace;3745  font-weight: 600;3746  font-size: 0.55rem;3747  letter-spacing: 0.14em;3748  text-transform: uppercase;3749}37503751.peach-lock-label-row {3752  display: flex;3753  align-items: center;3754  justify-content: space-between;3755  margin-bottom: 0;3756}37573758.peach-lock-reveal-btn {3759  display: inline-flex;3760  align-items: center;3761  gap: 4px;3762  background: none;3763  border: none;3764  cursor: pointer;3765  font-family: "IBM Plex Mono", monospace;3766  font-size: 0.5625rem;3767  letter-spacing: 0.06em;3768  color: var(--peach-t2);3769  padding: 2px 0;3770  transition: color 150ms ease;3771}37723773.peach-lock-reveal-btn:hover {3774  color: var(--peach-t1);3775}37763777.peach-lock-warning {3778  color: rgba(220, 80, 60, 0.85) !important;3779  line-height: 1.5;3780}37813782.peach-onboarding-cards {3783  display: grid;3784  gap: 8px;3785  position: relative;3786  z-index: 1;3787}37883789.peach-lock-panel {3790  position: relative;3791  z-index: 1;3792  display: grid;3793  gap: 9px;3794  padding: 14px 16px 15px;3795  border-radius: 18px;3796  border: 1px solid var(--peach-t3);3797  background:3798    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3799  box-shadow:3800    inset 0 1px 0 rgba(240, 232, 216, 0.04),3801    0 12px 28px rgba(0, 0, 0, 0.12);3802}38033804/* Glass surface — lock panel and settings groups */3805.peach-glass {3806  background: rgba(26, 20, 16, 0.65);3807  border: 1px solid rgba(255, 255, 255, 0.08);3808  border-radius: 12px;3809  backdrop-filter: blur(12px) saturate(1.4);3810  -webkit-backdrop-filter: blur(12px) saturate(1.4);3811}38123813@supports not (backdrop-filter: blur(1px)) {3814  .peach-glass {3815    background: rgba(26, 20, 16, 0.92);3816    border: 1px solid rgba(255, 255, 255, 0.10);3817    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3818  }3819}38203821.light .peach-glass,3822[data-theme="light"] .peach-glass {3823  background: rgba(240, 233, 223, 0.72);3824  border: 1px solid rgba(26, 18, 8, 0.08);3825  backdrop-filter: blur(12px) saturate(1.2);3826  -webkit-backdrop-filter: blur(12px) saturate(1.2);3827}38283829@supports not (backdrop-filter: blur(1px)) {3830  .light .peach-glass,3831  [data-theme="light"] .peach-glass {3832    background: rgba(240, 233, 223, 0.97);3833    border: 1px solid rgba(26, 18, 8, 0.10);3834  }3835}38363837/* Lock panel keeps its own border-radius over the generic glass token */3838.peach-lock-panel.peach-glass {3839  border-radius: 18px;3840  background: rgba(26, 20, 16, 0.65);3841  border: 1px solid rgba(255, 255, 255, 0.08);3842  box-shadow:3843    inset 0 1px 0 rgba(255, 255, 255, 0.05),3844    0 12px 28px rgba(0, 0, 0, 0.3);3845}38463847.light .peach-lock-panel.peach-glass,3848[data-theme="light"] .peach-lock-panel.peach-glass {3849  background: rgba(240, 233, 223, 0.82);3850  border: 1px solid rgba(26, 18, 8, 0.08);3851  box-shadow:3852    inset 0 1px 0 rgba(255, 255, 255, 0.4),3853    0 8px 24px rgba(80, 56, 32, 0.15);3854}38553856@supports not (backdrop-filter: blur(1px)) {3857  .peach-lock-panel.peach-glass {3858    background: rgba(26, 20, 16, 0.92);3859    box-shadow:3860      inset 0 1px 0 rgba(255, 255, 255, 0.05),3861      0 12px 28px rgba(0, 0, 0, 0.4);3862  }3863  .light .peach-lock-panel.peach-glass,3864  [data-theme="light"] .peach-lock-panel.peach-glass {3865    background: rgba(240, 233, 223, 0.98);3866  }3867}38683869.peach-lock-panel--secondary {3870  gap: 12px;3871}38723873.peach-lock-panel-header {3874  display: flex;3875  align-items: baseline;3876  justify-content: space-between;3877  gap: 12px;3878}38793880.peach-lock-option-grid {3881  display: grid;3882  gap: 10px;3883}38843885.peach-lock-option {3886  width: 100%;3887  display: grid;3888  gap: 6px;3889  padding: 14px 15px;3890  border-radius: 16px;3891  border: 1px solid rgba(240, 232, 216, 0.08);3892  background: rgba(240, 232, 216, 0.02);3893  color: var(--peach-t0);3894  text-align: left;3895  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3896}38973898.peach-lock-option:hover {3899  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3900  background: rgba(240, 232, 216, 0.04);3901  transform: translateY(-1px);3902}39033904.peach-lock-option-title {3905  font-size: 0.75rem;3906  color: var(--peach-t0);3907}39083909.peach-lock-option-copy {3910  font-size: 0.6875rem;3911  line-height: 1.55;3912  color: var(--peach-t1);3913}39143915.peach-onboarding-stack {3916  margin-top: 2px;3917}3918.peach-lock-panel-footer {3919  display: grid;3920  gap: 6px;3921  margin-top: 2px;3922  padding-top: 10px;3923  border-top: 1px solid rgba(240, 232, 216, 0.06);3924}39253926/* ── Restore tab view ─────────────────────────────────────────────────────3927   Tab-based restore screen replacing the old three-card picker. */39283929.peach-screen.peach-restore-tabview {3930  overflow: hidden;3931  /* Wordmark must land on the same pixel as on the onboarding cards and3932     create-vault screens (16px top/left), not the vault-stage 20/18. */3933  padding: 16px 16px 18px;3934}39353936.peach-restore-tabcard {3937  flex: 1;3938  display: flex;3939  flex-direction: column;3940  gap: 0;3941  padding: 0;3942  overflow: hidden;3943  cursor: default;3944  user-select: none;3945  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3946}39473948/* ── Tab selector ─────────────────────────────────────────────────────── */39493950.peach-restore-tabs {3951  display: flex;3952  justify-content: space-around;3953  padding: 12px 14px 8px;3954  border-bottom: 1px solid var(--peach-t3);3955  gap: 2px;3956  overflow: hidden;3957  scrollbar-width: none;3958}3959.peach-restore-tabs::-webkit-scrollbar { display: none; }39603961.peach-restore-tab {3962  background: none;3963  border: 1px solid transparent;3964  border-bottom: 2px solid transparent;3965  cursor: pointer;3966  padding: 4px 8px;3967  font-family: "IBM Plex Mono", monospace;3968  font-style: normal;3969  font-size: 0.6875rem;3970  letter-spacing: 0.02em;3971  text-transform: uppercase;3972  color: var(--peach-t2);3973  transition: color 150ms ease;3974  flex: 0 1 auto;3975  min-width: 0;3976  text-align: center;3977  white-space: nowrap;3978  overflow: hidden;3979  text-overflow: ellipsis;3980}3981.peach-restore-tab:hover {3982  color: var(--peach-t0);3983}3984.peach-restore-tab.is-active {3985  color: var(--peach-t0);3986  border-bottom-color: var(--peach-accent);3987}39883989/* ── Content area ─────────────────────────────────────────────────────── */39903991.peach-restore-content {3992  padding: 16px 16px 14px;3993  display: flex;3994  flex-direction: column;3995  gap: 8px;3996  overflow: hidden;3997  scrollbar-width: none;3998  flex: 1;3999}4000.peach-restore-content::-webkit-scrollbar { display: none; }4001.peach-restore-content > * {4002  overflow: hidden;4003  scrollbar-width: none;4004}4005.peach-restore-content > *::-webkit-scrollbar { display: none; }40064007/* ── Shared tab inner layout ──────────────────────────────────────────── */40084009.peach-rt-symbols,4010.peach-rt-csv,4011.peach-rt-phone,4012.peach-restore-codex {4013  display: flex;4014  flex-direction: column;4015  gap: 8px;4016  overflow: hidden;4017}40184019.peach-restore-codex {4020  min-height: 0;4021  justify-content: center;4022}40234024.peach-restore-codex-title {4025  margin: 0;4026  font-family: var(--font-display);4027  font-size: 1rem;4028  font-style: italic;4029  color: var(--peach-t0);4030}40314032.peach-restore-codex-copy {4033  margin: 0;4034  font-size: 0.75rem;4035  line-height: 1.5;4036  color: var(--peach-t1);4037}40384039.peach-restore-codex-button {4040  width: 100%;4041  justify-content: center;4042}40434044.peach-rt-submit {4045  width: 100%;4046}40474048.peach-rt-error {4049  margin: 0;4050  font-size: 0.6875rem;4051  color: var(--peach-breach);4052  line-height: 1.4;4053}40544055/* ── PeachScript tab ──────────────────────────────────────────────────── */40564057.peach-restore-symbols-textarea {4058  font-family: 'PeachScript', monospace;4059  font-size: 13px;4060  line-height: 1.9;4061  letter-spacing: 0.1em;4062  word-break: break-all;4063  resize: none;4064  width: 100%;4065  min-height: 56px;4066  max-height: 72px;4067  overflow: hidden;4068  scrollbar-width: none;4069  -ms-overflow-style: none;4070  box-sizing: border-box;4071  padding: 6px 8px;4072  border-radius: 8px;4073  border: 1px solid var(--peach-t3);4074  background: rgba(240, 232, 216, 0.03);4075  color: var(--peach-t0);4076}4077.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }4078.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40794080.peach-restore-symbols-pass {4081  width: 100%;4082  box-sizing: border-box;4083  padding: 7px 10px;4084  border-radius: 8px;4085  border: 1px solid var(--peach-t3);4086  background: rgba(240, 232, 216, 0.03);4087  color: var(--peach-t0);4088  font-size: 0.8125rem;4089}4090.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }4091.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40924093.peach-rt-divider {4094  text-align: center;4095  font-size: 0.6875rem;4096  color: var(--peach-t2);4097  font-style: italic;4098}40994100.peach-rt-file-label {4101  width: 100%;4102  justify-content: center;4103}41044105.peach-rt-anim-canvas {4106  width: 100%;4107  height: 180px;4108  border-radius: 10px;4109  overflow: hidden;4110  display: block;4111}41124113/* ── CSV tab ──────────────────────────────────────────────────────────── */41144115.peach-rt-csv-sources {4116  margin: 0;4117  font-size: 0.6875rem;4118  color: var(--peach-t2);4119  line-height: 1.5;4120  text-align: center;4121}41224123.peach-rt-csv-warning {4124  margin: 0;4125  font-family: "IBM Plex Mono", monospace;4126  font-size: 0.5625rem;4127  letter-spacing: 0.12em;4128  color: var(--peach-breach);4129  text-align: center;4130}41314132/* ── From Phone tab ───────────────────────────────────────────────────── */41334134.peach-rt-phone-code {4135  margin: 0;4136  text-align: center;4137  font-family: "IBM Plex Mono", monospace;4138  font-size: 22px;4139  letter-spacing: 0.18em;4140  color: var(--peach-t0);4141}41424143.peach-rt-phone-qr {4144  display: block;4145  width: 96px;4146  height: 96px;4147  margin: 0 auto;4148  border-radius: 6px;4149  image-rendering: pixelated;4150  overflow: hidden;4151}41524153.peach-rt-phone-hint {4154  margin: 0;4155  font-size: 0.6875rem;4156  color: var(--peach-t2);4157  line-height: 1.55;4158  text-align: center;4159}41604161/* ── Intro popup ──────────────────────────────────────────────────────── */41624163.peach-restore-intro-overlay {4164  position: absolute;4165  inset: 0;4166  z-index: 100;4167  display: flex;4168  align-items: center;4169  justify-content: center;4170  padding: 20px;4171  background: rgba(12, 10, 6, 0.7);4172  backdrop-filter: blur(4px);4173  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4174}41754176.peach-restore-intro-card {4177  width: 100%;4178  display: flex;4179  flex-direction: column;4180  gap: 12px;4181  padding: 22px 20px 20px;4182  border-radius: 16px;4183  border: 1px solid var(--peach-t3);4184  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));4185  backdrop-filter: blur(4px);4186  -webkit-backdrop-filter: blur(4px);4187  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);4188}41894190.peach-restore-intro-headline {4191  margin: 0;4192  font-family: var(--font-display);4193  font-style: italic;4194  font-size: 20px;4195  font-weight: 400;4196  color: var(--peach-t0);4197}41984199.peach-restore-intro-body {4200  display: flex;4201  flex-direction: column;4202  gap: 8px;4203}4204.peach-restore-intro-body p {4205  margin: 0;4206  font-size: 0.75rem;4207  color: var(--peach-t1);4208  line-height: 1.5;4209}42104211.peach-restore-intro-btn {4212  width: 100%;4213  margin-top: 4px;4214}42154216/* Snapshot restore panel */4217.peach-snapshot-panel {4218  gap: 10px;4219  overflow-y: auto;4220  max-height: 340px;4221}4222.peach-snapshot-list {4223  display: flex;4224  flex-direction: column;4225  gap: 4px;4226}4227.peach-snapshot-row {4228  display: flex;4229  align-items: center;4230  justify-content: space-between;4231  width: 100%;4232  padding: 8px 10px;4233  border-radius: 8px;4234  border: 1px solid rgba(240, 232, 216, 0.07);4235  background: transparent;4236  cursor: pointer;4237  transition: border-color 120ms, background 120ms;4238  text-align: left;4239  gap: 8px;4240}4241.peach-snapshot-row:hover {4242  border-color: rgba(240, 232, 216, 0.14);4243  background: rgba(240, 232, 216, 0.03);4244}4245.peach-snapshot-row.is-selected {4246  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4247  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);4248}4249.peach-snapshot-time {4250  font-size: 11.5px;4251  color: var(--peach-t0);4252  flex: 1;4253}4254.peach-snapshot-count {4255  font-family: "IBM Plex Mono", monospace;4256  font-size: 0.625rem;4257  color: var(--peach-t2);4258  flex-shrink: 0;4259}4260.peach-snapshot-confirm {4261  display: flex;4262  flex-direction: column;4263  gap: 8px;4264  padding-top: 10px;4265  border-top: 1px solid rgba(240, 232, 216, 0.06);4266}4267.peach-snapshot-warning {4268  display: flex;4269  align-items: flex-start;4270  gap: 6px;4271  font-size: 10.5px;4272  color: rgba(220, 80, 60, 0.85);4273  line-height: 1.55;4274}4275.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }4276.peach-snapshot-confirm-row {4277  display: flex;4278  gap: 6px;4279  align-items: center;4280}4281.peach-snapshot-restore-btn {4282  width: 100%;4283}4284.peach-lock-hero--unlock .peach-lock-hero-art {4285  display: none;4286}42874288.peach-card {4289  border: 1px solid var(--peach-t3);4290  border-radius: 18px;4291  background:4292    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);4293  box-shadow:4294    inset 0 0 0 1px var(--peach-border-accent),4295    inset 0 1px 0 rgba(240, 232, 216, 0.04),4296    0 12px 32px rgba(0, 0, 0, 0.14);4297  overflow: hidden;4298}42994300.peach-card-active {4301  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4302  box-shadow:4303    inset 0 1px 0 rgba(240, 232, 216, 0.05),4304    0 16px 38px rgba(0, 0, 0, 0.18),4305    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4306}43074308.peach-card-disabled {4309  opacity: 0.72;4310}43114312.peach-card-header {4313  width: 100%;4314  padding: 13px 16px 11px;4315  background: transparent;4316  color: var(--peach-t0);4317  display: flex;4318  justify-content: space-between;4319  align-items: center;4320  text-align: left;4321  font-size: 0.75rem;4322}43234324.peach-card-body {4325  padding: 0 16px 16px;4326  display: grid;4327  gap: 9px;4328}43294330.peach-card-tag {4331  color: var(--peach-t2);4332  font-family: "IBM Plex Mono", monospace;4333  font-size: 0.5625rem;4334  letter-spacing: 0.12em;4335  text-transform: uppercase;4336}43374338.peach-empty-copy {4339  display: grid;4340  gap: 6px;4341  color: var(--peach-t1);4342  font-size: 0.8125rem;4343}43444345.peach-lock-submit {4346  width: 100%;4347  box-shadow:4348    0 1px 0 rgba(255,255,255,0.10) inset,4349    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4350    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4351    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4352}43534354.peach-lock-secondary {4355  width: 100%;4356  border-color: var(--peach-t3);4357  background: rgba(240, 232, 216, 0.02);4358}43594360.peach-lock-secondary:hover {4361  background: rgba(240, 232, 216, 0.04);4362}43634364.peach-lock-note {4365  max-width: none;4366  line-height: 1.55;4367  margin: 0;4368}43694370.peach-overlay-action {4371  font-size: 0.625rem;4372  padding: 4px 8px;4373  letter-spacing: 0.06em;4374  min-width: 44px;4375  text-align: center;4376}43774378.peach-inline-action {4379  flex-shrink: 0;4380  font-size: 0.5625rem;4381  letter-spacing: 0.1em;4382  text-transform: uppercase;4383  padding: 4px 7px;4384}4385.peach-password-toggle-btn {4386  display: inline-flex;4387  align-items: center;4388  justify-content: center;4389  min-width: 30px;4390  min-height: 26px;4391  padding: 0 7px;4392  border: 1px solid var(--peach-t3);4393  border-radius: 999px;4394  background: rgba(240, 232, 216, 0.04);4395  color: var(--peach-t2);4396  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4397}4398.peach-password-toggle-btn:hover {4399  border-color: var(--peach-t2);4400  color: var(--peach-t0);4401  background: rgba(240, 232, 216, 0.06);4402}44034404.peach-new-textarea {4405  width: 100%;4406  min-height: 88px;4407  resize: vertical;4408  border: 0;4409  outline: none;4410  background: transparent;4411  color: var(--peach-t1);4412  font-family: "IBM Plex Mono", monospace;4413  font-size: 0.75rem;4414  line-height: 1.65;4415  caret-color: var(--peach-accent);4416}44174418.peach-new-textarea::placeholder {4419  color: var(--peach-t2);4420  opacity: 0.7;4421}44224423.peach-settings-actions {4424  display: grid;4425  gap: 8px;4426}44274428.peach-sync-section-label {4429  font-size: 0.6875rem;4430  color: var(--peach-t2);4431  text-transform: uppercase;4432  letter-spacing: 0.05em;4433}44344435.peach-sync-network-note {4436  margin: 0 0 6px;4437  font-size: 0.75rem;4438  color: var(--peach-t2);4439  line-height: 1.4;4440}44414442.peach-settings-row--tappable {4443  background: none;4444  border: none;4445  width: 100%;4446  text-align: left;4447  cursor: pointer;4448  color: var(--peach-t1);4449  font-size: 0.8125rem;4450}4451.peach-settings-row--tappable:hover {4452  color: var(--peach-t0);4453}44544455.peach-sync-pro-hint {4456  display: flex;4457  flex-direction: column;4458  align-items: flex-start;4459  gap: 8px;4460  padding: 12px 0 4px;4461}44624463.peach-sync-device-row {4464  display: flex;4465  justify-content: space-between;4466  align-items: center;4467  padding: 6px 0;4468  border-bottom: 1px solid var(--peach-t3);4469}44704471.peach-sync-device-info {4472  display: flex;4473  flex-direction: column;4474  gap: 2px;4475}44764477.peach-sync-device-name {4478  font-size: 0.8125rem;4479  color: var(--peach-t0);4480}44814482.peach-sync-device-meta {4483  font-size: 0.6875rem;4484  color: var(--peach-t2);4485}44864487.peach-sync-status-dot {4488  display: inline-block;4489  width: 8px;4490  height: 8px;4491  border-radius: 50%;4492  vertical-align: middle;4493}44944495.peach-sync-remove-btn {4496  color: var(--peach-breach);4497}44984499.peach-sync-advanced-row {4500  display: flex;4501  justify-content: space-between;4502  align-items: center;4503  padding: 6px 0;4504  gap: 12px;4505}45064507.peach-sync-advanced-info {4508  display: flex;4509  flex-direction: column;4510  gap: 2px;4511  flex: 1;4512}45134514.peach-sync-advanced-name {4515  font-size: 0.8125rem;4516  color: var(--peach-t0);4517}45184519.peach-sync-reset-confirm {4520  display: flex;4521  flex-direction: column;4522  gap: 8px;4523  padding: 10px;4524  border: 1px solid var(--peach-breach);4525  border-radius: 10px;4526  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4527}45284529.peach-sync-reset-confirm-headline {4530  font-size: 0.8125rem;4531  font-weight: 600;4532  color: var(--peach-t0);4533  margin: 0;4534}45354536.peach-sync-reset-confirm-body {4537  font-size: 0.75rem;4538  color: var(--peach-t1);4539  margin: 0;4540  line-height: 1.4;4541}45424543.peach-btn--danger {4544  background: var(--peach-breach);4545  color: #fff;4546  border-color: var(--peach-breach);4547}4548.peach-btn--danger:hover:not(:disabled) {4549  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4550}4551.peach-btn--danger:disabled {4552  opacity: 0.55;4553  cursor: not-allowed;4554}45554556.peach-sync-hero-icon {4557  color: var(--peach-t1);4558  opacity: 0.85;4559}45604561.peach-import-preview {4562  margin-bottom: 12px;4563  max-height: 152px;4564  overflow-y: auto;4565  border: 1px solid var(--peach-t3);4566  border-radius: 10px;4567  padding: 8px 10px;4568  display: grid;4569  gap: 8px;4570  background: rgba(240, 232, 216, 0.02);4571}45724573.peach-import-preview-row {4574  display: flex;4575  justify-content: space-between;4576  gap: 10px;4577  font-size: 0.6875rem;4578  color: var(--peach-t1);4579}45804581.peach-import-preview-title {4582  color: var(--peach-t0);4583  flex: 1;4584  min-width: 0;4585  overflow: hidden;4586  text-overflow: ellipsis;4587  white-space: nowrap;4588}45894590.peach-import-preview-meta {4591  color: var(--peach-t2);4592  flex-shrink: 0;4593  max-width: 42%;4594  overflow: hidden;4595  text-overflow: ellipsis;4596  white-space: nowrap;4597}45984599.peach-import-preview-more {4600  color: var(--peach-t2);4601  font-size: 0.625rem;4602}46034604.peach-restore-copy {4605  margin: 0;4606  color: var(--peach-t1);4607  font-size: 0.6875rem;4608  line-height: 1.6;4609}46104611.peach-restore-warning {4612  padding: 10px 12px;4613  border-radius: 12px;4614  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4615  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4616  color: var(--peach-t0);4617  font-size: 0.6875rem;4618  line-height: 1.55;4619}46204621.peach-provider-chips {4622  display: flex;4623  flex-wrap: wrap;4624  gap: 6px;4625}46264627.peach-provider-chip {4628  display: inline-flex;4629  align-items: center;4630  padding: 5px 8px;4631  border-radius: 999px;4632  border: 1px solid var(--peach-t3);4633  background: rgba(240, 232, 216, 0.02);4634  color: var(--peach-t1);4635  font-family: "IBM Plex Mono", monospace;4636  font-size: 0.5rem;4637  letter-spacing: 0.08em;4638  text-transform: uppercase;4639}46404641.peach-restore-file,4642.peach-restore-input {4643  width: 100%;4644  border-radius: 10px;4645  border: 1px solid var(--peach-t3);4646  background: var(--peach-s2);4647  color: var(--peach-t0);4648  font-size: 0.75rem;4649}46504651.peach-restore-file {4652  padding: 9px 10px;4653}46544655.peach-restore-file::file-selector-button {4656  margin-right: 10px;4657  padding: 7px 10px;4658  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4659  border-radius: 999px;4660  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4661  color: var(--peach-t0);4662  font-size: 0.625rem;4663  letter-spacing: 0.08em;4664  text-transform: uppercase;4665  cursor: pointer;4666}46674668.peach-restore-input {4669  padding: 10px 12px;4670}46714672.peach-auth-grid {4673  display: grid;4674  gap: 10px;4675}46764677.peach-import-summary {4678  color: var(--peach-t1);4679  font-size: 0.75rem;4680  line-height: 1.6;4681  margin-bottom: 12px;4682}46834684.peach-restore-error {4685  color: rgba(220, 80, 60, 0.95);4686  font-size: 0.75rem;4687  line-height: 1.55;4688}46894690.peach-passkey-card {4691  max-width: 400px;4692  margin: auto 16px;4693  align-self: center;4694  width: calc(100% - 32px);4695}46964697/* Center the approval card vertically inside the overlay-view (which sets4698 * flex-direction: column without justify-content). Without this, the card4699 * sits at the top with a tall empty band below — looks unfinished on the4700 * 320px popup. */4701.peach-overlay-view:has(.peach-passkey-card) {4702  justify-content: center;4703}47044705.peach-pro-badge {4706  padding: 2px 6px;4707  border-radius: 999px;4708  font-family: var(--font-ui);4709  font-size: 0.625rem;4710  letter-spacing: 0.08em;4711  text-transform: uppercase;4712  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4713  color: var(--peach-accent);4714}47154716/* ── Shortcuts rebind table ─────────────────────────────────── */4717.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4718.peach-shortcut-row {4719  display: flex;4720  align-items: center;4721  gap: 10px;4722  padding: 6px 0;4723}4724.peach-shortcut-row-label {4725  flex: 1;4726  font-size: 0.75rem;4727  color: var(--peach-t0);4728}4729.peach-shortcut-chip {4730  min-width: 64px;4731  padding: 4px 10px;4732  border-radius: 6px;4733  border: 1px solid var(--peach-t3);4734  background: var(--peach-input-bg, var(--surface-card));4735  color: var(--peach-t0);4736  font-family: var(--font-mono);4737  font-size: 0.6875rem;4738  letter-spacing: 0.04em;4739  cursor: pointer;4740  text-align: center;4741  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4742}4743.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4744.peach-shortcut-chip.is-custom {4745  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4746  color: var(--peach-accent);4747}4748.peach-shortcut-chip.is-capturing {4749  border-color: var(--peach-accent);4750  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4751  color: var(--peach-accent);4752  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4753}4754@keyframes peach-shortcut-capture-pulse {4755  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4756  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4757}4758.peach-shortcut-reset {4759  background: transparent;4760  border: none;4761  cursor: pointer;4762  color: var(--peach-t2);4763  padding: 4px 6px;4764  border-radius: 5px;4765  font-size: 0.875rem;4766  line-height: 1;4767  transition: color 120ms ease, background 120ms ease;4768}4769.peach-shortcut-reset:hover {4770  color: var(--peach-t0);4771  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4772}4773.peach-shortcuts-conflict {4774  margin: 4px 0 0;4775  padding: 8px 10px;4776  border-radius: 7px;4777  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4778  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4779  font-family: var(--font-mono);4780  font-size: 0.6875rem;4781  color: var(--peach-t0);4782}47834784/* ── Help dialog overlay (? to open) ────────────────────────── */4785.peach-shortcuts-help-backdrop {4786  position: fixed;4787  inset: 0;4788  background: rgba(0, 0, 0, 0.55);4789  backdrop-filter: blur(2px);4790  display: flex;4791  align-items: center;4792  justify-content: center;4793  z-index: 1000;4794  animation: peach-help-fade-in 140ms ease forwards;4795}4796@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4797.peach-shortcuts-help-card {4798  width: min(320px, 92vw);4799  max-height: 80vh;4800  overflow-y: auto;4801  border-radius: 14px;4802  border: 1px solid var(--peach-t3);4803  background: var(--peach-bg);4804  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4805  padding: 16px 18px 18px;4806  display: flex;4807  flex-direction: column;4808  gap: 12px;4809}4810.peach-shortcuts-help-head {4811  display: flex; align-items: center; justify-content: space-between;4812}4813.peach-shortcuts-help-head h3 {4814  margin: 0;4815  font-family: var(--font-display);4816  font-style: italic;4817  font-weight: 400;4818  font-size: 22px;4819  color: var(--peach-t0);4820}4821.peach-shortcuts-help-close {4822  background: transparent;4823  border: none;4824  color: var(--peach-t2);4825  cursor: pointer;4826  font-size: 0.875rem;4827  padding: 4px 8px;4828  border-radius: 5px;4829}4830.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4831.peach-shortcuts-help-body ul {4832  list-style: none; padding: 0; margin: 4px 0 12px;4833  display: grid; gap: 8px;4834}4835.peach-shortcuts-help-body li {4836  display: flex; align-items: center; justify-content: space-between; gap: 12px;4837  font-size: 0.75rem; color: var(--peach-t0);4838}4839.peach-shortcuts-help-body kbd {4840  font-family: var(--font-mono);4841  font-size: 0.6875rem;4842  padding: 3px 8px;4843  border-radius: 6px;4844  background: var(--surface-card);4845  border: 1px solid var(--peach-t3);4846  color: var(--peach-accent);4847  letter-spacing: 0.04em;4848}48494850/* ── Pro promo on Account screen ────────────────────────────── */4851.peach-pro-promo {4852  position: relative;4853  border-radius: 14px;4854  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4855  background:4856    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4857    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4858    var(--surface-card);4859  overflow: hidden;4860  margin-bottom: 14px;4861}4862.peach-pro-promo-glow {4863  position: absolute;4864  inset: -40% -20% auto auto;4865  width: 220px; height: 220px;4866  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4867  pointer-events: none;4868  filter: blur(8px);4869}4870.peach-pro-promo-inner {4871  position: relative;4872  padding: 18px 18px 16px;4873}4874.peach-pro-promo-title {4875  font-family: var(--font-display);4876  font-style: italic;4877  font-weight: 400;4878  font-size: 28px;4879  line-height: 1;4880  letter-spacing: -0.005em;4881  color: var(--peach-t0);4882  margin: 0 0 4px;4883}4884.peach-pro-promo-tagline {4885  font-family: var(--font-mono);4886  font-size: 0.625rem;4887  letter-spacing: 0.06em;4888  color: var(--peach-t2);4889  margin: 0 0 14px;4890}4891.peach-pro-promo-list {4892  list-style: none;4893  margin: 0 0 16px;4894  padding: 0;4895  display: grid;4896  gap: 9px;4897}4898.peach-pro-promo-list li {4899  display: flex;4900  align-items: flex-start;4901  gap: 9px;4902  font-size: 0.75rem;4903  color: var(--peach-t1);4904  line-height: 1.4;4905}4906.peach-pro-promo-list svg {4907  width: 14px;4908  height: 14px;4909  flex-shrink: 0;4910  color: var(--peach-accent);4911  margin-top: 2px;4912}4913.peach-pro-promo-list span {4914  color: var(--peach-t0);4915}4916.peach-pro-promo-cta {4917  width: 100%;4918  background: var(--peach-accent);4919  color: #fff;4920  border: none;4921  padding: 9px 12px;4922  border-radius: 9px;4923  font-size: 0.75rem;4924  font-weight: 500;4925  font-family: var(--font-ui);4926  letter-spacing: 0.02em;4927  text-decoration: none;4928  display: inline-flex;4929  align-items: center;4930  justify-content: center;4931  cursor: pointer;4932  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4933  box-shadow: 0 2px 16px var(--peach-glow);4934}4935.peach-pro-promo-cta:hover {4936  filter: brightness(1.07);4937  box-shadow: 0 4px 24px var(--peach-glow);4938  transform: translateY(-1px);4939}4940.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }49414942.peach-pro-or-divider {4943  display: flex;4944  align-items: center;4945  gap: 10px;4946  margin: 4px 0 12px;4947  font-family: var(--font-mono);4948  font-size: 0.625rem;4949  letter-spacing: 0.06em;4950  color: var(--peach-t2);4951  text-transform: uppercase;4952}4953.peach-pro-or-divider::before,4954.peach-pro-or-divider::after {4955  content: "";4956  flex: 1;4957  height: 1px;4958  background: var(--peach-t3);4959}49604961.peach-loading {4962  position: absolute;4963  inset: 0;4964  display: flex;4965  align-items: center;4966  justify-content: center;4967  background: var(--bg);4968  animation: peach-loading-pulse 1.2s ease-in-out infinite;4969}49704971@keyframes peach-loading-pulse {4972  0%, 100% { opacity: 0.6; }4973  50% { opacity: 1; }4974}49754976/* ── Health Dashboard ─────────────────────────────────────────────────── */4977.peach-health-body {4978  flex: 1;4979  overflow-y: auto;4980  display: flex;4981  flex-direction: column;4982  /* Hide the platform scrollbar — every other scrollable surface in the4983   * popup hides it; the Health view was the one outlier and it ruined the4984   * polish. Behavior unchanged, just no rail rendered. */4985  scrollbar-width: none;4986  -ms-overflow-style: none;4987}4988.peach-health-body::-webkit-scrollbar { display: none; }49894990/* Loading screen for the Vault Health view. The advanced report computation4991 * can run for a few seconds on a large vault — without a clear loading4992 * screen the surface looked broken (the entry view bleeds through the4993 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4994.peach-health-loading-screen {4995  flex: 1;4996  display: flex;4997  flex-direction: column;4998  align-items: center;4999  justify-content: center;5000  gap: 14px;5001  padding: 32px 28px;5002  text-align: center;5003}50045005.peach-health-loading-glyph {5006  width: 48px;5007  height: 48px;5008  display: flex;5009  align-items: center;5010  justify-content: center;5011  border-radius: 14px;5012  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5013  color: var(--peach-accent);5014}50155016.peach-health-loading-title {5017  margin: 0;5018  font-family: var(--font-display);5019  font-style: italic;5020  font-weight: 300;5021  font-size: 19px;5022  line-height: 1.2;5023  color: var(--peach-t0);5024}50255026.peach-health-loading-copy {5027  margin: 0;5028  max-width: 240px;5029  font-size: 0.75rem;5030  line-height: 1.55;5031  color: var(--peach-t2);5032}50335034.peach-health-loading-track {5035  width: 200px;5036  height: 3px;5037  margin-top: 6px;5038  border-radius: 999px;5039  background: rgba(240, 232, 216, 0.06);5040  overflow: hidden;5041}50425043.peach-health-loading-fill {5044  width: 40%;5045  height: 100%;5046  border-radius: inherit;5047  background: linear-gradient(5048    90deg,5049    transparent 0%,5050    var(--peach-accent) 50%,5051    transparent 100%5052  );5053  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;5054}50555056@keyframes peach-health-loading-sweep {5057  0%   { transform: translateX(-100%); }5058  100% { transform: translateX(350%); }5059}50605061[data-motion="reduce"] .peach-health-loading-fill,5062[data-motion="reduce"] .peach-health-loading-glyph svg path {5063  animation: none;5064}50655066.peach-health-summary {5067  padding: 10px 16px 6px;5068  font-family: "IBM Plex Mono", monospace;5069  font-size: 0.6875rem;5070}5071.peach-health-summary-warn { color: rgba(220,80,60,0.9); }5072.peach-health-summary-ok { color: var(--peach-t2); }50735074.peach-health-check-row {5075  padding: 0 16px 10px;5076}5077.peach-health-check-btn {5078  width: 100%;5079  display: flex;5080  align-items: center;5081  justify-content: center;5082}50835084.peach-health-sections {5085  flex: 1;5086  display: flex;5087  flex-direction: column;5088}50895090.peach-health-section {5091  border-bottom: 1px solid var(--peach-t3);5092}50935094.peach-health-section-header {5095  width: 100%;5096  display: flex;5097  align-items: center;5098  justify-content: space-between;5099  padding: 9px 16px;5100  background: transparent;5101  cursor: pointer;5102  color: var(--peach-t0);5103}51045105.peach-health-section-title-row {5106  display: flex;5107  align-items: center;5108  gap: 8px;5109}51105111.peach-health-count-badge {5112  display: inline-flex;5113  align-items: center;5114  justify-content: center;5115  min-width: 20px;5116  height: 18px;5117  padding: 0 5px;5118  border-radius: 999px;5119  background: rgba(220,80,60,0.15);5120  border: 1px solid rgba(220,80,60,0.25);5121  font-family: "IBM Plex Mono", monospace;5122  font-size: 0.5625rem;5123  color: rgba(220,80,60,0.9);5124}51255126.peach-health-section-title {5127  font-family: "IBM Plex Mono", monospace;5128  font-size: 0.6875rem;5129  text-transform: uppercase;5130  letter-spacing: 0.1em;5131  color: var(--peach-t1);5132}51335134.peach-health-chevron {5135  color: var(--peach-t2);5136  transition: transform 200ms ease;5137  flex-shrink: 0;5138}5139.peach-health-chevron.is-expanded {5140  transform: rotate(180deg);5141}51425143.peach-health-section-body {5144  padding: 0 16px 10px;5145  display: flex;5146  flex-direction: column;5147  gap: 4px;5148}51495150.peach-health-row {5151  display: flex;5152  align-items: flex-start;5153  justify-content: space-between;5154  gap: 8px;5155  padding: 6px 8px;5156  border-radius: 8px;5157  background: rgba(240,232,216,0.02);5158}51595160.peach-health-row-info {5161  flex: 1;5162  min-width: 0;5163  display: flex;5164  flex-direction: column;5165  gap: 2px;5166}51675168.peach-health-row-name {5169  font-family: var(--font-display);5170  font-size: 0.9375rem;5171  font-style: italic;5172  font-weight: 400;5173  color: var(--peach-t0);5174  white-space: nowrap;5175  overflow: hidden;5176  text-overflow: ellipsis;5177}51785179.peach-health-row-meta {5180  font-family: "IBM Plex Mono", monospace;5181  font-size: 0.5625rem;5182  color: var(--peach-t2);5183  letter-spacing: 0.05em;5184}51855186.peach-health-fix-btn {5187  font-size: 0.5625rem;5188  letter-spacing: 0.08em;5189  text-transform: uppercase;5190  padding: 4px 7px;5191  flex-shrink: 0;5192  display: flex;5193  align-items: center;5194}51955196.peach-health-empty {5197  font-family: "IBM Plex Mono", monospace;5198  font-size: 0.625rem;5199  color: var(--peach-t2);5200  padding: 6px 0;5201}52025203.peach-health-loading {5204  font-family: "IBM Plex Mono", monospace;5205  font-size: 0.625rem;5206  color: var(--peach-t2);5207  padding: 6px 0;5208  display: flex;5209  align-items: center;5210  gap: 6px;5211}52125213.peach-health-loading::before {5214  content: "";5215  width: 10px;5216  height: 10px;5217  border: 1.5px solid var(--peach-t3);5218  border-top-color: var(--peach-accent);5219  border-radius: 50%;5220  animation: peach-spin 600ms linear infinite;5221}52225223@keyframes peach-spin {5224  to { transform: rotate(360deg); }5225}52265227.peach-spinner {5228  width: 32px;5229  height: 32px;5230  border: 2px solid var(--peach-s2);5231  border-top-color: var(--peach-accent);5232  border-radius: 50%;5233  margin: 0 auto 16px;5234  animation: peach-spin 0.8s linear infinite;5235}52365237.peach-progress-screen {5238  text-align: center;5239  padding: 32px 16px;5240}52415242.peach-progress-screen-title {5243  font-size: 0.8125rem;5244  color: var(--peach-t0);5245  margin-bottom: 16px;5246}52475248.peach-progress-screen-stage {5249  font-size: 0.6875rem;5250  color: var(--peach-t2);5251  min-height: 14px;5252}52535254.peach-progress-screen-note {5255  font-size: 0.625rem;5256  color: var(--peach-t2);5257  margin-top: 8px;5258}52595260/* Pairing commits the vault key before the first entry sync. Keep that5261   implementation detail off-screen until the paired source records a real,5262   durable sync completion. */5263.peach-initial-sync {5264  position: relative;5265  display: flex;5266  align-items: center;5267  justify-content: center;5268  overflow: hidden;5269}52705271.peach-initial-sync-card {5272  position: relative;5273  z-index: 1;5274  width: min(100%, 320px);5275  display: flex;5276  flex-direction: column;5277  align-items: center;5278  gap: 10px;5279  padding: 36px 26px;5280  text-align: center;5281}52825283.peach-initial-sync-mark {5284  width: 54px;5285  height: 54px;5286  display: flex;5287  align-items: center;5288  justify-content: center;5289  border-radius: 18px;5290  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5291  margin-bottom: 4px;5292}52935294.peach-initial-sync-mark svg {5295  width: 34px;5296  height: 34px;5297}52985299.peach-initial-sync-card h1 {5300  margin: 0;5301  color: var(--peach-t0);5302  font-family: var(--font-display);5303  font-size: 1.55rem;5304  font-style: italic;5305  font-weight: 400;5306}53075308.peach-initial-sync-card > p {5309  margin: 0;5310}53115312.peach-initial-sync-card #initial-sync-copy {5313  color: var(--peach-t1);5314  font-size: 0.78rem;5315  line-height: 1.55;5316}53175318.peach-initial-sync-progress {5319  width: 100%;5320  height: 3px;5321  overflow: hidden;5322  border-radius: 999px;5323  background: color-mix(in srgb, var(--peach-t0) 8%, transparent);5324  margin: 8px 0 2px;5325}53265327.peach-initial-sync-progress span {5328  display: block;5329  width: 42%;5330  height: 100%;5331  border-radius: inherit;5332  background: var(--peach-accent);5333  animation: peach-initial-sync-progress 1.4s cubic-bezier(0.2, 0, 0, 1) infinite;5334}53355336@keyframes peach-initial-sync-progress {5337  from { transform: translateX(-115%); }5338  to { transform: translateX(340%); }5339}53405341.peach-initial-sync-note {5342  color: var(--peach-t2);5343  font-size: 0.625rem;5344  line-height: 1.45;5345}53465347.peach-initial-sync-slow {5348  width: 100%;5349  display: flex;5350  flex-direction: column;5351  gap: 10px;5352  padding-top: 10px;5353  border-top: 1px solid var(--peach-border);5354}53555356.peach-initial-sync-slow p {5357  margin: 0;5358  color: var(--peach-t2);5359  font-size: 0.6875rem;5360  line-height: 1.45;5361}53625363.peach-initial-sync-slow .peach-btn {5364  width: 100%;5365}53665367@media (prefers-reduced-motion: reduce) {5368  .peach-initial-sync-progress span {5369    width: 100%;5370    opacity: 0.7;5371    animation: none;5372  }5373}53745375/* Tag chips */5376.peach-tag-chip {5377  display: inline-flex;5378  align-items: center;5379  gap: 4px;5380  padding: 3px 8px;5381  border-radius: 999px;5382  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5383  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5384  color: var(--peach-t0);5385  font-family: "IBM Plex Mono", monospace;5386  font-size: 0.625rem;5387  letter-spacing: 0.04em;5388}53895390.peach-tag-chip-remove {5391  background: transparent;5392  border: none;5393  color: inherit;5394  opacity: 0.6;5395  cursor: pointer;5396  padding: 0;5397  font-size: 0.75rem;5398  line-height: 1;5399}54005401.peach-tag-chip-remove:hover {5402  opacity: 1;5403}54045405/* Tag input */5406.peach-tag-input-wrap {5407  border-bottom: 1px solid var(--peach-t3);5408}54095410.peach-tag-suggestions {5411  display: flex;5412  flex-wrap: wrap;5413  gap: 4px;5414  padding: 6px 0;5415}54165417.peach-tag-suggestion {5418  padding: 2px 8px;5419  border-radius: 999px;5420  border: 1px solid var(--peach-t3);5421  background: var(--peach-s2);5422  color: var(--peach-t1);5423  font-family: "IBM Plex Mono", monospace;5424  font-size: 0.625rem;5425  cursor: pointer;5426  transition: border-color 80ms ease, background 80ms ease;5427}54285429.peach-tag-suggestion:hover {5430  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5431  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5432}54335434/* Identity suggestions — shown below username/email inputs in new-entry form */5435@keyframes peach-suggest-in {5436  from { opacity: 0; transform: translateY(-4px); }5437  to   { opacity: 1; transform: none; }5438}54395440.peach-identity-suggestions {5441  display: flex;5442  flex-direction: column;5443  gap: 1px;5444  margin-top: 4px;5445  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5446}54475448.peach-identity-filter-row {5449  display: flex;5450  align-items: center;5451  gap: 4px;5452  padding: 2px 0 5px;5453}54545455.peach-identity-collapse-btn {5456  margin-left: auto;5457  background: transparent;5458  border: none;5459  cursor: pointer;5460  color: var(--peach-t3);5461  padding: 2px 4px;5462  display: flex;5463  align-items: center;5464  line-height: 0;5465  border-radius: 3px;5466  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5467}54685469.peach-identity-collapse-btn:hover {5470  color: var(--peach-t1);5471}54725473.peach-identity-collapse-btn.is-collapsed {5474  transform: rotate(-90deg);5475}54765477.peach-identity-rows {5478  display: grid;5479  grid-template-rows: 1fr;5480  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5481}54825483.peach-identity-rows.is-collapsed {5484  grid-template-rows: 0fr;5485}54865487.peach-identity-rows-inner {5488  overflow-y: auto;5489  min-height: 0;5490  max-height: 148px;5491  scrollbar-width: thin;5492  scrollbar-color: var(--peach-t3) transparent;5493  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5494  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5495}54965497.peach-identity-rows-inner::-webkit-scrollbar {5498  width: 4px;5499}55005501.peach-identity-rows-inner::-webkit-scrollbar-track {5502  background: transparent;5503}55045505.peach-identity-rows-inner::-webkit-scrollbar-thumb {5506  background: var(--peach-t3);5507  border-radius: 2px;5508}55095510.peach-identity-filter-pill {5511  padding: 2px 7px;5512  border-radius: 999px;5513  border: 1px solid var(--peach-t3);5514  background: transparent;5515  color: var(--peach-t2);5516  font-family: "IBM Plex Mono", monospace;5517  font-size: 0.6rem;5518  cursor: pointer;5519  transition: border-color 80ms, background 80ms, color 80ms;5520}55215522.peach-identity-filter-pill.is-on {5523  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5524  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5525  color: var(--peach-accent);5526}55275528.peach-identity-suggestion {5529  display: flex;5530  align-items: center;5531  gap: 6px;5532  width: 100%;5533  padding: 4px 6px;5534  border-radius: 5px;5535  border: none;5536  background: transparent;5537  cursor: pointer;5538  text-align: left;5539  transition: background 80ms ease;5540}55415542.peach-identity-suggestion:hover,5543.peach-identity-suggestion:focus {5544  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5545  outline: none;5546}55475548.peach-identity-suggestion-value {5549  font-family: "IBM Plex Mono", monospace;5550  font-size: 0.7rem;5551  color: var(--peach-t1);5552  overflow: hidden;5553  text-overflow: ellipsis;5554  white-space: nowrap;5555  flex: 1;5556  min-width: 0;5557}55585559.peach-identity-suggestion-type {5560  font-family: "IBM Plex Mono", monospace;5561  font-size: 0.55rem;5562  font-weight: 600;5563  flex-shrink: 0;5564  padding: 1px 4px;5565  border-radius: 3px;5566}55675568.peach-identity-suggestion-type--email {5569  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5570  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5571}55725573.peach-identity-suggestion-type--username {5574  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5575  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5576}55775578.peach-identity-suggestion-meta {5579  font-family: "IBM Plex Mono", monospace;5580  font-size: 0.6rem;5581  color: var(--peach-t3);5582  flex-shrink: 0;5583}55845585/* Tag filter strip */5586.peach-tag-filter-strip {5587  border-bottom: 1px solid var(--peach-t3);5588  flex-shrink: 0;5589}55905591.peach-tag-filter-chip {5592  display: inline-flex;5593  align-items: center;5594  padding: 4px 10px;5595  border-radius: 999px;5596  border: 1px solid var(--peach-t3);5597  background: transparent;5598  color: var(--peach-t2);5599  font-family: "IBM Plex Mono", monospace;5600  font-size: 0.5625rem;5601  letter-spacing: 0.06em;5602  text-transform: uppercase;5603  cursor: pointer;5604  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5605  white-space: nowrap;5606}56075608.peach-tag-filter-chip:hover {5609  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5610  color: var(--peach-t1);5611}56125613.peach-tag-filter-chip.is-selected {5614  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5615  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5616  color: var(--peach-t0);5617}56185619/* ─────────────────────────────────────────────────────────────────────────5620   v1.4.12 additions5621   ─────────────────────────────────────────────────────────────────────── */56225623/* Sort bar */5624.peach-sort-bar {5625  display: flex;5626  align-items: center;5627  gap: 4px;5628  padding: 5px 12px;5629  border-bottom: 1px solid var(--peach-t3);5630  flex-shrink: 0;5631  overflow-x: auto;5632  scrollbar-width: none;5633}56345635.peach-sort-btn {5636  padding: 2px 9px;5637  border-radius: 999px;5638  border: 1px solid transparent;5639  background: transparent;5640  color: var(--peach-t2);5641  font-family: "IBM Plex Mono", monospace;5642  font-size: 0.5625rem;5643  letter-spacing: 0.07em;5644  text-transform: uppercase;5645  cursor: pointer;5646  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5647  white-space: nowrap;5648}56495650.peach-sort-btn:hover {5651  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5652  color: var(--peach-t1);5653}56545655.peach-sort-btn.is-active {5656  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5657  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5658  color: var(--peach-t0);5659}56605661.peach-sort-scope-btn {5662  padding-inline: 8px;5663  font-size: 0.53125rem;5664  letter-spacing: 0.05em;5665}56665667.peach-sort-domain-hint {5668  margin-left: auto;5669  font-family: "IBM Plex Mono", monospace;5670  font-size: 0.5625rem;5671  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5672  white-space: nowrap;5673  overflow: hidden;5674  text-overflow: ellipsis;5675  max-width: 110px;5676}56775678/* Tab-match badge on entry rows */5679.peach-tab-match-badge {5680  display: inline-block;5681  width: 6px;5682  height: 6px;5683  border-radius: 50%;5684  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5685  margin-left: 5px;5686  vertical-align: middle;5687  flex-shrink: 0;5688  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5689}56905691.peach-entry-row.is-tab-match {5692  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5693  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5694}56955696.peach-entry-row.is-tab-match:hover {5697  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5698}56995700/* Entry list stagger entrance */5701@keyframes peach-entry-fadein {5702  from { opacity: 0; transform: translateY(4px); }5703  to   { opacity: 1; transform: translateY(0); }5704}57055706.peach-vault-list .peach-entry-row {5707  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5708}57095710/* Button press micro-interaction */5711.peach-btn:active {5712  transform: scale(0.95);5713  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5714}57155716.peach-sort-btn:active,5717.peach-tag-filter-chip:active {5718  transform: scale(0.93);5719  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5720}57215722/* Password strength bar (Lock view + shared) */5723.peach-password-strength {5724  display: flex;5725  align-items: center;5726  gap: 8px;5727  margin-top: 6px;5728}57295730.peach-strength-bar {5731  flex: 1;5732  height: 3px;5733  border-radius: 2px;5734  background: var(--peach-t3);5735  overflow: hidden;5736}57375738.peach-strength-fill {5739  height: 100%;5740  border-radius: 2px;5741  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5742              background 300ms ease;5743}57445745.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5746.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5747.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5748.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }57495750.peach-strength-label {5751  font-family: "IBM Plex Mono", monospace;5752  font-style: italic;5753  font-size: 0.5625rem;5754  font-weight: 300;5755  letter-spacing: 0.06em;5756  color: var(--peach-t2);5757  min-width: 36px;5758  text-align: right;5759}57605761.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5762.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5763.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5764.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }57655766/* Duress form */5767.peach-duress-status {5768  padding: 2px 8px;5769  border-radius: 999px;5770  border: 1px solid var(--peach-t3);5771  font-family: "IBM Plex Mono", monospace;5772  font-size: 0.5625rem;5773  letter-spacing: 0.07em;5774  text-transform: uppercase;5775  color: var(--peach-t2);5776  flex-shrink: 0;5777}57785779.peach-duress-status.is-active {5780  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5781  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5782  color: var(--peach-t0);5783}57845785.peach-duress-form {5786  padding: 8px 0 4px;5787  display: flex;5788  flex-direction: column;5789  gap: 6px;5790}57915792.peach-duress-form .peach-label {5793  margin-top: 4px;5794}57955796.peach-duress-actions {5797  display: flex;5798  gap: 6px;5799  align-items: center;5800  margin-top: 4px;5801}58025803.peach-duress-actions .peach-btn:first-child {5804  margin-right: auto;5805}58065807/* Improved overlay spring entrance */5808.peach-overlay-view.ov-enter-up {5809  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5810}58115812@keyframes ov-enter-up-spring {5813  from { opacity: 0; transform: translateY(16px) scale(0.98); }5814  to   { opacity: 1; transform: translateY(0) scale(1); }5815}58165817.peach-overlay-view.ov-enter-right {5818  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5819}58205821@keyframes ov-enter-right-spring {5822  from { opacity: 0; transform: translateX(18px) scale(0.98); }5823  to   { opacity: 1; transform: translateX(0) scale(1); }5824}58255826/* ── Onboarding-mode restore screens (file import) ── */5827/* Used when MainImportView renders during onboarding (no vault yet).5828   Animates like a lock-screen transition. */5829.peach-lock-view {5830  position: absolute;5831  inset: 0;5832  display: flex;5833  flex-direction: column;5834  background:5835    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5836    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5837    var(--peach-bg);5838  z-index: 2;5839  overflow: hidden;5840  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5841}58425843.peach-lock-view-header {5844  display: flex;5845  align-items: center;5846  justify-content: space-between;5847  padding: 16px 18px 12px;5848  flex-shrink: 0;5849}58505851/* ───────── Settings: auto-lock select ───────── */5852.peach-settings-select {5853  font-family: "IBM Plex Mono", monospace;5854  font-size: 0.6875rem;5855  background: transparent;5856  border: 1px solid var(--peach-t3);5857  border-radius: 4px;5858  color: var(--peach-t1);5859  padding: 3px 6px;5860  cursor: pointer;5861  outline: none;5862}5863.peach-settings-select:focus {5864  border-color: var(--peach-accent);5865}58665867/* ───────── Duress status pill (new polished) ───────── */5868.peach-duress-status-pill {5869  font-family: "IBM Plex Mono", monospace;5870  font-size: 0.5625rem;5871  text-transform: uppercase;5872  letter-spacing: 0.12em;5873  padding: 2px 8px;5874  border-radius: 12px;5875  background: var(--peach-t3);5876  color: var(--peach-t2);5877  flex-shrink: 0;5878}5879.peach-duress-status-pill.is-active {5880  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5881  color: var(--peach-accent);5882}58835884/* ───────── Entry advanced disclosure (canary) ───────── */5885.peach-entry-advanced {5886  margin-top: 12px;5887  border-top: 1px solid var(--peach-t3);5888  padding-top: 10px;5889  position: relative;5890  z-index: 1;5891}5892.peach-entry-advanced-toggle {5893  display: flex;5894  align-items: center;5895  justify-content: space-between;5896  width: 100%;5897  background: transparent;5898  border: none;5899  cursor: pointer;5900  padding: 0;5901  color: var(--peach-t2);5902}5903.peach-canary-section {5904  margin-top: 10px;5905  display: grid;5906  gap: 6px;5907}59085909/* ───────── Import: merge/replace radio choices ───────── */5910.peach-import-choice {5911  display: flex;5912  align-items: flex-start;5913  gap: 10px;5914  padding: 8px 10px;5915  border: 1px solid var(--peach-t3);5916  border-radius: 10px;5917  cursor: pointer;5918  margin-bottom: 6px;5919  transition: border-color 120ms ease, background 120ms ease;5920}5921.peach-import-choice:hover {5922  border-color: var(--peach-accent);5923}5924.peach-import-choice input[type="radio"] {5925  margin-top: 3px;5926  accent-color: var(--peach-accent);5927  flex-shrink: 0;5928}5929.peach-import-choice-main {5930  display: flex;5931  flex-direction: column;5932  gap: 2px;5933  min-width: 0;5934}5935.peach-import-choice-label {5936  font-size: 0.75rem;5937  color: var(--peach-t0);5938}5939.peach-import-choice-sub {5940  font-size: 0.6875rem;5941  color: var(--peach-t2);5942  line-height: 1.5;5943}59445945/* ───────── Export: success confirmation strip ───────── */5946.peach-export-success {5947  display: flex;5948  align-items: flex-start;5949  gap: 10px;5950  padding: 12px;5951  border-radius: 12px;5952  border: 1px solid rgba(150, 175, 110, 0.3);5953  background: rgba(150, 175, 110, 0.08);5954  color: var(--peach-t0);5955  font-size: 0.75rem;5956  line-height: 1.55;5957}5958.peach-export-success-check {5959  color: rgba(150, 175, 110, 0.9);5960  font-size: 0.875rem;5961  flex-shrink: 0;5962}59635964/* ── Trash view ──────────────────────────────────────────────────────── */5965.peach-trash-entry-row {5966  display: flex;5967  align-items: center;5968  justify-content: space-between;5969  gap: 8px;5970  padding: 8px 0;5971  border-bottom: 1px solid var(--peach-border);5972}5973.peach-trash-entry-info {5974  flex: 1;5975  min-width: 0;5976  display: flex;5977  flex-direction: column;5978  gap: 2px;5979}5980.peach-trash-entry-title {5981  font-size: 0.8125rem;5982  color: var(--peach-t0);5983  overflow: hidden;5984  text-overflow: ellipsis;5985  white-space: nowrap;5986}5987.peach-trash-entry-meta {5988  font-family: var(--font-mono);5989  font-size: 0.5625rem;5990  color: var(--peach-t2);5991  letter-spacing: 0.04em;5992}5993.peach-trash-entry-actions {5994  display: flex;5995  align-items: center;5996  gap: 4px;5997  flex-shrink: 0;5998}5999.peach-trash-delete-btn {6000  background: transparent;6001  border: 0;6002  color: var(--peach-t3);6003  font-size: 1rem;6004  line-height: 1;6005  cursor: pointer;6006  padding: 2px 5px;6007  transition: color 0.15s;6008}6009.peach-trash-delete-btn:hover { color: var(--peach-breach); }6010.peach-trash-list {6011  overflow-y: auto;6012}6013.peach-trash-footer {6014  display: flex;6015  align-items: center;6016  gap: 8px;6017  padding: 8px 0 0;6018  border-top: 1px solid var(--peach-border);6019  margin-top: 4px;6020}6021.peach-trash-purge-all {6022  background: transparent;6023  border: 0;6024  color: var(--peach-t3);6025  font-size: 0.625rem;6026  cursor: pointer;6027  padding: 4px 0;6028  letter-spacing: 0.03em;6029  transition: color 0.2s;6030}6031.peach-trash-purge-all:hover { color: var(--peach-breach); }6032.peach-trash-purge-confirm-label {6033  font-size: 0.625rem;6034  color: var(--peach-t1);6035  flex: 1;6036}60376038/* ── Settings shortcuts grid ─────────────────────────────────────────── */6039.peach-shortcuts-grid {6040  display: grid;6041  grid-template-columns: auto 1fr;6042  gap: 6px 12px;6043  align-items: center;6044  padding: 4px 0;6045}6046.peach-shortcut-key {6047  font-family: var(--font-mono);6048  font-size: 0.625rem;6049  color: var(--peach-t0);6050  background: var(--peach-t3);6051  border-radius: 4px;6052  padding: 2px 6px;6053  white-space: nowrap;6054  text-align: center;6055}6056.peach-shortcut-desc {6057  font-size: 0.6875rem;6058  color: var(--peach-t1);6059}60606061/* ── Sort bar trash button ───────────────────────────────────────────── */6062.peach-sort-trash-btn {6063  display: flex;6064  align-items: center;6065  justify-content: center;6066  padding: 3px 5px;6067  background: transparent;6068  border: none;6069  cursor: pointer;6070  color: var(--peach-t2);6071  border-radius: 4px;6072  transition: color 140ms ease, background 140ms ease;6073}6074.peach-sort-trash-btn:hover {6075  color: var(--peach-t1);6076  background: var(--peach-t3);6077}6078.peach-sort-trash-btn.is-active {6079  color: var(--peach-accent);6080}60816082/* Accent color picker */6083.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }6084.peach-accent-picker {6085  display: flex;6086  flex-wrap: wrap;6087  gap: 7px;6088  padding: 2px 0;6089}6090.peach-accent-swatch {6091  width: 22px;6092  height: 22px;6093  border-radius: 50%;6094  border: 2px solid transparent;6095  cursor: pointer;6096  padding: 0;6097  transition: transform 100ms;6098  outline-offset: 2px;6099}6100.peach-accent-swatch:hover { transform: scale(1.15); }6101.peach-accent-swatch.is-active {6102  border-color: var(--peach-t0);6103  transform: scale(1.1);6104}61056106.peach-pill-group {6107  display: flex;6108  gap: 6px;6109}6110.peach-pill-group .peach-btn.is-active {6111  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);6112  border-color: var(--peach-accent);6113  color: var(--peach-t0);6114}61156116/* ── Card entry styles ───────────────────────────────────────── */6117.peach-card-number {6118  font-family: var(--peach-mono);6119  letter-spacing: 0.08em;6120}61216122.peach-card-network-badge {6123  font-size: 0.625rem;6124  padding: 1px 5px;6125  border-radius: 4px;6126  border: 0.5px solid var(--peach-border);6127  color: var(--peach-text-dim);6128  margin-left: 6px;6129  vertical-align: middle;6130}61316132.peach-card-expiry-row {6133  display: flex;6134  align-items: center;6135  gap: 8px;6136}61376138.peach-card-expiry-sep {6139  color: var(--peach-text-dim);6140}61416142/* ── Pro tier — upgrade screen ──────────────────────────────── */6143.peach-pro-mark {6144  font-size: 0.5625rem;6145  color: var(--peach-accent);6146  margin-left: 6px;6147  vertical-align: super;6148  opacity: 0.7;6149}61506151.peach-pro-mini-badge {6152  display: block;6153  font-size: 0.625rem;6154  font-style: italic;6155  color: var(--peach-accent);6156  letter-spacing: 0.04em;6157  margin-top: -2px;6158  padding-left: 2px;6159  opacity: 0.85;6160  text-align: center;6161}61626163.peach-wordmark-stack {6164  display: inline-flex;6165  flex-direction: column;6166  align-items: center;6167}61686169/* ── Pro tier — upgrade page ─────────────────────────────────── */6170/* ── Pro upgrade — redesigned editorial layout ─────────────────── */61716172.peach-pro-upgrade {6173  display: flex;6174  flex-direction: column;6175  align-items: stretch;6176  gap: 10px;6177  padding: 2px 2px 12px;6178}61796180.peach-pro-eyebrow {6181  margin: 0;6182  font-family: var(--font-ui);6183  font-size: 0.625rem;6184  font-weight: 500;6185  letter-spacing: 0.12em;6186  color: var(--peach-accent);6187}61886189.peach-pro-headline {6190  margin: 0;6191  font-family: var(--font-display, "Cormorant Garamond", serif);6192  font-size: 30px;6193  font-weight: 700;6194  font-style: normal;6195  line-height: 1.05;6196  color: var(--peach-t0);6197  letter-spacing: -0.01em;6198}6199.peach-pro-headline em {6200  font-style: italic;6201  font-weight: 400;6202  color: var(--peach-accent);6203}62046205.peach-pro-subtitle {6206  margin: 0;6207  font-size: 0.6875rem;6208  line-height: 1.5;6209  color: var(--peach-t1);6210}62116212/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */6213.peach-pro-section-label {6214  margin: 6px 0 0;6215  font-family: var(--font-ui);6216  font-size: 0.5625rem;6217  font-weight: 500;6218  letter-spacing: 0.12em;6219  text-transform: uppercase;6220  color: var(--peach-t2);6221}62226223/* 2-column numbered feature grid */6224.peach-pro-grid {6225  display: grid;6226  grid-template-columns: 1fr 1fr;6227  border-top: 1px solid var(--peach-border);6228  border-left: 1px solid var(--peach-border);6229}62306231.peach-pro-grid-item {6232  display: flex;6233  flex-direction: column;6234  gap: 2px;6235  padding: 8px 9px;6236  border-right: 1px solid var(--peach-border);6237  border-bottom: 1px solid var(--peach-border);6238}62396240.peach-pro-grid-item--wide {6241  grid-column: 1 / -1;6242}62436244.peach-pro-grid-num {6245  font-family: var(--font-mono);6246  font-size: 0.5625rem;6247  color: var(--peach-accent);6248  letter-spacing: 0.06em;6249  opacity: 0.85;6250}62516252.peach-pro-grid-name {6253  font-size: 0.8125rem;6254  font-weight: 500;6255  color: var(--peach-t0);6256  line-height: 1.2;6257}62586259.peach-pro-grid-desc {6260  font-size: 0.625rem;6261  color: var(--peach-t1);6262  line-height: 1.4;6263}62646265.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6266  animation: peach-pulse-accent 600ms ease-out forwards;6267}62686269@keyframes peach-pulse-accent {6270  0%   { opacity: 1; transform: scale(1.2); }6271  100% { opacity: 0.85; transform: scale(1); }6272}62736274/* Actions */6275.peach-pro-upgrade-actions {6276  display: flex;6277  flex-direction: column;6278  align-items: stretch;6279  gap: 10px;6280}62816282.peach-pro-pricing {6283  margin: 0;6284  font-size: 1rem;6285  font-weight: 600;6286  color: var(--peach-t0);6287  letter-spacing: 0.01em;6288}6289.peach-pro-pricing-sub {6290  font-size: 0.75rem;6291  font-weight: 400;6292  color: var(--peach-t1);6293  letter-spacing: 0.02em;6294}62956296.peach-pro-upgrade-cta {6297  display: flex;6298  align-items: center;6299  justify-content: center;6300  text-decoration: none;6301  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6302  border: 1px solid var(--peach-accent);6303  border-radius: 10px;6304  color: var(--peach-accent);6305  font-family: var(--font-ui);6306  font-size: 0.8125rem;6307  font-weight: 600;6308  letter-spacing: 0.06em;6309  padding: 11px 16px;6310  transition: background 0.15s ease, color 0.15s ease;6311}6312.peach-pro-upgrade-cta:hover {6313  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6314}63156316/* Pairing's terminal entitlement fallback reuses the Peach Pro card's6317   editorial hierarchy without embedding the settings deck itself. */6318.peach-pair-pro-required {6319  width: 100%;6320  display: flex;6321  flex-direction: column;6322  align-items: stretch;6323  gap: 10px;6324  text-align: left;6325}6326.peach-pair-pro-required .peach-pro-headline {6327  font-size: 1.75rem;6328}6329.peach-pair-pro-required .peach-pro-subtitle {6330  font-size: 0.6875rem;6331}6332.peach-pair-pro-grid {6333  grid-template-columns: 1fr;6334}6335.peach-pair-pro-button {6336  width: 100%;6337  cursor: pointer;6338}6339.peach-desktop-error--pro {6340  width: min(100%, 320px);6341  overflow-y: auto;6342}63436344.peach-pro-key-divider {6345  display: flex;6346  align-items: center;6347  gap: 8px;6348  color: var(--peach-t2);6349  font-size: 0.5625rem;6350  letter-spacing: 0.1em;6351}6352.peach-pro-key-divider::before,6353.peach-pro-key-divider::after {6354  content: "";6355  flex: 1;6356  height: 1px;6357  background: var(--peach-border);6358}63596360/* Inline key entry row */6361.peach-pro-key-inline {6362  display: flex;6363  align-items: center;6364  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6365  border: 1px solid var(--peach-border);6366  border-radius: 8px;6367  overflow: hidden;6368}6369.peach-pro-key-inline-input {6370  flex: 1;6371  background: transparent;6372  border: none;6373  outline: none;6374  color: var(--peach-t1);6375  font-family: var(--font-mono);6376  font-size: 0.625rem;6377  letter-spacing: 0.06em;6378  padding: 9px 10px;6379}6380.peach-pro-key-inline-input::placeholder {6381  color: var(--peach-t2);6382}6383.peach-pro-key-apply {6384  background: transparent;6385  border: none;6386  border-left: 1px solid var(--peach-border);6387  color: var(--peach-t2);6388  font-family: var(--font-ui);6389  font-size: 0.5625rem;6390  font-weight: 600;6391  letter-spacing: 0.08em;6392  padding: 9px 10px;6393  cursor: pointer;6394  transition: color 0.15s ease;6395  flex-shrink: 0;6396}6397.peach-pro-key-apply:not(:disabled):hover {6398  color: var(--peach-accent);6399}6400.peach-pro-key-apply:disabled {6401  opacity: 0.35;6402  cursor: not-allowed;6403}64046405/* ── Pro tier — key ceremony ─────────────────────────────────── */6406.peach-pro-key-ceremony {6407  display: flex;6408  flex-direction: column;6409  align-items: center;6410  gap: 12px;6411  padding: 20px 4px 16px;6412}64136414.peach-pro-key-ceremony .peach-lock-rune-string {6415  font-size: 1rem;6416  gap: 12px;6417  flex: 0;6418  justify-content: center;6419}64206421.peach-pro-key-ceremony-label {6422  margin: 0;6423  font-size: 0.6875rem;6424  color: var(--peach-t2);6425  font-style: italic;6426  letter-spacing: 0.04em;6427}64286429.peach-pro-key-input {6430  font-family: var(--font-mono, monospace);6431  letter-spacing: 0.06em;6432  text-align: center;6433  width: 100%;6434  box-sizing: border-box;6435}64366437.peach-pro-key-error {6438  margin: 0;6439  font-size: 0.75rem;6440  text-align: center;6441  color: var(--peach-breach, #e55);6442  padding: 0;6443}64446445.peach-pro-key-activate {6446  width: 100%;6447  text-align: center;6448  box-sizing: border-box;6449  padding: 10px 20px;6450  font-size: 0.8125rem;6451}64526453.peach-pro-key-cancel {6454  background: transparent;6455  border: 0;6456  color: var(--peach-t2);6457  font-size: 0.6875rem;6458  cursor: pointer;6459  padding: 2px 8px;6460  transition: color 0.2s;6461}64626463.peach-pro-key-cancel:hover { color: var(--peach-accent); }64646465/* ── Pro tier — active state ─────────────────────────────────── */6466.peach-pro-active {6467  display: flex;6468  flex-direction: column;6469  align-items: center;6470  gap: 0;6471  padding: 8px 4px 16px;6472  min-height: 280px;6473}64746475.peach-pro-active-hero {6476  display: flex;6477  flex-direction: column;6478  align-items: center;6479  gap: 6px;6480  padding: 20px 0 8px;6481}64826483.peach-pro-active-mark-wrap {6484  display: flex;6485  align-items: center;6486  justify-content: center;6487  margin-bottom: 4px;6488}64896490.peach-pro-active-mark {6491  width: 60px;6492  height: 60px;6493}64946495.peach-pro-active-title {6496  font-family: var(--font-display, var(--font-ui));6497  font-size: 26px;6498  margin: 0;6499  color: var(--peach-t0);6500  letter-spacing: 0.01em;6501}65026503.peach-pro-active-since {6504  margin: 0;6505  font-size: 0.6875rem;6506  color: var(--peach-t2);6507  font-style: italic;6508}65096510.peach-pro-active-features {6511  display: flex;6512  flex-direction: column;6513  gap: 8px;6514  width: 100%;6515  padding: 14px 8px 0;6516  border-top: 1px solid var(--peach-border);6517  flex: 1;6518}65196520.peach-pro-active-feature {6521  display: flex;6522  align-items: center;6523  gap: 9px;6524}65256526.peach-pro-active-feature-mark {6527  color: var(--peach-accent);6528  font-size: 0.625rem;6529  opacity: 0.65;6530  flex-shrink: 0;6531}65326533.peach-pro-active-feature-name {6534  font-size: 0.75rem;6535  color: var(--peach-t1);6536}65376538.peach-pro-deactivate {6539  align-self: center;6540  background: transparent;6541  border: 0;6542  color: var(--peach-t3);6543  font-size: 0.625rem;6544  cursor: pointer;6545  padding: 8px 0 0;6546  margin-top: 16px;6547  letter-spacing: 0.03em;6548  transition: color 0.2s;6549}65506551.peach-pro-deactivate:hover { color: var(--peach-t2); }65526553.peach-pro-deactivate:disabled {6554  opacity: 0.5;6555  cursor: default;6556}65576558/* ── Pro card activation sparkles & thank-you ── */6559button.peach-pro-active-mark-wrap {6560  background: transparent;6561  border: 0;6562  padding: 0;6563  cursor: pointer;6564  position: relative;6565  overflow: visible;6566}65676568.peach-pro-sparks {6569  position: absolute;6570  inset: 0;6571  pointer-events: none;6572  overflow: visible;6573}65746575.peach-pro-spark {6576  position: absolute;6577  top: 50%;6578  left: 50%;6579  font-size: 9px;6580  line-height: 1;6581  opacity: 0;6582  transform: translate(-50%, -50%);6583  animation: peach-pro-spark-fly 1.4s ease-out var(--spark-delay, 0ms) both;6584}65856586@keyframes peach-pro-spark-fly {6587  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }6588  25%  { opacity: 1; }6589  100% {6590    opacity: 0;6591    transform: translate(6592      calc(-50% + var(--spark-x, 0px)),6593      calc(-50% + var(--spark-y, -40px))6594    ) scale(0.8);6595  }6596}65976598.peach-pro-thankyou-text {6599  margin: 4px 0 0;6600  font-size: 0.6875rem;6601  font-style: italic;6602  color: currentColor;6603  opacity: 0;6604  animation: peach-pro-thankyou-flash 2.5s ease both;6605}66066607@keyframes peach-pro-thankyou-flash {6608  0%   { opacity: 0; transform: translateY(4px); }6609  15%  { opacity: 0.75; transform: translateY(0); }6610  75%  { opacity: 0.75; }6611  100% { opacity: 0; }6612}66136614/* ── Pro advanced health remediation queue ──────────────────── */6615.peach-health-pro-queue {6616  display: flex;6617  flex-direction: column;6618  gap: 10px;6619  padding: 12px;6620  margin: 0 0 12px;6621  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6622  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6623  border-radius: 10px;6624}66256626.peach-health-pro-queue-head {6627  display: flex;6628  justify-content: space-between;6629  align-items: baseline;6630}66316632.peach-health-pro-queue-title {6633  font-size: 0.75rem;6634  font-weight: 500;6635  letter-spacing: 0.04em;6636  text-transform: uppercase;6637  color: var(--peach-accent);6638}66396640.peach-health-pro-queue-score {6641  font-size: 0.6875rem;6642  color: var(--peach-t2);6643}66446645.peach-health-pro-row {6646  display: flex;6647  gap: 10px;6648  align-items: center;6649  padding: 8px 0;6650  border-top: 1px solid var(--peach-border);6651}66526653.peach-health-pro-row-info {6654  flex: 1;6655  display: flex;6656  flex-direction: column;6657  gap: 4px;6658  min-width: 0;6659}66606661.peach-health-pro-action {6662  flex: 0 0 auto;6663  padding: 4px 8px;6664  font-size: 0.5625rem;6665  letter-spacing: 0.08em;6666  text-transform: uppercase;6667}66686669.peach-health-pro-row-name {6670  font-size: 0.8125rem;6671  color: var(--peach-t0);6672  overflow: hidden;6673  text-overflow: ellipsis;6674  white-space: nowrap;6675}66766677.peach-health-pro-row-meta {6678  font-size: 0.6875rem;6679  color: var(--peach-t2);6680}66816682.peach-health-pro-bar {6683  height: 2px;6684  background: var(--peach-border);6685  border-radius: 2px;6686  overflow: hidden;6687  margin-top: 2px;6688}66896690.peach-health-pro-bar-fill {6691  height: 100%;6692  background: var(--peach-accent);6693  transition: width 200ms ease-out;6694}66956696/* ── Pro activation celebration ── */6697@keyframes peach-pro-bloom {6698  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6699  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6700                 drop-shadow(0 0 48px var(--peach-glow)); }6701  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6702}67036704@keyframes peach-pro-wordmark-in {6705  from { opacity: 0; transform: translateY(4px); }6706  to   { opacity: 1; transform: translateY(0); }6707}67086709@keyframes peach-pro-fade-out {6710  from { opacity: 1; }6711  to   { opacity: 0; }6712}67136714.peach-pro-celebration {6715  background:6716    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6717    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6718    var(--peach-bg);6719  border: 1px solid var(--peach-t3);6720  box-shadow:6721    0 2px 8px rgba(0,0,0,0.55),6722    0 14px 48px rgba(0,0,0,0.7),6723    0 0 0 1px rgba(240,232,216,0.04);6724  overflow: hidden;6725  width: 320px;6726  height: 520px;6727  display: flex;6728  flex-direction: column;6729  align-items: center;6730  justify-content: center;6731  gap: 8px;6732  padding: 32px 24px;6733  text-align: center;6734}67356736.peach-pro-celebration.is-leaving {6737  animation: peach-pro-fade-out 400ms ease forwards;6738}67396740.peach-pro-bloom-target {6741  display: flex;6742  align-items: center;6743  justify-content: center;6744  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6745  margin-bottom: 12px;6746}67476748.peach-pro-bloom-icon {6749  width: 48px;6750  height: 48px;6751}67526753.peach-pro-wordmark {6754  font-family: var(--font-display);6755  font-size: 22px;6756  font-style: italic;6757  font-weight: 400;6758  color: var(--peach-accent);6759  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6760}67616762.peach-pro-thankyou {6763  font-size: 0.75rem;6764  font-style: italic;6765  color: var(--peach-t2);6766  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6767}676867696770/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6771.peach-pro-notice-banner {6772  display: flex;6773  align-items: center;6774  gap: 8px;6775  padding: 7px 12px;6776  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6777  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6778  font-size: 0.6875rem;6779  color: var(--peach-t2);6780  font-family: "IBM Plex Mono", monospace;6781  flex-shrink: 0;6782}67836784.peach-pro-notice-link {6785  background: none;6786  border: none;6787  padding: 0;6788  cursor: pointer;6789  font-size: 0.6875rem;6790  color: var(--peach-accent);6791  font-family: "IBM Plex Mono", monospace;6792  margin-left: auto;6793  white-space: nowrap;6794}67956796.peach-pro-notice-close {6797  background: none;6798  border: none;6799  padding: 0 0 0 4px;6800  cursor: pointer;6801  font-size: 0.625rem;6802  color: var(--peach-t3);6803  line-height: 1;6804}68056806/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6807   Renders over whatever view is showing. 60-second expiry; the popup ticks6808   the countdown each second and clears the banner when it hits zero. */6809.peach-pair-request-banner {6810  display: flex;6811  flex-direction: column;6812  gap: 8px;6813  padding: 10px 12px;6814  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6815  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6816  font-family: "IBM Plex Mono", monospace;6817  flex-shrink: 0;6818}68196820.peach-pair-toast {6821  padding: 8px 12px;6822  font-family: "IBM Plex Mono", monospace;6823  font-size: 0.75rem;6824  color: var(--peach-t1);6825  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6826  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6827  flex-shrink: 0;6828  text-align: center;6829}68306831.peach-pair-toast strong {6832  color: var(--peach-t0);6833  font-weight: 500;6834}68356836.peach-pair-request-header {6837  display: flex;6838  align-items: center;6839  gap: 8px;6840  font-size: 0.75rem;6841  color: var(--peach-t1);6842}68436844.peach-pair-request-mark {6845  font-size: 0.875rem;6846  display: inline-flex;6847  align-items: center;6848}68496850.peach-pair-request-icon {6851  width: 1em;6852  height: 1em;6853}68546855.peach-pair-request-title {6856  font-weight: 600;6857  color: var(--peach-t0);6858}68596860.peach-pair-request-countdown {6861  margin-left: auto;6862  font-variant-numeric: tabular-nums;6863  color: var(--peach-t2);6864  font-size: 0.6875rem;6865}68666867.peach-pair-request-body {6868  margin: 0;6869  font-size: 0.75rem;6870  color: var(--peach-t1);6871  line-height: 1.4;6872}68736874.peach-pair-request-body strong {6875  color: var(--peach-t0);6876  font-weight: 600;6877}68786879.peach-pair-request-actions {6880  display: flex;6881  gap: 8px;6882  justify-content: flex-end;6883}68846885/* ─── First-run onboarding ──────────────────────────────────────────────6886   Three-card welcome shown once before vault creation. The PeachScript6887   rune background drifts behind everything at very low opacity — it's6888   atmosphere, not focus. The cards themselves use the same panel6889   language as the rest of the popup so the transition into NewVault is6890   continuous, not a jarring switch of visual register. */68916892.peach-onboarding {6893  position: relative;6894  display: flex;6895  flex-direction: column;6896  width: 100%;6897  height: 100%;6898  padding: 16px 16px 18px;6899  box-sizing: border-box;6900  overflow: hidden;6901  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6902}69036904.peach-onboarding.is-completing {6905  animation: peach-onboard-exit 200ms ease-out forwards;6906}69076908.peach-rune-background {6909  position: absolute;6910  inset: 0;6911  width: 100%;6912  height: 100%;6913  pointer-events: none;6914  z-index: 0;6915  transition: opacity 500ms ease-out;6916}69176918.peach-onboarding.is-completing .peach-rune-background {6919  opacity: 0;6920}69216922.peach-onboarding-header {6923  position: relative;6924  z-index: 1;6925  display: flex;6926  align-items: center;6927  margin-bottom: 14px;6928}69296930.peach-onboarding-card {6931  position: relative;6932  z-index: 1;6933  flex: 1;6934  min-height: 0;6935  display: flex;6936  flex-direction: column;6937  gap: 10px;6938  padding: 22px 20px;6939  justify-content: center;6940  border-radius: 16px;6941  border: 1px solid var(--peach-t3);6942  background:6943    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6944  backdrop-filter: blur(3px);6945  -webkit-backdrop-filter: blur(3px);6946  box-shadow:6947    inset 0 1px 0 rgba(240, 232, 216, 0.04),6948    0 12px 28px rgba(0, 0, 0, 0.12);6949  cursor: pointer;6950  user-select: none;6951  overflow-y: auto;6952  scrollbar-width: none;6953  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6954}69556956.peach-onboarding-card::-webkit-scrollbar {6957  display: none;6958}69596960.peach-onboarding-card.is-exiting {6961  animation: peach-card-out 120ms ease-in forwards;6962  pointer-events: none;6963}69646965/* The final card carries the choice rows on top of the full intro copy.6966 * The "Already using Peach?" block is a separate decision section — float it6967 * toward the bottom so the copy breathes and no dead gap pools under it6968 * (scroll stays available as a fallback on shorter viewports). */6969.peach-onboarding-card--final {6970  gap: 8px;6971  padding-top: 20px;6972  padding-bottom: 16px;6973  justify-content: flex-start;6974}69756976.peach-onboarding-card--final .peach-onboarding-body {6977  font-size: 0.75rem;6978  line-height: 1.5;6979}69806981.peach-onboarding-card--final .peach-onboarding-choice {6982  min-height: 40px;6983  padding: 6px 10px;6984}69856986.peach-onboarding-card--final .peach-onboarding-choice-row {6987  gap: 6px;6988}69896990.peach-onboarding-card--final .peach-onboarding-choice-heading {6991  margin: auto 0 -2px;6992}69936994.peach-onboarding-card-headline {6995  margin: 0;6996  font-family: var(--font-display);6997  font-style: italic;6998  font-weight: 400;6999  font-size: 22px;7000  line-height: 1.05;7001  color: var(--peach-t0);7002  white-space: pre-line;7003}70047005.peach-onboarding-divider {7006  margin: 4px 0 6px;7007  border: 0;7008  border-top: 1px solid var(--peach-t3);7009  width: 100%;7010}70117012.peach-onboarding-body {7013  margin: 0;7014  font-size: 0.8125rem;7015  line-height: 1.6;7016  color: var(--peach-t1);7017}70187019.peach-onboarding-warning {7020  display: flex;7021  align-items: flex-start;7022  gap: 8px;7023  margin: 6px 0 0;7024  padding-top: 8px;7025  border-top: 1px dashed var(--peach-t3);7026  font-size: 0.8125rem;7027  line-height: 1.5;7028  color: var(--peach-t1);7029}70307031.peach-onboarding-warning-icon {7032  color: var(--peach-accent);7033  font-size: 0.8125rem;7034  line-height: 1.5;7035  flex: 0 0 auto;7036}70377038.peach-onboarding-nav {7039  position: relative;7040  z-index: 1;7041  display: grid;7042  grid-template-columns: 1fr auto 1fr;7043  align-items: center;7044  margin-top: 12px;7045  padding: 0 4px;7046}70477048.peach-onboarding-next {7049  justify-self: end;7050}70517052.peach-onboarding-back {7053  justify-self: start;7054}70557056.peach-onboarding-dots {7057  display: flex;7058  align-items: center;7059  gap: 6px;7060}70617062.peach-onboarding-dot {7063  width: 6px;7064  height: 6px;7065  border-radius: 50%;7066  background: var(--peach-t2);7067  transition: width 200ms ease, height 200ms ease, background 200ms ease;7068}70697070.peach-onboarding-dot.is-active {7071  width: 8px;7072  height: 8px;7073  background: var(--peach-accent);7074}70757076.peach-onboarding-next {7077  background: none;7078  border: none;7079  padding: 4px 0;7080  cursor: pointer;7081  font-family: "IBM Plex Mono", monospace;7082  font-size: 0.6875rem;7083  letter-spacing: 0.04em;7084  color: var(--peach-t1);7085  transition: color 150ms ease;7086}70877088.peach-onboarding-next:hover {7089  color: var(--peach-t0);7090}70917092.peach-onboarding-next:disabled {7093  opacity: 0.5;7094  cursor: default;7095}70967097.peach-onboarding-back {7098  background: none;7099  border: none;7100  padding: 4px 0;7101  cursor: pointer;7102  font-family: "IBM Plex Mono", monospace;7103  font-size: 0.6875rem;7104  letter-spacing: 0.04em;7105  color: var(--peach-t2);7106  transition: color 150ms ease;7107}71087109.peach-onboarding-back:hover {7110  color: var(--peach-t0);7111}71127113.peach-onboarding-back:disabled {7114  opacity: 0.5;7115  cursor: default;7116}71177118/* Reserve back-button width on the first card so the dots stay centred */7119.peach-onboarding-back-spacer {7120  width: 44px;7121}71227123.peach-onboarding-choice-row {7124  display: grid;7125  grid-template-columns: 1fr;7126  gap: 8px;7127}71287129.peach-onboarding-choice-heading {7130  margin: 8px 0 -2px;7131  color: var(--peach-t1);7132  font-family: "IBM Plex Mono", monospace;7133  font-size: 0.6875rem;7134  letter-spacing: 0.04em;7135  text-transform: uppercase;7136}71377138.peach-onboarding-choice {7139  min-height: 48px;7140  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);7141  border-radius: 8px;7142  padding: 8px 10px;7143  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7144  color: var(--peach-t0);7145  font-size: 0.76rem;7146  font-weight: 700;7147  text-align: left;7148}71497150.peach-onboarding-choice-label {7151  display: flex;7152  align-items: center;7153  gap: 6px;7154}71557156.peach-onboarding-choice-detail {7157  display: block;7158}71597160.peach-onboarding-choice-detail {7161  margin-top: 2px;7162  color: var(--peach-t1);7163  font-size: 0.625rem;7164  font-weight: 400;7165  line-height: 1.35;7166}71677168.peach-onboarding-choice--adopt {7169  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);7170  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7171}71727173.peach-adopt-vault {7174  position: relative;7175  min-height: 100%;7176  padding: 22px;7177  display: grid;7178  place-items: center;7179}71807181.peach-adopt-vault--pair {7182  padding: 10px;7183  overflow-y: auto;7184  scrollbar-width: none;7185}71867187.peach-adopt-vault--pair::-webkit-scrollbar {7188  display: none;7189}71907191.peach-adopt-card {7192  position: relative;7193  z-index: 1;7194  width: min(100%, 330px);7195  padding: 20px;7196  border-radius: 8px;7197  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7198  background: color-mix(in srgb, var(--peach-surface) 90%, transparent);7199  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);7200}72017202.peach-adopt-card--pair {7203  width: 100%;7204  max-height: 500px;7205  margin: auto;7206  padding: 14px 16px 12px;7207  overflow-y: auto;7208  scrollbar-width: none;7209  border: 0;7210  border-radius: 16px;7211  background:7212    radial-gradient(7213      circle at 50% -10%,7214      color-mix(in srgb, var(--peach-accent) 14%, transparent),7215      transparent 38%7216    ),7217    color-mix(in srgb, var(--peach-surface) 94%, transparent);7218}72197220.peach-adopt-card--pair::-webkit-scrollbar {7221  display: none;7222}72237224.peach-adopt-card h1 {7225  margin: 0 0 10px;7226  font-family: var(--font-display);7227  font-style: italic;7228  font-weight: 400;7229  font-size: 1.42rem;7230  line-height: 1.15;7231}72327233.peach-adopt-card p {7234  margin: 0 0 14px;7235  color: var(--peach-t1);7236  line-height: 1.35;7237}72387239.peach-adopt-card .peach-hint-relay {7240  margin: 12px 0 0;7241  font-size: 11px;7242  line-height: 1.4;7243  color: var(--peach-t2);7244  opacity: 0.85;7245}72467247.peach-adopt-input {7248  margin-bottom: 12px;7249}72507251.peach-adopt-card textarea.peach-adopt-input {7252  width: 100%;7253  resize: vertical;7254  overflow-wrap: anywhere;7255  font-family: "IBM Plex Mono", monospace;7256  font-size: 0.64rem;7257}72587259.peach-adopt-qr-video {7260  display: block;7261  width: 100%;7262  max-height: 220px;7263  margin: 0 0 12px;7264  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);7265  border-radius: 8px;7266  background: #000;7267  object-fit: cover;7268}72697270.peach-adoption-source-invitation {7271  display: flex;7272  flex-direction: column;7273  align-items: center;7274  gap: 10px;7275  padding: 4px 18px 16px;7276  text-align: center;7277}72787279.peach-pair-qr {7280  display: block;7281  margin-inline: auto;7282  max-width: min(224px, 100%);7283  height: auto;7284  padding: 8px;7285  border-radius: 10px;7286  background: #fff;7287}72887289.peach-adopt-card > .peach-btn + .peach-btn {7290  margin-top: 8px;7291}72927293.peach-adopt-actions {7294  display: flex;7295  gap: 10px;7296  margin-top: 14px;7297}72987299.peach-adopt-actions > button {7300  flex: 1;7301}73027303.peach-adopt-sas {7304  margin: 18px 0;7305  padding: 14px;7306  border-radius: 8px;7307  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);7308  color: var(--peach-t0);7309  font-size: 1.35rem;7310  font-weight: 800;7311  font-variant-numeric: tabular-nums;7312  text-align: center;7313}73147315.peach-adopt-pairing {7316  text-align: center;7317}73187319.peach-adopt-pairing h1 {7320  max-width: 260px;7321  margin: 0 auto 6px;7322  color: var(--peach-t0);7323  font-family: var(--font-display, Georgia, serif);7324  font-size: 1.42rem;7325  font-style: italic;7326  font-weight: 500;7327  line-height: 1.12;7328  text-wrap: balance;7329}73307331.peach-adopt-pairing .peach-adopt-pair-lede {7332  max-width: 258px;7333  margin: 0 auto;7334  color: color-mix(in srgb, var(--peach-t0) 82%, var(--peach-bg));7335  font-size: 0.73rem;7336  line-height: 1.42;7337  text-wrap: pretty;7338}73397340.peach-pair-stage.peach-adopt-bird-stage {7341  width: min(100%, 260px);7342  height: 102px;7343  margin: -6px auto 2px;7344}73457346.peach-adopt-bird-stage .peach-pair-bird-slot,7347.peach-adopt-bird-stage .peach-pair-bird {7348  width: 90px;7349  height: 90px;7350}73517352.peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7353  left: 12px;7354}73557356.peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7357  right: 12px;7358}73597360.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-desktop {7361  --bb-x: 12px;7362  transform: translateX(12px);7363}73647365.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7366  --bb-x: -12px;7367  transform: translateX(-12px);7368}73697370.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot {7371  animation: peach-adopt-happy-bob 0.8s ease-in-out infinite;7372}73737374.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7375  animation-delay: 0.18s;7376  animation-direction: reverse;7377}73787379.peach-adopt-pairing.is-complete .peach-pair-stage.peach-adopt-bird-stage {7380  width: 100%;7381  height: 135px;7382  margin: -8px auto 6px;7383}73847385.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot,7386.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird {7387  width: 112px;7388  height: 112px;7389}73907391.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7392  left: 0;7393  --bb-x: 0;7394  transform: translateX(0);7395}73967397.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7398  right: 0;7399  --bb-x: 0;7400  transform: translateX(0);7401}74027403.peach-adopt-pairing.is-complete h1 {7404  font-size: 1.6rem;7405}74067407.peach-adopt-pairing.is-complete .peach-adopt-pair-lede {7408  font-size: 0.78rem;7409}74107411@keyframes peach-adopt-happy-bob {7412  0%, 100% {7413    transform: translateX(var(--bb-x, 0)) translateY(0) rotate(0deg);7414  }7415  35% {7416    transform: translateX(var(--bb-x, 0)) translateY(-8px) rotate(-3deg);7417  }7418  70% {7419    transform: translateX(var(--bb-x, 0)) translateY(-3px) rotate(2deg);7420  }7421}74227423.peach-adopt-connection {7424  position: absolute;7425  left: 50%;7426  bottom: 38px;7427  width: 78px;7428  height: 1px;7429  translate: -50% 0;7430  background: color-mix(in srgb, var(--peach-accent) 62%, transparent);7431  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 56%, transparent);7432}74337434.peach-adopt-pairing.is-complete .peach-adopt-connection {7435  bottom: 49px;7436  width: 92px;7437}74387439.peach-adopt-connection::after {7440  content: "";7441  position: absolute;7442  left: 50%;7443  top: 50%;7444  width: 7px;7445  height: 7px;7446  border-radius: 50%;7447  translate: -50% -50%;7448  background: var(--peach-accent);7449  box-shadow:7450    0 0 0 4px color-mix(in srgb, var(--peach-accent) 17%, transparent),7451    0 0 14px color-mix(in srgb, var(--peach-accent) 74%, transparent);7452  animation: peach-adopt-connection-pulse 1.1s ease-in-out infinite;7453}74547455@keyframes peach-adopt-connection-pulse {7456  0%, 100% { scale: 0.8; opacity: 0.72; }7457  50% { scale: 1.14; opacity: 1; }7458}74597460.peach-adopt-qr-wrap {7461  min-height: 160px;7462  display: grid;7463  place-items: center;7464}74657466.peach-adopt-qr-wrap .peach-hint-error {7467  margin: 12px 0;7468}74697470.peach-adopt-pairing .peach-adopt-pair-status {7471  margin: 0;7472  color: var(--peach-t0);7473  font-size: 0.75rem;7474}74757476.peach-adopt-confirmation {7477  margin-top: 18px;7478  padding: 8px 0 4px;7479}74807481.peach-adopt-confirmation .peach-adopt-confirmation-label {7482  margin: 0 0 7px;7483  color: color-mix(in srgb, var(--peach-accent) 72%, var(--peach-t0));7484  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7485  font-size: 0.625rem;7486  font-weight: 700;7487  letter-spacing: 0.14em;7488}74897490.peach-adopt-confirmation .peach-adoption-sas {7491  margin: 0 auto;7492  padding: 12px 14px;7493  border-color: color-mix(in srgb, var(--peach-accent) 36%, transparent);7494  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7495}74967497.peach-adopt-confirmation .peach-adoption-sas strong {7498  color: color-mix(in srgb, var(--peach-accent) 84%, var(--peach-t0));7499  font-size: 1.58rem;7500  text-shadow: 0 0 16px color-mix(in srgb, var(--peach-accent) 30%, transparent);7501}75027503.peach-adopt-confirmation .peach-adopt-confirmation-help {7504  max-width: 270px;7505  margin: 8px auto 0;7506  color: color-mix(in srgb, var(--peach-t0) 78%, var(--peach-bg));7507  font-size: 0.7rem;7508  line-height: 1.45;7509}75107511.peach-adopt-privacy {7512  display: flex;7513  align-items: flex-start;7514  gap: 9px;7515  margin-top: 10px;7516  padding: 8px 9px;7517  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7518  border-radius: 10px;7519  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);7520  text-align: left;7521}75227523.peach-adopt-privacy svg {7524  width: 16px;7525  height: 16px;7526  flex: 0 0 auto;7527  margin-top: 1px;7528  fill: none;7529  stroke: color-mix(in srgb, var(--peach-accent) 74%, var(--peach-t0));7530  stroke-linecap: round;7531  stroke-linejoin: round;7532  stroke-width: 1.7;7533}75347535.peach-adopt-pairing .peach-adopt-privacy p {7536  margin: 0;7537  color: color-mix(in srgb, var(--peach-t0) 76%, var(--peach-bg));7538  font-size: 0.62rem;7539  line-height: 1.4;7540}75417542.peach-adopt-privacy strong {7543  color: var(--peach-t0);7544  font-weight: 700;7545}75467547.peach-adopt-pair-actions {7548  margin-top: 9px;7549}75507551.peach-adopt-pair-actions > button {7552  width: 100%;7553}75547555.peach-adopt-paired-status {7556  display: inline-flex;7557  align-items: center;7558  gap: 8px;7559  margin: 22px auto 18px;7560  padding: 9px 13px;7561  border: 1px solid color-mix(in srgb, var(--peach-accent) 30%, transparent);7562  border-radius: 999px;7563  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);7564  color: color-mix(in srgb, var(--peach-accent) 78%, var(--peach-t0));7565  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7566  font-size: 0.66rem;7567  font-weight: 700;7568  letter-spacing: 0.04em;7569}75707571.peach-adopt-paired-status span {7572  width: 7px;7573  height: 7px;7574  border-radius: 50%;7575  background: var(--peach-accent);7576  box-shadow: 0 0 8px color-mix(in srgb, var(--peach-accent) 68%, transparent);7577}75787579@media (prefers-reduced-motion: reduce) {7580  .peach-adopt-connection::after {7581    animation: none;7582  }7583}75847585.peach-onboarding-mobile-card-buttons {7586  display: flex;7587  flex-direction: column;7588  gap: 8px;7589  margin-top: 16px;7590}75917592@keyframes peach-onboard-enter {7593  from { opacity: 0; transform: translateY(20px); }7594  to   { opacity: 1; transform: translateY(0); }7595}75967597@keyframes peach-onboard-exit {7598  from { opacity: 1; }7599  to   { opacity: 0; }7600}76017602@keyframes peach-card-in {7603  from { opacity: 0; transform: translateX(12px); }7604  to   { opacity: 1; transform: translateX(0); }7605}76067607@keyframes peach-card-out {7608  from { opacity: 1; transform: translateX(0); }7609  to   { opacity: 0; transform: translateX(-12px); }7610}76117612/* ─── New vault screen — matched to onboarding card language ─────────── */76137614/* Two classes so this beats the shared .peach-screen.lock-screen--vault-stage7615   rule (same element) without loosening the unlock/restore screens. The7616   create-vault screen is the only vault-stage view tall enough to overflow7617   the 520px popup, so its spacing is tuned to fit header → card → restore →7618   recovery warning with nothing clipped. */7619.peach-screen.peach-newvault {7620  position: relative;7621  display: flex;7622  flex-direction: column;7623  gap: 12px;7624  padding: 16px 16px 12px;7625  overflow: hidden;7626}76277628/* Suppress the warm-blob ambient art inherited from .lock-screen — the7629   new vault card now carries the visual weight. */7630.peach-newvault::before {7631  content: none;7632}76337634/* Wordmark sits in the exact same spot as on the onboarding cards; the7635   back button takes the right side so the wordmark never shifts. */7636.peach-newvault-header {7637  position: relative;7638  z-index: 2;7639  display: flex;7640  align-items: center;7641  justify-content: space-between;7642  gap: 10px;7643  margin-bottom: 2px;7644}76457646.peach-newvault-back {7647  display: inline-flex;7648  align-items: center;7649  gap: 4px;7650  background: transparent;7651  border: none;7652  color: var(--peach-t2);7653  font-family: "IBM Plex Mono", monospace;7654  font-size: 0.625rem;7655  letter-spacing: 0.06em;7656  cursor: pointer;7657  padding: 4px 6px;7658  border-radius: 6px;7659  transition: color 120ms ease, background 120ms ease;7660}76617662.peach-newvault-back:hover {7663  color: var(--peach-t0);7664  background: rgba(240, 232, 216, 0.04);7665}76667667.peach-newvault-mark {7668  position: absolute;7669  right: -12px;7670  top: 44px;7671  width: 110px;7672  height: 110px;7673  pointer-events: none;7674  opacity: 0.10;7675  filter: saturate(0.9);7676  z-index: 0;7677}7678.peach-newvault-mark-art {7679  width: 100%;7680  height: 100%;7681}7682.peach-newvault-mark-art path:nth-child(1) {7683  fill: rgba(123, 144, 96, 0.88);7684}7685.peach-newvault-mark-art path:nth-child(2) {7686  stroke: rgba(94, 122, 66, 0.95);7687}76887689.peach-newvault-card {7690  position: relative;7691  z-index: 1;7692  flex: 1;7693  display: flex;7694  flex-direction: column;7695  gap: 8px;7696  padding: 16px 20px 14px;7697  border-radius: 16px;7698  border: 1px solid var(--peach-t3);7699  background:7700    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));7701  backdrop-filter: blur(3px);7702  -webkit-backdrop-filter: blur(3px);7703  box-shadow:7704    inset 0 1px 0 rgba(240, 232, 216, 0.04),7705    0 12px 28px rgba(0, 0, 0, 0.12);7706  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;7707}77087709/* Create-vault card only (the restore flow reuses this class but needs a7710   top-anchored tab bar). The warning hugs the glass edge with a small7711   margin; leftover height distributes between elements so they breathe7712   instead of leaving one dead gap. Scroll stays available as a fallback7713   on shorter viewports. */7714.peach-newvault-card:not(.peach-restore-tabcard) {7715  min-height: 0;7716  gap: 10px;7717  padding: 14px 22px 16px;7718  justify-content: space-between;7719  overflow-y: auto;7720  scrollbar-width: none;7721}77227723.peach-newvault-card:not(.peach-restore-tabcard)::-webkit-scrollbar {7724  display: none;7725}77267727.peach-newvault-headline {7728  margin: 0;7729  font-family: var(--font-display);7730  font-style: italic;7731  font-weight: 400;7732  font-size: 24px;7733  line-height: 1.05;7734  color: var(--peach-t0);7735  white-space: pre-line;7736}77377738.peach-newvault-divider {7739  margin: 2px 0 4px;7740  border: 0;7741  border-top: 1px solid var(--peach-t3);7742  width: 100%;7743}77447745.peach-newvault-field {7746  display: flex;7747  flex-direction: column;7748  gap: 4px;7749}77507751.peach-newvault-label-row {7752  display: flex;7753  align-items: center;7754  justify-content: space-between;7755}77567757/* Monospace input scaled to the card. Replaces the 22px unlock-input7758   so the placeholder no longer overflows and the field reads as part7759   of the same surface as the body copy. */7760.peach-newvault-input {7761  font-size: 0.875rem;7762  letter-spacing: 0.18em;7763  padding: 8px 0;7764}7765.peach-newvault-input::placeholder {7766  letter-spacing: 0.18em;7767  color: var(--peach-t2);7768}77697770.peach-newvault-hint {7771  margin: 2px 0 0;7772  font-family: "IBM Plex Mono", monospace;7773  font-size: 0.625rem;7774  color: var(--peach-t2);7775  letter-spacing: 0.04em;7776}77777778.peach-newvault-submit {7779  margin-top: 4px;7780}77817782.peach-newvault-warning {7783  display: flex;7784  align-items: flex-start;7785  gap: 8px;7786  margin: 0;7787  padding-top: 8px;7788  border-top: 1px dashed var(--peach-t3);7789  font-size: 0.75rem;7790  line-height: 1.45;7791  color: var(--peach-t1);7792}77937794.peach-newvault-warning-icon {7795  color: var(--peach-accent);7796  font-size: 0.8125rem;7797  line-height: 1.4;7798  flex: 0 0 auto;7799}78007801/* Restore options sit inside the card, directly under "create vault", so7802   they are always reachable without scrolling. The top divider mirrors the7803   warning's so the choice reads as a deliberate fork, not a footnote. */7804.peach-newvault-restore {7805  position: relative;7806  z-index: 1;7807  display: flex;7808  flex-direction: column;7809  gap: 4px;7810  margin-top: 4px;7811  padding-top: 10px;7812  border-top: 1px dashed var(--peach-t3);7813}78147815/* Settings body — warm accent gradient gives the glass something to blur against */7816.peach-settings-body {7817  background:7818    radial-gradient(7819      ellipse at 30% 20%,7820      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,7821      transparent 60%7822    );7823}78247825/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */7826/* ── Danger cards (Replace + Destroy) ────────────────────────────────────7827 * Two severity levels: "warn" for actions that are dangerous-but-recoverable7828 * (replacing the vault from a backup file) and "hazard" for actions that7829 * are absolutely irreversible (Panic). Both use the same card scaffold so7830 * they read as a pair, but the colour family signals the severity at a7831 * glance — yellow for caution, red for don't.7832 */7833.peach-danger-card {7834  --danger-tint: 235, 158, 52; /* amber */7835  display: flex;7836  flex-direction: column;7837  gap: 8px;7838  padding: 14px;7839  margin-top: 10px;7840  border-radius: 12px;7841  border: 1px solid rgba(var(--danger-tint), 0.32);7842  background:7843    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),7844    rgba(var(--danger-tint), 0.04);7845  box-shadow:7846    inset 0 1px 0 rgba(var(--danger-tint), 0.08),7847    0 0 24px rgba(var(--danger-tint), 0.04);7848  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;7849}78507851.peach-danger-card:hover {7852  border-color: rgba(var(--danger-tint), 0.55);7853  box-shadow:7854    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7855    0 0 36px rgba(var(--danger-tint), 0.10);7856}78577858.peach-danger-card--hazard {7859  --danger-tint: 220, 38, 38; /* red */7860}78617862.peach-danger-card-head {7863  display: flex;7864  align-items: center;7865  gap: 10px;7866}78677868.peach-danger-card-glyph {7869  width: 28px;7870  height: 28px;7871  flex-shrink: 0;7872  display: flex;7873  align-items: center;7874  justify-content: center;7875  border-radius: 8px;7876  background: rgba(var(--danger-tint), 0.12);7877  color: rgba(var(--danger-tint), 0.95);7878  font-size: 1rem;7879  line-height: 1;7880}78817882.peach-danger-card-title {7883  margin: 0;7884  font-size: 0.8125rem;7885  font-weight: 600;7886  color: rgba(var(--danger-tint), 0.92);7887  letter-spacing: 0.01em;7888}78897890.peach-danger-card-copy {7891  margin: 0;7892  font-size: 0.6875rem;7893  line-height: 1.5;7894  color: var(--peach-t2);7895}78967897.peach-danger-card-button {7898  width: 100%;7899  padding: 9px;7900  margin-top: 4px;7901  background: transparent;7902  border: 1px solid rgba(var(--danger-tint), 0.45);7903  border-radius: 8px;7904  color: rgba(var(--danger-tint), 0.9);7905  font-size: 0.75rem;7906  font-weight: 500;7907  letter-spacing: 0.02em;7908  cursor: pointer;7909  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7910}79117912.peach-danger-card-button:hover {7913  background: rgba(var(--danger-tint), 0.10);7914  border-color: rgba(var(--danger-tint), 0.75);7915  color: rgb(var(--danger-tint));7916}79177918.peach-adoption-sas {7919  margin: 16px auto 0;7920  padding: 12px 16px;7921  border: 1px solid color-mix(in srgb, var(--peach-t0) 18%, transparent);7922  border-radius: 10px;7923  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7924  color: var(--peach-t0);7925  text-align: center;7926}79277928.peach-adoption-sas strong {7929  font-size: 1.65rem;7930  font-variant-numeric: tabular-nums;7931  letter-spacing: 0.18em;7932  white-space: nowrap;7933}79347935/* ── Panic flow (three-step destruction) ───────────────────────────────── */7936.peach-panic {7937  display: flex;7938  flex-direction: column;7939  flex: 1;7940  min-height: 0;7941  padding: 28px 20px 20px;7942  gap: 18px;7943  overflow-y: auto;7944  scrollbar-width: none;7945  -ms-overflow-style: none;7946}79477948.peach-panic::-webkit-scrollbar { display: none; }79497950.peach-panic-step2 {7951  background: rgba(220, 38, 38, 0.04);7952}79537954.peach-panic-step3 {7955  position: relative;7956  background: #0f0505;7957  color: #ffffff;7958  overflow: hidden;7959}79607961.peach-panic-rune-bg {7962  position: absolute;7963  inset: 0;7964  opacity: 0.22;7965  pointer-events: none;7966  overflow: hidden;7967}79687969.peach-panic-rune-bg canvas {7970  width: 100% !important;7971  height: 100% !important;7972}79737974.peach-panic-icon {7975  font-size: 32px;7976  color: rgb(220, 38, 38);7977  line-height: 1;7978}79797980.peach-panic-title {7981  margin: 0;7982  font-size: 18px;7983  font-weight: 500;7984  color: var(--peach-t1);7985}79867987.peach-panic-title--severe {7988  font-size: 20px;7989  font-weight: 700;7990  color: rgb(220, 38, 38);7991}79927993.peach-panic-body {7994  margin: 0;7995  font-size: 0.8125rem;7996  line-height: 1.55;7997  color: var(--peach-t2);7998}79998000.peach-panic-body--severe {8001  color: rgba(220, 38, 38, 0.85);8002}80038004.peach-panic-body--final {8005  font-size: 1rem;8006  font-weight: 700;8007  color: rgb(255, 80, 80);8008  line-height: 1.4;8009}80108011.peach-panic-body--final-intro {8012  font-size: 1rem;8013  color: #ffffff;8014  font-weight: 400;8015}80168017.peach-panic-divider {8018  height: 1px;8019  background: rgba(255, 255, 255, 0.08);8020  margin: 4px 0;8021}80228023.peach-panic-confirm-input {8024  width: 100%;8025  padding: 10px 12px;8026  background: rgba(255, 255, 255, 0.02);8027  border: 1px solid rgba(220, 38, 38, 0.4);8028  border-radius: 8px;8029  color: var(--peach-t1);8030  font-family: "IBM Plex Mono", monospace;8031  font-size: 0.875rem;8032  letter-spacing: 0.12em;8033  text-transform: uppercase;8034}80358036.peach-panic-confirm-input:focus {8037  outline: none;8038  border-color: rgb(220, 38, 38);8039}80408041.peach-panic-confirm-input--match {8042  border-color: rgb(220, 38, 38);8043  color: rgb(220, 38, 38);8044}80458046.peach-panic-confirm-label {8047  font-size: 0.6875rem;8048  color: var(--peach-t2);8049  margin: 0 0 -8px;8050  letter-spacing: 0.06em;8051}80528053.peach-panic-actions {8054  display: flex;8055  flex-direction: column;8056  gap: 10px;8057  margin-top: auto;8058}80598060.peach-panic-button {8061  width: 100%;8062  padding: 12px;8063  border-radius: 8px;8064  font-size: 0.8125rem;8065  cursor: pointer;8066  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;8067}80688069.peach-panic-button--primary {8070  background: var(--peach-accent);8071  border: 1px solid var(--peach-accent);8072  color: #ffffff;8073  font-weight: 600;8074}80758076.peach-panic-button--primary:hover {8077  background: color-mix(in srgb, var(--peach-accent) 88%, white);8078}80798080.peach-panic-button--danger {8081  background: rgb(220, 38, 38);8082  border: 1px solid rgb(220, 38, 38);8083  color: #ffffff;8084  font-weight: 600;8085}80868087.peach-panic-button--danger:disabled {8088  opacity: 0.35;8089  cursor: not-allowed;8090}80918092.peach-panic-button--ghost {8093  background: transparent;8094  border: 1px solid rgba(255, 255, 255, 0.18);8095  color: var(--peach-t2);8096}80978098.peach-panic-button--ghost:hover {8099  border-color: rgba(255, 255, 255, 0.32);8100  color: var(--peach-t1);8101}81028103.peach-panic-link {8104  background: transparent;8105  border: none;8106  padding: 4px 0;8107  color: rgba(220, 38, 38, 0.65);8108  font-size: 0.75rem;8109  cursor: pointer;8110  text-align: left;8111  text-decoration: underline;8112  text-underline-offset: 3px;8113}81148115.peach-panic-link:hover {8116  color: rgb(220, 38, 38);8117}81188119.peach-panic-bar {8120  background: rgb(220, 38, 38);8121  padding: 16px 20px;8122  margin: -28px -20px 0;8123  text-align: center;8124  font-size: 0.8125rem;8125  font-weight: 700;8126  letter-spacing: 0.12em;8127  color: #ffffff;8128}81298130.peach-panic-final-button {8131  width: 100%;8132  padding: 14px;8133  background: rgb(220, 38, 38);8134  border: none;8135  border-radius: 8px;8136  color: #ffffff;8137  font-size: 0.875rem;8138  font-weight: 700;8139  letter-spacing: 0.08em;8140  text-transform: uppercase;8141  cursor: pointer;8142  animation: peach-panic-pulse 2s ease-in-out infinite;8143}81448145.peach-settings-license {8146  margin-top: 10px;8147  padding-top: 10px;8148  border-top: 1px solid var(--peach-t3);8149}81508151.peach-settings-label {8152  font-size: 0.625rem;8153  letter-spacing: 0.08em;8154  color: var(--peach-t3);8155  display: block;8156  margin-bottom: 6px;8157}81588159.peach-settings-license-row {8160  display: flex;8161  align-items: center;8162  justify-content: space-between;8163  gap: 8px;8164}81658166.peach-settings-license-key {8167  font-family: 'IBM Plex Mono', monospace;8168  font-size: 0.75rem;8169  color: var(--peach-t0);8170  letter-spacing: 0.04em;8171  word-break: break-all;8172  flex: 1;8173  min-width: 0;8174}81758176.peach-settings-license-key--masked {8177  font-family: 'IBM Plex Mono', monospace;8178  font-size: 0.6rem;8179  color: var(--peach-t1);8180  letter-spacing: 0.18em;8181  user-select: none;8182}81838184.peach-settings-license-actions {8185  display: flex;8186  align-items: center;8187  gap: 2px;8188  flex-shrink: 0;8189}81908191.peach-settings-license-copy {8192  font-size: 0.6875rem;8193  color: var(--peach-accent);8194  background: transparent;8195  border: none;8196  cursor: pointer;8197  padding: 4px 8px;8198  border-radius: 4px;8199  flex-shrink: 0;8200  transition: opacity 150ms ease;8201}82028203.peach-settings-license-copy:hover {8204  opacity: 0.75;8205}82068207.peach-settings-license-toggle {8208  display: flex;8209  align-items: center;8210  justify-content: center;8211  background: transparent;8212  border: none;8213  cursor: pointer;8214  padding: 4px 6px;8215  border-radius: 4px;8216  color: var(--peach-t2);8217  transition: color 150ms ease;8218}82198220.peach-settings-license-toggle:hover {8221  color: var(--peach-t1);8222}82238224@keyframes peach-panic-pulse {8225  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }8226  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }8227}82288229[data-motion="reduce"] .peach-panic-final-button {8230  animation: none;8231}82328233/* Vault History — Settings → Vault sub-view */82348235.peach-history-list {8236  border: 1px solid var(--peach-border);8237  border-radius: 8px;8238  overflow: hidden;8239  margin: 8px 0 4px;8240}82418242.peach-history-row {8243  display: flex;8244  align-items: center;8245  justify-content: space-between;8246  padding: 9px 12px;8247  gap: 10px;8248  border-bottom: 1px solid var(--peach-border);8249}82508251.peach-history-row:last-child {8252  border-bottom: none;8253}82548255.peach-history-meta {8256  display: flex;8257  flex-direction: column;8258  gap: 2px;8259  min-width: 0;8260  flex: 1;8261}82628263.peach-history-time {8264  font-size: 0.75rem;8265  font-family: 'IBM Plex Mono', ui-monospace, monospace;8266  color: var(--peach-t0);8267  white-space: nowrap;8268  overflow: hidden;8269  text-overflow: ellipsis;8270}82718272.peach-history-sub {8273  font-size: 0.625rem;8274  color: var(--peach-t2);8275  letter-spacing: 0.06em;8276  text-transform: uppercase;8277  white-space: nowrap;8278  overflow: hidden;8279  text-overflow: ellipsis;8280}82818282.peach-history-btn {8283  flex-shrink: 0;8284  white-space: nowrap;8285  min-width: 56px;8286  text-align: center;8287}82888289.peach-history-btn.is-busy {8290  opacity: 0.65;8291}82928293.peach-history-footer {8294  font-size: 0.625rem;8295  color: var(--peach-t3);8296  letter-spacing: 0.05em;8297  text-align: right;8298  margin: 0;8299  padding: 2px 0 0;8300}83018302/* ── Context menu + swipe-copy flash ─────────────────────── */8303.peach-context-menu-backdrop {8304  position: fixed;8305  inset: 0;8306  background: rgba(0, 0, 0, 0.45);8307  z-index: 100;8308  display: flex;8309  align-items: flex-end;8310  justify-content: center;8311  animation: peach-ctx-fade 140ms ease both;8312}8313.peach-context-menu {8314  width: min(360px, calc(100vw - 24px));8315  margin-bottom: max(env(safe-area-inset-bottom), 12px);8316  background: var(--peach-bg);8317  border: 1px solid var(--peach-t3);8318  border-radius: 14px;8319  padding: 6px;8320  display: flex;8321  flex-direction: column;8322  gap: 2px;8323  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);8324  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;8325}8326@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }8327@keyframes peach-ctx-rise {8328  from { transform: translateY(16px); opacity: 0; }8329  to   { transform: translateY(0);    opacity: 1; }8330}8331.peach-context-menu-item {8332  background: transparent;8333  color: var(--peach-t0);8334  border: 0;8335  border-radius: 10px;8336  padding: 12px 14px;8337  text-align: left;8338  font: inherit;8339  cursor: pointer;8340}8341.peach-context-menu-item:hover,8342.peach-context-menu-item:focus-visible {8343  background: var(--peach-t3);8344}8345.peach-context-menu-item--danger {8346  color: var(--peach-health-bad, #d96868);8347}8348.peach-context-menu-item--cancel {8349  color: var(--peach-t2);8350  margin-top: 4px;8351  border-top: 1px solid var(--peach-t3);8352  border-radius: 0 0 10px 10px;8353}83548355/* Swipe-to-copy flash */8356.peach-entry-row.is-copy-flash {8357  animation: peach-copy-flash 600ms ease both;8358}8359@keyframes peach-copy-flash {8360  0%   { background: transparent; }8361  20%  { background: rgba(217, 153, 51, 0.32); }8362  100% { background: transparent; }8363}83648365html { font-size: 16px; }83668367/* ── Recovery word entry ─────────────────────────────────────────── */8368.peach-lock-recover-link {8369  display: block;8370  width: 100%;8371  margin-top: 12px;8372  background: none;8373  border: none;8374  font-family: "IBM Plex Mono", monospace;8375  font-size: 0.625rem;8376  letter-spacing: 0.06em;8377  color: var(--peach-t2);8378  cursor: pointer;8379  text-align: center;8380  padding: 4px;8381  transition: color 120ms ease;8382}8383.peach-lock-recover-link:hover {8384  color: var(--peach-t0);8385}83868387.lock-screen--recovery {8388  display: flex;8389  flex-direction: column;8390  align-items: stretch;8391  padding: 12px 20px 24px;8392  overflow: hidden;8393}83948395.peach-recovery-nav {8396  display: flex;8397  align-items: center;8398  position: relative;8399  z-index: 1;8400  margin-bottom: 4px;8401}84028403/* Mask runes to the top decorative band only — keep inputs and the8404   bottom CTA button clear. The bottom of the popup is reserved for8405   submit buttons; rendering runes there overlaps the button glyph. */8406.peach-rune-background--recovery {8407  -webkit-mask-image: linear-gradient(8408    to bottom,8409    black 0px, black 85px,8410    transparent 110px,8411    transparent 100%8412  );8413  mask-image: linear-gradient(8414    to bottom,8415    black 0px, black 85px,8416    transparent 110px,8417    transparent 100%8418  );8419}84208421.peach-recovery-header {8422  text-align: center;8423  margin-bottom: 16px;8424  margin-top: 12px;8425}8426.peach-recovery-header .peach-onboarding-headline {8427  font-size: 1.25rem;8428  font-weight: 300;8429  letter-spacing: 0.02em;8430  margin: 0 0 4px;8431}8432.peach-recovery-header .peach-hint {8433  font-family: "IBM Plex Mono", monospace;8434  font-size: 0.625rem;8435  color: var(--peach-t2);8436  letter-spacing: 0.04em;8437  margin: 0;8438}84398440/* 12-word grid: 2 columns × 6 rows */8441.peach-recovery-grid {8442  display: grid;8443  grid-template-columns: repeat(2, 1fr);8444  gap: 12px 20px;8445  width: 100%;8446  margin-bottom: 0;8447}84488449.peach-recovery-word-slot {8450  display: flex;8451  align-items: center;8452  gap: 6px;8453  min-width: 0;8454}84558456.peach-recovery-word-index {8457  font-family: "IBM Plex Mono", monospace;8458  font-size: 0.5rem;8459  color: rgba(255, 255, 255, 0.35);8460  min-width: 14px;8461  flex-shrink: 0;8462  text-align: right;8463  letter-spacing: 0.04em;8464}84658466.peach-recovery-word-input {8467  flex: 1;8468  min-width: 0;8469  background: transparent;8470  border: none;8471  border-bottom: 1px solid rgba(255, 255, 255, 0.22);8472  color: var(--peach-t0);8473  font-family: "IBM Plex Mono", monospace;8474  font-size: 0.6875rem;8475  letter-spacing: 0.06em;8476  padding: 5px 2px 4px;8477  outline: none;8478  text-transform: lowercase;8479  transition: border-color 120ms ease;8480}8481.peach-recovery-word-input::placeholder {8482  color: rgba(255, 255, 255, 0.18);8483}8484.peach-recovery-word-input:focus {8485  border-bottom-color: var(--peach-accent);8486}84878488.peach-recovery-submit {8489  width: 100%;8490  margin-top: auto;8491}84928493.peach-recovery-new-password-form {8494  width: 100%;8495  display: flex;8496  flex-direction: column;8497  gap: 16px;8498  margin-bottom: 8px;8499}8500.peach-recovery-new-password-form .peach-newvault-field {8501  display: flex;8502  flex-direction: column;8503  gap: 4px;8504}85058506/* ── Recovery words display (post-create) ────────────────────────── */8507.lock-screen--recovery-display {8508  display: flex;8509  flex-direction: column;8510  align-items: stretch;8511  /* Same top/left padding as the onboarding screens so the wordmark sits8512     on the same pixel instead of crowding the popup edge. */8513  padding: 16px 16px 16px;8514  min-height: 0;8515  overflow-y: auto;8516}85178518.peach-recovery-words-display {8519  width: 100%;8520  margin-bottom: 16px;8521  border: 1px solid var(--peach-t3);8522  border-radius: 8px;8523  padding: 12px 14px;8524  background: rgba(245, 240, 234, 0.04);8525}85268527.peach-recovery-words-label {8528  font-family: "IBM Plex Mono", monospace;8529  font-size: 0.5rem;8530  letter-spacing: 0.08em;8531  color: var(--peach-t2);8532  text-transform: uppercase;8533  margin-bottom: 10px;8534}85358536.peach-recovery-word-list {8537  list-style: none;8538  margin: 0;8539  padding: 0;8540  display: grid;8541  grid-template-columns: repeat(2, 1fr);8542  gap: 6px 16px;8543}85448545.peach-recovery-word-item {8546  display: flex;8547  align-items: baseline;8548  gap: 5px;8549}85508551.peach-recovery-word-num {8552  font-family: "IBM Plex Mono", monospace;8553  font-size: 0.5rem;8554  color: var(--peach-t2);8555  width: 14px;8556  flex: 0 0 14px;8557  text-align: right;8558  letter-spacing: 0.04em;8559  font-variant-numeric: tabular-nums;8560}85618562.peach-recovery-download-btn {8563  display: block;8564  margin: 10px auto 0;8565  padding: 4px 10px;8566  background: transparent;8567  border: 1px solid var(--peach-border);8568  border-radius: 6px;8569  color: var(--peach-t2);8570  font-family: "IBM Plex Mono", monospace;8571  font-size: 0.5625rem;8572  letter-spacing: 0.06em;8573  text-transform: lowercase;8574  cursor: pointer;8575  transition: border-color 0.15s, color 0.15s;8576}85778578.peach-recovery-download-btn:hover {8579  border-color: var(--peach-accent);8580  color: var(--peach-t0);8581}85828583.peach-recovery-word-text {8584  font-family: "IBM Plex Mono", monospace;8585  font-size: 0.6875rem;8586  letter-spacing: 0.06em;8587  color: var(--peach-t0);8588  text-transform: lowercase;8589}85908591.peach-hint--warning {8592  color: var(--peach-accent);8593  font-style: italic;8594}8595.peach-hint--success {8596  color: var(--peach-t2);8597  font-family: "IBM Plex Mono", monospace;8598  font-size: 0.625rem;8599  letter-spacing: 0.06em;8600}86018602/* Confirmation step */8603.peach-recovery-confirm {8604  width: 100%;8605  flex: 1;8606  display: flex;8607  flex-direction: column;8608}8609.peach-recovery-confirm-label {8610  font-family: "IBM Plex Mono", monospace;8611  font-size: 0.5625rem;8612  letter-spacing: 0.04em;8613  color: var(--peach-t2);8614  text-align: center;8615  margin: 0 0 12px;8616}8617.peach-recovery-confirm-fields {8618  display: flex;8619  flex-direction: column;8620  gap: 14px;8621  margin-bottom: 10px;8622}8623.peach-recovery-confirm-field {8624  display: flex;8625  align-items: center;8626  gap: 8px;8627}8628.peach-recovery-confirm-num {8629  font-family: "IBM Plex Mono", monospace;8630  font-size: 0.5rem;8631  color: var(--peach-t2);8632  min-width: 44px;8633  letter-spacing: 0.04em;8634}8635.peach-recovery-confirm-input {8636  flex: 1;8637  background: transparent;8638  border: none;8639  border-bottom: 1px solid var(--peach-t3);8640  color: var(--peach-t0);8641  font-family: "IBM Plex Mono", monospace;8642  font-size: 0.6875rem;8643  letter-spacing: 0.06em;8644  padding: 4px 2px 3px;8645  outline: none;8646  text-transform: lowercase;8647  transition: border-color 120ms ease;8648}8649.peach-recovery-confirm-input:focus {8650  border-bottom-color: var(--peach-accent);8651}8652.peach-recovery-confirm-input:disabled {8653  opacity: 0.4;8654  cursor: not-allowed;8655}8656.peach-recovery-confirm-btn {8657  width: 100%;8658  margin-top: auto;8659}86608661/* ============================================================8662   Sync info sheet8663   ============================================================ */86648665.peach-sync-info-backdrop {8666  position: fixed;8667  inset: 0;8668  z-index: 200;8669  background: rgba(0, 0, 0, 0.55);8670  display: flex;8671  align-items: flex-end;8672  animation: peach-fade-in 200ms ease forwards;8673}86748675@keyframes peach-fade-in {8676  from { opacity: 0; }8677  to   { opacity: 1; }8678}86798680.peach-sync-info-sheet {8681  width: 100%;8682  background: var(--peach-bg-card, var(--peach-bg));8683  border-top-left-radius: 20px;8684  border-top-right-radius: 20px;8685  padding: 12px 24px 32px;8686  display: flex;8687  flex-direction: column;8688  gap: 20px;8689  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;8690}86918692@keyframes peach-sheet-up {8693  from { transform: translateY(100%); }8694  to   { transform: translateY(0); }8695}86968697.peach-sync-info-handle {8698  width: 36px;8699  height: 4px;8700  border-radius: 2px;8701  background: var(--peach-border);8702  margin: 0 auto 4px;8703  flex-shrink: 0;8704}87058706.peach-sync-info-title {8707  font-family: 'Cormorant Garamond', serif;8708  font-style: italic;8709  font-size: 26px;8710  font-weight: 600;8711  color: var(--peach-t0);8712  margin: 0;8713  line-height: 1.2;8714}87158716.peach-sync-info-body {8717  display: flex;8718  flex-direction: column;8719  gap: 14px;8720}87218722.peach-sync-info-point {8723  display: flex;8724  gap: 12px;8725  align-items: flex-start;8726  font-size: 14px;8727  color: var(--peach-t2);8728  line-height: 1.6;8729  margin: 0;8730}87318732.peach-sync-info-icon {8733  color: var(--peach-accent);8734  font-size: 16px;8735  flex-shrink: 0;8736  margin-top: 1px;8737}87388739.peach-sync-info-actions {8740  display: flex;8741  flex-direction: column;8742  gap: 12px;8743  margin-top: 4px;8744}87458746.peach-sync-info-pro-link {8747  background: none;8748  border: none;8749  font-size: 13px;8750  color: var(--peach-t3);8751  cursor: pointer;8752  padding: 0;8753  font-family: inherit;8754  text-align: center;8755  transition: color 150ms ease;8756}87578758.peach-sync-info-pro-link:hover {8759  color: var(--peach-accent);8760}87618762.peach-btn--full {8763  width: 100%;8764}87658766/* ── Sync screen ── */87678768.peach-sync-coming-soon {8769  display: flex;8770  align-items: flex-start;8771  gap: 10px;8772  padding: 12px 14px;8773  background: var(--peach-s1);8774  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);8775  border-radius: 10px;8776}8777.peach-sync-coming-soon__icon {8778  flex-shrink: 0;8779  color: var(--peach-accent);8780  margin-top: 1px;8781  line-height: 0;8782}8783.peach-sync-coming-soon__title {8784  font-family: 'Cormorant Garamond', serif;8785  font-weight: 500;8786  font-size: 13px;8787  color: var(--peach-accent);8788  margin: 0 0 5px;8789  line-height: 1.3;8790}8791.peach-sync-coming-soon__body {8792  font-size: 12px;8793  color: var(--peach-t1);8794  line-height: 1.55;8795  margin: 0;8796}87978798.peach-sync-screen {8799  display: flex;8800  flex-direction: column;8801  height: 100%;8802}88038804.peach-sync-content {8805  flex: 1;8806  overflow-y: auto;8807  padding: 24px 20px 40px;8808  display: flex;8809  flex-direction: column;8810  gap: 24px;8811}88128813/* Intro (State A) */8814.peach-sync-headline {8815  font-family: 'Cormorant Garamond', serif;8816  font-style: italic;8817  font-size: 28px;8818  font-weight: 600;8819  color: var(--peach-t0);8820  margin: 0 0 10px;8821  line-height: 1.2;8822}88238824.peach-sync-intro-body {8825  font-size: 14px;8826  color: var(--peach-t1);8827  line-height: 1.6;8828  margin: 0;8829}88308831.peach-sync-pro-note {8832  display: flex;8833  flex-direction: column;8834  gap: 8px;8835  background: var(--peach-t3);8836  border-radius: 10px;8837  padding: 12px 14px;8838}88398840.peach-sync-pro-note-text {8841  font-size: 12px;8842  color: var(--peach-t2);8843  line-height: 1.5;8844  margin: 0;8845}88468847.peach-sync-pro-link {8848  background: none;8849  border: none;8850  font-size: 12px;8851  color: var(--peach-accent);8852  cursor: pointer;8853  padding: 0;8854  font-family: inherit;8855  text-align: left;8856}88578858/* Status (State C) */8859.peach-sync-status {8860  padding: 12px 0;8861  border-bottom: 1px solid var(--peach-border);8862}88638864.peach-sync-status-row {8865  display: flex;8866  align-items: center;8867  gap: 8px;8868}88698870.peach-sync-dot {8871  width: 7px;8872  height: 7px;8873  border-radius: 50%;8874  flex-shrink: 0;8875}88768877.peach-sync-dot--green { background: var(--peach-health-ok); }8878.peach-sync-dot--amber { background: var(--peach-accent); }88798880.peach-sync-status-text {8881  font-family: 'IBM Plex Mono', monospace;8882  font-size: 11px;8883  color: var(--peach-t2);8884}88858886/* Paired devices */8887.peach-sync-section {8888  display: flex;8889  flex-direction: column;8890  gap: 2px;8891}88928893.peach-sync-section-label {8894  font-family: 'IBM Plex Mono', monospace;8895  font-size: 10px;8896  letter-spacing: 0.1em;8897  color: var(--peach-t3);8898  margin: 0 0 10px;8899}89008901.peach-sync-device-row {8902  display: flex;8903  justify-content: space-between;8904  align-items: baseline;8905  padding: 10px 0;8906  border-bottom: 1px solid var(--peach-border);8907  gap: 12px;8908}89098910.peach-sync-device-name {8911  font-size: 14px;8912  color: var(--peach-t1);8913}89148915.peach-sync-device-meta {8916  font-family: 'IBM Plex Mono', monospace;8917  font-size: 11px;8918  color: var(--peach-t3);8919  white-space: nowrap;8920}89218922.peach-sync-hub-note {8923  padding: 14px 16px;8924  border: 1px solid var(--peach-border);8925  border-radius: 10px;8926  display: flex;8927  flex-direction: column;8928  gap: 6px;8929  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8930}89318932.peach-sync-hub-note-title {8933  font-size: 13px;8934  font-weight: 600;8935  color: var(--peach-t0);8936  margin: 0;8937}89388939.peach-sync-hub-note-body {8940  font-size: 12px;8941  color: var(--peach-t2);8942  line-height: 1.6;8943  margin: 0;8944}89458946/* Action buttons */8947.peach-sync-actions {8948  display: flex;8949  gap: 10px;8950  flex-wrap: wrap;8951}89528953/* Upgrade prompt (State B) */8954.peach-sync-upgrade {8955  display: flex;8956  flex-direction: column;8957  gap: 12px;8958  padding: 16px;8959  border: 1px solid var(--peach-border);8960  border-radius: 10px;8961}89628963.peach-sync-upgrade-text {8964  font-size: 13px;8965  color: var(--peach-t2);8966  line-height: 1.6;8967  margin: 0;8968}89698970/* Network note */8971.peach-sync-network-note {8972  font-size: 12px;8973  color: var(--peach-t3);8974  line-height: 1.6;8975  margin: 0;8976}89778978/* Advanced */8979.peach-sync-advanced {8980  margin-top: auto;8981  padding-top: 16px;8982  border-top: 1px solid var(--peach-border);8983}89848985.peach-sync-advanced-toggle {8986  display: flex;8987  align-items: center;8988  gap: 8px;8989  background: none;8990  border: none;8991  font-family: 'IBM Plex Mono', monospace;8992  font-size: 11px;8993  letter-spacing: 0.08em;8994  color: var(--peach-t3);8995  cursor: pointer;8996  padding: 0;8997  text-transform: uppercase;8998}89999000.peach-sync-advanced-chevron {9001  display: inline-block;9002  transition: transform 200ms ease;9003  font-size: 10px;9004}90059006.peach-sync-advanced-chevron.is-open {9007  transform: rotate(90deg);9008}90099010.peach-sync-advanced-content {9011  margin-top: 14px;9012}90139014.peach-sync-advanced-row {9015  display: flex;9016  justify-content: space-between;9017  align-items: center;9018  gap: 16px;9019}90209021.peach-sync-advanced-title {9022  font-size: 14px;9023  color: var(--peach-t1);9024  margin: 0 0 2px;9025}90269027.peach-sync-advanced-subtitle {9028  font-size: 12px;9029  color: var(--peach-t3);9030  margin: 0;9031  line-height: 1.5;9032}90339034/* ── Notes Mode ── */90359036/* Overlay that crossfades over the vault */9037.peach-notes-overlay {9038  position: fixed;9039  inset: 0;9040  z-index: 90;9041  opacity: 0;9042  pointer-events: none;9043  animation: peach-mode-in 220ms ease-in forwards;9044}90459046.peach-notes-overlay.is-visible {9047  opacity: 1;9048  pointer-events: auto;9049}90509051@keyframes peach-mode-in {9052  from { opacity: 0; }9053  to   { opacity: 1; }9054}90559056/* Top-level notes surface */9057.peach-notes-mode {9058  position: absolute;9059  inset: 0;9060  background:9061    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 5%, transparent) 0%, transparent 62%),9062    var(--peach-bg);9063  display: flex;9064  flex-direction: column;9065}90669067/* Rune canvas positioned behind content */9068.peach-note-rune-canvas {9069  position: absolute;9070  inset: 0;9071  width: 100%;9072  height: 100%;9073  pointer-events: none;9074  z-index: 0;9075}90769077/* TOC wrapper */9078.peach-notes-toc-wrapper {9079  position: absolute;9080  inset: 0;9081  z-index: 1;9082  opacity: 1;9083  pointer-events: auto;9084  transition: opacity 200ms ease;9085}90869087.peach-notes-toc-wrapper.is-hidden {9088  opacity: 0;9089  pointer-events: none;9090}90919092/* Editor wrapper */9093.peach-notes-editor-wrapper {9094  position: absolute;9095  inset: 0;9096  z-index: 2;9097  opacity: 0;9098  pointer-events: none;9099  transition: opacity 200ms ease;9100}91019102.peach-notes-editor-wrapper.is-visible {9103  opacity: 1;9104  pointer-events: auto;9105}91069107/* TOC inner */9108.peach-notes-toc {9109  position: relative;9110  display: flex;9111  flex-direction: column;9112  height: 100%;9113  padding-top: env(safe-area-inset-top, 0px);9114  padding-bottom: env(safe-area-inset-bottom, 0px);9115}91169117/* Shared header */9118.peach-notes-header {9119  display: flex;9120  align-items: center;9121  padding: 12px 16px;9122  gap: 12px;9123  flex-shrink: 0;9124  min-height: 52px;9125  position: relative;9126  z-index: 2;9127}91289129.peach-notes-back {9130  font-size: 22px;9131  color: var(--peach-t2);9132  background: none;9133  border: none;9134  padding: 4px;9135  cursor: pointer;9136  line-height: 1;9137  flex-shrink: 0;9138  transition: color 150ms ease;9139  -webkit-tap-highlight-color: transparent;9140}91419142.peach-notes-back:active { color: var(--peach-t0); }91439144.peach-notes-header-title {9145  flex: 1;9146  font-family: 'Cormorant Garamond', serif;9147  font-style: italic;9148  font-size: 22px;9149  color: var(--peach-t0);9150  text-align: center;9151}91529153.peach-notes-header--editor {9154  display: grid;9155  grid-template-columns: 36px minmax(0, 1fr) 36px;9156}91579158.peach-notes-header--editor .peach-notes-back,9159.peach-notes-header--editor .peach-notes-header-actions {9160  width: 36px;9161}91629163.peach-notes-header--editor .peach-notes-header-title {9164  cursor: pointer;9165}91669167.peach-notes-header-actions {9168  display: flex;9169  gap: 8px;9170  flex-shrink: 0;9171}91729173.peach-notes-header-btn {9174  width: 36px;9175  height: 36px;9176  display: flex;9177  align-items: center;9178  justify-content: center;9179  background: none;9180  border: none;9181  color: var(--peach-t2);9182  cursor: pointer;9183  border-radius: 8px;9184  font-size: 16px;9185  transition: color 150ms ease, background 150ms ease;9186  -webkit-tap-highlight-color: transparent;9187}91889189.peach-notes-header-btn:active {9190  background: rgba(255,255,255,0.06);9191  color: var(--peach-t0);9192}91939194/* The header + glyph is larger than the search svg so the two right-side9195 * buttons feel visually balanced. The base .peach-notes-header-btn caps font9196 * at 16px which would render the + too small. */9197.peach-notes-new-btn-icon {9198  font-size: 22px;9199  font-weight: 300;9200  line-height: 1;9201}92029203.peach-notes-search-btn svg {9204  display: block;9205  transform: translate(0.5px, 2.5px);9206}92079208/* Inline search bar */9209.peach-notes-search-input {9210  flex: 1;9211  background: none;9212  border: none;9213  outline: none;9214  font-family: 'IBM Plex Mono', monospace;9215  font-size: 13px;9216  color: var(--peach-t0);9217  padding: 4px 0;9218  letter-spacing: 0.02em;9219}92209221.peach-notes-search-input::placeholder {9222  color: var(--peach-t3);9223}92249225/* TOC list */9226.peach-notes-list-container {9227  flex: 1;9228  overflow-y: auto;9229  overflow-x: hidden;9230  scrollbar-width: none;9231  -webkit-overflow-scrolling: touch;9232  overscroll-behavior: contain;9233  position: relative;9234  z-index: 1;9235}92369237.peach-notes-list-container::-webkit-scrollbar { display: none; }92389239/* Note row */9240.peach-note-row {9241  position: relative;9242  display: grid;9243  grid-template-columns: 44px 8px 1fr 8px auto;9244  align-items: center;9245  min-height: 72px;9246  padding: 16px 20px;9247  border-bottom: 0.5px solid var(--peach-border);9248  cursor: pointer;9249  overflow: hidden;9250  touch-action: pan-y;9251  user-select: none;9252  -webkit-user-select: none;9253  -webkit-tap-highlight-color: transparent;9254}92559256.peach-note-row:first-child {9257  border-top: 0.5px solid var(--peach-border);9258}92599260.peach-note-row:active {9261  background: rgba(255,255,255,0.02);9262}92639264.peach-note-numeral {9265  font-family: 'Cormorant Garamond', serif;9266  font-style: italic;9267  font-size: 15px;9268  color: var(--peach-accent);9269  text-align: right;9270  line-height: 1;9271  flex-shrink: 0;9272}92739274.peach-note-title-gap { /* grid spacer */ }92759276.peach-note-title {9277  font-family: 'Cormorant Garamond', serif;9278  font-style: italic;9279  font-size: 18px;9280  color: var(--peach-t0);9281  line-height: 1.3;9282  min-width: 0;9283  overflow-wrap: break-word;9284}92859286.peach-note-title-match {9287  color: var(--peach-accent);9288}92899290.peach-note-date {9291  font-family: 'IBM Plex Mono', monospace;9292  font-size: 11px;9293  color: var(--peach-t1);9294  opacity: 0.62;9295  white-space: nowrap;9296  text-align: right;9297  flex-shrink: 0;9298  grid-column: 5;9299}93009301/* Swipe underlays */9302.peach-note-row-underlay {9303  position: absolute;9304  inset: 0;9305  display: flex;9306  align-items: center;9307  padding: 0 24px;9308  font-family: 'IBM Plex Mono', monospace;9309  font-size: 11px;9310  letter-spacing: 0.1em;9311  pointer-events: none;9312  z-index: 0;9313}93149315.peach-note-row-underlay--delete {9316  background: #8B2020;9317  color: rgba(255,255,255,0.9);9318  justify-content: flex-end;9319}93209321.peach-note-row-underlay--archive {9322  background: var(--peach-accent);9323  color: #0C0A06;9324  justify-content: flex-start;9325}93269327/* Delete confirm strip */9328.peach-note-delete-confirm {9329  position: absolute;9330  inset: 0;9331  background: var(--peach-bg);9332  display: flex;9333  align-items: center;9334  gap: 12px;9335  padding: 0 20px;9336  font-family: 'IBM Plex Mono', monospace;9337  font-size: 11px;9338  color: var(--peach-t1);9339  letter-spacing: 0.04em;9340  animation: peach-delete-confirm-in 150ms ease both;9341  z-index: 10;9342}93439344@keyframes peach-delete-confirm-in {9345  from { opacity: 0; }9346  to   { opacity: 1; }9347}93489349.peach-note-delete-confirm-btn {9350  background: #8B2020;9351  color: rgba(255,255,255,0.9);9352  border: none;9353  border-radius: 6px;9354  padding: 4px 10px;9355  font-family: 'IBM Plex Mono', monospace;9356  font-size: 10px;9357  cursor: pointer;9358  letter-spacing: 0.06em;9359}93609361.peach-note-delete-cancel-btn {9362  background: none;9363  border: none;9364  color: var(--peach-t3);9365  font-family: 'IBM Plex Mono', monospace;9366  font-size: 10px;9367  cursor: pointer;9368  letter-spacing: 0.06em;9369  padding: 4px 6px;9370}93719372/* + New note button */9373.peach-notes-new-btn {9374  font-family: 'IBM Plex Mono', monospace;9375  font-size: 12px;9376  color: var(--peach-t3);9377  text-align: center;9378  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));9379  background: none;9380  border: none;9381  width: 100%;9382  cursor: pointer;9383  letter-spacing: 0.04em;9384  transition: color 150ms ease;9385  -webkit-tap-highlight-color: transparent;9386}93879388.peach-notes-new-btn:active { color: var(--peach-accent); }93899390/* Empty state */9391.peach-notes-empty {9392  display: flex;9393  flex-direction: column;9394  align-items: center;9395  justify-content: center;9396  flex: 1;9397  padding: 48px 32px;9398  gap: 16px;9399}94009401.peach-notes-empty-text {9402  font-family: 'Cormorant Garamond', serif;9403  font-style: italic;9404  font-size: 20px;9405  color: var(--peach-t3);9406  text-align: center;9407  margin: 0;9408  line-height: 1.4;9409  white-space: pre-line;9410}94119412/* ── Editor surface ── */94139414.peach-note-editor-surface {9415  position: absolute;9416  inset: 0;9417  background:9418    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 5%, transparent) 0%, transparent 62%),9419    var(--peach-bg);9420  display: flex;9421  flex-direction: column;9422  padding-top: env(safe-area-inset-top, 0px);9423}94249425.peach-note-editor-scroll {9426  flex: 1;9427  overflow-y: auto;9428  overflow-x: hidden;9429  scrollbar-width: none;9430  -webkit-overflow-scrolling: touch;9431  padding: 0 20px 120px;9432  position: relative;9433  z-index: 1;9434}94359436.peach-note-editor-scroll::-webkit-scrollbar { display: none; }94379438/* Desktop toolbar (always visible above body) */9439.peach-note-toolbar-desktop-inline {9440  display: grid;9441  grid-template-columns: repeat(4, minmax(0, 1fr)) auto repeat(5, minmax(0, 1fr));9442  align-items: center;9443  gap: 0;9444  padding: 5px 0 10px;9445  margin-bottom: 10px;9446  border-bottom: 0.5px solid var(--peach-border);9447}94489449/* Title field */9450.peach-note-title-field {9451  font-family: var(--font-display);9452  font-style: italic;9453  font-size: clamp(34px, 13vw, 44px);9454  font-weight: 400;9455  color: var(--peach-t0);9456  line-height: 0.98;9457  letter-spacing: -0.015em;9458  padding: 10px 0 2px;9459  outline: none;9460  min-height: 52px;9461  word-break: break-word;9462  position: relative;9463  z-index: 1;9464}94659466.peach-note-title-field:empty::before {9467  content: attr(data-placeholder);9468  color: var(--peach-t1);9469  opacity: 0.58;9470  pointer-events: none;9471}94729473/* Hairline separator */9474.peach-note-hairline {9475  height: 0.5px;9476  background: var(--peach-border);9477  margin: 14px 0 18px;9478  position: relative;9479  z-index: 1;9480}94819482/* Body field */9483.peach-note-body-field {9484  font-family: var(--font-display);9485  font-size: 17px;9486  color: var(--peach-t1);9487  line-height: 1.72;9488  padding: 0;9489  outline: none;9490  min-height: 240px;9491  word-break: break-word;9492  position: relative;9493  z-index: 1;9494}94959496.peach-note-body-field:empty::before {9497  content: attr(data-placeholder);9498  color: var(--peach-t1);9499  opacity: 0.56;9500  font-style: italic;9501  pointer-events: none;9502}95039504.peach-note-body-field h2 {9505  font-family: var(--font-display);9506  font-style: italic;9507  font-size: 22px;9508  font-weight: 600;9509  color: var(--peach-t0);9510  margin: 20px 0 8px;9511}95129513.peach-note-body-field blockquote {9514  border-left: 2px solid var(--peach-accent);9515  margin: 12px 0;9516  padding-left: 16px;9517  color: var(--peach-t1);9518  font-style: italic;9519}95209521.peach-note-body-field ul,9522.peach-note-body-field ol {9523  padding-left: 20px;9524  margin: 8px 0;9525}95269527.peach-note-body-field li {9528  margin: 4px 0;9529}95309531.peach-note-body-field hr {9532  border: none;9533  border-top: 0.5px solid var(--peach-border);9534  margin: 16px 0;9535}95369537/* Saved indicator */9538.peach-note-saved-indicator {9539  font-family: var(--font-mono);9540  font-size: 11px;9541  color: var(--peach-t3);9542  letter-spacing: 0.04em;9543  text-align: right;9544  padding: 6px 24px;9545  flex-shrink: 0;9546  transition: opacity 300ms ease;9547  pointer-events: none;9548  position: relative;9549  z-index: 1;9550}95519552/* Mobile keyboard toolbar */9553.peach-note-toolbar-mobile {9554  display: flex;9555  align-items: center;9556  padding: 8px 16px;9557  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));9558  background: var(--peach-bg);9559  border-top: 0.5px solid var(--peach-border);9560  gap: 0;9561  flex-shrink: 0;9562  position: relative;9563  z-index: 10;9564}95659566.peach-note-toolbar-btn {9567  min-width: 0;9568  width: auto;9569  height: 30px;9570  display: flex;9571  align-items: center;9572  justify-content: center;9573  background: none;9574  border: none;9575  border-radius: 4px;9576  cursor: pointer;9577  color: var(--peach-t1);9578  transition: background 100ms ease, color 100ms ease;9579  -webkit-tap-highlight-color: transparent;9580}95819582.peach-note-toolbar-btn svg {9583  width: 14px;9584  height: 14px;9585  fill: none;9586  stroke: currentColor;9587  stroke-width: 1.15;9588  stroke-linecap: round;9589  stroke-linejoin: round;9590  pointer-events: none;9591}95929593.peach-note-toolbar-mobile .peach-note-toolbar-btn {9594  flex: 1 1 0;9595  height: 36px;9596}95979598.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }9599.peach-note-toolbar-btn:hover,9600.peach-note-toolbar-btn:active {9601  background: var(--peach-t4);9602  color: var(--peach-t0);9603}96049605.peach-note-toolbar-divider {9606  width: 0.5px;9607  height: 20px;9608  background: var(--peach-border);9609  margin: 0 4px;9610  flex-shrink: 0;9611}96129613.peach-note-toolbar-spacer { display: none; }96149615/* Desktop: larger headline in TOC */9616@media (min-width: 400px) {9617  .peach-notes-header-title:not(.is-breadcrumb) {9618    font-size: 32px;9619  }96209621  .peach-note-row {9622    min-height: 64px;9623    padding: 14px 16px;9624  }9625}96269627/* Flying title — shared element during expansion/collapse */96289629/* ─── Light theme overrides ───────────────────────────────────────────────9630   Tokens that cannot be expressed as variable substitutions — hardcoded9631   context-specific values that need separate light-mode rules. */96329633/* Settings section headers: use text-label (#79766F) per restoration brief —9634   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY9635   presence without fighting the light parchment background. */9636.light .peach-settings-sub-label,9637[data-theme="light"] .peach-settings-sub-label,9638.light .peach-settings-nav-label,9639[data-theme="light"] .peach-settings-nav-label {9640  color: #79766F;9641}96429643/* Secondary action buttons (ghost / subtle): filled with input-well surface9644   so they read as recessed against the parchment card background. */9645.light .peach-btn--ghost:not(.peach-icon-btn),9646[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {9647  background: #EEE7DD;9648  border-color: #DDD5CB;9649  color: #1A1208;9650}9651.light .peach-icon-btn,9652[data-theme="light"] .peach-icon-btn {9653  background: transparent;9654  border-color: transparent;9655}9656.light .peach-btn--subtle,9657[data-theme="light"] .peach-btn--subtle {9658  background: #EEE7DD;9659  border-color: #DDD5CB;9660}96619662/* Wide secondary action button on the lock screen — override the9663   hardcoded dark-mode rgba values with warm parchment equivalents. */9664.light .peach-lock-secondary,9665[data-theme="light"] .peach-lock-secondary {9666  background: #EEE7DD;9667  border-color: #DDD5CB;9668  color: #1A1208;9669}9670.light .peach-lock-secondary:hover,9671[data-theme="light"] .peach-lock-secondary:hover {9672  background: #F0E9DF;9673}96749675/* Entry row hover: bg-row lifts the row above the card surface. */9676.light .peach-entry-row:hover,9677[data-theme="light"] .peach-entry-row:hover {9678  background: #F2EBE1;9679}9680.light .peach-entry-row.is-active,9681[data-theme="light"] .peach-entry-row.is-active {9682  background: #F2EBE1;9683}9684.light .peach-entry-row.is-selected,9685[data-theme="light"] .peach-entry-row.is-selected {9686  background: #F5EDE2;9687}96889689/* ──────────────────────────────────────────────────────────────────────────9690   Pair-device flow — bird-stage animation (Phase 1)9691   See src/popup/components/PairingBirds.tsx and the brief §6.2.9692   Three-act animation gated on the [data-phase] attribute of9693   .peach-pair-pair; child layers (birds, sound arcs, flight wave, dot)9694   each react via either pose class or visibility flag.9695   Tokens: accent surfaces use var(--peach-accent); bird illustration9696   colours are baked into the SVG per the brand-peach exception in §3.1.9697   ────────────────────────────────────────────────────────────────────── */96989699.peach-pair-pair {9700  position: absolute;9701  inset: 0;9702  z-index: 3;9703  display: flex;9704  flex-direction: column;9705  padding: 14px 12px 12px;9706  width: 100%;9707  box-sizing: border-box;9708  gap: 0;9709  background:9710    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9711    var(--peach-bg);9712  color: var(--peach-t0);9713  overflow-y: auto;9714  overflow-x: hidden;9715  scrollbar-width: none;9716  isolation: isolate;9717  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9718}9719@keyframes peach-pair-overlay-in {9720  from { opacity: 0; transform: translateY(8px); }9721  to   { opacity: 1; transform: translateY(0); }9722}9723.peach-pair-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }9724.peach-pair-pair::before {9725  content: '';9726  position: absolute;9727  inset: 0;9728  border-radius: inherit;9729  pointer-events: none;9730  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9731  z-index: 0;9732}9733.peach-pair-pair > * { position: relative; z-index: 1; }97349735/* Header --------------------------------------------------------------- */9736.peach-pair-head {9737  display: flex; align-items: center; gap: 10px;9738}9739.peach-pair-back {9740  width: 32px; height: 32px;9741  display: inline-flex; align-items: center; justify-content: center;9742  background: transparent;9743  border: none;9744  border-radius: 8px;9745  color: var(--peach-t1);9746  cursor: pointer;9747  transition: color 0.15s ease, box-shadow 0.15s ease;9748}9749.peach-pair-back:hover {9750  color: var(--peach-accent);9751  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);9752}9753.peach-pair-title {9754  font-family: var(--font-display, Georgia, serif);9755  font-style: italic;9756  font-size: 24px;9757  font-weight: 500;9758  letter-spacing: 0.005em;9759  color: var(--peach-t0);9760  line-height: 1;9761}9762.peach-pair-head-spacer { flex: 1; }97639764/* Chip row ------------------------------------------------------------- */9765.peach-pair-chip-row {9766  display: flex;9767  align-items: center;9768  justify-content: flex-start;9769  margin-top: 12px;9770}9771.peach-pair-chip {9772  display: inline-flex; align-items: center; gap: 8px;9773  padding: 5px 10px 5px 8px;9774  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);9775  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);9776  border-radius: 999px;9777  font-family: var(--peach-mono, ui-monospace, monospace);9778  font-size: 11px;9779  letter-spacing: 0.04em;9780  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));9781}9782.peach-pair-chip-dot {9783  width: 6px; height: 6px; border-radius: 50%;9784  background: var(--peach-accent);9785  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);9786}9787.peach-pair-chip[data-phase="paired"] {9788  background: color-mix(in srgb, #4f9eda 12%, transparent);9789  border-color: color-mix(in srgb, #4f9eda 28%, transparent);9790  color: #76b6e8;9791}9792.peach-pair-chip[data-phase="paired"] .peach-pair-chip-dot {9793  background: #76b6e8;9794  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);9795}9796.peach-pair-chip[data-phase="timeout"],9797.peach-pair-chip[data-phase="mic_denied"],9798.peach-pair-chip[data-phase="version_mismatch"],9799.peach-pair-chip[data-phase="handshake_failed"] {9800  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);9801  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);9802  color: var(--peach-warn, #d29257);9803}9804.peach-pair-chip[data-phase="timeout"] .peach-pair-chip-dot,9805.peach-pair-chip[data-phase="mic_denied"] .peach-pair-chip-dot,9806.peach-pair-chip[data-phase="version_mismatch"] .peach-pair-chip-dot,9807.peach-pair-chip[data-phase="handshake_failed"] .peach-pair-chip-dot {9808  background: var(--peach-warn, #d29257);9809  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);9810}981198129813/* Bird stage ----------------------------------------------------------- */9814.peach-pair-stage {9815  position: relative;9816  height: 180px;9817  margin: 8px auto 18px;9818  width: 300px;9819  display: flex;9820  align-items: flex-end;9821  justify-content: center;9822}9823.peach-pair-bird-slot {9824  position: absolute;9825  bottom: 0;9826  width: 108px;9827  height: 108px;9828  transform-origin: 50% 95%;9829}9830.peach-pair-bird-slot-desktop { left: 12px; }9831.peach-pair-bird-slot-mobile { right: 12px; }9832.peach-pair-stage.act-handshake .peach-pair-bird-slot-desktop,9833.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop {9834  transform: translateX(6px);9835  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9836}9837.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop { --bb-x: 6px; }9838.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { --bb-x: -6px; }9839.peach-pair-stage.act-paired .peach-pair-bird-slot {9840  animation: peach-pair-happy-bob 1.2s ease-in-out infinite;9841}9842.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { animation-delay: 0.2s; }9843@keyframes peach-pair-happy-bob {9844  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9845  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9846}98479848/* Bird internal -------------------------------------------------------- */9849.peach-pair-bird {9850  width: 108px;9851  height: 108px;9852  transform-origin: 50% 95%;9853}9854.peach-pair-bird svg { width: 100%; height: 100%; overflow: visible; }98559856.peach-pair-bird-body {9857  transform-origin: 50% 80%;9858  animation: peach-pair-bird-bob 2.4s ease-in-out infinite;9859}9860.peach-pair-bird-pose-chirping .peach-pair-bird-body { animation-duration: 1.4s; }9861.peach-pair-bird-pose-happy .peach-pair-bird-body   { animation: peach-pair-bird-celebrate 0.9s ease-in-out infinite; }9862.peach-pair-bird-pose-attentive .peach-pair-bird-body { animation-duration: 2.0s; }98639864@keyframes peach-pair-bird-bob {9865  0%, 100% { transform: translateY(0) rotate(0deg); }9866  50%      { transform: translateY(-2px) rotate(-1deg); }9867}9868@keyframes peach-pair-bird-celebrate {9869  0%, 100% { transform: translateY(0) rotate(0deg); }9870  25%      { transform: translateY(-4px) rotate(-2deg); }9871  75%      { transform: translateY(-4px) rotate(2deg); }9872}98739874.peach-pair-bird-wing {9875  transform-origin: 50% 50%;9876  animation: peach-pair-bird-flap 0.9s ease-in-out infinite;9877}9878.peach-pair-bird-pose-happy .peach-pair-bird-wing { animation-duration: 0.35s; }9879.peach-pair-bird-pose-attentive .peach-pair-bird-wing { animation-duration: 1.4s; }9880@keyframes peach-pair-bird-flap {9881  0%, 100% { transform: scaleY(1); }9882  50%      { transform: scaleY(0.85); }9883}98849885.peach-pair-bird-head-group {9886  transform-origin: 95px 52px;9887  animation: peach-pair-bird-bob-head 2.6s ease-in-out infinite;9888}9889.peach-pair-bird-pose-chirping .peach-pair-bird-head-group { animation-duration: 0.45s; }9890.peach-pair-bird-pose-attentive .peach-pair-bird-head-group { animation: none; }9891@keyframes peach-pair-bird-bob-head {9892  0%, 100% { transform: rotate(0deg); }9893  50%      { transform: rotate(3deg); }9894}98959896.peach-pair-bird-eye-group { transform-origin: center; }9897.peach-pair-bird-blink { animation: peach-pair-bird-blink 4s ease-in-out infinite; }9898@keyframes peach-pair-bird-blink {9899  0%, 92%, 100% { transform: scaleY(1); }9900  95%           { transform: scaleY(0.1); }9901}99029903.peach-pair-bird-aura {9904  animation: peach-pair-bird-aura 2.6s ease-in-out infinite;9905}9906.peach-pair-bird-pose-happy .peach-pair-bird-aura { animation-duration: 1.4s; }9907@keyframes peach-pair-bird-aura {9908  0%, 100% { opacity: 0; }9909  50%      { opacity: 0.18; }9910}99119912.peach-pair-bird-tail {9913  transform-origin: 50% 100%;9914  animation: peach-pair-bird-tail-wag 3s ease-in-out infinite;9915}9916@keyframes peach-pair-bird-tail-wag {9917  0%, 100% { transform: rotate(0deg); }9918  50%      { transform: rotate(2deg); }9919}99209921.peach-pair-bird-pose-happy .peach-pair-bird-shadow { animation: peach-pair-bird-shadow-pulse 0.9s ease-in-out infinite; }9922@keyframes peach-pair-bird-shadow-pulse {9923  0%, 100% { transform: scaleX(1); opacity: 0.45; }9924  50%      { transform: scaleX(0.92); opacity: 0.3; }9925}99269927/* Per-pose variants --------------------------------------------------- */9928.peach-pair-bird-pose-sad .peach-pair-bird-head-group { transform: translateY(4px) rotate(8deg); }9929.peach-pair-bird-pose-sad .peach-pair-bird-tuft { transform: rotate(15deg) translateY(2px); }9930.peach-pair-bird-pose-sad .peach-pair-bird-tail { transform: rotate(8deg) translateY(2px); }9931.peach-pair-bird-pose-hidden { opacity: 0; }99329933/* Rest state — bird stage at idle pose, primary CTA + paired list */9934.peach-pair-pair[data-phase="idle"] .peach-pair-stage {9935  height: 160px;9936}99379938/* Sound arcs ----------------------------------------------------------- */9939.peach-pair-arcs {9940  position: absolute;9941  top: 18px;9942  width: 96px;9943  height: 70px;9944  pointer-events: none;9945}9946.peach-pair-arcs-right { right: -60px; }9947.peach-pair-arcs-left  { left: -60px; transform: scaleX(-1); }9948.peach-pair-arc {9949  position: absolute;9950  top: 50%;9951  left: 0;9952  width: 40px;9953  height: 40px;9954  margin-top: -20px;9955  border: 1.2px solid #f4d5a8;9956  border-color: transparent #f4d5a8 transparent transparent;9957  border-radius: 50%;9958  opacity: 0;9959  animation: peach-pair-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9960}9961@keyframes peach-pair-arc-expand {9962  0%   { transform: scale(0.4); opacity: 0; }9963  20%  { opacity: 0.9; }9964  100% { transform: scale(1.6); opacity: 0; }9965}99669967/* Flight wave ---------------------------------------------------------- */9968.peach-pair-flight-track {9969  position: absolute;9970  inset: 32px 36px 38px 36px;9971  pointer-events: none;9972}9973.peach-pair-flight-wave {9974  position: absolute;9975  top: 8px;9976  left: 76px;9977  right: 76px;9978  height: 60px;9979  width: auto;9980  opacity: 0;9981  transition: opacity 0.15s ease;9982  stroke: #f4d5a8;9983  fill: none;9984}9985.peach-pair-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9986.peach-pair-flight-wave.is-visible { opacity: 1; }9987.peach-pair-flight-path,9988.peach-pair-flight-path-2 {9989  stroke-dasharray: 240;9990  stroke-dashoffset: 240;9991  stroke-linecap: round;9992  fill: none;9993}9994.peach-pair-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9995.peach-pair-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9996.peach-pair-flight-wave.is-visible .peach-pair-flight-path {9997  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9998}9999.peach-pair-flight-wave.is-visible .peach-pair-flight-path-2 {10000  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;10001}10002@keyframes peach-pair-fly {10003  0%   { stroke-dashoffset: 240; opacity: 0; }10004  20%  { opacity: 1; }10005  100% { stroke-dashoffset: -120; opacity: 0; }10006}1000710008/* Connection dot ------------------------------------------------------- */10009.peach-pair-dot {10010  position: absolute;10011  top: 50%; left: 50%;10012  transform: translate(-50%, -50%);10013  width: 40px; height: 40px;10014  opacity: 0;10015  pointer-events: none;10016  transition: opacity 0.3s ease;10017  color: var(--peach-accent);10018}10019.peach-pair-dot.is-visible { opacity: 1; }10020.peach-pair-dot-glow {10021  position: absolute; top: 50%; left: 50%;10022  transform: translate(-50%, -50%);10023  width: 38px; height: 38px;10024  border-radius: 50%;10025  filter: blur(10px);10026  opacity: 0.55;10027  background: var(--peach-accent);10028  animation: peach-pair-dot-bloom 1.4s ease-out;10029}10030.peach-pair-dot-core {10031  position: absolute; top: 50%; left: 50%;10032  transform: translate(-50%, -50%);10033  width: 8px; height: 8px;10034  border-radius: 50%;10035  background: var(--peach-accent);10036  box-shadow: 0 0 12px currentColor;10037  animation: peach-pair-dot-core 1.4s ease-out;10038}10039.peach-pair-dot-ring {10040  position: absolute; top: 50%; left: 50%;10041  width: 60px; height: 60px;10042  transform: translate(-50%, -50%);10043  animation: peach-pair-dot-ring 1.4s linear;10044  stroke: var(--peach-accent);10045}10046@keyframes peach-pair-dot-bloom {10047  0%   { width: 4px; height: 4px; opacity: 0; }10048  35%  { width: 60px; height: 60px; opacity: 0.7; }10049  100% { width: 38px; height: 38px; opacity: 0.55; }10050}10051@keyframes peach-pair-dot-core {10052  0%   { width: 0; height: 0; }10053  35%  { width: 12px; height: 12px; }10054  100% { width: 8px; height: 8px; }10055}10056@keyframes peach-pair-dot-ring {10057  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }10058  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }10059  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }10060}1006110062/* Motes — drift upward across the stage */10063.peach-pair-motes {10064  position: absolute;10065  inset: 0;10066  pointer-events: none;10067}10068.peach-pair-mote {10069  position: absolute;10070  width: 2px; height: 2px;10071  background: color-mix(in srgb, var(--peach-text) 35%, transparent);10072  border-radius: 50%;10073  bottom: 32px;10074  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);10075  opacity: 0;10076  animation: peach-pair-mote-drift 6s linear infinite;10077  animation-delay: calc(var(--mote-i, 0) * 0.7s);10078}10079@keyframes peach-pair-mote-drift {10080  0%   { transform: translateY(0); opacity: 0; }10081  10%  { opacity: 0.6; }10082  90%  { opacity: 0.1; }10083  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }10084}1008510086/* Status copy ---------------------------------------------------------- */10087.peach-pair-copy-host {10088  margin: 4px 4px 10px;10089  text-align: center;10090  min-height: 50px;10091}10092.peach-pair-copy {10093  animation: peach-pair-copy-in 0.35s ease both;10094}10095@keyframes peach-pair-copy-in {10096  from { opacity: 0; transform: translateY(4px); }10097  to   { opacity: 1; transform: translateY(0); }10098}10099.peach-pair-headline {10100  font-family: var(--font-display, Georgia, serif);10101  font-style: italic;10102  font-size: 20px;10103  font-weight: 500;10104  line-height: 1.2;10105  letter-spacing: 0.005em;10106  color: var(--peach-t0);10107  margin-bottom: 6px;10108}10109.peach-pair-copy-listening .peach-pair-headline,10110.peach-pair-copy-chirping .peach-pair-headline,10111.peach-pair-copy-idle .peach-pair-headline {10112  font-family: inherit;10113  font-style: normal;10114  font-weight: 500;10115  font-size: 15px;10116  color: var(--peach-t0);10117  letter-spacing: 0;10118}10119.peach-pair-copy-paired .peach-pair-headline {10120  color: var(--peach-t0);10121  font-weight: 600;10122}10123.peach-pair-sub {10124  font-size: 12.5px;10125  line-height: 1.45;10126  color: var(--peach-t1);10127  max-width: 280px;10128  margin: 0 auto;10129  text-wrap: pretty;10130}1013110132/* Status action -------------------------------------------------------- */10133.peach-pair-action {10134  margin: 2px 4px 10px;10135  margin-top: auto;10136  display: flex;10137  flex-direction: column;10138  gap: 8px;10139}10140.peach-pair-action-waiting {10141  display: flex;10142  align-items: center;10143  justify-content: space-between;10144  gap: 12px;10145}10146.peach-pair-cancel {10147  min-width: 96px;10148}10149.peach-pair-listening {10150  display: inline-flex; align-items: center; gap: 4px;10151  font-family: var(--peach-mono, ui-monospace, monospace);10152  font-size: 9.5px;10153  text-transform: uppercase;10154  letter-spacing: 0.12em;10155  color: var(--peach-t1);10156  padding: 8px 10px;10157}10158.peach-pair-listen-dot {10159  width: 4px; height: 4px;10160  border-radius: 50%;10161  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);10162  animation: peach-pair-listen-pulse 1.2s ease-in-out infinite;10163}10164.peach-pair-listen-dot:nth-child(2) { animation-delay: 0.2s; }10165.peach-pair-listen-dot:nth-child(3) { animation-delay: 0.4s; }10166.peach-pair-listen-label { margin-left: 6px; }10167@keyframes peach-pair-listen-pulse {10168  0%, 100% { opacity: 0.25; transform: scale(0.9); }10169  50%      { opacity: 1;     transform: scale(1.15); }10170}1017110172.peach-pair-action-handshake {10173  display: flex;10174  flex-direction: column;10175  align-items: center;10176  gap: 8px;10177  padding: 8px 4px;10178}10179.peach-pair-meter {10180  width: 100%;10181  max-width: 280px;10182  height: 2px;10183  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);10184  border-radius: 2px;10185  position: relative;10186  overflow: hidden;10187}10188.peach-pair-meter-bar {10189  position: absolute;10190  top: 0; bottom: 0;10191  width: 30%;10192  left: -30%;10193  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);10194  animation: peach-pair-meter-sweep 1.4s ease-in-out infinite;10195}10196@keyframes peach-pair-meter-sweep {10197  0%   { left: -30%; }10198  100% { left: 100%; }10199}10200.peach-pair-meter-label {10201  font-family: var(--peach-mono, ui-monospace, monospace);10202  font-size: 9.5px;10203  text-transform: uppercase;10204  letter-spacing: 0.14em;10205  color: var(--peach-t1);10206}1020710208.peach-pair-action-paired {10209  display: flex;10210  align-items: center;10211  gap: 10px;10212}10213.peach-pair-device-confirm {10214  flex: 1;10215  display: inline-flex;10216  align-items: center;10217  gap: 8px;10218  padding: 9px 10px 9px 12px;10219  border-radius: 10px;10220  background: color-mix(in srgb, #76b6e8 12%, transparent);10221  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);10222  font-size: 12.5px;10223  color: var(--peach-t0);10224  min-width: 0;10225}10226.peach-pair-device-confirm-glyph {10227  display: inline-flex;10228  color: #76b6e8;10229}10230.peach-pair-device-confirm-name {10231  flex: 1;10232  overflow: hidden;10233  text-overflow: ellipsis;10234  white-space: nowrap;10235}10236.peach-pair-device-confirm-trust {10237  font-family: var(--peach-mono, ui-monospace, monospace);10238  font-size: 9.5px;10239  text-transform: uppercase;10240  letter-spacing: 0.1em;10241  color: #76b6e8;10242  padding: 2px 6px;10243  border-radius: 4px;10244  background: color-mix(in srgb, #76b6e8 14%, transparent);10245}10246.peach-pair-done {10247  min-width: 80px;10248}10249.peach-pair-retry {10250  align-self: center;10251  display: block;10252  margin: 6px auto 0;10253  min-width: 120px;10254}10255.peach-pair-mic-help {10256  font-size: 12px;10257  color: var(--peach-t1);10258  text-align: center;10259  max-width: 320px;10260  margin: 0 auto;10261}1026210263/* Rest state — bird stage at idle pose, primary CTA + paired list */10264.peach-pair-pair[data-phase="idle"] .peach-pair-stage {10265  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */10266  height: 160px;10267}10268.peach-pair-pair-start {10269  width: 100%;10270  display: inline-flex;10271  align-items: center;10272  justify-content: center;10273  gap: 8px;10274  padding: 11px 14px;10275  border-radius: 10px;10276  background: var(--peach-accent);10277  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);10278  color: #1a0905;10279  font-family: inherit;10280  font-size: 13px;10281  font-weight: 600;10282  letter-spacing: 0.01em;10283  cursor: pointer;10284  transition: filter 0.15s ease, transform 0.1s ease;10285}10286.peach-pair-pair-start:hover { filter: brightness(1.08); }10287.peach-pair-pair-start:active { transform: translateY(1px); }1028810289.peach-pair-paired-section {10290  margin-top: 14px;10291  display: flex;10292  flex-direction: column;10293  gap: 8px;10294}10295.peach-pair-paired-heading {10296  margin: 0;10297  font-family: var(--peach-mono, ui-monospace, monospace);10298  font-size: 10px;10299  font-weight: 500;10300  letter-spacing: 0.14em;10301  text-transform: uppercase;10302  color: var(--peach-t1);10303}1030410305/* Footer --------------------------------------------------------------- */10306.peach-pair-foot {10307  margin: 10px -4px -2px;10308  margin-top: auto;10309}10310.peach-pair-foot-divider {10311  height: 1px;10312  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);10313  margin-bottom: 10px;10314}10315.peach-pair-foot-text {10316  font-size: 11px;10317  line-height: 1.5;10318  color: var(--peach-t1);10319  text-align: center;10320  padding: 0 4px;10321  text-wrap: pretty;10322}1032310324/* Screen-reader-only live region. Kept off the visual flow but read by10325   assistive tech as the pairing phase advances. */10326.peach-sr-only {10327  position: absolute;10328  width: 1px; height: 1px;10329  padding: 0; margin: -1px;10330  overflow: hidden;10331  clip: rect(0, 0, 0, 0);10332  white-space: nowrap;10333  border: 0;10334}1033510336/* Reduced motion — stage simplifies to opacity transitions only */10337@media (prefers-reduced-motion: reduce) {10338  .peach-pair-bird-body,10339  .peach-pair-bird-head-group,10340  .peach-pair-bird-beak,10341  .peach-pair-bird-wing,10342  .peach-pair-bird-tuft,10343  .peach-pair-bird-tail,10344  .peach-pair-bird-eye-group,10345  .peach-pair-bird-aura,10346  .peach-pair-arc,10347  .peach-pair-flight-path,10348  .peach-pair-flight-path-2,10349  .peach-pair-dot-glow,10350  .peach-pair-dot-core,10351  .peach-pair-dot-ring,10352  .peach-pair-mote,10353  .peach-pair-meter-bar,10354  .peach-pair-listen-dot,10355  .peach-pair-bird-slot,10356  .peach-pair-bird-slot-mobile {10357    animation: none !important;10358    transition: opacity 0.2s linear !important;10359  }10360}1036110362/* ─────────────────────────────────────────────────────────────────10363   Settings → Sync surface. Wraps the same bird10364   animation used by the pairing flow with a paired-devices list and10365   the "Pair a device" CTA.10366   ───────────────────────────────────────────────────────────────── */10367.peach-pair-settings {10368  position: absolute;10369  inset: 0;10370  z-index: 3;10371  display: flex;10372  flex-direction: column;10373  gap: 18px;10374  padding: 14px 12px 12px;10375  width: 100%;10376  box-sizing: border-box;10377  overflow-y: auto;10378  overflow-x: hidden;10379  /* Same warm surface as the pairing screen — unifies the two views. */10380  background:10381    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),10382    var(--peach-bg);10383  color: var(--peach-t0);10384  isolation: isolate;10385  /* Hide native scrollbar — content fits 99% of the time and a chunky10386     gutter ruins the surface. */10387  scrollbar-width: none;10388  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;10389}10390.peach-pair-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }10391.peach-pair-settings::before {10392  content: '';10393  position: absolute;10394  inset: 0;10395  pointer-events: none;10396  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);10397  z-index: 0;10398}10399.peach-pair-settings > * { position: relative; z-index: 1; }1040010401.peach-pair-settings--pairing {10402  padding: 0;10403  align-items: stretch;10404  justify-content: stretch;10405  background: none;10406  isolation: auto;10407}10408.peach-pair-settings--pairing::before { display: none; }1040910410.peach-pair-settings-header {10411  display: flex;10412  align-items: center;10413  gap: 10px;10414}10415.peach-pair-settings-title {10416  margin: 0;10417  font-family: var(--font-display, Georgia, serif);10418  font-style: italic;10419  font-size: 24px;10420  font-weight: 500;10421  line-height: 1;10422  color: var(--peach-t0);10423  letter-spacing: 0.005em;10424}10425.peach-pair-settings-section {10426  margin: 6px 0 -4px;10427  font-size: 11px;10428  font-weight: 600;10429  letter-spacing: 0.08em;10430  text-transform: uppercase;10431  color: var(--peach-text-muted);10432}10433.peach-pair-settings-error {10434  font-size: 12px;10435  padding: 8px 10px;10436  border-radius: 8px;10437  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);10438  color: var(--peach-text);10439}10440.peach-pair-settings-footer {10441  margin-top: auto;10442  padding-top: 18px;10443  font-size: 11.5px;10444  line-height: 1.5;10445  color: var(--peach-text-muted);10446  text-align: center;10447}1044810449/* Hero card shown when no devices are paired yet. */10450.peach-pair-hero {10451  display: flex;10452  flex-direction: column;10453  align-items: center;10454  gap: 12px;10455  padding: 20px 12px 8px;10456  text-align: center;10457}10458.peach-pair-hero-svg {10459  display: block;10460  max-width: 100%;10461  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));10462}10463.peach-pair-hero-headline {10464  margin: 0;10465  font-family: var(--font-display, Georgia, serif);10466  font-style: italic;10467  font-size: 20px;10468  font-weight: 500;10469  line-height: 1.2;10470  letter-spacing: 0.005em;10471  color: var(--peach-t0);10472}10473.peach-pair-hero-sub {10474  margin: 0;10475  font-size: 13px;10476  line-height: 1.5;10477  color: var(--peach-t1);10478  max-width: 320px;10479  text-wrap: pretty;10480}1048110482.peach-pair-pair-cta {10483  display: flex;10484  justify-content: center;10485  padding: 4px 0 6px;10486}10487.peach-pair-pair-button {10488  display: inline-flex;10489  align-items: center;10490  gap: 8px;10491  min-width: 220px;10492  justify-content: center;10493}10494.peach-pair-pair-button-icon {10495  flex: 0 0 auto;10496}1049710498/* Paired devices list. Roomy rows that look at home next to the rest10499   of Settings; stale rows get a soft warm-warning border tint. */10500.peach-pair-device-list {10501  list-style: none;10502  margin: 0;10503  padding: 0;10504  display: flex;10505  flex-direction: column;10506  gap: 8px;10507}10508.peach-pair-device-row {10509  display: flex;10510  align-items: center;10511  gap: 12px;10512  padding: 12px;10513  border-radius: 10px;10514  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10515  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);10516}10517.peach-pair-device-row[data-stale="true"] {10518  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);10519}10520.peach-pair-device-icon {10521  width: 32px;10522  height: 32px;10523  display: flex;10524  align-items: center;10525  justify-content: center;10526  border-radius: 8px;10527  color: var(--peach-text);10528  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);10529}10530.peach-pair-device-info {10531  flex: 1;10532  display: flex;10533  flex-direction: column;10534  gap: 2px;10535  min-width: 0;10536}10537.peach-pair-device-name {10538  font-size: 14px;10539  font-weight: 600;10540  color: var(--peach-text);10541  overflow: hidden;10542  text-overflow: ellipsis;10543  white-space: nowrap;10544}10545.peach-pair-device-meta {10546  font-size: 11.5px;10547  color: var(--peach-text-muted);10548  display: flex;10549  flex-wrap: wrap;10550  align-items: center;10551  gap: 8px;10552}10553.peach-pair-device-badge {10554  font-size: 10.5px;10555  font-weight: 500;10556  letter-spacing: 0.02em;10557  padding: 2px 6px;10558  border-radius: 999px;10559  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);10560  color: var(--peach-text);10561}10562.peach-pair-device-stale {10563  font-size: 10.5px;10564  font-weight: 500;10565  color: var(--peach-warn, #d29257);10566}10567.peach-pair-device-remove {10568  flex: 0 0 auto;10569  color: var(--peach-text-muted);10570}10571.peach-pair-device-remove:hover {10572  color: var(--peach-danger, #c25b4a);10573}10574.peach-pair-unpair-confirm {10575  display: flex;10576  gap: 6px;10577  align-items: center;10578}1057910580/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */10581.peach-pair-pro-card {10582  position: relative;10583  margin: 18px 12px;10584  padding: 18px 20px 22px;10585  border-radius: 22px;10586  background:10587    radial-gradient(140% 90% at 50% 0%,10588      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,10589      transparent 60%),10590    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10591  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);10592  box-shadow:10593    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,10594    0 18px 40px -24px rgba(0, 0, 0, 0.45);10595  display: flex;10596  flex-direction: column;10597  align-items: center;10598  gap: 10px;10599  text-align: center;10600  overflow: hidden;10601}10602.peach-pair-pro-stage {10603  position: relative;10604  width: 220px;10605  height: 140px;10606  display: flex;10607  align-items: flex-end;10608  justify-content: center;10609  margin-bottom: 2px;10610}10611.peach-pair-pro-bird-slot {10612  width: 140px;10613  height: 132px;10614  display: flex;10615  align-items: flex-end;10616  justify-content: center;10617  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));10618}10619.peach-pair-pro-bird-slot .peach-pair-bird {10620  width: 100%;10621  height: 100%;10622}10623.peach-pair-pro-bird-slot .peach-pair-bird svg {10624  width: 100%;10625  height: 100%;10626  overflow: visible;10627}10628.peach-pair-pro-headline {10629  margin: 4px 0 0;10630  font-family: var(--font-display, "Cormorant Garamond", serif);10631  font-style: italic;10632  font-size: 19px;10633  font-weight: 500;10634  letter-spacing: 0.01em;10635  color: var(--peach-t0);10636  max-width: 280px;10637  line-height: 1.25;10638}10639.peach-pair-pro-body {10640  margin: 0;10641  font-size: 13px;10642  line-height: 1.55;10643  color: var(--peach-t1);10644  max-width: 300px;10645}10646.peach-pair-pro-cta {10647  margin-top: 4px;10648}10649.peach-pair-pro-foot {10650  margin: 2px 0 0;10651  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;10652  font-size: 0.625rem;10653  letter-spacing: 0.08em;10654  text-transform: uppercase;10655  color: var(--peach-t2);10656  opacity: 0.75;10657}1065810659/* Shell border and shadow in light mode: match dark mode's near-invisible10660   border weight so the popup frame looks the same in both themes. */10661.light .peach-shell,10662.light .peach-screen {10663  border-color: rgba(26, 18, 8, 0.07);10664  box-shadow:10665    0 2px 8px rgba(80, 56, 32, 0.08),10666    0 14px 48px rgba(80, 56, 32, 0.10),10667    0 0 0 1px rgba(26, 18, 8, 0.04);10668}1066910670/* HOLE 4: the revoke confirmation carries its own disclosure, so it needs the10671   full row width rather than sitting inline beside the device name. */10672.peach-settings-row:has(> .peach-unpair-confirm) { flex-wrap: wrap; }10673.peach-unpair-confirm {10674  display: flex;10675  flex-direction: column;10676  gap: 8px;10677  width: 100%;10678}10679.peach-unpair-confirm-note {10680  margin: 0;10681  font-size: 0.6875rem;10682  line-height: 1.5;10683  color: var(--peach-t2);10684}1068510686/* Sync mode selector — three named choices (public / private / off). Replaces10687   the old binary "local network only" toggle; see docs/sync-lan-retirement.md. */10688.peach-sync-mode {10689  display: flex;10690  align-items: flex-start;10691  gap: 10px;10692  width: 100%;10693  text-align: left;10694  padding: 10px 12px;10695  margin-top: 8px;10696  border-radius: 10px;10697  border: 1px solid var(--peach-border);10698  background: color-mix(in srgb, var(--peach-t0) 3%, transparent);10699  color: var(--peach-t1);10700  cursor: pointer;10701  transition: border-color var(--peach-dur-80) var(--peach-curve-arrival),10702              background-color var(--peach-dur-80) var(--peach-curve-arrival);10703}10704.peach-sync-mode:hover:not(:disabled) {10705  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);10706}10707.peach-sync-mode.is-active {10708  border-color: var(--peach-accent);10709  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);10710}10711.peach-sync-mode:disabled { opacity: 0.6; cursor: default; }10712.peach-sync-mode-main { display: flex; flex-direction: column; gap: 3px; flex: 1; }10713.peach-sync-mode-title { font-size: 12px; }10714.peach-sync-mode-sub {10715  font-size: 11px;10716  line-height: 1.5;10717  color: var(--peach-t2);10718}10719.peach-sync-mode-pip {10720  flex: none;10721  margin-top: 3px;10722  width: 12px; height: 12px;10723  border-radius: 50%;10724  border: 1px solid var(--peach-t3);10725}10726.peach-sync-mode.is-active .peach-sync-mode-pip {10727  border-color: var(--peach-accent);10728  background:10729    radial-gradient(circle at 50% 50%, var(--peach-accent) 0 42%, transparent 44%);10730}10731.peach-sync-mode-disclosure {10732  margin: 10px 2px 0;10733  font-size: 11px;10734  line-height: 1.5;10735  color: var(--peach-t2);10736}10737.peach-sync-mode-warn { color: var(--peach-breach); }1073810739/* Compact form, used mid-pairing: a quiet line, not a decision to make. */10740.peach-sync-mode-summary {10741  margin: 8px 2px 0;10742  font-size: 11px;10743  color: var(--peach-t2);10744  text-align: center;10745}10746.peach-sync-mode-change {10747  background: none;10748  border: none;10749  padding: 0;10750  font: inherit;10751  color: var(--peach-accent);10752  text-decoration: underline;10753  cursor: pointer;10754}