popup.css

253.8 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-restore-tabview {3930  overflow: hidden;3931}39323933.peach-restore-tabcard {3934  flex: 1;3935  display: flex;3936  flex-direction: column;3937  gap: 0;3938  padding: 0;3939  overflow: hidden;3940  cursor: default;3941  user-select: none;3942  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3943}39443945/* ── Tab selector ─────────────────────────────────────────────────────── */39463947.peach-restore-tabs {3948  display: flex;3949  justify-content: space-around;3950  padding: 14px 10px 10px;3951  border-bottom: 1px solid var(--peach-t3);3952  gap: 2px;3953  overflow: hidden;3954  scrollbar-width: none;3955}3956.peach-restore-tabs::-webkit-scrollbar { display: none; }39573958.peach-restore-tab {3959  background: none;3960  border: none;3961  cursor: pointer;3962  padding: 3px 2px;3963  font-family: 'Cormorant Garamond', Georgia, serif;3964  font-style: italic;3965  font-size: 11px;3966  color: var(--peach-t2);3967  transition: color 150ms ease, text-shadow 150ms ease;3968  flex: 1;3969  min-width: 0;3970  text-align: center;3971  white-space: nowrap;3972  overflow: hidden;3973  text-overflow: ellipsis;3974}3975.peach-restore-tab:hover {3976  color: var(--peach-accent);3977  text-shadow:3978    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3979    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3980}3981.peach-restore-tab.is-active {3982  color: var(--peach-accent);3983  text-shadow:3984    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),3985    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);3986}39873988/* ── Content area ─────────────────────────────────────────────────────── */39893990.peach-restore-content {3991  padding: 16px 16px 14px;3992  display: flex;3993  flex-direction: column;3994  gap: 8px;3995  overflow: hidden;3996  scrollbar-width: none;3997  flex: 1;3998}3999.peach-restore-content::-webkit-scrollbar { display: none; }4000.peach-restore-content > * {4001  overflow: hidden;4002  scrollbar-width: none;4003}4004.peach-restore-content > *::-webkit-scrollbar { display: none; }40054006/* ── Shared tab inner layout ──────────────────────────────────────────── */40074008.peach-rt-symbols,4009.peach-rt-csv,4010.peach-rt-phone,4011.peach-restore-codex {4012  display: flex;4013  flex-direction: column;4014  gap: 8px;4015  overflow: hidden;4016}40174018.peach-restore-codex {4019  min-height: 0;4020  justify-content: center;4021}40224023.peach-restore-codex-title {4024  margin: 0;4025  font-family: var(--font-display);4026  font-size: 1rem;4027  font-style: italic;4028  color: var(--peach-t0);4029}40304031.peach-restore-codex-copy {4032  margin: 0;4033  font-size: 0.75rem;4034  line-height: 1.5;4035  color: var(--peach-t1);4036}40374038.peach-restore-codex-button {4039  width: 100%;4040  justify-content: center;4041}40424043.peach-rt-submit {4044  width: 100%;4045}40464047.peach-rt-error {4048  margin: 0;4049  font-size: 0.6875rem;4050  color: var(--peach-breach);4051  line-height: 1.4;4052}40534054/* ── PeachScript tab ──────────────────────────────────────────────────── */40554056.peach-restore-symbols-textarea {4057  font-family: 'PeachScript', monospace;4058  font-size: 13px;4059  line-height: 1.9;4060  letter-spacing: 0.1em;4061  word-break: break-all;4062  resize: none;4063  width: 100%;4064  min-height: 56px;4065  max-height: 72px;4066  overflow: hidden;4067  scrollbar-width: none;4068  -ms-overflow-style: none;4069  box-sizing: border-box;4070  padding: 6px 8px;4071  border-radius: 8px;4072  border: 1px solid var(--peach-t3);4073  background: rgba(240, 232, 216, 0.03);4074  color: var(--peach-t0);4075}4076.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }4077.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40784079.peach-restore-symbols-pass {4080  width: 100%;4081  box-sizing: border-box;4082  padding: 7px 10px;4083  border-radius: 8px;4084  border: 1px solid var(--peach-t3);4085  background: rgba(240, 232, 216, 0.03);4086  color: var(--peach-t0);4087  font-size: 0.8125rem;4088}4089.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }4090.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40914092.peach-rt-divider {4093  text-align: center;4094  font-size: 0.6875rem;4095  color: var(--peach-t2);4096  font-style: italic;4097}40984099.peach-rt-file-label {4100  width: 100%;4101  justify-content: center;4102}41034104.peach-rt-anim-canvas {4105  width: 100%;4106  height: 180px;4107  border-radius: 10px;4108  overflow: hidden;4109  display: block;4110}41114112/* ── CSV tab ──────────────────────────────────────────────────────────── */41134114.peach-rt-csv-sources {4115  margin: 0;4116  font-size: 0.6875rem;4117  color: var(--peach-t2);4118  line-height: 1.5;4119  text-align: center;4120}41214122.peach-rt-csv-warning {4123  margin: 0;4124  font-family: "IBM Plex Mono", monospace;4125  font-size: 0.5625rem;4126  letter-spacing: 0.12em;4127  color: var(--peach-breach);4128  text-align: center;4129}41304131/* ── From Phone tab ───────────────────────────────────────────────────── */41324133.peach-rt-phone-code {4134  margin: 0;4135  text-align: center;4136  font-family: "IBM Plex Mono", monospace;4137  font-size: 22px;4138  letter-spacing: 0.18em;4139  color: var(--peach-t0);4140}41414142.peach-rt-phone-qr {4143  display: block;4144  width: 96px;4145  height: 96px;4146  margin: 0 auto;4147  border-radius: 6px;4148  image-rendering: pixelated;4149  overflow: hidden;4150}41514152.peach-rt-phone-hint {4153  margin: 0;4154  font-size: 0.6875rem;4155  color: var(--peach-t2);4156  line-height: 1.55;4157  text-align: center;4158}41594160/* ── Intro popup ──────────────────────────────────────────────────────── */41614162.peach-restore-intro-overlay {4163  position: absolute;4164  inset: 0;4165  z-index: 100;4166  display: flex;4167  align-items: center;4168  justify-content: center;4169  padding: 20px;4170  background: rgba(12, 10, 6, 0.7);4171  backdrop-filter: blur(4px);4172  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4173}41744175.peach-restore-intro-card {4176  width: 100%;4177  display: flex;4178  flex-direction: column;4179  gap: 12px;4180  padding: 22px 20px 20px;4181  border-radius: 16px;4182  border: 1px solid var(--peach-t3);4183  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));4184  backdrop-filter: blur(4px);4185  -webkit-backdrop-filter: blur(4px);4186  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);4187}41884189.peach-restore-intro-headline {4190  margin: 0;4191  font-family: var(--font-display);4192  font-style: italic;4193  font-size: 20px;4194  font-weight: 400;4195  color: var(--peach-t0);4196}41974198.peach-restore-intro-body {4199  display: flex;4200  flex-direction: column;4201  gap: 8px;4202}4203.peach-restore-intro-body p {4204  margin: 0;4205  font-size: 0.75rem;4206  color: var(--peach-t1);4207  line-height: 1.5;4208}42094210.peach-restore-intro-btn {4211  width: 100%;4212  margin-top: 4px;4213}42144215/* Snapshot restore panel */4216.peach-snapshot-panel {4217  gap: 10px;4218  overflow-y: auto;4219  max-height: 340px;4220}4221.peach-snapshot-list {4222  display: flex;4223  flex-direction: column;4224  gap: 4px;4225}4226.peach-snapshot-row {4227  display: flex;4228  align-items: center;4229  justify-content: space-between;4230  width: 100%;4231  padding: 8px 10px;4232  border-radius: 8px;4233  border: 1px solid rgba(240, 232, 216, 0.07);4234  background: transparent;4235  cursor: pointer;4236  transition: border-color 120ms, background 120ms;4237  text-align: left;4238  gap: 8px;4239}4240.peach-snapshot-row:hover {4241  border-color: rgba(240, 232, 216, 0.14);4242  background: rgba(240, 232, 216, 0.03);4243}4244.peach-snapshot-row.is-selected {4245  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4246  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);4247}4248.peach-snapshot-time {4249  font-size: 11.5px;4250  color: var(--peach-t0);4251  flex: 1;4252}4253.peach-snapshot-count {4254  font-family: "IBM Plex Mono", monospace;4255  font-size: 0.625rem;4256  color: var(--peach-t2);4257  flex-shrink: 0;4258}4259.peach-snapshot-confirm {4260  display: flex;4261  flex-direction: column;4262  gap: 8px;4263  padding-top: 10px;4264  border-top: 1px solid rgba(240, 232, 216, 0.06);4265}4266.peach-snapshot-warning {4267  display: flex;4268  align-items: flex-start;4269  gap: 6px;4270  font-size: 10.5px;4271  color: rgba(220, 80, 60, 0.85);4272  line-height: 1.55;4273}4274.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }4275.peach-snapshot-confirm-row {4276  display: flex;4277  gap: 6px;4278  align-items: center;4279}4280.peach-snapshot-restore-btn {4281  width: 100%;4282}4283.peach-lock-hero--unlock .peach-lock-hero-art {4284  display: none;4285}42864287.peach-card {4288  border: 1px solid var(--peach-t3);4289  border-radius: 18px;4290  background:4291    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);4292  box-shadow:4293    inset 0 0 0 1px var(--peach-border-accent),4294    inset 0 1px 0 rgba(240, 232, 216, 0.04),4295    0 12px 32px rgba(0, 0, 0, 0.14);4296  overflow: hidden;4297}42984299.peach-card-active {4300  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4301  box-shadow:4302    inset 0 1px 0 rgba(240, 232, 216, 0.05),4303    0 16px 38px rgba(0, 0, 0, 0.18),4304    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4305}43064307.peach-card-disabled {4308  opacity: 0.72;4309}43104311.peach-card-header {4312  width: 100%;4313  padding: 13px 16px 11px;4314  background: transparent;4315  color: var(--peach-t0);4316  display: flex;4317  justify-content: space-between;4318  align-items: center;4319  text-align: left;4320  font-size: 0.75rem;4321}43224323.peach-card-body {4324  padding: 0 16px 16px;4325  display: grid;4326  gap: 9px;4327}43284329.peach-card-tag {4330  color: var(--peach-t2);4331  font-family: "IBM Plex Mono", monospace;4332  font-size: 0.5625rem;4333  letter-spacing: 0.12em;4334  text-transform: uppercase;4335}43364337.peach-empty-copy {4338  display: grid;4339  gap: 6px;4340  color: var(--peach-t1);4341  font-size: 0.8125rem;4342}43434344.peach-lock-submit {4345  width: 100%;4346  box-shadow:4347    0 1px 0 rgba(255,255,255,0.10) inset,4348    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4349    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4350    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4351}43524353.peach-lock-secondary {4354  width: 100%;4355  border-color: var(--peach-t3);4356  background: rgba(240, 232, 216, 0.02);4357}43584359.peach-lock-secondary:hover {4360  background: rgba(240, 232, 216, 0.04);4361}43624363.peach-lock-note {4364  max-width: none;4365  line-height: 1.55;4366  margin: 0;4367}43684369.peach-overlay-action {4370  font-size: 0.625rem;4371  padding: 4px 8px;4372  letter-spacing: 0.06em;4373  min-width: 44px;4374  text-align: center;4375}43764377.peach-inline-action {4378  flex-shrink: 0;4379  font-size: 0.5625rem;4380  letter-spacing: 0.1em;4381  text-transform: uppercase;4382  padding: 4px 7px;4383}4384.peach-password-toggle-btn {4385  display: inline-flex;4386  align-items: center;4387  justify-content: center;4388  min-width: 30px;4389  min-height: 26px;4390  padding: 0 7px;4391  border: 1px solid var(--peach-t3);4392  border-radius: 999px;4393  background: rgba(240, 232, 216, 0.04);4394  color: var(--peach-t2);4395  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4396}4397.peach-password-toggle-btn:hover {4398  border-color: var(--peach-t2);4399  color: var(--peach-t0);4400  background: rgba(240, 232, 216, 0.06);4401}44024403.peach-new-textarea {4404  width: 100%;4405  min-height: 88px;4406  resize: vertical;4407  border: 0;4408  outline: none;4409  background: transparent;4410  color: var(--peach-t1);4411  font-family: "IBM Plex Mono", monospace;4412  font-size: 0.75rem;4413  line-height: 1.65;4414  caret-color: var(--peach-accent);4415}44164417.peach-new-textarea::placeholder {4418  color: var(--peach-t2);4419  opacity: 0.7;4420}44214422.peach-settings-actions {4423  display: grid;4424  gap: 8px;4425}44264427.peach-sync-section-label {4428  font-size: 0.6875rem;4429  color: var(--peach-t2);4430  text-transform: uppercase;4431  letter-spacing: 0.05em;4432}44334434.peach-sync-network-note {4435  margin: 0 0 6px;4436  font-size: 0.75rem;4437  color: var(--peach-t2);4438  line-height: 1.4;4439}44404441.peach-settings-row--tappable {4442  background: none;4443  border: none;4444  width: 100%;4445  text-align: left;4446  cursor: pointer;4447  color: var(--peach-t1);4448  font-size: 0.8125rem;4449}4450.peach-settings-row--tappable:hover {4451  color: var(--peach-t0);4452}44534454.peach-sync-pro-hint {4455  display: flex;4456  flex-direction: column;4457  align-items: flex-start;4458  gap: 8px;4459  padding: 12px 0 4px;4460}44614462.peach-sync-device-row {4463  display: flex;4464  justify-content: space-between;4465  align-items: center;4466  padding: 6px 0;4467  border-bottom: 1px solid var(--peach-t3);4468}44694470.peach-sync-device-info {4471  display: flex;4472  flex-direction: column;4473  gap: 2px;4474}44754476.peach-sync-device-name {4477  font-size: 0.8125rem;4478  color: var(--peach-t0);4479}44804481.peach-sync-device-meta {4482  font-size: 0.6875rem;4483  color: var(--peach-t2);4484}44854486.peach-sync-status-dot {4487  display: inline-block;4488  width: 8px;4489  height: 8px;4490  border-radius: 50%;4491  vertical-align: middle;4492}44934494.peach-sync-remove-btn {4495  color: var(--peach-breach);4496}44974498.peach-sync-advanced-row {4499  display: flex;4500  justify-content: space-between;4501  align-items: center;4502  padding: 6px 0;4503  gap: 12px;4504}45054506.peach-sync-advanced-info {4507  display: flex;4508  flex-direction: column;4509  gap: 2px;4510  flex: 1;4511}45124513.peach-sync-advanced-name {4514  font-size: 0.8125rem;4515  color: var(--peach-t0);4516}45174518.peach-sync-reset-confirm {4519  display: flex;4520  flex-direction: column;4521  gap: 8px;4522  padding: 10px;4523  border: 1px solid var(--peach-breach);4524  border-radius: 10px;4525  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4526}45274528.peach-sync-reset-confirm-headline {4529  font-size: 0.8125rem;4530  font-weight: 600;4531  color: var(--peach-t0);4532  margin: 0;4533}45344535.peach-sync-reset-confirm-body {4536  font-size: 0.75rem;4537  color: var(--peach-t1);4538  margin: 0;4539  line-height: 1.4;4540}45414542.peach-btn--danger {4543  background: var(--peach-breach);4544  color: #fff;4545  border-color: var(--peach-breach);4546}4547.peach-btn--danger:hover:not(:disabled) {4548  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4549}4550.peach-btn--danger:disabled {4551  opacity: 0.55;4552  cursor: not-allowed;4553}45544555.peach-sync-hero-icon {4556  color: var(--peach-t1);4557  opacity: 0.85;4558}45594560.peach-import-preview {4561  margin-bottom: 12px;4562  max-height: 152px;4563  overflow-y: auto;4564  border: 1px solid var(--peach-t3);4565  border-radius: 10px;4566  padding: 8px 10px;4567  display: grid;4568  gap: 8px;4569  background: rgba(240, 232, 216, 0.02);4570}45714572.peach-import-preview-row {4573  display: flex;4574  justify-content: space-between;4575  gap: 10px;4576  font-size: 0.6875rem;4577  color: var(--peach-t1);4578}45794580.peach-import-preview-title {4581  color: var(--peach-t0);4582  flex: 1;4583  min-width: 0;4584  overflow: hidden;4585  text-overflow: ellipsis;4586  white-space: nowrap;4587}45884589.peach-import-preview-meta {4590  color: var(--peach-t2);4591  flex-shrink: 0;4592  max-width: 42%;4593  overflow: hidden;4594  text-overflow: ellipsis;4595  white-space: nowrap;4596}45974598.peach-import-preview-more {4599  color: var(--peach-t2);4600  font-size: 0.625rem;4601}46024603.peach-restore-copy {4604  margin: 0;4605  color: var(--peach-t1);4606  font-size: 0.6875rem;4607  line-height: 1.6;4608}46094610.peach-restore-warning {4611  padding: 10px 12px;4612  border-radius: 12px;4613  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4614  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4615  color: var(--peach-t0);4616  font-size: 0.6875rem;4617  line-height: 1.55;4618}46194620.peach-provider-chips {4621  display: flex;4622  flex-wrap: wrap;4623  gap: 6px;4624}46254626.peach-provider-chip {4627  display: inline-flex;4628  align-items: center;4629  padding: 5px 8px;4630  border-radius: 999px;4631  border: 1px solid var(--peach-t3);4632  background: rgba(240, 232, 216, 0.02);4633  color: var(--peach-t1);4634  font-family: "IBM Plex Mono", monospace;4635  font-size: 0.5rem;4636  letter-spacing: 0.08em;4637  text-transform: uppercase;4638}46394640.peach-restore-file,4641.peach-restore-input {4642  width: 100%;4643  border-radius: 10px;4644  border: 1px solid var(--peach-t3);4645  background: var(--peach-s2);4646  color: var(--peach-t0);4647  font-size: 0.75rem;4648}46494650.peach-restore-file {4651  padding: 9px 10px;4652}46534654.peach-restore-file::file-selector-button {4655  margin-right: 10px;4656  padding: 7px 10px;4657  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4658  border-radius: 999px;4659  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4660  color: var(--peach-t0);4661  font-size: 0.625rem;4662  letter-spacing: 0.08em;4663  text-transform: uppercase;4664  cursor: pointer;4665}46664667.peach-restore-input {4668  padding: 10px 12px;4669}46704671.peach-auth-grid {4672  display: grid;4673  gap: 10px;4674}46754676.peach-import-summary {4677  color: var(--peach-t1);4678  font-size: 0.75rem;4679  line-height: 1.6;4680  margin-bottom: 12px;4681}46824683.peach-restore-error {4684  color: rgba(220, 80, 60, 0.95);4685  font-size: 0.75rem;4686  line-height: 1.55;4687}46884689.peach-passkey-card {4690  max-width: 400px;4691  margin: auto 16px;4692  align-self: center;4693  width: calc(100% - 32px);4694}46954696/* Center the approval card vertically inside the overlay-view (which sets4697 * flex-direction: column without justify-content). Without this, the card4698 * sits at the top with a tall empty band below — looks unfinished on the4699 * 320px popup. */4700.peach-overlay-view:has(.peach-passkey-card) {4701  justify-content: center;4702}47034704.peach-pro-badge {4705  padding: 2px 6px;4706  border-radius: 999px;4707  font-family: var(--font-ui);4708  font-size: 0.625rem;4709  letter-spacing: 0.08em;4710  text-transform: uppercase;4711  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4712  color: var(--peach-accent);4713}47144715/* ── Shortcuts rebind table ─────────────────────────────────── */4716.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4717.peach-shortcut-row {4718  display: flex;4719  align-items: center;4720  gap: 10px;4721  padding: 6px 0;4722}4723.peach-shortcut-row-label {4724  flex: 1;4725  font-size: 0.75rem;4726  color: var(--peach-t0);4727}4728.peach-shortcut-chip {4729  min-width: 64px;4730  padding: 4px 10px;4731  border-radius: 6px;4732  border: 1px solid var(--peach-t3);4733  background: var(--peach-input-bg, var(--surface-card));4734  color: var(--peach-t0);4735  font-family: var(--font-mono);4736  font-size: 0.6875rem;4737  letter-spacing: 0.04em;4738  cursor: pointer;4739  text-align: center;4740  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4741}4742.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4743.peach-shortcut-chip.is-custom {4744  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4745  color: var(--peach-accent);4746}4747.peach-shortcut-chip.is-capturing {4748  border-color: var(--peach-accent);4749  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4750  color: var(--peach-accent);4751  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4752}4753@keyframes peach-shortcut-capture-pulse {4754  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4755  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4756}4757.peach-shortcut-reset {4758  background: transparent;4759  border: none;4760  cursor: pointer;4761  color: var(--peach-t2);4762  padding: 4px 6px;4763  border-radius: 5px;4764  font-size: 0.875rem;4765  line-height: 1;4766  transition: color 120ms ease, background 120ms ease;4767}4768.peach-shortcut-reset:hover {4769  color: var(--peach-t0);4770  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4771}4772.peach-shortcuts-conflict {4773  margin: 4px 0 0;4774  padding: 8px 10px;4775  border-radius: 7px;4776  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4777  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4778  font-family: var(--font-mono);4779  font-size: 0.6875rem;4780  color: var(--peach-t0);4781}47824783/* ── Help dialog overlay (? to open) ────────────────────────── */4784.peach-shortcuts-help-backdrop {4785  position: fixed;4786  inset: 0;4787  background: rgba(0, 0, 0, 0.55);4788  backdrop-filter: blur(2px);4789  display: flex;4790  align-items: center;4791  justify-content: center;4792  z-index: 1000;4793  animation: peach-help-fade-in 140ms ease forwards;4794}4795@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4796.peach-shortcuts-help-card {4797  width: min(320px, 92vw);4798  max-height: 80vh;4799  overflow-y: auto;4800  border-radius: 14px;4801  border: 1px solid var(--peach-t3);4802  background: var(--peach-bg);4803  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4804  padding: 16px 18px 18px;4805  display: flex;4806  flex-direction: column;4807  gap: 12px;4808}4809.peach-shortcuts-help-head {4810  display: flex; align-items: center; justify-content: space-between;4811}4812.peach-shortcuts-help-head h3 {4813  margin: 0;4814  font-family: var(--font-display);4815  font-style: italic;4816  font-weight: 400;4817  font-size: 22px;4818  color: var(--peach-t0);4819}4820.peach-shortcuts-help-close {4821  background: transparent;4822  border: none;4823  color: var(--peach-t2);4824  cursor: pointer;4825  font-size: 0.875rem;4826  padding: 4px 8px;4827  border-radius: 5px;4828}4829.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4830.peach-shortcuts-help-body ul {4831  list-style: none; padding: 0; margin: 4px 0 12px;4832  display: grid; gap: 8px;4833}4834.peach-shortcuts-help-body li {4835  display: flex; align-items: center; justify-content: space-between; gap: 12px;4836  font-size: 0.75rem; color: var(--peach-t0);4837}4838.peach-shortcuts-help-body kbd {4839  font-family: var(--font-mono);4840  font-size: 0.6875rem;4841  padding: 3px 8px;4842  border-radius: 6px;4843  background: var(--surface-card);4844  border: 1px solid var(--peach-t3);4845  color: var(--peach-accent);4846  letter-spacing: 0.04em;4847}48484849/* ── Pro promo on Account screen ────────────────────────────── */4850.peach-pro-promo {4851  position: relative;4852  border-radius: 14px;4853  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4854  background:4855    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4856    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4857    var(--surface-card);4858  overflow: hidden;4859  margin-bottom: 14px;4860}4861.peach-pro-promo-glow {4862  position: absolute;4863  inset: -40% -20% auto auto;4864  width: 220px; height: 220px;4865  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4866  pointer-events: none;4867  filter: blur(8px);4868}4869.peach-pro-promo-inner {4870  position: relative;4871  padding: 18px 18px 16px;4872}4873.peach-pro-promo-title {4874  font-family: var(--font-display);4875  font-style: italic;4876  font-weight: 400;4877  font-size: 28px;4878  line-height: 1;4879  letter-spacing: -0.005em;4880  color: var(--peach-t0);4881  margin: 0 0 4px;4882}4883.peach-pro-promo-tagline {4884  font-family: var(--font-mono);4885  font-size: 0.625rem;4886  letter-spacing: 0.06em;4887  color: var(--peach-t2);4888  margin: 0 0 14px;4889}4890.peach-pro-promo-list {4891  list-style: none;4892  margin: 0 0 16px;4893  padding: 0;4894  display: grid;4895  gap: 9px;4896}4897.peach-pro-promo-list li {4898  display: flex;4899  align-items: flex-start;4900  gap: 9px;4901  font-size: 0.75rem;4902  color: var(--peach-t1);4903  line-height: 1.4;4904}4905.peach-pro-promo-list svg {4906  width: 14px;4907  height: 14px;4908  flex-shrink: 0;4909  color: var(--peach-accent);4910  margin-top: 2px;4911}4912.peach-pro-promo-list span {4913  color: var(--peach-t0);4914}4915.peach-pro-promo-cta {4916  width: 100%;4917  background: var(--peach-accent);4918  color: #fff;4919  border: none;4920  padding: 9px 12px;4921  border-radius: 9px;4922  font-size: 0.75rem;4923  font-weight: 500;4924  font-family: var(--font-ui);4925  letter-spacing: 0.02em;4926  text-decoration: none;4927  display: inline-flex;4928  align-items: center;4929  justify-content: center;4930  cursor: pointer;4931  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4932  box-shadow: 0 2px 16px var(--peach-glow);4933}4934.peach-pro-promo-cta:hover {4935  filter: brightness(1.07);4936  box-shadow: 0 4px 24px var(--peach-glow);4937  transform: translateY(-1px);4938}4939.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }49404941.peach-pro-or-divider {4942  display: flex;4943  align-items: center;4944  gap: 10px;4945  margin: 4px 0 12px;4946  font-family: var(--font-mono);4947  font-size: 0.625rem;4948  letter-spacing: 0.06em;4949  color: var(--peach-t2);4950  text-transform: uppercase;4951}4952.peach-pro-or-divider::before,4953.peach-pro-or-divider::after {4954  content: "";4955  flex: 1;4956  height: 1px;4957  background: var(--peach-t3);4958}49594960.peach-loading {4961  position: absolute;4962  inset: 0;4963  display: flex;4964  align-items: center;4965  justify-content: center;4966  background: var(--bg);4967  animation: peach-loading-pulse 1.2s ease-in-out infinite;4968}49694970@keyframes peach-loading-pulse {4971  0%, 100% { opacity: 0.6; }4972  50% { opacity: 1; }4973}49744975/* ── Health Dashboard ─────────────────────────────────────────────────── */4976.peach-health-body {4977  flex: 1;4978  overflow-y: auto;4979  display: flex;4980  flex-direction: column;4981  /* Hide the platform scrollbar — every other scrollable surface in the4982   * popup hides it; the Health view was the one outlier and it ruined the4983   * polish. Behavior unchanged, just no rail rendered. */4984  scrollbar-width: none;4985  -ms-overflow-style: none;4986}4987.peach-health-body::-webkit-scrollbar { display: none; }49884989/* Loading screen for the Vault Health view. The advanced report computation4990 * can run for a few seconds on a large vault — without a clear loading4991 * screen the surface looked broken (the entry view bleeds through the4992 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4993.peach-health-loading-screen {4994  flex: 1;4995  display: flex;4996  flex-direction: column;4997  align-items: center;4998  justify-content: center;4999  gap: 14px;5000  padding: 32px 28px;5001  text-align: center;5002}50035004.peach-health-loading-glyph {5005  width: 48px;5006  height: 48px;5007  display: flex;5008  align-items: center;5009  justify-content: center;5010  border-radius: 14px;5011  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5012  color: var(--peach-accent);5013}50145015.peach-health-loading-title {5016  margin: 0;5017  font-family: var(--font-display);5018  font-style: italic;5019  font-weight: 300;5020  font-size: 19px;5021  line-height: 1.2;5022  color: var(--peach-t0);5023}50245025.peach-health-loading-copy {5026  margin: 0;5027  max-width: 240px;5028  font-size: 0.75rem;5029  line-height: 1.55;5030  color: var(--peach-t2);5031}50325033.peach-health-loading-track {5034  width: 200px;5035  height: 3px;5036  margin-top: 6px;5037  border-radius: 999px;5038  background: rgba(240, 232, 216, 0.06);5039  overflow: hidden;5040}50415042.peach-health-loading-fill {5043  width: 40%;5044  height: 100%;5045  border-radius: inherit;5046  background: linear-gradient(5047    90deg,5048    transparent 0%,5049    var(--peach-accent) 50%,5050    transparent 100%5051  );5052  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;5053}50545055@keyframes peach-health-loading-sweep {5056  0%   { transform: translateX(-100%); }5057  100% { transform: translateX(350%); }5058}50595060[data-motion="reduce"] .peach-health-loading-fill,5061[data-motion="reduce"] .peach-health-loading-glyph svg path {5062  animation: none;5063}50645065.peach-health-summary {5066  padding: 10px 16px 6px;5067  font-family: "IBM Plex Mono", monospace;5068  font-size: 0.6875rem;5069}5070.peach-health-summary-warn { color: rgba(220,80,60,0.9); }5071.peach-health-summary-ok { color: var(--peach-t2); }50725073.peach-health-check-row {5074  padding: 0 16px 10px;5075}5076.peach-health-check-btn {5077  width: 100%;5078  display: flex;5079  align-items: center;5080  justify-content: center;5081}50825083.peach-health-sections {5084  flex: 1;5085  display: flex;5086  flex-direction: column;5087}50885089.peach-health-section {5090  border-bottom: 1px solid var(--peach-t3);5091}50925093.peach-health-section-header {5094  width: 100%;5095  display: flex;5096  align-items: center;5097  justify-content: space-between;5098  padding: 9px 16px;5099  background: transparent;5100  cursor: pointer;5101  color: var(--peach-t0);5102}51035104.peach-health-section-title-row {5105  display: flex;5106  align-items: center;5107  gap: 8px;5108}51095110.peach-health-count-badge {5111  display: inline-flex;5112  align-items: center;5113  justify-content: center;5114  min-width: 20px;5115  height: 18px;5116  padding: 0 5px;5117  border-radius: 999px;5118  background: rgba(220,80,60,0.15);5119  border: 1px solid rgba(220,80,60,0.25);5120  font-family: "IBM Plex Mono", monospace;5121  font-size: 0.5625rem;5122  color: rgba(220,80,60,0.9);5123}51245125.peach-health-section-title {5126  font-family: "IBM Plex Mono", monospace;5127  font-size: 0.6875rem;5128  text-transform: uppercase;5129  letter-spacing: 0.1em;5130  color: var(--peach-t1);5131}51325133.peach-health-chevron {5134  color: var(--peach-t2);5135  transition: transform 200ms ease;5136  flex-shrink: 0;5137}5138.peach-health-chevron.is-expanded {5139  transform: rotate(180deg);5140}51415142.peach-health-section-body {5143  padding: 0 16px 10px;5144  display: flex;5145  flex-direction: column;5146  gap: 4px;5147}51485149.peach-health-row {5150  display: flex;5151  align-items: flex-start;5152  justify-content: space-between;5153  gap: 8px;5154  padding: 6px 8px;5155  border-radius: 8px;5156  background: rgba(240,232,216,0.02);5157}51585159.peach-health-row-info {5160  flex: 1;5161  min-width: 0;5162  display: flex;5163  flex-direction: column;5164  gap: 2px;5165}51665167.peach-health-row-name {5168  font-family: var(--font-display);5169  font-size: 0.9375rem;5170  font-style: italic;5171  font-weight: 400;5172  color: var(--peach-t0);5173  white-space: nowrap;5174  overflow: hidden;5175  text-overflow: ellipsis;5176}51775178.peach-health-row-meta {5179  font-family: "IBM Plex Mono", monospace;5180  font-size: 0.5625rem;5181  color: var(--peach-t2);5182  letter-spacing: 0.05em;5183}51845185.peach-health-fix-btn {5186  font-size: 0.5625rem;5187  letter-spacing: 0.08em;5188  text-transform: uppercase;5189  padding: 4px 7px;5190  flex-shrink: 0;5191  display: flex;5192  align-items: center;5193}51945195.peach-health-empty {5196  font-family: "IBM Plex Mono", monospace;5197  font-size: 0.625rem;5198  color: var(--peach-t2);5199  padding: 6px 0;5200}52015202.peach-health-loading {5203  font-family: "IBM Plex Mono", monospace;5204  font-size: 0.625rem;5205  color: var(--peach-t2);5206  padding: 6px 0;5207  display: flex;5208  align-items: center;5209  gap: 6px;5210}52115212.peach-health-loading::before {5213  content: "";5214  width: 10px;5215  height: 10px;5216  border: 1.5px solid var(--peach-t3);5217  border-top-color: var(--peach-accent);5218  border-radius: 50%;5219  animation: peach-spin 600ms linear infinite;5220}52215222@keyframes peach-spin {5223  to { transform: rotate(360deg); }5224}52255226.peach-spinner {5227  width: 32px;5228  height: 32px;5229  border: 2px solid var(--peach-s2);5230  border-top-color: var(--peach-accent);5231  border-radius: 50%;5232  margin: 0 auto 16px;5233  animation: peach-spin 0.8s linear infinite;5234}52355236.peach-progress-screen {5237  text-align: center;5238  padding: 32px 16px;5239}52405241.peach-progress-screen-title {5242  font-size: 0.8125rem;5243  color: var(--peach-t0);5244  margin-bottom: 16px;5245}52465247.peach-progress-screen-stage {5248  font-size: 0.6875rem;5249  color: var(--peach-t2);5250  min-height: 14px;5251}52525253.peach-progress-screen-note {5254  font-size: 0.625rem;5255  color: var(--peach-t2);5256  margin-top: 8px;5257}52585259/* Pairing commits the vault key before the first entry sync. Keep that5260   implementation detail off-screen until the paired source records a real,5261   durable sync completion. */5262.peach-initial-sync {5263  position: relative;5264  display: flex;5265  align-items: center;5266  justify-content: center;5267  overflow: hidden;5268}52695270.peach-initial-sync-card {5271  position: relative;5272  z-index: 1;5273  width: min(100%, 320px);5274  display: flex;5275  flex-direction: column;5276  align-items: center;5277  gap: 10px;5278  padding: 36px 26px;5279  text-align: center;5280}52815282.peach-initial-sync-mark {5283  width: 54px;5284  height: 54px;5285  display: flex;5286  align-items: center;5287  justify-content: center;5288  border-radius: 18px;5289  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5290  margin-bottom: 4px;5291}52925293.peach-initial-sync-mark svg {5294  width: 34px;5295  height: 34px;5296}52975298.peach-initial-sync-card h1 {5299  margin: 0;5300  color: var(--peach-t0);5301  font-family: var(--font-display);5302  font-size: 1.55rem;5303  font-style: italic;5304  font-weight: 400;5305}53065307.peach-initial-sync-card > p {5308  margin: 0;5309}53105311.peach-initial-sync-card #initial-sync-copy {5312  color: var(--peach-t1);5313  font-size: 0.78rem;5314  line-height: 1.55;5315}53165317.peach-initial-sync-progress {5318  width: 100%;5319  height: 3px;5320  overflow: hidden;5321  border-radius: 999px;5322  background: color-mix(in srgb, var(--peach-t0) 8%, transparent);5323  margin: 8px 0 2px;5324}53255326.peach-initial-sync-progress span {5327  display: block;5328  width: 42%;5329  height: 100%;5330  border-radius: inherit;5331  background: var(--peach-accent);5332  animation: peach-initial-sync-progress 1.4s cubic-bezier(0.2, 0, 0, 1) infinite;5333}53345335@keyframes peach-initial-sync-progress {5336  from { transform: translateX(-115%); }5337  to { transform: translateX(340%); }5338}53395340.peach-initial-sync-note {5341  color: var(--peach-t2);5342  font-size: 0.625rem;5343  line-height: 1.45;5344}53455346.peach-initial-sync-slow {5347  width: 100%;5348  display: flex;5349  flex-direction: column;5350  gap: 10px;5351  padding-top: 10px;5352  border-top: 1px solid var(--peach-border);5353}53545355.peach-initial-sync-slow p {5356  margin: 0;5357  color: var(--peach-t2);5358  font-size: 0.6875rem;5359  line-height: 1.45;5360}53615362.peach-initial-sync-slow .peach-btn {5363  width: 100%;5364}53655366@media (prefers-reduced-motion: reduce) {5367  .peach-initial-sync-progress span {5368    width: 100%;5369    opacity: 0.7;5370    animation: none;5371  }5372}53735374/* Tag chips */5375.peach-tag-chip {5376  display: inline-flex;5377  align-items: center;5378  gap: 4px;5379  padding: 3px 8px;5380  border-radius: 999px;5381  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5382  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5383  color: var(--peach-t0);5384  font-family: "IBM Plex Mono", monospace;5385  font-size: 0.625rem;5386  letter-spacing: 0.04em;5387}53885389.peach-tag-chip-remove {5390  background: transparent;5391  border: none;5392  color: inherit;5393  opacity: 0.6;5394  cursor: pointer;5395  padding: 0;5396  font-size: 0.75rem;5397  line-height: 1;5398}53995400.peach-tag-chip-remove:hover {5401  opacity: 1;5402}54035404/* Tag input */5405.peach-tag-input-wrap {5406  border-bottom: 1px solid var(--peach-t3);5407}54085409.peach-tag-suggestions {5410  display: flex;5411  flex-wrap: wrap;5412  gap: 4px;5413  padding: 6px 0;5414}54155416.peach-tag-suggestion {5417  padding: 2px 8px;5418  border-radius: 999px;5419  border: 1px solid var(--peach-t3);5420  background: var(--peach-s2);5421  color: var(--peach-t1);5422  font-family: "IBM Plex Mono", monospace;5423  font-size: 0.625rem;5424  cursor: pointer;5425  transition: border-color 80ms ease, background 80ms ease;5426}54275428.peach-tag-suggestion:hover {5429  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5430  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5431}54325433/* Identity suggestions — shown below username/email inputs in new-entry form */5434@keyframes peach-suggest-in {5435  from { opacity: 0; transform: translateY(-4px); }5436  to   { opacity: 1; transform: none; }5437}54385439.peach-identity-suggestions {5440  display: flex;5441  flex-direction: column;5442  gap: 1px;5443  margin-top: 4px;5444  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5445}54465447.peach-identity-filter-row {5448  display: flex;5449  align-items: center;5450  gap: 4px;5451  padding: 2px 0 5px;5452}54535454.peach-identity-collapse-btn {5455  margin-left: auto;5456  background: transparent;5457  border: none;5458  cursor: pointer;5459  color: var(--peach-t3);5460  padding: 2px 4px;5461  display: flex;5462  align-items: center;5463  line-height: 0;5464  border-radius: 3px;5465  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5466}54675468.peach-identity-collapse-btn:hover {5469  color: var(--peach-t1);5470}54715472.peach-identity-collapse-btn.is-collapsed {5473  transform: rotate(-90deg);5474}54755476.peach-identity-rows {5477  display: grid;5478  grid-template-rows: 1fr;5479  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5480}54815482.peach-identity-rows.is-collapsed {5483  grid-template-rows: 0fr;5484}54855486.peach-identity-rows-inner {5487  overflow-y: auto;5488  min-height: 0;5489  max-height: 148px;5490  scrollbar-width: thin;5491  scrollbar-color: var(--peach-t3) transparent;5492  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5493  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5494}54955496.peach-identity-rows-inner::-webkit-scrollbar {5497  width: 4px;5498}54995500.peach-identity-rows-inner::-webkit-scrollbar-track {5501  background: transparent;5502}55035504.peach-identity-rows-inner::-webkit-scrollbar-thumb {5505  background: var(--peach-t3);5506  border-radius: 2px;5507}55085509.peach-identity-filter-pill {5510  padding: 2px 7px;5511  border-radius: 999px;5512  border: 1px solid var(--peach-t3);5513  background: transparent;5514  color: var(--peach-t2);5515  font-family: "IBM Plex Mono", monospace;5516  font-size: 0.6rem;5517  cursor: pointer;5518  transition: border-color 80ms, background 80ms, color 80ms;5519}55205521.peach-identity-filter-pill.is-on {5522  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5523  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5524  color: var(--peach-accent);5525}55265527.peach-identity-suggestion {5528  display: flex;5529  align-items: center;5530  gap: 6px;5531  width: 100%;5532  padding: 4px 6px;5533  border-radius: 5px;5534  border: none;5535  background: transparent;5536  cursor: pointer;5537  text-align: left;5538  transition: background 80ms ease;5539}55405541.peach-identity-suggestion:hover,5542.peach-identity-suggestion:focus {5543  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5544  outline: none;5545}55465547.peach-identity-suggestion-value {5548  font-family: "IBM Plex Mono", monospace;5549  font-size: 0.7rem;5550  color: var(--peach-t1);5551  overflow: hidden;5552  text-overflow: ellipsis;5553  white-space: nowrap;5554  flex: 1;5555  min-width: 0;5556}55575558.peach-identity-suggestion-type {5559  font-family: "IBM Plex Mono", monospace;5560  font-size: 0.55rem;5561  font-weight: 600;5562  flex-shrink: 0;5563  padding: 1px 4px;5564  border-radius: 3px;5565}55665567.peach-identity-suggestion-type--email {5568  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5569  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5570}55715572.peach-identity-suggestion-type--username {5573  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5574  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5575}55765577.peach-identity-suggestion-meta {5578  font-family: "IBM Plex Mono", monospace;5579  font-size: 0.6rem;5580  color: var(--peach-t3);5581  flex-shrink: 0;5582}55835584/* Tag filter strip */5585.peach-tag-filter-strip {5586  border-bottom: 1px solid var(--peach-t3);5587  flex-shrink: 0;5588}55895590.peach-tag-filter-chip {5591  display: inline-flex;5592  align-items: center;5593  padding: 4px 10px;5594  border-radius: 999px;5595  border: 1px solid var(--peach-t3);5596  background: transparent;5597  color: var(--peach-t2);5598  font-family: "IBM Plex Mono", monospace;5599  font-size: 0.5625rem;5600  letter-spacing: 0.06em;5601  text-transform: uppercase;5602  cursor: pointer;5603  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5604  white-space: nowrap;5605}56065607.peach-tag-filter-chip:hover {5608  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5609  color: var(--peach-t1);5610}56115612.peach-tag-filter-chip.is-selected {5613  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5614  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5615  color: var(--peach-t0);5616}56175618/* ─────────────────────────────────────────────────────────────────────────5619   v1.4.12 additions5620   ─────────────────────────────────────────────────────────────────────── */56215622/* Sort bar */5623.peach-sort-bar {5624  display: flex;5625  align-items: center;5626  gap: 4px;5627  padding: 5px 12px;5628  border-bottom: 1px solid var(--peach-t3);5629  flex-shrink: 0;5630  overflow-x: auto;5631  scrollbar-width: none;5632}56335634.peach-sort-btn {5635  padding: 2px 9px;5636  border-radius: 999px;5637  border: 1px solid transparent;5638  background: transparent;5639  color: var(--peach-t2);5640  font-family: "IBM Plex Mono", monospace;5641  font-size: 0.5625rem;5642  letter-spacing: 0.07em;5643  text-transform: uppercase;5644  cursor: pointer;5645  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5646  white-space: nowrap;5647}56485649.peach-sort-btn:hover {5650  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5651  color: var(--peach-t1);5652}56535654.peach-sort-btn.is-active {5655  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5656  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5657  color: var(--peach-t0);5658}56595660.peach-sort-scope-btn {5661  padding-inline: 8px;5662  font-size: 0.53125rem;5663  letter-spacing: 0.05em;5664}56655666.peach-sort-domain-hint {5667  margin-left: auto;5668  font-family: "IBM Plex Mono", monospace;5669  font-size: 0.5625rem;5670  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5671  white-space: nowrap;5672  overflow: hidden;5673  text-overflow: ellipsis;5674  max-width: 110px;5675}56765677/* Tab-match badge on entry rows */5678.peach-tab-match-badge {5679  display: inline-block;5680  width: 6px;5681  height: 6px;5682  border-radius: 50%;5683  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5684  margin-left: 5px;5685  vertical-align: middle;5686  flex-shrink: 0;5687  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5688}56895690.peach-entry-row.is-tab-match {5691  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5692  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5693}56945695.peach-entry-row.is-tab-match:hover {5696  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5697}56985699/* Entry list stagger entrance */5700@keyframes peach-entry-fadein {5701  from { opacity: 0; transform: translateY(4px); }5702  to   { opacity: 1; transform: translateY(0); }5703}57045705.peach-vault-list .peach-entry-row {5706  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5707}57085709/* Button press micro-interaction */5710.peach-btn:active {5711  transform: scale(0.95);5712  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5713}57145715.peach-sort-btn:active,5716.peach-tag-filter-chip:active {5717  transform: scale(0.93);5718  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5719}57205721/* Password strength bar (Lock view + shared) */5722.peach-password-strength {5723  display: flex;5724  align-items: center;5725  gap: 8px;5726  margin-top: 6px;5727}57285729.peach-strength-bar {5730  flex: 1;5731  height: 3px;5732  border-radius: 2px;5733  background: var(--peach-t3);5734  overflow: hidden;5735}57365737.peach-strength-fill {5738  height: 100%;5739  border-radius: 2px;5740  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5741              background 300ms ease;5742}57435744.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5745.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5746.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5747.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }57485749.peach-strength-label {5750  font-family: "IBM Plex Mono", monospace;5751  font-style: italic;5752  font-size: 0.5625rem;5753  font-weight: 300;5754  letter-spacing: 0.06em;5755  color: var(--peach-t2);5756  min-width: 36px;5757  text-align: right;5758}57595760.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5761.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5762.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5763.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }57645765/* Duress form */5766.peach-duress-status {5767  padding: 2px 8px;5768  border-radius: 999px;5769  border: 1px solid var(--peach-t3);5770  font-family: "IBM Plex Mono", monospace;5771  font-size: 0.5625rem;5772  letter-spacing: 0.07em;5773  text-transform: uppercase;5774  color: var(--peach-t2);5775  flex-shrink: 0;5776}57775778.peach-duress-status.is-active {5779  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5780  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5781  color: var(--peach-t0);5782}57835784.peach-duress-form {5785  padding: 8px 0 4px;5786  display: flex;5787  flex-direction: column;5788  gap: 6px;5789}57905791.peach-duress-form .peach-label {5792  margin-top: 4px;5793}57945795.peach-duress-actions {5796  display: flex;5797  gap: 6px;5798  align-items: center;5799  margin-top: 4px;5800}58015802.peach-duress-actions .peach-btn:first-child {5803  margin-right: auto;5804}58055806/* Improved overlay spring entrance */5807.peach-overlay-view.ov-enter-up {5808  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5809}58105811@keyframes ov-enter-up-spring {5812  from { opacity: 0; transform: translateY(16px) scale(0.98); }5813  to   { opacity: 1; transform: translateY(0) scale(1); }5814}58155816.peach-overlay-view.ov-enter-right {5817  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5818}58195820@keyframes ov-enter-right-spring {5821  from { opacity: 0; transform: translateX(18px) scale(0.98); }5822  to   { opacity: 1; transform: translateX(0) scale(1); }5823}58245825/* ── Onboarding-mode restore screens (file import) ── */5826/* Used when MainImportView renders during onboarding (no vault yet).5827   Animates like a lock-screen transition. */5828.peach-lock-view {5829  position: absolute;5830  inset: 0;5831  display: flex;5832  flex-direction: column;5833  background:5834    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5835    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5836    var(--peach-bg);5837  z-index: 2;5838  overflow: hidden;5839  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5840}58415842.peach-lock-view-header {5843  display: flex;5844  align-items: center;5845  justify-content: space-between;5846  padding: 16px 18px 12px;5847  flex-shrink: 0;5848}58495850/* ───────── Settings: auto-lock select ───────── */5851.peach-settings-select {5852  font-family: "IBM Plex Mono", monospace;5853  font-size: 0.6875rem;5854  background: transparent;5855  border: 1px solid var(--peach-t3);5856  border-radius: 4px;5857  color: var(--peach-t1);5858  padding: 3px 6px;5859  cursor: pointer;5860  outline: none;5861}5862.peach-settings-select:focus {5863  border-color: var(--peach-accent);5864}58655866/* ───────── Duress status pill (new polished) ───────── */5867.peach-duress-status-pill {5868  font-family: "IBM Plex Mono", monospace;5869  font-size: 0.5625rem;5870  text-transform: uppercase;5871  letter-spacing: 0.12em;5872  padding: 2px 8px;5873  border-radius: 12px;5874  background: var(--peach-t3);5875  color: var(--peach-t2);5876  flex-shrink: 0;5877}5878.peach-duress-status-pill.is-active {5879  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5880  color: var(--peach-accent);5881}58825883/* ───────── Entry advanced disclosure (canary) ───────── */5884.peach-entry-advanced {5885  margin-top: 12px;5886  border-top: 1px solid var(--peach-t3);5887  padding-top: 10px;5888  position: relative;5889  z-index: 1;5890}5891.peach-entry-advanced-toggle {5892  display: flex;5893  align-items: center;5894  justify-content: space-between;5895  width: 100%;5896  background: transparent;5897  border: none;5898  cursor: pointer;5899  padding: 0;5900  color: var(--peach-t2);5901}5902.peach-canary-section {5903  margin-top: 10px;5904  display: grid;5905  gap: 6px;5906}59075908/* ───────── Import: merge/replace radio choices ───────── */5909.peach-import-choice {5910  display: flex;5911  align-items: flex-start;5912  gap: 10px;5913  padding: 8px 10px;5914  border: 1px solid var(--peach-t3);5915  border-radius: 10px;5916  cursor: pointer;5917  margin-bottom: 6px;5918  transition: border-color 120ms ease, background 120ms ease;5919}5920.peach-import-choice:hover {5921  border-color: var(--peach-accent);5922}5923.peach-import-choice input[type="radio"] {5924  margin-top: 3px;5925  accent-color: var(--peach-accent);5926  flex-shrink: 0;5927}5928.peach-import-choice-main {5929  display: flex;5930  flex-direction: column;5931  gap: 2px;5932  min-width: 0;5933}5934.peach-import-choice-label {5935  font-size: 0.75rem;5936  color: var(--peach-t0);5937}5938.peach-import-choice-sub {5939  font-size: 0.6875rem;5940  color: var(--peach-t2);5941  line-height: 1.5;5942}59435944/* ───────── Export: success confirmation strip ───────── */5945.peach-export-success {5946  display: flex;5947  align-items: flex-start;5948  gap: 10px;5949  padding: 12px;5950  border-radius: 12px;5951  border: 1px solid rgba(150, 175, 110, 0.3);5952  background: rgba(150, 175, 110, 0.08);5953  color: var(--peach-t0);5954  font-size: 0.75rem;5955  line-height: 1.55;5956}5957.peach-export-success-check {5958  color: rgba(150, 175, 110, 0.9);5959  font-size: 0.875rem;5960  flex-shrink: 0;5961}59625963/* ── Trash view ──────────────────────────────────────────────────────── */5964.peach-trash-entry-row {5965  display: flex;5966  align-items: center;5967  justify-content: space-between;5968  gap: 8px;5969  padding: 8px 0;5970  border-bottom: 1px solid var(--peach-border);5971}5972.peach-trash-entry-info {5973  flex: 1;5974  min-width: 0;5975  display: flex;5976  flex-direction: column;5977  gap: 2px;5978}5979.peach-trash-entry-title {5980  font-size: 0.8125rem;5981  color: var(--peach-t0);5982  overflow: hidden;5983  text-overflow: ellipsis;5984  white-space: nowrap;5985}5986.peach-trash-entry-meta {5987  font-family: var(--font-mono);5988  font-size: 0.5625rem;5989  color: var(--peach-t2);5990  letter-spacing: 0.04em;5991}5992.peach-trash-entry-actions {5993  display: flex;5994  align-items: center;5995  gap: 4px;5996  flex-shrink: 0;5997}5998.peach-trash-delete-btn {5999  background: transparent;6000  border: 0;6001  color: var(--peach-t3);6002  font-size: 1rem;6003  line-height: 1;6004  cursor: pointer;6005  padding: 2px 5px;6006  transition: color 0.15s;6007}6008.peach-trash-delete-btn:hover { color: var(--peach-breach); }6009.peach-trash-list {6010  overflow-y: auto;6011}6012.peach-trash-footer {6013  display: flex;6014  align-items: center;6015  gap: 8px;6016  padding: 8px 0 0;6017  border-top: 1px solid var(--peach-border);6018  margin-top: 4px;6019}6020.peach-trash-purge-all {6021  background: transparent;6022  border: 0;6023  color: var(--peach-t3);6024  font-size: 0.625rem;6025  cursor: pointer;6026  padding: 4px 0;6027  letter-spacing: 0.03em;6028  transition: color 0.2s;6029}6030.peach-trash-purge-all:hover { color: var(--peach-breach); }6031.peach-trash-purge-confirm-label {6032  font-size: 0.625rem;6033  color: var(--peach-t1);6034  flex: 1;6035}60366037/* ── Settings shortcuts grid ─────────────────────────────────────────── */6038.peach-shortcuts-grid {6039  display: grid;6040  grid-template-columns: auto 1fr;6041  gap: 6px 12px;6042  align-items: center;6043  padding: 4px 0;6044}6045.peach-shortcut-key {6046  font-family: var(--font-mono);6047  font-size: 0.625rem;6048  color: var(--peach-t0);6049  background: var(--peach-t3);6050  border-radius: 4px;6051  padding: 2px 6px;6052  white-space: nowrap;6053  text-align: center;6054}6055.peach-shortcut-desc {6056  font-size: 0.6875rem;6057  color: var(--peach-t1);6058}60596060/* ── Sort bar trash button ───────────────────────────────────────────── */6061.peach-sort-trash-btn {6062  display: flex;6063  align-items: center;6064  justify-content: center;6065  padding: 3px 5px;6066  background: transparent;6067  border: none;6068  cursor: pointer;6069  color: var(--peach-t2);6070  border-radius: 4px;6071  transition: color 140ms ease, background 140ms ease;6072}6073.peach-sort-trash-btn:hover {6074  color: var(--peach-t1);6075  background: var(--peach-t3);6076}6077.peach-sort-trash-btn.is-active {6078  color: var(--peach-accent);6079}60806081/* Accent color picker */6082.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }6083.peach-accent-picker {6084  display: flex;6085  flex-wrap: wrap;6086  gap: 7px;6087  padding: 2px 0;6088}6089.peach-accent-swatch {6090  width: 22px;6091  height: 22px;6092  border-radius: 50%;6093  border: 2px solid transparent;6094  cursor: pointer;6095  padding: 0;6096  transition: transform 100ms;6097  outline-offset: 2px;6098}6099.peach-accent-swatch:hover { transform: scale(1.15); }6100.peach-accent-swatch.is-active {6101  border-color: var(--peach-t0);6102  transform: scale(1.1);6103}61046105.peach-pill-group {6106  display: flex;6107  gap: 6px;6108}6109.peach-pill-group .peach-btn.is-active {6110  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);6111  border-color: var(--peach-accent);6112  color: var(--peach-t0);6113}61146115/* ── Card entry styles ───────────────────────────────────────── */6116.peach-card-number {6117  font-family: var(--peach-mono);6118  letter-spacing: 0.08em;6119}61206121.peach-card-network-badge {6122  font-size: 0.625rem;6123  padding: 1px 5px;6124  border-radius: 4px;6125  border: 0.5px solid var(--peach-border);6126  color: var(--peach-text-dim);6127  margin-left: 6px;6128  vertical-align: middle;6129}61306131.peach-card-expiry-row {6132  display: flex;6133  align-items: center;6134  gap: 8px;6135}61366137.peach-card-expiry-sep {6138  color: var(--peach-text-dim);6139}61406141/* ── Pro tier — upgrade screen ──────────────────────────────── */6142.peach-pro-mark {6143  font-size: 0.5625rem;6144  color: var(--peach-accent);6145  margin-left: 6px;6146  vertical-align: super;6147  opacity: 0.7;6148}61496150.peach-pro-mini-badge {6151  display: block;6152  font-size: 0.625rem;6153  font-style: italic;6154  color: var(--peach-accent);6155  letter-spacing: 0.04em;6156  margin-top: -2px;6157  padding-left: 2px;6158  opacity: 0.85;6159  text-align: center;6160}61616162.peach-wordmark-stack {6163  display: inline-flex;6164  flex-direction: column;6165  align-items: center;6166}61676168/* ── Pro tier — upgrade page ─────────────────────────────────── */6169/* ── Pro upgrade — redesigned editorial layout ─────────────────── */61706171.peach-pro-upgrade {6172  display: flex;6173  flex-direction: column;6174  align-items: stretch;6175  gap: 10px;6176  padding: 2px 2px 12px;6177}61786179.peach-pro-eyebrow {6180  margin: 0;6181  font-family: var(--font-ui);6182  font-size: 0.625rem;6183  font-weight: 500;6184  letter-spacing: 0.12em;6185  color: var(--peach-accent);6186}61876188.peach-pro-headline {6189  margin: 0;6190  font-family: var(--font-display, "Cormorant Garamond", serif);6191  font-size: 30px;6192  font-weight: 700;6193  font-style: normal;6194  line-height: 1.05;6195  color: var(--peach-t0);6196  letter-spacing: -0.01em;6197}6198.peach-pro-headline em {6199  font-style: italic;6200  font-weight: 400;6201  color: var(--peach-accent);6202}62036204.peach-pro-subtitle {6205  margin: 0;6206  font-size: 0.6875rem;6207  line-height: 1.5;6208  color: var(--peach-t1);6209}62106211/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */6212.peach-pro-section-label {6213  margin: 6px 0 0;6214  font-family: var(--font-ui);6215  font-size: 0.5625rem;6216  font-weight: 500;6217  letter-spacing: 0.12em;6218  text-transform: uppercase;6219  color: var(--peach-t2);6220}62216222/* 2-column numbered feature grid */6223.peach-pro-grid {6224  display: grid;6225  grid-template-columns: 1fr 1fr;6226  border-top: 1px solid var(--peach-border);6227  border-left: 1px solid var(--peach-border);6228}62296230.peach-pro-grid-item {6231  display: flex;6232  flex-direction: column;6233  gap: 2px;6234  padding: 8px 9px;6235  border-right: 1px solid var(--peach-border);6236  border-bottom: 1px solid var(--peach-border);6237}62386239.peach-pro-grid-item--wide {6240  grid-column: 1 / -1;6241}62426243.peach-pro-grid-num {6244  font-family: var(--font-mono);6245  font-size: 0.5625rem;6246  color: var(--peach-accent);6247  letter-spacing: 0.06em;6248  opacity: 0.85;6249}62506251.peach-pro-grid-name {6252  font-size: 0.8125rem;6253  font-weight: 500;6254  color: var(--peach-t0);6255  line-height: 1.2;6256}62576258.peach-pro-grid-desc {6259  font-size: 0.625rem;6260  color: var(--peach-t1);6261  line-height: 1.4;6262}62636264.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6265  animation: peach-pulse-accent 600ms ease-out forwards;6266}62676268@keyframes peach-pulse-accent {6269  0%   { opacity: 1; transform: scale(1.2); }6270  100% { opacity: 0.85; transform: scale(1); }6271}62726273/* Actions */6274.peach-pro-upgrade-actions {6275  display: flex;6276  flex-direction: column;6277  align-items: stretch;6278  gap: 10px;6279}62806281.peach-pro-pricing {6282  margin: 0;6283  font-size: 1rem;6284  font-weight: 600;6285  color: var(--peach-t0);6286  letter-spacing: 0.01em;6287}6288.peach-pro-pricing-sub {6289  font-size: 0.75rem;6290  font-weight: 400;6291  color: var(--peach-t1);6292  letter-spacing: 0.02em;6293}62946295.peach-pro-upgrade-cta {6296  display: flex;6297  align-items: center;6298  justify-content: center;6299  text-decoration: none;6300  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6301  border: 1px solid var(--peach-accent);6302  border-radius: 10px;6303  color: var(--peach-accent);6304  font-family: var(--font-ui);6305  font-size: 0.8125rem;6306  font-weight: 600;6307  letter-spacing: 0.06em;6308  padding: 11px 16px;6309  transition: background 0.15s ease, color 0.15s ease;6310}6311.peach-pro-upgrade-cta:hover {6312  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6313}63146315/* Pairing's terminal entitlement fallback reuses the Peach Pro card's6316   editorial hierarchy without embedding the settings deck itself. */6317.peach-pair-pro-required {6318  width: 100%;6319  display: flex;6320  flex-direction: column;6321  align-items: stretch;6322  gap: 10px;6323  text-align: left;6324}6325.peach-pair-pro-required .peach-pro-headline {6326  font-size: 1.75rem;6327}6328.peach-pair-pro-required .peach-pro-subtitle {6329  font-size: 0.6875rem;6330}6331.peach-pair-pro-grid {6332  grid-template-columns: 1fr;6333}6334.peach-pair-pro-button {6335  width: 100%;6336  cursor: pointer;6337}6338.peach-desktop-error--pro {6339  width: min(100%, 320px);6340  overflow-y: auto;6341}63426343.peach-pro-key-divider {6344  display: flex;6345  align-items: center;6346  gap: 8px;6347  color: var(--peach-t2);6348  font-size: 0.5625rem;6349  letter-spacing: 0.1em;6350}6351.peach-pro-key-divider::before,6352.peach-pro-key-divider::after {6353  content: "";6354  flex: 1;6355  height: 1px;6356  background: var(--peach-border);6357}63586359/* Inline key entry row */6360.peach-pro-key-inline {6361  display: flex;6362  align-items: center;6363  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6364  border: 1px solid var(--peach-border);6365  border-radius: 8px;6366  overflow: hidden;6367}6368.peach-pro-key-inline-input {6369  flex: 1;6370  background: transparent;6371  border: none;6372  outline: none;6373  color: var(--peach-t1);6374  font-family: var(--font-mono);6375  font-size: 0.625rem;6376  letter-spacing: 0.06em;6377  padding: 9px 10px;6378}6379.peach-pro-key-inline-input::placeholder {6380  color: var(--peach-t2);6381}6382.peach-pro-key-apply {6383  background: transparent;6384  border: none;6385  border-left: 1px solid var(--peach-border);6386  color: var(--peach-t2);6387  font-family: var(--font-ui);6388  font-size: 0.5625rem;6389  font-weight: 600;6390  letter-spacing: 0.08em;6391  padding: 9px 10px;6392  cursor: pointer;6393  transition: color 0.15s ease;6394  flex-shrink: 0;6395}6396.peach-pro-key-apply:not(:disabled):hover {6397  color: var(--peach-accent);6398}6399.peach-pro-key-apply:disabled {6400  opacity: 0.35;6401  cursor: not-allowed;6402}64036404/* ── Pro tier — key ceremony ─────────────────────────────────── */6405.peach-pro-key-ceremony {6406  display: flex;6407  flex-direction: column;6408  align-items: center;6409  gap: 12px;6410  padding: 20px 4px 16px;6411}64126413.peach-pro-key-ceremony .peach-lock-rune-string {6414  font-size: 1rem;6415  gap: 12px;6416  flex: 0;6417  justify-content: center;6418}64196420.peach-pro-key-ceremony-label {6421  margin: 0;6422  font-size: 0.6875rem;6423  color: var(--peach-t2);6424  font-style: italic;6425  letter-spacing: 0.04em;6426}64276428.peach-pro-key-input {6429  font-family: var(--font-mono, monospace);6430  letter-spacing: 0.06em;6431  text-align: center;6432  width: 100%;6433  box-sizing: border-box;6434}64356436.peach-pro-key-error {6437  margin: 0;6438  font-size: 0.75rem;6439  text-align: center;6440  color: var(--peach-breach, #e55);6441  padding: 0;6442}64436444.peach-pro-key-activate {6445  width: 100%;6446  text-align: center;6447  box-sizing: border-box;6448  padding: 10px 20px;6449  font-size: 0.8125rem;6450}64516452.peach-pro-key-cancel {6453  background: transparent;6454  border: 0;6455  color: var(--peach-t2);6456  font-size: 0.6875rem;6457  cursor: pointer;6458  padding: 2px 8px;6459  transition: color 0.2s;6460}64616462.peach-pro-key-cancel:hover { color: var(--peach-accent); }64636464/* ── Pro tier — active state ─────────────────────────────────── */6465.peach-pro-active {6466  display: flex;6467  flex-direction: column;6468  align-items: center;6469  gap: 0;6470  padding: 8px 4px 16px;6471  min-height: 280px;6472}64736474.peach-pro-active-hero {6475  display: flex;6476  flex-direction: column;6477  align-items: center;6478  gap: 6px;6479  padding: 20px 0 8px;6480}64816482.peach-pro-active-mark-wrap {6483  display: flex;6484  align-items: center;6485  justify-content: center;6486  margin-bottom: 4px;6487}64886489.peach-pro-active-mark {6490  width: 60px;6491  height: 60px;6492}64936494.peach-pro-active-title {6495  font-family: var(--font-display, var(--font-ui));6496  font-size: 26px;6497  margin: 0;6498  color: var(--peach-t0);6499  letter-spacing: 0.01em;6500}65016502.peach-pro-active-since {6503  margin: 0;6504  font-size: 0.6875rem;6505  color: var(--peach-t2);6506  font-style: italic;6507}65086509.peach-pro-active-features {6510  display: flex;6511  flex-direction: column;6512  gap: 8px;6513  width: 100%;6514  padding: 14px 8px 0;6515  border-top: 1px solid var(--peach-border);6516  flex: 1;6517}65186519.peach-pro-active-feature {6520  display: flex;6521  align-items: center;6522  gap: 9px;6523}65246525.peach-pro-active-feature-mark {6526  color: var(--peach-accent);6527  font-size: 0.625rem;6528  opacity: 0.65;6529  flex-shrink: 0;6530}65316532.peach-pro-active-feature-name {6533  font-size: 0.75rem;6534  color: var(--peach-t1);6535}65366537.peach-pro-deactivate {6538  align-self: center;6539  background: transparent;6540  border: 0;6541  color: var(--peach-t3);6542  font-size: 0.625rem;6543  cursor: pointer;6544  padding: 8px 0 0;6545  margin-top: 16px;6546  letter-spacing: 0.03em;6547  transition: color 0.2s;6548}65496550.peach-pro-deactivate:hover { color: var(--peach-t2); }65516552.peach-pro-deactivate:disabled {6553  opacity: 0.5;6554  cursor: default;6555}65566557/* ── Pro card activation sparkles & thank-you ── */6558button.peach-pro-active-mark-wrap {6559  background: transparent;6560  border: 0;6561  padding: 0;6562  cursor: pointer;6563  position: relative;6564  overflow: visible;6565}65666567.peach-pro-sparks {6568  position: absolute;6569  inset: 0;6570  pointer-events: none;6571  overflow: visible;6572}65736574.peach-pro-spark {6575  position: absolute;6576  top: 50%;6577  left: 50%;6578  font-size: 9px;6579  line-height: 1;6580  opacity: 0;6581  transform: translate(-50%, -50%);6582  animation: peach-pro-spark-fly 1.4s ease-out var(--spark-delay, 0ms) both;6583}65846585@keyframes peach-pro-spark-fly {6586  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }6587  25%  { opacity: 1; }6588  100% {6589    opacity: 0;6590    transform: translate(6591      calc(-50% + var(--spark-x, 0px)),6592      calc(-50% + var(--spark-y, -40px))6593    ) scale(0.8);6594  }6595}65966597.peach-pro-thankyou-text {6598  margin: 4px 0 0;6599  font-size: 0.6875rem;6600  font-style: italic;6601  color: currentColor;6602  opacity: 0;6603  animation: peach-pro-thankyou-flash 2.5s ease both;6604}66056606@keyframes peach-pro-thankyou-flash {6607  0%   { opacity: 0; transform: translateY(4px); }6608  15%  { opacity: 0.75; transform: translateY(0); }6609  75%  { opacity: 0.75; }6610  100% { opacity: 0; }6611}66126613/* ── Pro advanced health remediation queue ──────────────────── */6614.peach-health-pro-queue {6615  display: flex;6616  flex-direction: column;6617  gap: 10px;6618  padding: 12px;6619  margin: 0 0 12px;6620  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6621  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6622  border-radius: 10px;6623}66246625.peach-health-pro-queue-head {6626  display: flex;6627  justify-content: space-between;6628  align-items: baseline;6629}66306631.peach-health-pro-queue-title {6632  font-size: 0.75rem;6633  font-weight: 500;6634  letter-spacing: 0.04em;6635  text-transform: uppercase;6636  color: var(--peach-accent);6637}66386639.peach-health-pro-queue-score {6640  font-size: 0.6875rem;6641  color: var(--peach-t2);6642}66436644.peach-health-pro-row {6645  display: flex;6646  gap: 10px;6647  align-items: center;6648  padding: 8px 0;6649  border-top: 1px solid var(--peach-border);6650}66516652.peach-health-pro-row-info {6653  flex: 1;6654  display: flex;6655  flex-direction: column;6656  gap: 4px;6657  min-width: 0;6658}66596660.peach-health-pro-action {6661  flex: 0 0 auto;6662  padding: 4px 8px;6663  font-size: 0.5625rem;6664  letter-spacing: 0.08em;6665  text-transform: uppercase;6666}66676668.peach-health-pro-row-name {6669  font-size: 0.8125rem;6670  color: var(--peach-t0);6671  overflow: hidden;6672  text-overflow: ellipsis;6673  white-space: nowrap;6674}66756676.peach-health-pro-row-meta {6677  font-size: 0.6875rem;6678  color: var(--peach-t2);6679}66806681.peach-health-pro-bar {6682  height: 2px;6683  background: var(--peach-border);6684  border-radius: 2px;6685  overflow: hidden;6686  margin-top: 2px;6687}66886689.peach-health-pro-bar-fill {6690  height: 100%;6691  background: var(--peach-accent);6692  transition: width 200ms ease-out;6693}66946695/* ── Pro activation celebration ── */6696@keyframes peach-pro-bloom {6697  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6698  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6699                 drop-shadow(0 0 48px var(--peach-glow)); }6700  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6701}67026703@keyframes peach-pro-wordmark-in {6704  from { opacity: 0; transform: translateY(4px); }6705  to   { opacity: 1; transform: translateY(0); }6706}67076708@keyframes peach-pro-fade-out {6709  from { opacity: 1; }6710  to   { opacity: 0; }6711}67126713.peach-pro-celebration {6714  background:6715    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6716    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6717    var(--peach-bg);6718  border: 1px solid var(--peach-t3);6719  box-shadow:6720    0 2px 8px rgba(0,0,0,0.55),6721    0 14px 48px rgba(0,0,0,0.7),6722    0 0 0 1px rgba(240,232,216,0.04);6723  overflow: hidden;6724  width: 320px;6725  height: 520px;6726  display: flex;6727  flex-direction: column;6728  align-items: center;6729  justify-content: center;6730  gap: 8px;6731  padding: 32px 24px;6732  text-align: center;6733}67346735.peach-pro-celebration.is-leaving {6736  animation: peach-pro-fade-out 400ms ease forwards;6737}67386739.peach-pro-bloom-target {6740  display: flex;6741  align-items: center;6742  justify-content: center;6743  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6744  margin-bottom: 12px;6745}67466747.peach-pro-bloom-icon {6748  width: 48px;6749  height: 48px;6750}67516752.peach-pro-wordmark {6753  font-family: var(--font-display);6754  font-size: 22px;6755  font-style: italic;6756  font-weight: 400;6757  color: var(--peach-accent);6758  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6759}67606761.peach-pro-thankyou {6762  font-size: 0.75rem;6763  font-style: italic;6764  color: var(--peach-t2);6765  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6766}676767686769/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6770.peach-pro-notice-banner {6771  display: flex;6772  align-items: center;6773  gap: 8px;6774  padding: 7px 12px;6775  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6776  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6777  font-size: 0.6875rem;6778  color: var(--peach-t2);6779  font-family: "IBM Plex Mono", monospace;6780  flex-shrink: 0;6781}67826783.peach-pro-notice-link {6784  background: none;6785  border: none;6786  padding: 0;6787  cursor: pointer;6788  font-size: 0.6875rem;6789  color: var(--peach-accent);6790  font-family: "IBM Plex Mono", monospace;6791  margin-left: auto;6792  white-space: nowrap;6793}67946795.peach-pro-notice-close {6796  background: none;6797  border: none;6798  padding: 0 0 0 4px;6799  cursor: pointer;6800  font-size: 0.625rem;6801  color: var(--peach-t3);6802  line-height: 1;6803}68046805/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6806   Renders over whatever view is showing. 60-second expiry; the popup ticks6807   the countdown each second and clears the banner when it hits zero. */6808.peach-pair-request-banner {6809  display: flex;6810  flex-direction: column;6811  gap: 8px;6812  padding: 10px 12px;6813  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6814  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6815  font-family: "IBM Plex Mono", monospace;6816  flex-shrink: 0;6817}68186819.peach-pair-toast {6820  padding: 8px 12px;6821  font-family: "IBM Plex Mono", monospace;6822  font-size: 0.75rem;6823  color: var(--peach-t1);6824  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6825  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6826  flex-shrink: 0;6827  text-align: center;6828}68296830.peach-pair-toast strong {6831  color: var(--peach-t0);6832  font-weight: 500;6833}68346835.peach-pair-request-header {6836  display: flex;6837  align-items: center;6838  gap: 8px;6839  font-size: 0.75rem;6840  color: var(--peach-t1);6841}68426843.peach-pair-request-mark {6844  font-size: 0.875rem;6845  display: inline-flex;6846  align-items: center;6847}68486849.peach-pair-request-icon {6850  width: 1em;6851  height: 1em;6852}68536854.peach-pair-request-title {6855  font-weight: 600;6856  color: var(--peach-t0);6857}68586859.peach-pair-request-countdown {6860  margin-left: auto;6861  font-variant-numeric: tabular-nums;6862  color: var(--peach-t2);6863  font-size: 0.6875rem;6864}68656866.peach-pair-request-body {6867  margin: 0;6868  font-size: 0.75rem;6869  color: var(--peach-t1);6870  line-height: 1.4;6871}68726873.peach-pair-request-body strong {6874  color: var(--peach-t0);6875  font-weight: 600;6876}68776878.peach-pair-request-actions {6879  display: flex;6880  gap: 8px;6881  justify-content: flex-end;6882}68836884/* ─── First-run onboarding ──────────────────────────────────────────────6885   Three-card welcome shown once before vault creation. The PeachScript6886   rune background drifts behind everything at very low opacity — it's6887   atmosphere, not focus. The cards themselves use the same panel6888   language as the rest of the popup so the transition into NewVault is6889   continuous, not a jarring switch of visual register. */68906891.peach-onboarding {6892  position: relative;6893  display: flex;6894  flex-direction: column;6895  width: 100%;6896  height: 100%;6897  padding: 16px 16px 18px;6898  box-sizing: border-box;6899  overflow: hidden;6900  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6901}69026903.peach-onboarding.is-completing {6904  animation: peach-onboard-exit 200ms ease-out forwards;6905}69066907.peach-rune-background {6908  position: absolute;6909  inset: 0;6910  width: 100%;6911  height: 100%;6912  pointer-events: none;6913  z-index: 0;6914  transition: opacity 500ms ease-out;6915}69166917.peach-onboarding.is-completing .peach-rune-background {6918  opacity: 0;6919}69206921.peach-onboarding-header {6922  position: relative;6923  z-index: 1;6924  display: flex;6925  align-items: center;6926  margin-bottom: 14px;6927}69286929.peach-onboarding-card {6930  position: relative;6931  z-index: 1;6932  flex: 1;6933  min-height: 0;6934  display: flex;6935  flex-direction: column;6936  gap: 10px;6937  padding: 22px 20px;6938  border-radius: 16px;6939  border: 1px solid var(--peach-t3);6940  background:6941    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6942  backdrop-filter: blur(3px);6943  -webkit-backdrop-filter: blur(3px);6944  box-shadow:6945    inset 0 1px 0 rgba(240, 232, 216, 0.04),6946    0 12px 28px rgba(0, 0, 0, 0.12);6947  cursor: pointer;6948  user-select: none;6949  overflow-y: auto;6950  scrollbar-width: none;6951  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6952}69536954.peach-onboarding-card::-webkit-scrollbar {6955  display: none;6956}69576958.peach-onboarding-card.is-exiting {6959  animation: peach-card-out 120ms ease-in forwards;6960  pointer-events: none;6961}69626963/* The final card carries the choice rows on top of the full intro copy, which6964 * overflows the 520px popup at the default spacing. Tighten only here so the6965 * three choices fit without scrolling above the nav (scroll stays available as6966 * a fallback on shorter viewports). */6967.peach-onboarding-card--final {6968  gap: 6px;6969  padding-top: 14px;6970  padding-bottom: 12px;6971}69726973.peach-onboarding-card--final .peach-onboarding-body {6974  font-size: 0.75rem;6975  line-height: 1.5;6976}69776978.peach-onboarding-card--final .peach-onboarding-choice {6979  min-height: 40px;6980  padding: 6px 10px;6981}69826983.peach-onboarding-card--final .peach-onboarding-choice-row {6984  gap: 6px;6985}69866987.peach-onboarding-card--final .peach-onboarding-choice-heading {6988  margin: 2px 0 -2px;6989}69906991.peach-onboarding-card-headline {6992  margin: 0;6993  font-family: var(--font-display);6994  font-style: italic;6995  font-weight: 400;6996  font-size: 22px;6997  line-height: 1.05;6998  color: var(--peach-t0);6999  white-space: pre-line;7000}70017002.peach-onboarding-divider {7003  margin: 4px 0 6px;7004  border: 0;7005  border-top: 1px solid var(--peach-t3);7006  width: 100%;7007}70087009.peach-onboarding-body {7010  margin: 0;7011  font-size: 0.8125rem;7012  line-height: 1.6;7013  color: var(--peach-t1);7014}70157016.peach-onboarding-warning {7017  display: flex;7018  align-items: flex-start;7019  gap: 8px;7020  margin: 6px 0 0;7021  padding-top: 8px;7022  border-top: 1px dashed var(--peach-t3);7023  font-size: 0.8125rem;7024  line-height: 1.5;7025  color: var(--peach-t1);7026}70277028.peach-onboarding-warning-icon {7029  color: var(--peach-accent);7030  font-size: 0.8125rem;7031  line-height: 1.5;7032  flex: 0 0 auto;7033}70347035.peach-onboarding-nav {7036  position: relative;7037  z-index: 1;7038  display: flex;7039  align-items: center;7040  justify-content: space-between;7041  margin-top: 12px;7042  padding: 0 4px;7043}70447045.peach-onboarding-dots {7046  display: flex;7047  align-items: center;7048  gap: 6px;7049}70507051.peach-onboarding-dot {7052  width: 6px;7053  height: 6px;7054  border-radius: 50%;7055  background: var(--peach-t2);7056  transition: width 200ms ease, height 200ms ease, background 200ms ease;7057}70587059.peach-onboarding-dot.is-active {7060  width: 8px;7061  height: 8px;7062  background: var(--peach-accent);7063}70647065.peach-onboarding-next {7066  background: none;7067  border: none;7068  padding: 4px 0;7069  cursor: pointer;7070  font-family: "IBM Plex Mono", monospace;7071  font-size: 0.6875rem;7072  letter-spacing: 0.04em;7073  color: var(--peach-t1);7074  transition: color 150ms ease;7075}70767077.peach-onboarding-next:hover {7078  color: var(--peach-t0);7079}70807081.peach-onboarding-next:disabled {7082  opacity: 0.5;7083  cursor: default;7084}70857086.peach-onboarding-back {7087  background: none;7088  border: none;7089  padding: 4px 0;7090  cursor: pointer;7091  font-family: "IBM Plex Mono", monospace;7092  font-size: 0.6875rem;7093  letter-spacing: 0.04em;7094  color: var(--peach-t2);7095  transition: color 150ms ease;7096}70977098.peach-onboarding-back:hover {7099  color: var(--peach-t0);7100}71017102.peach-onboarding-back:disabled {7103  opacity: 0.5;7104  cursor: default;7105}71067107/* Reserve back-button width on the first card so the dots stay centred */7108.peach-onboarding-back-spacer {7109  width: 44px;7110}71117112.peach-onboarding-choice-row {7113  display: grid;7114  grid-template-columns: 1fr;7115  gap: 8px;7116}71177118.peach-onboarding-choice-heading {7119  margin: 8px 0 -2px;7120  color: var(--peach-t1);7121  font-family: "IBM Plex Mono", monospace;7122  font-size: 0.6875rem;7123  letter-spacing: 0.04em;7124  text-transform: uppercase;7125}71267127.peach-onboarding-choice {7128  min-height: 48px;7129  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);7130  border-radius: 8px;7131  padding: 8px 10px;7132  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7133  color: var(--peach-t0);7134  font-size: 0.76rem;7135  font-weight: 700;7136  text-align: left;7137}71387139.peach-onboarding-choice-label {7140  display: flex;7141  align-items: center;7142  gap: 6px;7143}71447145.peach-onboarding-choice-detail {7146  display: block;7147}71487149.peach-onboarding-choice-detail {7150  margin-top: 2px;7151  color: var(--peach-t1);7152  font-size: 0.625rem;7153  font-weight: 400;7154  line-height: 1.35;7155}71567157.peach-onboarding-choice--adopt {7158  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);7159  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7160}71617162.peach-onboarding-choice--create {7163  border: 1px solid color-mix(in srgb, var(--peach-accent) 21%, transparent);7164  background: var(--peach-accent);7165  color: rgba(0, 0, 0, 0.92);7166  font-weight: 500;7167  box-shadow:7168    0 1px 0 rgba(255, 255, 255, 0.08) inset,7169    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),7170    0 3px 16px var(--peach-glow),7171    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);7172}71737174.peach-onboarding-choice--create:hover {7175  background: var(--peach-accent);7176  filter: brightness(1.1) saturate(1.05);7177}71787179.peach-onboarding-choice--create .peach-onboarding-choice-detail {7180  color: rgba(0, 0, 0, 0.72);7181}71827183.peach-adopt-vault {7184  position: relative;7185  min-height: 100%;7186  padding: 22px;7187  display: grid;7188  place-items: center;7189}71907191.peach-adopt-vault--pair {7192  padding: 10px;7193  overflow-y: auto;7194  scrollbar-width: none;7195}71967197.peach-adopt-vault--pair::-webkit-scrollbar {7198  display: none;7199}72007201.peach-adopt-card {7202  position: relative;7203  z-index: 1;7204  width: min(100%, 330px);7205  padding: 20px;7206  border-radius: 8px;7207  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7208  background: color-mix(in srgb, var(--peach-surface) 90%, transparent);7209  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);7210}72117212.peach-adopt-card--pair {7213  width: 100%;7214  max-height: 500px;7215  margin: auto;7216  padding: 14px 16px 12px;7217  overflow-y: auto;7218  scrollbar-width: none;7219  border: 0;7220  border-radius: 16px;7221  background:7222    radial-gradient(7223      circle at 50% -10%,7224      color-mix(in srgb, var(--peach-accent) 14%, transparent),7225      transparent 38%7226    ),7227    color-mix(in srgb, var(--peach-surface) 94%, transparent);7228}72297230.peach-adopt-card--pair::-webkit-scrollbar {7231  display: none;7232}72337234.peach-adopt-card h1 {7235  margin: 0 0 10px;7236  font-size: 1.28rem;7237  line-height: 1.15;7238}72397240.peach-adopt-card p {7241  margin: 0 0 14px;7242  color: var(--peach-t1);7243  line-height: 1.35;7244}72457246.peach-adopt-card .peach-hint-relay {7247  margin: 12px 0 0;7248  font-size: 11px;7249  line-height: 1.4;7250  color: var(--peach-t2);7251  opacity: 0.85;7252}72537254.peach-adopt-input {7255  margin-bottom: 12px;7256}72577258.peach-adopt-card textarea.peach-adopt-input {7259  width: 100%;7260  resize: vertical;7261  overflow-wrap: anywhere;7262  font-family: "IBM Plex Mono", monospace;7263  font-size: 0.64rem;7264}72657266.peach-adopt-qr-video {7267  display: block;7268  width: 100%;7269  max-height: 220px;7270  margin: 0 0 12px;7271  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);7272  border-radius: 8px;7273  background: #000;7274  object-fit: cover;7275}72767277.peach-adoption-source-invitation {7278  display: flex;7279  flex-direction: column;7280  align-items: center;7281  gap: 10px;7282  padding: 4px 18px 16px;7283  text-align: center;7284}72857286.peach-pair-qr {7287  display: block;7288  margin-inline: auto;7289  max-width: min(224px, 100%);7290  height: auto;7291  padding: 8px;7292  border-radius: 10px;7293  background: #fff;7294}72957296.peach-adopt-card > .peach-btn + .peach-btn {7297  margin-top: 8px;7298}72997300.peach-adopt-actions {7301  display: flex;7302  gap: 10px;7303  margin-top: 14px;7304}73057306.peach-adopt-actions > button {7307  flex: 1;7308}73097310.peach-adopt-sas {7311  margin: 18px 0;7312  padding: 14px;7313  border-radius: 8px;7314  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);7315  color: var(--peach-t0);7316  font-size: 1.35rem;7317  font-weight: 800;7318  font-variant-numeric: tabular-nums;7319  text-align: center;7320}73217322.peach-adopt-pairing {7323  text-align: center;7324}73257326.peach-adopt-pairing h1 {7327  max-width: 260px;7328  margin: 0 auto 6px;7329  color: var(--peach-t0);7330  font-family: var(--font-display, Georgia, serif);7331  font-size: 1.42rem;7332  font-style: italic;7333  font-weight: 500;7334  line-height: 1.12;7335  text-wrap: balance;7336}73377338.peach-adopt-pairing .peach-adopt-pair-lede {7339  max-width: 258px;7340  margin: 0 auto;7341  color: color-mix(in srgb, var(--peach-t0) 82%, var(--peach-bg));7342  font-size: 0.73rem;7343  line-height: 1.42;7344  text-wrap: pretty;7345}73467347.peach-pair-stage.peach-adopt-bird-stage {7348  width: min(100%, 260px);7349  height: 102px;7350  margin: -6px auto 2px;7351}73527353.peach-adopt-bird-stage .peach-pair-bird-slot,7354.peach-adopt-bird-stage .peach-pair-bird {7355  width: 90px;7356  height: 90px;7357}73587359.peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7360  left: 12px;7361}73627363.peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7364  right: 12px;7365}73667367.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-desktop {7368  --bb-x: 12px;7369  transform: translateX(12px);7370}73717372.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7373  --bb-x: -12px;7374  transform: translateX(-12px);7375}73767377.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot {7378  animation: peach-adopt-happy-bob 0.8s ease-in-out infinite;7379}73807381.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7382  animation-delay: 0.18s;7383  animation-direction: reverse;7384}73857386.peach-adopt-pairing.is-complete .peach-pair-stage.peach-adopt-bird-stage {7387  width: 100%;7388  height: 135px;7389  margin: -8px auto 6px;7390}73917392.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot,7393.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird {7394  width: 112px;7395  height: 112px;7396}73977398.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7399  left: 0;7400  --bb-x: 0;7401  transform: translateX(0);7402}74037404.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7405  right: 0;7406  --bb-x: 0;7407  transform: translateX(0);7408}74097410.peach-adopt-pairing.is-complete h1 {7411  font-size: 1.6rem;7412}74137414.peach-adopt-pairing.is-complete .peach-adopt-pair-lede {7415  font-size: 0.78rem;7416}74177418@keyframes peach-adopt-happy-bob {7419  0%, 100% {7420    transform: translateX(var(--bb-x, 0)) translateY(0) rotate(0deg);7421  }7422  35% {7423    transform: translateX(var(--bb-x, 0)) translateY(-8px) rotate(-3deg);7424  }7425  70% {7426    transform: translateX(var(--bb-x, 0)) translateY(-3px) rotate(2deg);7427  }7428}74297430.peach-adopt-connection {7431  position: absolute;7432  left: 50%;7433  bottom: 38px;7434  width: 78px;7435  height: 1px;7436  translate: -50% 0;7437  background: color-mix(in srgb, var(--peach-accent) 62%, transparent);7438  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 56%, transparent);7439}74407441.peach-adopt-pairing.is-complete .peach-adopt-connection {7442  bottom: 49px;7443  width: 92px;7444}74457446.peach-adopt-connection::after {7447  content: "";7448  position: absolute;7449  left: 50%;7450  top: 50%;7451  width: 7px;7452  height: 7px;7453  border-radius: 50%;7454  translate: -50% -50%;7455  background: var(--peach-accent);7456  box-shadow:7457    0 0 0 4px color-mix(in srgb, var(--peach-accent) 17%, transparent),7458    0 0 14px color-mix(in srgb, var(--peach-accent) 74%, transparent);7459  animation: peach-adopt-connection-pulse 1.1s ease-in-out infinite;7460}74617462@keyframes peach-adopt-connection-pulse {7463  0%, 100% { scale: 0.8; opacity: 0.72; }7464  50% { scale: 1.14; opacity: 1; }7465}74667467.peach-adopt-qr-wrap {7468  min-height: 160px;7469  display: grid;7470  place-items: center;7471}74727473.peach-adopt-qr-wrap .peach-hint-error {7474  margin: 12px 0;7475}74767477.peach-adopt-pairing .peach-adopt-pair-status {7478  margin: 0;7479  color: var(--peach-t0);7480  font-size: 0.75rem;7481}74827483.peach-adopt-confirmation {7484  margin-top: 18px;7485  padding: 8px 0 4px;7486}74877488.peach-adopt-confirmation .peach-adopt-confirmation-label {7489  margin: 0 0 7px;7490  color: color-mix(in srgb, var(--peach-accent) 72%, var(--peach-t0));7491  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7492  font-size: 0.625rem;7493  font-weight: 700;7494  letter-spacing: 0.14em;7495}74967497.peach-adopt-confirmation .peach-adoption-sas {7498  margin: 0 auto;7499  padding: 12px 14px;7500  border-color: color-mix(in srgb, var(--peach-accent) 36%, transparent);7501  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7502}75037504.peach-adopt-confirmation .peach-adoption-sas strong {7505  color: color-mix(in srgb, var(--peach-accent) 84%, var(--peach-t0));7506  font-size: 1.58rem;7507  text-shadow: 0 0 16px color-mix(in srgb, var(--peach-accent) 30%, transparent);7508}75097510.peach-adopt-confirmation .peach-adopt-confirmation-help {7511  max-width: 270px;7512  margin: 8px auto 0;7513  color: color-mix(in srgb, var(--peach-t0) 78%, var(--peach-bg));7514  font-size: 0.7rem;7515  line-height: 1.45;7516}75177518.peach-adopt-privacy {7519  display: flex;7520  align-items: flex-start;7521  gap: 9px;7522  margin-top: 10px;7523  padding: 8px 9px;7524  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7525  border-radius: 10px;7526  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);7527  text-align: left;7528}75297530.peach-adopt-privacy svg {7531  width: 16px;7532  height: 16px;7533  flex: 0 0 auto;7534  margin-top: 1px;7535  fill: none;7536  stroke: color-mix(in srgb, var(--peach-accent) 74%, var(--peach-t0));7537  stroke-linecap: round;7538  stroke-linejoin: round;7539  stroke-width: 1.7;7540}75417542.peach-adopt-pairing .peach-adopt-privacy p {7543  margin: 0;7544  color: color-mix(in srgb, var(--peach-t0) 76%, var(--peach-bg));7545  font-size: 0.62rem;7546  line-height: 1.4;7547}75487549.peach-adopt-privacy strong {7550  color: var(--peach-t0);7551  font-weight: 700;7552}75537554.peach-adopt-pair-actions {7555  margin-top: 9px;7556}75577558.peach-adopt-pair-actions > button {7559  width: 100%;7560}75617562.peach-adopt-paired-status {7563  display: inline-flex;7564  align-items: center;7565  gap: 8px;7566  margin: 22px auto 18px;7567  padding: 9px 13px;7568  border: 1px solid color-mix(in srgb, var(--peach-accent) 30%, transparent);7569  border-radius: 999px;7570  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);7571  color: color-mix(in srgb, var(--peach-accent) 78%, var(--peach-t0));7572  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7573  font-size: 0.66rem;7574  font-weight: 700;7575  letter-spacing: 0.04em;7576}75777578.peach-adopt-paired-status span {7579  width: 7px;7580  height: 7px;7581  border-radius: 50%;7582  background: var(--peach-accent);7583  box-shadow: 0 0 8px color-mix(in srgb, var(--peach-accent) 68%, transparent);7584}75857586@media (prefers-reduced-motion: reduce) {7587  .peach-adopt-connection::after {7588    animation: none;7589  }7590}75917592.peach-onboarding-mobile-card-buttons {7593  display: flex;7594  flex-direction: column;7595  gap: 8px;7596  margin-top: 16px;7597}75987599@keyframes peach-onboard-enter {7600  from { opacity: 0; transform: translateY(20px); }7601  to   { opacity: 1; transform: translateY(0); }7602}76037604@keyframes peach-onboard-exit {7605  from { opacity: 1; }7606  to   { opacity: 0; }7607}76087609@keyframes peach-card-in {7610  from { opacity: 0; transform: translateX(12px); }7611  to   { opacity: 1; transform: translateX(0); }7612}76137614@keyframes peach-card-out {7615  from { opacity: 1; transform: translateX(0); }7616  to   { opacity: 0; transform: translateX(-12px); }7617}76187619/* ─── New vault screen — matched to onboarding card language ─────────── */76207621/* Two classes so this beats the shared .peach-screen.lock-screen--vault-stage7622   rule (same element) without loosening the unlock/restore screens. The7623   create-vault screen is the only vault-stage view tall enough to overflow7624   the 520px popup, so its spacing is tuned to fit header → card → restore →7625   recovery warning with nothing clipped. */7626.peach-screen.peach-newvault {7627  position: relative;7628  display: flex;7629  flex-direction: column;7630  gap: 12px;7631  padding: 14px 16px 12px;7632  overflow: hidden;7633}76347635/* Suppress the warm-blob ambient art inherited from .lock-screen — the7636   new vault card now carries the visual weight. */7637.peach-newvault::before {7638  content: none;7639}76407641.peach-newvault-header {7642  position: relative;7643  z-index: 2;7644  display: flex;7645  align-items: center;7646  gap: 10px;7647  margin-bottom: 2px;7648}76497650.peach-newvault-back {7651  display: inline-flex;7652  align-items: center;7653  gap: 4px;7654  background: transparent;7655  border: none;7656  color: var(--peach-t2);7657  font-family: "IBM Plex Mono", monospace;7658  font-size: 0.625rem;7659  letter-spacing: 0.06em;7660  cursor: pointer;7661  padding: 4px 6px;7662  border-radius: 6px;7663  transition: color 120ms ease, background 120ms ease;7664}76657666.peach-newvault-back:hover {7667  color: var(--peach-t0);7668  background: rgba(240, 232, 216, 0.04);7669}76707671.peach-newvault-mark {7672  position: absolute;7673  right: -12px;7674  top: 6px;7675  width: 110px;7676  height: 110px;7677  pointer-events: none;7678  opacity: 0.10;7679  filter: saturate(0.9);7680  z-index: 0;7681}7682.peach-newvault-mark-art {7683  width: 100%;7684  height: 100%;7685}7686.peach-newvault-mark-art path:nth-child(1) {7687  fill: rgba(123, 144, 96, 0.88);7688}7689.peach-newvault-mark-art path:nth-child(2) {7690  stroke: rgba(94, 122, 66, 0.95);7691}76927693.peach-newvault-card {7694  position: relative;7695  z-index: 1;7696  display: flex;7697  flex-direction: column;7698  gap: 8px;7699  padding: 16px 20px 14px;7700  border-radius: 16px;7701  border: 1px solid var(--peach-t3);7702  background:7703    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));7704  backdrop-filter: blur(3px);7705  -webkit-backdrop-filter: blur(3px);7706  box-shadow:7707    inset 0 1px 0 rgba(240, 232, 216, 0.04),7708    0 12px 28px rgba(0, 0, 0, 0.12);7709  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;7710}77117712.peach-newvault-headline {7713  margin: 0;7714  font-family: var(--font-display);7715  font-style: italic;7716  font-weight: 400;7717  font-size: 24px;7718  line-height: 1.05;7719  color: var(--peach-t0);7720  white-space: pre-line;7721}77227723.peach-newvault-divider {7724  margin: 2px 0 4px;7725  border: 0;7726  border-top: 1px solid var(--peach-t3);7727  width: 100%;7728}77297730.peach-newvault-field {7731  display: flex;7732  flex-direction: column;7733  gap: 4px;7734}77357736.peach-newvault-label-row {7737  display: flex;7738  align-items: center;7739  justify-content: space-between;7740}77417742/* Monospace input scaled to the card. Replaces the 22px unlock-input7743   so the placeholder no longer overflows and the field reads as part7744   of the same surface as the body copy. */7745.peach-newvault-input {7746  font-size: 0.875rem;7747  letter-spacing: 0.18em;7748  padding: 8px 0;7749}7750.peach-newvault-input::placeholder {7751  letter-spacing: 0.18em;7752  color: var(--peach-t2);7753}77547755.peach-newvault-hint {7756  margin: 2px 0 0;7757  font-family: "IBM Plex Mono", monospace;7758  font-size: 0.625rem;7759  color: var(--peach-t2);7760  letter-spacing: 0.04em;7761}77627763.peach-newvault-submit {7764  margin-top: 4px;7765}77667767.peach-newvault-warning {7768  display: flex;7769  align-items: flex-start;7770  gap: 8px;7771  margin: 2px 0 0;7772  padding-top: 8px;7773  border-top: 1px dashed var(--peach-t3);7774  font-size: 0.75rem;7775  line-height: 1.45;7776  color: var(--peach-t1);7777}77787779.peach-newvault-warning-icon {7780  color: var(--peach-accent);7781  font-size: 0.8125rem;7782  line-height: 1.4;7783  flex: 0 0 auto;7784}77857786/* Restore options sit inside the card, directly under "create vault", so7787   they are always reachable without scrolling. The top divider mirrors the7788   warning's so the choice reads as a deliberate fork, not a footnote. */7789.peach-newvault-restore {7790  position: relative;7791  z-index: 1;7792  display: flex;7793  flex-direction: column;7794  gap: 4px;7795  margin-top: 4px;7796  padding-top: 10px;7797  border-top: 1px dashed var(--peach-t3);7798}77997800/* Settings body — warm accent gradient gives the glass something to blur against */7801.peach-settings-body {7802  background:7803    radial-gradient(7804      ellipse at 30% 20%,7805      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,7806      transparent 60%7807    );7808}78097810/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */7811/* ── Danger cards (Replace + Destroy) ────────────────────────────────────7812 * Two severity levels: "warn" for actions that are dangerous-but-recoverable7813 * (replacing the vault from a backup file) and "hazard" for actions that7814 * are absolutely irreversible (Panic). Both use the same card scaffold so7815 * they read as a pair, but the colour family signals the severity at a7816 * glance — yellow for caution, red for don't.7817 */7818.peach-danger-card {7819  --danger-tint: 235, 158, 52; /* amber */7820  display: flex;7821  flex-direction: column;7822  gap: 8px;7823  padding: 14px;7824  margin-top: 10px;7825  border-radius: 12px;7826  border: 1px solid rgba(var(--danger-tint), 0.32);7827  background:7828    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),7829    rgba(var(--danger-tint), 0.04);7830  box-shadow:7831    inset 0 1px 0 rgba(var(--danger-tint), 0.08),7832    0 0 24px rgba(var(--danger-tint), 0.04);7833  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;7834}78357836.peach-danger-card:hover {7837  border-color: rgba(var(--danger-tint), 0.55);7838  box-shadow:7839    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7840    0 0 36px rgba(var(--danger-tint), 0.10);7841}78427843.peach-danger-card--hazard {7844  --danger-tint: 220, 38, 38; /* red */7845}78467847.peach-danger-card-head {7848  display: flex;7849  align-items: center;7850  gap: 10px;7851}78527853.peach-danger-card-glyph {7854  width: 28px;7855  height: 28px;7856  flex-shrink: 0;7857  display: flex;7858  align-items: center;7859  justify-content: center;7860  border-radius: 8px;7861  background: rgba(var(--danger-tint), 0.12);7862  color: rgba(var(--danger-tint), 0.95);7863  font-size: 1rem;7864  line-height: 1;7865}78667867.peach-danger-card-title {7868  margin: 0;7869  font-size: 0.8125rem;7870  font-weight: 600;7871  color: rgba(var(--danger-tint), 0.92);7872  letter-spacing: 0.01em;7873}78747875.peach-danger-card-copy {7876  margin: 0;7877  font-size: 0.6875rem;7878  line-height: 1.5;7879  color: var(--peach-t2);7880}78817882.peach-danger-card-button {7883  width: 100%;7884  padding: 9px;7885  margin-top: 4px;7886  background: transparent;7887  border: 1px solid rgba(var(--danger-tint), 0.45);7888  border-radius: 8px;7889  color: rgba(var(--danger-tint), 0.9);7890  font-size: 0.75rem;7891  font-weight: 500;7892  letter-spacing: 0.02em;7893  cursor: pointer;7894  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7895}78967897.peach-danger-card-button:hover {7898  background: rgba(var(--danger-tint), 0.10);7899  border-color: rgba(var(--danger-tint), 0.75);7900  color: rgb(var(--danger-tint));7901}79027903.peach-adoption-sas {7904  margin: 16px auto 0;7905  padding: 12px 16px;7906  border: 1px solid color-mix(in srgb, var(--peach-t0) 18%, transparent);7907  border-radius: 10px;7908  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7909  color: var(--peach-t0);7910  text-align: center;7911}79127913.peach-adoption-sas strong {7914  font-size: 1.65rem;7915  font-variant-numeric: tabular-nums;7916  letter-spacing: 0.18em;7917  white-space: nowrap;7918}79197920/* ── Panic flow (three-step destruction) ───────────────────────────────── */7921.peach-panic {7922  display: flex;7923  flex-direction: column;7924  flex: 1;7925  min-height: 0;7926  padding: 28px 20px 20px;7927  gap: 18px;7928  overflow-y: auto;7929  scrollbar-width: none;7930  -ms-overflow-style: none;7931}79327933.peach-panic::-webkit-scrollbar { display: none; }79347935.peach-panic-step2 {7936  background: rgba(220, 38, 38, 0.04);7937}79387939.peach-panic-step3 {7940  position: relative;7941  background: #0f0505;7942  color: #ffffff;7943  overflow: hidden;7944}79457946.peach-panic-rune-bg {7947  position: absolute;7948  inset: 0;7949  opacity: 0.22;7950  pointer-events: none;7951  overflow: hidden;7952}79537954.peach-panic-rune-bg canvas {7955  width: 100% !important;7956  height: 100% !important;7957}79587959.peach-panic-icon {7960  font-size: 32px;7961  color: rgb(220, 38, 38);7962  line-height: 1;7963}79647965.peach-panic-title {7966  margin: 0;7967  font-size: 18px;7968  font-weight: 500;7969  color: var(--peach-t1);7970}79717972.peach-panic-title--severe {7973  font-size: 20px;7974  font-weight: 700;7975  color: rgb(220, 38, 38);7976}79777978.peach-panic-body {7979  margin: 0;7980  font-size: 0.8125rem;7981  line-height: 1.55;7982  color: var(--peach-t2);7983}79847985.peach-panic-body--severe {7986  color: rgba(220, 38, 38, 0.85);7987}79887989.peach-panic-body--final {7990  font-size: 1rem;7991  font-weight: 700;7992  color: rgb(255, 80, 80);7993  line-height: 1.4;7994}79957996.peach-panic-body--final-intro {7997  font-size: 1rem;7998  color: #ffffff;7999  font-weight: 400;8000}80018002.peach-panic-divider {8003  height: 1px;8004  background: rgba(255, 255, 255, 0.08);8005  margin: 4px 0;8006}80078008.peach-panic-confirm-input {8009  width: 100%;8010  padding: 10px 12px;8011  background: rgba(255, 255, 255, 0.02);8012  border: 1px solid rgba(220, 38, 38, 0.4);8013  border-radius: 8px;8014  color: var(--peach-t1);8015  font-family: "IBM Plex Mono", monospace;8016  font-size: 0.875rem;8017  letter-spacing: 0.12em;8018  text-transform: uppercase;8019}80208021.peach-panic-confirm-input:focus {8022  outline: none;8023  border-color: rgb(220, 38, 38);8024}80258026.peach-panic-confirm-input--match {8027  border-color: rgb(220, 38, 38);8028  color: rgb(220, 38, 38);8029}80308031.peach-panic-confirm-label {8032  font-size: 0.6875rem;8033  color: var(--peach-t2);8034  margin: 0 0 -8px;8035  letter-spacing: 0.06em;8036}80378038.peach-panic-actions {8039  display: flex;8040  flex-direction: column;8041  gap: 10px;8042  margin-top: auto;8043}80448045.peach-panic-button {8046  width: 100%;8047  padding: 12px;8048  border-radius: 8px;8049  font-size: 0.8125rem;8050  cursor: pointer;8051  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;8052}80538054.peach-panic-button--primary {8055  background: var(--peach-accent);8056  border: 1px solid var(--peach-accent);8057  color: #ffffff;8058  font-weight: 600;8059}80608061.peach-panic-button--primary:hover {8062  background: color-mix(in srgb, var(--peach-accent) 88%, white);8063}80648065.peach-panic-button--danger {8066  background: rgb(220, 38, 38);8067  border: 1px solid rgb(220, 38, 38);8068  color: #ffffff;8069  font-weight: 600;8070}80718072.peach-panic-button--danger:disabled {8073  opacity: 0.35;8074  cursor: not-allowed;8075}80768077.peach-panic-button--ghost {8078  background: transparent;8079  border: 1px solid rgba(255, 255, 255, 0.18);8080  color: var(--peach-t2);8081}80828083.peach-panic-button--ghost:hover {8084  border-color: rgba(255, 255, 255, 0.32);8085  color: var(--peach-t1);8086}80878088.peach-panic-link {8089  background: transparent;8090  border: none;8091  padding: 4px 0;8092  color: rgba(220, 38, 38, 0.65);8093  font-size: 0.75rem;8094  cursor: pointer;8095  text-align: left;8096  text-decoration: underline;8097  text-underline-offset: 3px;8098}80998100.peach-panic-link:hover {8101  color: rgb(220, 38, 38);8102}81038104.peach-panic-bar {8105  background: rgb(220, 38, 38);8106  padding: 16px 20px;8107  margin: -28px -20px 0;8108  text-align: center;8109  font-size: 0.8125rem;8110  font-weight: 700;8111  letter-spacing: 0.12em;8112  color: #ffffff;8113}81148115.peach-panic-final-button {8116  width: 100%;8117  padding: 14px;8118  background: rgb(220, 38, 38);8119  border: none;8120  border-radius: 8px;8121  color: #ffffff;8122  font-size: 0.875rem;8123  font-weight: 700;8124  letter-spacing: 0.08em;8125  text-transform: uppercase;8126  cursor: pointer;8127  animation: peach-panic-pulse 2s ease-in-out infinite;8128}81298130.peach-settings-license {8131  margin-top: 10px;8132  padding-top: 10px;8133  border-top: 1px solid var(--peach-t3);8134}81358136.peach-settings-label {8137  font-size: 0.625rem;8138  letter-spacing: 0.08em;8139  color: var(--peach-t3);8140  display: block;8141  margin-bottom: 6px;8142}81438144.peach-settings-license-row {8145  display: flex;8146  align-items: center;8147  justify-content: space-between;8148  gap: 8px;8149}81508151.peach-settings-license-key {8152  font-family: 'IBM Plex Mono', monospace;8153  font-size: 0.75rem;8154  color: var(--peach-t0);8155  letter-spacing: 0.04em;8156  word-break: break-all;8157  flex: 1;8158  min-width: 0;8159}81608161.peach-settings-license-key--masked {8162  font-family: 'IBM Plex Mono', monospace;8163  font-size: 0.6rem;8164  color: var(--peach-t1);8165  letter-spacing: 0.18em;8166  user-select: none;8167}81688169.peach-settings-license-actions {8170  display: flex;8171  align-items: center;8172  gap: 2px;8173  flex-shrink: 0;8174}81758176.peach-settings-license-copy {8177  font-size: 0.6875rem;8178  color: var(--peach-accent);8179  background: transparent;8180  border: none;8181  cursor: pointer;8182  padding: 4px 8px;8183  border-radius: 4px;8184  flex-shrink: 0;8185  transition: opacity 150ms ease;8186}81878188.peach-settings-license-copy:hover {8189  opacity: 0.75;8190}81918192.peach-settings-license-toggle {8193  display: flex;8194  align-items: center;8195  justify-content: center;8196  background: transparent;8197  border: none;8198  cursor: pointer;8199  padding: 4px 6px;8200  border-radius: 4px;8201  color: var(--peach-t2);8202  transition: color 150ms ease;8203}82048205.peach-settings-license-toggle:hover {8206  color: var(--peach-t1);8207}82088209@keyframes peach-panic-pulse {8210  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }8211  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }8212}82138214[data-motion="reduce"] .peach-panic-final-button {8215  animation: none;8216}82178218/* Vault History — Settings → Vault sub-view */82198220.peach-history-list {8221  border: 1px solid var(--peach-border);8222  border-radius: 8px;8223  overflow: hidden;8224  margin: 8px 0 4px;8225}82268227.peach-history-row {8228  display: flex;8229  align-items: center;8230  justify-content: space-between;8231  padding: 9px 12px;8232  gap: 10px;8233  border-bottom: 1px solid var(--peach-border);8234}82358236.peach-history-row:last-child {8237  border-bottom: none;8238}82398240.peach-history-meta {8241  display: flex;8242  flex-direction: column;8243  gap: 2px;8244  min-width: 0;8245  flex: 1;8246}82478248.peach-history-time {8249  font-size: 0.75rem;8250  font-family: 'IBM Plex Mono', ui-monospace, monospace;8251  color: var(--peach-t0);8252  white-space: nowrap;8253  overflow: hidden;8254  text-overflow: ellipsis;8255}82568257.peach-history-sub {8258  font-size: 0.625rem;8259  color: var(--peach-t2);8260  letter-spacing: 0.06em;8261  text-transform: uppercase;8262  white-space: nowrap;8263  overflow: hidden;8264  text-overflow: ellipsis;8265}82668267.peach-history-btn {8268  flex-shrink: 0;8269  white-space: nowrap;8270  min-width: 56px;8271  text-align: center;8272}82738274.peach-history-btn.is-busy {8275  opacity: 0.65;8276}82778278.peach-history-footer {8279  font-size: 0.625rem;8280  color: var(--peach-t3);8281  letter-spacing: 0.05em;8282  text-align: right;8283  margin: 0;8284  padding: 2px 0 0;8285}82868287/* ── Context menu + swipe-copy flash ─────────────────────── */8288.peach-context-menu-backdrop {8289  position: fixed;8290  inset: 0;8291  background: rgba(0, 0, 0, 0.45);8292  z-index: 100;8293  display: flex;8294  align-items: flex-end;8295  justify-content: center;8296  animation: peach-ctx-fade 140ms ease both;8297}8298.peach-context-menu {8299  width: min(360px, calc(100vw - 24px));8300  margin-bottom: max(env(safe-area-inset-bottom), 12px);8301  background: var(--peach-bg);8302  border: 1px solid var(--peach-t3);8303  border-radius: 14px;8304  padding: 6px;8305  display: flex;8306  flex-direction: column;8307  gap: 2px;8308  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);8309  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;8310}8311@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }8312@keyframes peach-ctx-rise {8313  from { transform: translateY(16px); opacity: 0; }8314  to   { transform: translateY(0);    opacity: 1; }8315}8316.peach-context-menu-item {8317  background: transparent;8318  color: var(--peach-t0);8319  border: 0;8320  border-radius: 10px;8321  padding: 12px 14px;8322  text-align: left;8323  font: inherit;8324  cursor: pointer;8325}8326.peach-context-menu-item:hover,8327.peach-context-menu-item:focus-visible {8328  background: var(--peach-t3);8329}8330.peach-context-menu-item--danger {8331  color: var(--peach-health-bad, #d96868);8332}8333.peach-context-menu-item--cancel {8334  color: var(--peach-t2);8335  margin-top: 4px;8336  border-top: 1px solid var(--peach-t3);8337  border-radius: 0 0 10px 10px;8338}83398340/* Swipe-to-copy flash */8341.peach-entry-row.is-copy-flash {8342  animation: peach-copy-flash 600ms ease both;8343}8344@keyframes peach-copy-flash {8345  0%   { background: transparent; }8346  20%  { background: rgba(217, 153, 51, 0.32); }8347  100% { background: transparent; }8348}83498350html { font-size: 16px; }83518352/* ── Recovery word entry ─────────────────────────────────────────── */8353.peach-lock-recover-link {8354  display: block;8355  width: 100%;8356  margin-top: 12px;8357  background: none;8358  border: none;8359  font-family: "IBM Plex Mono", monospace;8360  font-size: 0.625rem;8361  letter-spacing: 0.06em;8362  color: var(--peach-t2);8363  cursor: pointer;8364  text-align: center;8365  padding: 4px;8366  transition: color 120ms ease;8367}8368.peach-lock-recover-link:hover {8369  color: var(--peach-t0);8370}83718372.lock-screen--recovery {8373  display: flex;8374  flex-direction: column;8375  align-items: stretch;8376  padding: 12px 20px 24px;8377  overflow: hidden;8378}83798380.peach-recovery-nav {8381  display: flex;8382  align-items: center;8383  position: relative;8384  z-index: 1;8385  margin-bottom: 4px;8386}83878388/* Mask runes to the top decorative band only — keep inputs and the8389   bottom CTA button clear. The bottom of the popup is reserved for8390   submit buttons; rendering runes there overlaps the button glyph. */8391.peach-rune-background--recovery {8392  -webkit-mask-image: linear-gradient(8393    to bottom,8394    black 0px, black 85px,8395    transparent 110px,8396    transparent 100%8397  );8398  mask-image: linear-gradient(8399    to bottom,8400    black 0px, black 85px,8401    transparent 110px,8402    transparent 100%8403  );8404}84058406.peach-recovery-header {8407  text-align: center;8408  margin-bottom: 16px;8409  margin-top: 4px;8410}8411.peach-recovery-header .peach-onboarding-headline {8412  font-size: 1.25rem;8413  font-weight: 300;8414  letter-spacing: 0.02em;8415  margin: 0 0 4px;8416}8417.peach-recovery-header .peach-hint {8418  font-family: "IBM Plex Mono", monospace;8419  font-size: 0.625rem;8420  color: var(--peach-t2);8421  letter-spacing: 0.04em;8422  margin: 0;8423}84248425/* 12-word grid: 2 columns × 6 rows */8426.peach-recovery-grid {8427  display: grid;8428  grid-template-columns: repeat(2, 1fr);8429  gap: 12px 20px;8430  width: 100%;8431  margin-bottom: 0;8432}84338434.peach-recovery-word-slot {8435  display: flex;8436  align-items: center;8437  gap: 6px;8438  min-width: 0;8439}84408441.peach-recovery-word-index {8442  font-family: "IBM Plex Mono", monospace;8443  font-size: 0.5rem;8444  color: rgba(255, 255, 255, 0.35);8445  min-width: 14px;8446  flex-shrink: 0;8447  text-align: right;8448  letter-spacing: 0.04em;8449}84508451.peach-recovery-word-input {8452  flex: 1;8453  min-width: 0;8454  background: transparent;8455  border: none;8456  border-bottom: 1px solid rgba(255, 255, 255, 0.22);8457  color: var(--peach-t0);8458  font-family: "IBM Plex Mono", monospace;8459  font-size: 0.6875rem;8460  letter-spacing: 0.06em;8461  padding: 5px 2px 4px;8462  outline: none;8463  text-transform: lowercase;8464  transition: border-color 120ms ease;8465}8466.peach-recovery-word-input::placeholder {8467  color: rgba(255, 255, 255, 0.18);8468}8469.peach-recovery-word-input:focus {8470  border-bottom-color: var(--peach-accent);8471}84728473.peach-recovery-submit {8474  width: 100%;8475  margin-top: auto;8476}84778478.peach-recovery-new-password-form {8479  width: 100%;8480  display: flex;8481  flex-direction: column;8482  gap: 16px;8483  margin-bottom: 8px;8484}8485.peach-recovery-new-password-form .peach-newvault-field {8486  display: flex;8487  flex-direction: column;8488  gap: 4px;8489}84908491/* ── Recovery words display (post-create) ────────────────────────── */8492.lock-screen--recovery-display {8493  display: flex;8494  flex-direction: column;8495  align-items: stretch;8496  padding: 0 20px 20px;8497  min-height: 0;8498  overflow-y: auto;8499}85008501.peach-recovery-words-display {8502  width: 100%;8503  margin-bottom: 16px;8504  border: 1px solid var(--peach-t3);8505  border-radius: 8px;8506  padding: 12px 14px;8507  background: rgba(245, 240, 234, 0.04);8508}85098510.peach-recovery-words-label {8511  font-family: "IBM Plex Mono", monospace;8512  font-size: 0.5rem;8513  letter-spacing: 0.08em;8514  color: var(--peach-t2);8515  text-transform: uppercase;8516  margin-bottom: 10px;8517}85188519.peach-recovery-word-list {8520  list-style: none;8521  margin: 0;8522  padding: 0;8523  display: grid;8524  grid-template-columns: repeat(2, 1fr);8525  gap: 6px 16px;8526}85278528.peach-recovery-word-item {8529  display: flex;8530  align-items: baseline;8531  gap: 5px;8532}85338534.peach-recovery-word-num {8535  font-family: "IBM Plex Mono", monospace;8536  font-size: 0.5rem;8537  color: var(--peach-t2);8538  width: 14px;8539  flex: 0 0 14px;8540  text-align: right;8541  letter-spacing: 0.04em;8542  font-variant-numeric: tabular-nums;8543}85448545.peach-recovery-download-btn {8546  display: block;8547  margin: 10px auto 0;8548  padding: 4px 10px;8549  background: transparent;8550  border: 1px solid var(--peach-border);8551  border-radius: 6px;8552  color: var(--peach-t2);8553  font-family: "IBM Plex Mono", monospace;8554  font-size: 0.5625rem;8555  letter-spacing: 0.06em;8556  text-transform: lowercase;8557  cursor: pointer;8558  transition: border-color 0.15s, color 0.15s;8559}85608561.peach-recovery-download-btn:hover {8562  border-color: var(--peach-accent);8563  color: var(--peach-t0);8564}85658566.peach-recovery-word-text {8567  font-family: "IBM Plex Mono", monospace;8568  font-size: 0.6875rem;8569  letter-spacing: 0.06em;8570  color: var(--peach-t0);8571  text-transform: lowercase;8572}85738574.peach-hint--warning {8575  color: var(--peach-accent);8576  font-style: italic;8577}8578.peach-hint--success {8579  color: var(--peach-t2);8580  font-family: "IBM Plex Mono", monospace;8581  font-size: 0.625rem;8582  letter-spacing: 0.06em;8583}85848585/* Confirmation step */8586.peach-recovery-confirm {8587  width: 100%;8588  flex: 1;8589  display: flex;8590  flex-direction: column;8591}8592.peach-recovery-confirm-label {8593  font-family: "IBM Plex Mono", monospace;8594  font-size: 0.5625rem;8595  letter-spacing: 0.04em;8596  color: var(--peach-t2);8597  text-align: center;8598  margin: 0 0 12px;8599}8600.peach-recovery-confirm-fields {8601  display: flex;8602  flex-direction: column;8603  gap: 14px;8604  margin-bottom: 10px;8605}8606.peach-recovery-confirm-field {8607  display: flex;8608  align-items: center;8609  gap: 8px;8610}8611.peach-recovery-confirm-num {8612  font-family: "IBM Plex Mono", monospace;8613  font-size: 0.5rem;8614  color: var(--peach-t2);8615  min-width: 44px;8616  letter-spacing: 0.04em;8617}8618.peach-recovery-confirm-input {8619  flex: 1;8620  background: transparent;8621  border: none;8622  border-bottom: 1px solid var(--peach-t3);8623  color: var(--peach-t0);8624  font-family: "IBM Plex Mono", monospace;8625  font-size: 0.6875rem;8626  letter-spacing: 0.06em;8627  padding: 4px 2px 3px;8628  outline: none;8629  text-transform: lowercase;8630  transition: border-color 120ms ease;8631}8632.peach-recovery-confirm-input:focus {8633  border-bottom-color: var(--peach-accent);8634}8635.peach-recovery-confirm-input:disabled {8636  opacity: 0.4;8637  cursor: not-allowed;8638}8639.peach-recovery-confirm-btn {8640  width: 100%;8641  margin-top: auto;8642}86438644/* ============================================================8645   Sync info sheet8646   ============================================================ */86478648.peach-sync-info-backdrop {8649  position: fixed;8650  inset: 0;8651  z-index: 200;8652  background: rgba(0, 0, 0, 0.55);8653  display: flex;8654  align-items: flex-end;8655  animation: peach-fade-in 200ms ease forwards;8656}86578658@keyframes peach-fade-in {8659  from { opacity: 0; }8660  to   { opacity: 1; }8661}86628663.peach-sync-info-sheet {8664  width: 100%;8665  background: var(--peach-bg-card, var(--peach-bg));8666  border-top-left-radius: 20px;8667  border-top-right-radius: 20px;8668  padding: 12px 24px 32px;8669  display: flex;8670  flex-direction: column;8671  gap: 20px;8672  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;8673}86748675@keyframes peach-sheet-up {8676  from { transform: translateY(100%); }8677  to   { transform: translateY(0); }8678}86798680.peach-sync-info-handle {8681  width: 36px;8682  height: 4px;8683  border-radius: 2px;8684  background: var(--peach-border);8685  margin: 0 auto 4px;8686  flex-shrink: 0;8687}86888689.peach-sync-info-title {8690  font-family: 'Cormorant Garamond', serif;8691  font-style: italic;8692  font-size: 26px;8693  font-weight: 600;8694  color: var(--peach-t0);8695  margin: 0;8696  line-height: 1.2;8697}86988699.peach-sync-info-body {8700  display: flex;8701  flex-direction: column;8702  gap: 14px;8703}87048705.peach-sync-info-point {8706  display: flex;8707  gap: 12px;8708  align-items: flex-start;8709  font-size: 14px;8710  color: var(--peach-t2);8711  line-height: 1.6;8712  margin: 0;8713}87148715.peach-sync-info-icon {8716  color: var(--peach-accent);8717  font-size: 16px;8718  flex-shrink: 0;8719  margin-top: 1px;8720}87218722.peach-sync-info-actions {8723  display: flex;8724  flex-direction: column;8725  gap: 12px;8726  margin-top: 4px;8727}87288729.peach-sync-info-pro-link {8730  background: none;8731  border: none;8732  font-size: 13px;8733  color: var(--peach-t3);8734  cursor: pointer;8735  padding: 0;8736  font-family: inherit;8737  text-align: center;8738  transition: color 150ms ease;8739}87408741.peach-sync-info-pro-link:hover {8742  color: var(--peach-accent);8743}87448745.peach-btn--full {8746  width: 100%;8747}87488749/* ── Sync screen ── */87508751.peach-sync-coming-soon {8752  display: flex;8753  align-items: flex-start;8754  gap: 10px;8755  padding: 12px 14px;8756  background: var(--peach-s1);8757  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);8758  border-radius: 10px;8759}8760.peach-sync-coming-soon__icon {8761  flex-shrink: 0;8762  color: var(--peach-accent);8763  margin-top: 1px;8764  line-height: 0;8765}8766.peach-sync-coming-soon__title {8767  font-family: 'Cormorant Garamond', serif;8768  font-weight: 500;8769  font-size: 13px;8770  color: var(--peach-accent);8771  margin: 0 0 5px;8772  line-height: 1.3;8773}8774.peach-sync-coming-soon__body {8775  font-size: 12px;8776  color: var(--peach-t1);8777  line-height: 1.55;8778  margin: 0;8779}87808781.peach-sync-screen {8782  display: flex;8783  flex-direction: column;8784  height: 100%;8785}87868787.peach-sync-content {8788  flex: 1;8789  overflow-y: auto;8790  padding: 24px 20px 40px;8791  display: flex;8792  flex-direction: column;8793  gap: 24px;8794}87958796/* Intro (State A) */8797.peach-sync-headline {8798  font-family: 'Cormorant Garamond', serif;8799  font-style: italic;8800  font-size: 28px;8801  font-weight: 600;8802  color: var(--peach-t0);8803  margin: 0 0 10px;8804  line-height: 1.2;8805}88068807.peach-sync-intro-body {8808  font-size: 14px;8809  color: var(--peach-t1);8810  line-height: 1.6;8811  margin: 0;8812}88138814.peach-sync-pro-note {8815  display: flex;8816  flex-direction: column;8817  gap: 8px;8818  background: var(--peach-t3);8819  border-radius: 10px;8820  padding: 12px 14px;8821}88228823.peach-sync-pro-note-text {8824  font-size: 12px;8825  color: var(--peach-t2);8826  line-height: 1.5;8827  margin: 0;8828}88298830.peach-sync-pro-link {8831  background: none;8832  border: none;8833  font-size: 12px;8834  color: var(--peach-accent);8835  cursor: pointer;8836  padding: 0;8837  font-family: inherit;8838  text-align: left;8839}88408841/* Status (State C) */8842.peach-sync-status {8843  padding: 12px 0;8844  border-bottom: 1px solid var(--peach-border);8845}88468847.peach-sync-status-row {8848  display: flex;8849  align-items: center;8850  gap: 8px;8851}88528853.peach-sync-dot {8854  width: 7px;8855  height: 7px;8856  border-radius: 50%;8857  flex-shrink: 0;8858}88598860.peach-sync-dot--green { background: var(--peach-health-ok); }8861.peach-sync-dot--amber { background: var(--peach-accent); }88628863.peach-sync-status-text {8864  font-family: 'IBM Plex Mono', monospace;8865  font-size: 11px;8866  color: var(--peach-t2);8867}88688869/* Paired devices */8870.peach-sync-section {8871  display: flex;8872  flex-direction: column;8873  gap: 2px;8874}88758876.peach-sync-section-label {8877  font-family: 'IBM Plex Mono', monospace;8878  font-size: 10px;8879  letter-spacing: 0.1em;8880  color: var(--peach-t3);8881  margin: 0 0 10px;8882}88838884.peach-sync-device-row {8885  display: flex;8886  justify-content: space-between;8887  align-items: baseline;8888  padding: 10px 0;8889  border-bottom: 1px solid var(--peach-border);8890  gap: 12px;8891}88928893.peach-sync-device-name {8894  font-size: 14px;8895  color: var(--peach-t1);8896}88978898.peach-sync-device-meta {8899  font-family: 'IBM Plex Mono', monospace;8900  font-size: 11px;8901  color: var(--peach-t3);8902  white-space: nowrap;8903}89048905.peach-sync-hub-note {8906  padding: 14px 16px;8907  border: 1px solid var(--peach-border);8908  border-radius: 10px;8909  display: flex;8910  flex-direction: column;8911  gap: 6px;8912  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8913}89148915.peach-sync-hub-note-title {8916  font-size: 13px;8917  font-weight: 600;8918  color: var(--peach-t0);8919  margin: 0;8920}89218922.peach-sync-hub-note-body {8923  font-size: 12px;8924  color: var(--peach-t2);8925  line-height: 1.6;8926  margin: 0;8927}89288929/* Action buttons */8930.peach-sync-actions {8931  display: flex;8932  gap: 10px;8933  flex-wrap: wrap;8934}89358936/* Upgrade prompt (State B) */8937.peach-sync-upgrade {8938  display: flex;8939  flex-direction: column;8940  gap: 12px;8941  padding: 16px;8942  border: 1px solid var(--peach-border);8943  border-radius: 10px;8944}89458946.peach-sync-upgrade-text {8947  font-size: 13px;8948  color: var(--peach-t2);8949  line-height: 1.6;8950  margin: 0;8951}89528953/* Network note */8954.peach-sync-network-note {8955  font-size: 12px;8956  color: var(--peach-t3);8957  line-height: 1.6;8958  margin: 0;8959}89608961/* Advanced */8962.peach-sync-advanced {8963  margin-top: auto;8964  padding-top: 16px;8965  border-top: 1px solid var(--peach-border);8966}89678968.peach-sync-advanced-toggle {8969  display: flex;8970  align-items: center;8971  gap: 8px;8972  background: none;8973  border: none;8974  font-family: 'IBM Plex Mono', monospace;8975  font-size: 11px;8976  letter-spacing: 0.08em;8977  color: var(--peach-t3);8978  cursor: pointer;8979  padding: 0;8980  text-transform: uppercase;8981}89828983.peach-sync-advanced-chevron {8984  display: inline-block;8985  transition: transform 200ms ease;8986  font-size: 10px;8987}89888989.peach-sync-advanced-chevron.is-open {8990  transform: rotate(90deg);8991}89928993.peach-sync-advanced-content {8994  margin-top: 14px;8995}89968997.peach-sync-advanced-row {8998  display: flex;8999  justify-content: space-between;9000  align-items: center;9001  gap: 16px;9002}90039004.peach-sync-advanced-title {9005  font-size: 14px;9006  color: var(--peach-t1);9007  margin: 0 0 2px;9008}90099010.peach-sync-advanced-subtitle {9011  font-size: 12px;9012  color: var(--peach-t3);9013  margin: 0;9014  line-height: 1.5;9015}90169017/* ── Notes Mode ── */90189019/* Overlay that crossfades over the vault */9020.peach-notes-overlay {9021  position: fixed;9022  inset: 0;9023  z-index: 90;9024  opacity: 0;9025  pointer-events: none;9026  animation: peach-mode-in 220ms ease-in forwards;9027}90289029.peach-notes-overlay.is-visible {9030  opacity: 1;9031  pointer-events: auto;9032}90339034@keyframes peach-mode-in {9035  from { opacity: 0; }9036  to   { opacity: 1; }9037}90389039/* Top-level notes surface */9040.peach-notes-mode {9041  position: absolute;9042  inset: 0;9043  background:9044    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 5%, transparent) 0%, transparent 62%),9045    var(--peach-bg);9046  display: flex;9047  flex-direction: column;9048}90499050/* Rune canvas positioned behind content */9051.peach-note-rune-canvas {9052  position: absolute;9053  inset: 0;9054  width: 100%;9055  height: 100%;9056  pointer-events: none;9057  z-index: 0;9058}90599060/* TOC wrapper */9061.peach-notes-toc-wrapper {9062  position: absolute;9063  inset: 0;9064  z-index: 1;9065  opacity: 1;9066  pointer-events: auto;9067  transition: opacity 200ms ease;9068}90699070.peach-notes-toc-wrapper.is-hidden {9071  opacity: 0;9072  pointer-events: none;9073}90749075/* Editor wrapper */9076.peach-notes-editor-wrapper {9077  position: absolute;9078  inset: 0;9079  z-index: 2;9080  opacity: 0;9081  pointer-events: none;9082  transition: opacity 200ms ease;9083}90849085.peach-notes-editor-wrapper.is-visible {9086  opacity: 1;9087  pointer-events: auto;9088}90899090/* TOC inner */9091.peach-notes-toc {9092  position: relative;9093  display: flex;9094  flex-direction: column;9095  height: 100%;9096  padding-top: env(safe-area-inset-top, 0px);9097  padding-bottom: env(safe-area-inset-bottom, 0px);9098}90999100/* Shared header */9101.peach-notes-header {9102  display: flex;9103  align-items: center;9104  padding: 12px 16px;9105  gap: 12px;9106  flex-shrink: 0;9107  min-height: 52px;9108  position: relative;9109  z-index: 2;9110}91119112.peach-notes-back {9113  font-size: 22px;9114  color: var(--peach-t2);9115  background: none;9116  border: none;9117  padding: 4px;9118  cursor: pointer;9119  line-height: 1;9120  flex-shrink: 0;9121  transition: color 150ms ease;9122  -webkit-tap-highlight-color: transparent;9123}91249125.peach-notes-back:active { color: var(--peach-t0); }91269127.peach-notes-header-title {9128  flex: 1;9129  font-family: 'Cormorant Garamond', serif;9130  font-style: italic;9131  font-size: 22px;9132  color: var(--peach-t0);9133  text-align: center;9134}91359136.peach-notes-header--editor {9137  display: grid;9138  grid-template-columns: 36px minmax(0, 1fr) 36px;9139}91409141.peach-notes-header--editor .peach-notes-back,9142.peach-notes-header--editor .peach-notes-header-actions {9143  width: 36px;9144}91459146.peach-notes-header--editor .peach-notes-header-title {9147  cursor: pointer;9148}91499150.peach-notes-header-actions {9151  display: flex;9152  gap: 8px;9153  flex-shrink: 0;9154}91559156.peach-notes-header-btn {9157  width: 36px;9158  height: 36px;9159  display: flex;9160  align-items: center;9161  justify-content: center;9162  background: none;9163  border: none;9164  color: var(--peach-t2);9165  cursor: pointer;9166  border-radius: 8px;9167  font-size: 16px;9168  transition: color 150ms ease, background 150ms ease;9169  -webkit-tap-highlight-color: transparent;9170}91719172.peach-notes-header-btn:active {9173  background: rgba(255,255,255,0.06);9174  color: var(--peach-t0);9175}91769177/* The header + glyph is larger than the search svg so the two right-side9178 * buttons feel visually balanced. The base .peach-notes-header-btn caps font9179 * at 16px which would render the + too small. */9180.peach-notes-new-btn-icon {9181  font-size: 22px;9182  font-weight: 300;9183  line-height: 1;9184}91859186.peach-notes-search-btn svg {9187  display: block;9188  transform: translate(0.5px, 2.5px);9189}91909191/* Inline search bar */9192.peach-notes-search-input {9193  flex: 1;9194  background: none;9195  border: none;9196  outline: none;9197  font-family: 'IBM Plex Mono', monospace;9198  font-size: 13px;9199  color: var(--peach-t0);9200  padding: 4px 0;9201  letter-spacing: 0.02em;9202}92039204.peach-notes-search-input::placeholder {9205  color: var(--peach-t3);9206}92079208/* TOC list */9209.peach-notes-list-container {9210  flex: 1;9211  overflow-y: auto;9212  overflow-x: hidden;9213  scrollbar-width: none;9214  -webkit-overflow-scrolling: touch;9215  overscroll-behavior: contain;9216  position: relative;9217  z-index: 1;9218}92199220.peach-notes-list-container::-webkit-scrollbar { display: none; }92219222/* Note row */9223.peach-note-row {9224  position: relative;9225  display: grid;9226  grid-template-columns: 44px 8px 1fr 8px auto;9227  align-items: center;9228  min-height: 72px;9229  padding: 16px 20px;9230  border-bottom: 0.5px solid var(--peach-border);9231  cursor: pointer;9232  overflow: hidden;9233  touch-action: pan-y;9234  user-select: none;9235  -webkit-user-select: none;9236  -webkit-tap-highlight-color: transparent;9237}92389239.peach-note-row:first-child {9240  border-top: 0.5px solid var(--peach-border);9241}92429243.peach-note-row:active {9244  background: rgba(255,255,255,0.02);9245}92469247.peach-note-numeral {9248  font-family: 'Cormorant Garamond', serif;9249  font-style: italic;9250  font-size: 15px;9251  color: var(--peach-accent);9252  text-align: right;9253  line-height: 1;9254  flex-shrink: 0;9255}92569257.peach-note-title-gap { /* grid spacer */ }92589259.peach-note-title {9260  font-family: 'Cormorant Garamond', serif;9261  font-style: italic;9262  font-size: 18px;9263  color: var(--peach-t0);9264  line-height: 1.3;9265  min-width: 0;9266  overflow-wrap: break-word;9267}92689269.peach-note-title-match {9270  color: var(--peach-accent);9271}92729273.peach-note-date {9274  font-family: 'IBM Plex Mono', monospace;9275  font-size: 11px;9276  color: var(--peach-t1);9277  opacity: 0.62;9278  white-space: nowrap;9279  text-align: right;9280  flex-shrink: 0;9281  grid-column: 5;9282}92839284/* Swipe underlays */9285.peach-note-row-underlay {9286  position: absolute;9287  inset: 0;9288  display: flex;9289  align-items: center;9290  padding: 0 24px;9291  font-family: 'IBM Plex Mono', monospace;9292  font-size: 11px;9293  letter-spacing: 0.1em;9294  pointer-events: none;9295  z-index: 0;9296}92979298.peach-note-row-underlay--delete {9299  background: #8B2020;9300  color: rgba(255,255,255,0.9);9301  justify-content: flex-end;9302}93039304.peach-note-row-underlay--archive {9305  background: var(--peach-accent);9306  color: #0C0A06;9307  justify-content: flex-start;9308}93099310/* Delete confirm strip */9311.peach-note-delete-confirm {9312  position: absolute;9313  inset: 0;9314  background: var(--peach-bg);9315  display: flex;9316  align-items: center;9317  gap: 12px;9318  padding: 0 20px;9319  font-family: 'IBM Plex Mono', monospace;9320  font-size: 11px;9321  color: var(--peach-t1);9322  letter-spacing: 0.04em;9323  animation: peach-delete-confirm-in 150ms ease both;9324  z-index: 10;9325}93269327@keyframes peach-delete-confirm-in {9328  from { opacity: 0; }9329  to   { opacity: 1; }9330}93319332.peach-note-delete-confirm-btn {9333  background: #8B2020;9334  color: rgba(255,255,255,0.9);9335  border: none;9336  border-radius: 6px;9337  padding: 4px 10px;9338  font-family: 'IBM Plex Mono', monospace;9339  font-size: 10px;9340  cursor: pointer;9341  letter-spacing: 0.06em;9342}93439344.peach-note-delete-cancel-btn {9345  background: none;9346  border: none;9347  color: var(--peach-t3);9348  font-family: 'IBM Plex Mono', monospace;9349  font-size: 10px;9350  cursor: pointer;9351  letter-spacing: 0.06em;9352  padding: 4px 6px;9353}93549355/* + New note button */9356.peach-notes-new-btn {9357  font-family: 'IBM Plex Mono', monospace;9358  font-size: 12px;9359  color: var(--peach-t3);9360  text-align: center;9361  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));9362  background: none;9363  border: none;9364  width: 100%;9365  cursor: pointer;9366  letter-spacing: 0.04em;9367  transition: color 150ms ease;9368  -webkit-tap-highlight-color: transparent;9369}93709371.peach-notes-new-btn:active { color: var(--peach-accent); }93729373/* Empty state */9374.peach-notes-empty {9375  display: flex;9376  flex-direction: column;9377  align-items: center;9378  justify-content: center;9379  flex: 1;9380  padding: 48px 32px;9381  gap: 16px;9382}93839384.peach-notes-empty-text {9385  font-family: 'Cormorant Garamond', serif;9386  font-style: italic;9387  font-size: 20px;9388  color: var(--peach-t3);9389  text-align: center;9390  margin: 0;9391  line-height: 1.4;9392  white-space: pre-line;9393}93949395/* ── Editor surface ── */93969397.peach-note-editor-surface {9398  position: absolute;9399  inset: 0;9400  background:9401    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 5%, transparent) 0%, transparent 62%),9402    var(--peach-bg);9403  display: flex;9404  flex-direction: column;9405  padding-top: env(safe-area-inset-top, 0px);9406}94079408.peach-note-editor-scroll {9409  flex: 1;9410  overflow-y: auto;9411  overflow-x: hidden;9412  scrollbar-width: none;9413  -webkit-overflow-scrolling: touch;9414  padding: 0 20px 120px;9415  position: relative;9416  z-index: 1;9417}94189419.peach-note-editor-scroll::-webkit-scrollbar { display: none; }94209421/* Desktop toolbar (always visible above body) */9422.peach-note-toolbar-desktop-inline {9423  display: grid;9424  grid-template-columns: repeat(4, minmax(0, 1fr)) auto repeat(5, minmax(0, 1fr));9425  align-items: center;9426  gap: 0;9427  padding: 5px 0 10px;9428  margin-bottom: 10px;9429  border-bottom: 0.5px solid var(--peach-border);9430}94319432/* Title field */9433.peach-note-title-field {9434  font-family: var(--font-display);9435  font-style: italic;9436  font-size: clamp(34px, 13vw, 44px);9437  font-weight: 400;9438  color: var(--peach-t0);9439  line-height: 0.98;9440  letter-spacing: -0.015em;9441  padding: 10px 0 2px;9442  outline: none;9443  min-height: 52px;9444  word-break: break-word;9445  position: relative;9446  z-index: 1;9447}94489449.peach-note-title-field:empty::before {9450  content: attr(data-placeholder);9451  color: var(--peach-t1);9452  opacity: 0.58;9453  pointer-events: none;9454}94559456/* Hairline separator */9457.peach-note-hairline {9458  height: 0.5px;9459  background: var(--peach-border);9460  margin: 14px 0 18px;9461  position: relative;9462  z-index: 1;9463}94649465/* Body field */9466.peach-note-body-field {9467  font-family: var(--font-display);9468  font-size: 17px;9469  color: var(--peach-t1);9470  line-height: 1.72;9471  padding: 0;9472  outline: none;9473  min-height: 240px;9474  word-break: break-word;9475  position: relative;9476  z-index: 1;9477}94789479.peach-note-body-field:empty::before {9480  content: attr(data-placeholder);9481  color: var(--peach-t1);9482  opacity: 0.56;9483  font-style: italic;9484  pointer-events: none;9485}94869487.peach-note-body-field h2 {9488  font-family: var(--font-display);9489  font-style: italic;9490  font-size: 22px;9491  font-weight: 600;9492  color: var(--peach-t0);9493  margin: 20px 0 8px;9494}94959496.peach-note-body-field blockquote {9497  border-left: 2px solid var(--peach-accent);9498  margin: 12px 0;9499  padding-left: 16px;9500  color: var(--peach-t1);9501  font-style: italic;9502}95039504.peach-note-body-field ul,9505.peach-note-body-field ol {9506  padding-left: 20px;9507  margin: 8px 0;9508}95099510.peach-note-body-field li {9511  margin: 4px 0;9512}95139514.peach-note-body-field hr {9515  border: none;9516  border-top: 0.5px solid var(--peach-border);9517  margin: 16px 0;9518}95199520/* Saved indicator */9521.peach-note-saved-indicator {9522  font-family: var(--font-mono);9523  font-size: 11px;9524  color: var(--peach-t3);9525  letter-spacing: 0.04em;9526  text-align: right;9527  padding: 6px 24px;9528  flex-shrink: 0;9529  transition: opacity 300ms ease;9530  pointer-events: none;9531  position: relative;9532  z-index: 1;9533}95349535/* Mobile keyboard toolbar */9536.peach-note-toolbar-mobile {9537  display: flex;9538  align-items: center;9539  padding: 8px 16px;9540  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));9541  background: var(--peach-bg);9542  border-top: 0.5px solid var(--peach-border);9543  gap: 0;9544  flex-shrink: 0;9545  position: relative;9546  z-index: 10;9547}95489549.peach-note-toolbar-btn {9550  min-width: 0;9551  width: auto;9552  height: 30px;9553  display: flex;9554  align-items: center;9555  justify-content: center;9556  background: none;9557  border: none;9558  border-radius: 4px;9559  cursor: pointer;9560  color: var(--peach-t1);9561  transition: background 100ms ease, color 100ms ease;9562  -webkit-tap-highlight-color: transparent;9563}95649565.peach-note-toolbar-btn svg {9566  width: 14px;9567  height: 14px;9568  fill: none;9569  stroke: currentColor;9570  stroke-width: 1.15;9571  stroke-linecap: round;9572  stroke-linejoin: round;9573  pointer-events: none;9574}95759576.peach-note-toolbar-mobile .peach-note-toolbar-btn {9577  flex: 1 1 0;9578  height: 36px;9579}95809581.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }9582.peach-note-toolbar-btn:hover,9583.peach-note-toolbar-btn:active {9584  background: var(--peach-t4);9585  color: var(--peach-t0);9586}95879588.peach-note-toolbar-divider {9589  width: 0.5px;9590  height: 20px;9591  background: var(--peach-border);9592  margin: 0 4px;9593  flex-shrink: 0;9594}95959596.peach-note-toolbar-spacer { display: none; }95979598/* Desktop: larger headline in TOC */9599@media (min-width: 400px) {9600  .peach-notes-header-title:not(.is-breadcrumb) {9601    font-size: 32px;9602  }96039604  .peach-note-row {9605    min-height: 64px;9606    padding: 14px 16px;9607  }9608}96099610/* Flying title — shared element during expansion/collapse */96119612/* ─── Light theme overrides ───────────────────────────────────────────────9613   Tokens that cannot be expressed as variable substitutions — hardcoded9614   context-specific values that need separate light-mode rules. */96159616/* Settings section headers: use text-label (#79766F) per restoration brief —9617   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY9618   presence without fighting the light parchment background. */9619.light .peach-settings-sub-label,9620[data-theme="light"] .peach-settings-sub-label,9621.light .peach-settings-nav-label,9622[data-theme="light"] .peach-settings-nav-label {9623  color: #79766F;9624}96259626/* Secondary action buttons (ghost / subtle): filled with input-well surface9627   so they read as recessed against the parchment card background. */9628.light .peach-btn--ghost:not(.peach-icon-btn),9629[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {9630  background: #EEE7DD;9631  border-color: #DDD5CB;9632  color: #1A1208;9633}9634.light .peach-icon-btn,9635[data-theme="light"] .peach-icon-btn {9636  background: transparent;9637  border-color: transparent;9638}9639.light .peach-btn--subtle,9640[data-theme="light"] .peach-btn--subtle {9641  background: #EEE7DD;9642  border-color: #DDD5CB;9643}96449645/* Wide secondary action button on the lock screen — override the9646   hardcoded dark-mode rgba values with warm parchment equivalents. */9647.light .peach-lock-secondary,9648[data-theme="light"] .peach-lock-secondary {9649  background: #EEE7DD;9650  border-color: #DDD5CB;9651  color: #1A1208;9652}9653.light .peach-lock-secondary:hover,9654[data-theme="light"] .peach-lock-secondary:hover {9655  background: #F0E9DF;9656}96579658/* Entry row hover: bg-row lifts the row above the card surface. */9659.light .peach-entry-row:hover,9660[data-theme="light"] .peach-entry-row:hover {9661  background: #F2EBE1;9662}9663.light .peach-entry-row.is-active,9664[data-theme="light"] .peach-entry-row.is-active {9665  background: #F2EBE1;9666}9667.light .peach-entry-row.is-selected,9668[data-theme="light"] .peach-entry-row.is-selected {9669  background: #F5EDE2;9670}96719672/* ──────────────────────────────────────────────────────────────────────────9673   Pair-device flow — bird-stage animation (Phase 1)9674   See src/popup/components/PairingBirds.tsx and the brief §6.2.9675   Three-act animation gated on the [data-phase] attribute of9676   .peach-pair-pair; child layers (birds, sound arcs, flight wave, dot)9677   each react via either pose class or visibility flag.9678   Tokens: accent surfaces use var(--peach-accent); bird illustration9679   colours are baked into the SVG per the brand-peach exception in §3.1.9680   ────────────────────────────────────────────────────────────────────── */96819682.peach-pair-pair {9683  position: absolute;9684  inset: 0;9685  z-index: 3;9686  display: flex;9687  flex-direction: column;9688  padding: 14px 12px 12px;9689  width: 100%;9690  box-sizing: border-box;9691  gap: 0;9692  background:9693    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9694    var(--peach-bg);9695  color: var(--peach-t0);9696  overflow-y: auto;9697  overflow-x: hidden;9698  scrollbar-width: none;9699  isolation: isolate;9700  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9701}9702@keyframes peach-pair-overlay-in {9703  from { opacity: 0; transform: translateY(8px); }9704  to   { opacity: 1; transform: translateY(0); }9705}9706.peach-pair-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }9707.peach-pair-pair::before {9708  content: '';9709  position: absolute;9710  inset: 0;9711  border-radius: inherit;9712  pointer-events: none;9713  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9714  z-index: 0;9715}9716.peach-pair-pair > * { position: relative; z-index: 1; }97179718/* Header --------------------------------------------------------------- */9719.peach-pair-head {9720  display: flex; align-items: center; gap: 10px;9721}9722.peach-pair-back {9723  width: 32px; height: 32px;9724  display: inline-flex; align-items: center; justify-content: center;9725  background: transparent;9726  border: none;9727  border-radius: 8px;9728  color: var(--peach-t1);9729  cursor: pointer;9730  transition: color 0.15s ease, box-shadow 0.15s ease;9731}9732.peach-pair-back:hover {9733  color: var(--peach-accent);9734  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);9735}9736.peach-pair-title {9737  font-family: var(--font-display, Georgia, serif);9738  font-style: italic;9739  font-size: 24px;9740  font-weight: 500;9741  letter-spacing: 0.005em;9742  color: var(--peach-t0);9743  line-height: 1;9744}9745.peach-pair-head-spacer { flex: 1; }97469747/* Chip row ------------------------------------------------------------- */9748.peach-pair-chip-row {9749  display: flex;9750  align-items: center;9751  justify-content: flex-start;9752  margin-top: 12px;9753}9754.peach-pair-chip {9755  display: inline-flex; align-items: center; gap: 8px;9756  padding: 5px 10px 5px 8px;9757  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);9758  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);9759  border-radius: 999px;9760  font-family: var(--peach-mono, ui-monospace, monospace);9761  font-size: 11px;9762  letter-spacing: 0.04em;9763  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));9764}9765.peach-pair-chip-dot {9766  width: 6px; height: 6px; border-radius: 50%;9767  background: var(--peach-accent);9768  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);9769}9770.peach-pair-chip[data-phase="paired"] {9771  background: color-mix(in srgb, #4f9eda 12%, transparent);9772  border-color: color-mix(in srgb, #4f9eda 28%, transparent);9773  color: #76b6e8;9774}9775.peach-pair-chip[data-phase="paired"] .peach-pair-chip-dot {9776  background: #76b6e8;9777  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);9778}9779.peach-pair-chip[data-phase="timeout"],9780.peach-pair-chip[data-phase="mic_denied"],9781.peach-pair-chip[data-phase="version_mismatch"],9782.peach-pair-chip[data-phase="handshake_failed"] {9783  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);9784  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);9785  color: var(--peach-warn, #d29257);9786}9787.peach-pair-chip[data-phase="timeout"] .peach-pair-chip-dot,9788.peach-pair-chip[data-phase="mic_denied"] .peach-pair-chip-dot,9789.peach-pair-chip[data-phase="version_mismatch"] .peach-pair-chip-dot,9790.peach-pair-chip[data-phase="handshake_failed"] .peach-pair-chip-dot {9791  background: var(--peach-warn, #d29257);9792  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);9793}979497959796/* Bird stage ----------------------------------------------------------- */9797.peach-pair-stage {9798  position: relative;9799  height: 180px;9800  margin: 8px auto 18px;9801  width: 300px;9802  display: flex;9803  align-items: flex-end;9804  justify-content: center;9805}9806.peach-pair-bird-slot {9807  position: absolute;9808  bottom: 0;9809  width: 108px;9810  height: 108px;9811  transform-origin: 50% 95%;9812}9813.peach-pair-bird-slot-desktop { left: 12px; }9814.peach-pair-bird-slot-mobile { right: 12px; }9815.peach-pair-stage.act-handshake .peach-pair-bird-slot-desktop,9816.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop {9817  transform: translateX(6px);9818  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9819}9820.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop { --bb-x: 6px; }9821.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { --bb-x: -6px; }9822.peach-pair-stage.act-paired .peach-pair-bird-slot {9823  animation: peach-pair-happy-bob 1.2s ease-in-out infinite;9824}9825.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { animation-delay: 0.2s; }9826@keyframes peach-pair-happy-bob {9827  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9828  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9829}98309831/* Bird internal -------------------------------------------------------- */9832.peach-pair-bird {9833  width: 108px;9834  height: 108px;9835  transform-origin: 50% 95%;9836}9837.peach-pair-bird svg { width: 100%; height: 100%; overflow: visible; }98389839.peach-pair-bird-body {9840  transform-origin: 50% 80%;9841  animation: peach-pair-bird-bob 2.4s ease-in-out infinite;9842}9843.peach-pair-bird-pose-chirping .peach-pair-bird-body { animation-duration: 1.4s; }9844.peach-pair-bird-pose-happy .peach-pair-bird-body   { animation: peach-pair-bird-celebrate 0.9s ease-in-out infinite; }9845.peach-pair-bird-pose-attentive .peach-pair-bird-body { animation-duration: 2.0s; }98469847@keyframes peach-pair-bird-bob {9848  0%, 100% { transform: translateY(0) rotate(0deg); }9849  50%      { transform: translateY(-2px) rotate(-1deg); }9850}9851@keyframes peach-pair-bird-celebrate {9852  0%, 100% { transform: translateY(0) rotate(0deg); }9853  25%      { transform: translateY(-4px) rotate(-2deg); }9854  75%      { transform: translateY(-4px) rotate(2deg); }9855}98569857.peach-pair-bird-wing {9858  transform-origin: 50% 50%;9859  animation: peach-pair-bird-flap 0.9s ease-in-out infinite;9860}9861.peach-pair-bird-pose-happy .peach-pair-bird-wing { animation-duration: 0.35s; }9862.peach-pair-bird-pose-attentive .peach-pair-bird-wing { animation-duration: 1.4s; }9863@keyframes peach-pair-bird-flap {9864  0%, 100% { transform: scaleY(1); }9865  50%      { transform: scaleY(0.85); }9866}98679868.peach-pair-bird-head-group {9869  transform-origin: 95px 52px;9870  animation: peach-pair-bird-bob-head 2.6s ease-in-out infinite;9871}9872.peach-pair-bird-pose-chirping .peach-pair-bird-head-group { animation-duration: 0.45s; }9873.peach-pair-bird-pose-attentive .peach-pair-bird-head-group { animation: none; }9874@keyframes peach-pair-bird-bob-head {9875  0%, 100% { transform: rotate(0deg); }9876  50%      { transform: rotate(3deg); }9877}98789879.peach-pair-bird-eye-group { transform-origin: center; }9880.peach-pair-bird-blink { animation: peach-pair-bird-blink 4s ease-in-out infinite; }9881@keyframes peach-pair-bird-blink {9882  0%, 92%, 100% { transform: scaleY(1); }9883  95%           { transform: scaleY(0.1); }9884}98859886.peach-pair-bird-aura {9887  animation: peach-pair-bird-aura 2.6s ease-in-out infinite;9888}9889.peach-pair-bird-pose-happy .peach-pair-bird-aura { animation-duration: 1.4s; }9890@keyframes peach-pair-bird-aura {9891  0%, 100% { opacity: 0; }9892  50%      { opacity: 0.18; }9893}98949895.peach-pair-bird-tail {9896  transform-origin: 50% 100%;9897  animation: peach-pair-bird-tail-wag 3s ease-in-out infinite;9898}9899@keyframes peach-pair-bird-tail-wag {9900  0%, 100% { transform: rotate(0deg); }9901  50%      { transform: rotate(2deg); }9902}99039904.peach-pair-bird-pose-happy .peach-pair-bird-shadow { animation: peach-pair-bird-shadow-pulse 0.9s ease-in-out infinite; }9905@keyframes peach-pair-bird-shadow-pulse {9906  0%, 100% { transform: scaleX(1); opacity: 0.45; }9907  50%      { transform: scaleX(0.92); opacity: 0.3; }9908}99099910/* Per-pose variants --------------------------------------------------- */9911.peach-pair-bird-pose-sad .peach-pair-bird-head-group { transform: translateY(4px) rotate(8deg); }9912.peach-pair-bird-pose-sad .peach-pair-bird-tuft { transform: rotate(15deg) translateY(2px); }9913.peach-pair-bird-pose-sad .peach-pair-bird-tail { transform: rotate(8deg) translateY(2px); }9914.peach-pair-bird-pose-hidden { opacity: 0; }99159916/* Rest state — bird stage at idle pose, primary CTA + paired list */9917.peach-pair-pair[data-phase="idle"] .peach-pair-stage {9918  height: 160px;9919}99209921/* Sound arcs ----------------------------------------------------------- */9922.peach-pair-arcs {9923  position: absolute;9924  top: 18px;9925  width: 96px;9926  height: 70px;9927  pointer-events: none;9928}9929.peach-pair-arcs-right { right: -60px; }9930.peach-pair-arcs-left  { left: -60px; transform: scaleX(-1); }9931.peach-pair-arc {9932  position: absolute;9933  top: 50%;9934  left: 0;9935  width: 40px;9936  height: 40px;9937  margin-top: -20px;9938  border: 1.2px solid #f4d5a8;9939  border-color: transparent #f4d5a8 transparent transparent;9940  border-radius: 50%;9941  opacity: 0;9942  animation: peach-pair-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9943}9944@keyframes peach-pair-arc-expand {9945  0%   { transform: scale(0.4); opacity: 0; }9946  20%  { opacity: 0.9; }9947  100% { transform: scale(1.6); opacity: 0; }9948}99499950/* Flight wave ---------------------------------------------------------- */9951.peach-pair-flight-track {9952  position: absolute;9953  inset: 32px 36px 38px 36px;9954  pointer-events: none;9955}9956.peach-pair-flight-wave {9957  position: absolute;9958  top: 8px;9959  left: 76px;9960  right: 76px;9961  height: 60px;9962  width: auto;9963  opacity: 0;9964  transition: opacity 0.15s ease;9965  stroke: #f4d5a8;9966  fill: none;9967}9968.peach-pair-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9969.peach-pair-flight-wave.is-visible { opacity: 1; }9970.peach-pair-flight-path,9971.peach-pair-flight-path-2 {9972  stroke-dasharray: 240;9973  stroke-dashoffset: 240;9974  stroke-linecap: round;9975  fill: none;9976}9977.peach-pair-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9978.peach-pair-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9979.peach-pair-flight-wave.is-visible .peach-pair-flight-path {9980  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9981}9982.peach-pair-flight-wave.is-visible .peach-pair-flight-path-2 {9983  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9984}9985@keyframes peach-pair-fly {9986  0%   { stroke-dashoffset: 240; opacity: 0; }9987  20%  { opacity: 1; }9988  100% { stroke-dashoffset: -120; opacity: 0; }9989}99909991/* Connection dot ------------------------------------------------------- */9992.peach-pair-dot {9993  position: absolute;9994  top: 50%; left: 50%;9995  transform: translate(-50%, -50%);9996  width: 40px; height: 40px;9997  opacity: 0;9998  pointer-events: none;9999  transition: opacity 0.3s ease;10000  color: var(--peach-accent);10001}10002.peach-pair-dot.is-visible { opacity: 1; }10003.peach-pair-dot-glow {10004  position: absolute; top: 50%; left: 50%;10005  transform: translate(-50%, -50%);10006  width: 38px; height: 38px;10007  border-radius: 50%;10008  filter: blur(10px);10009  opacity: 0.55;10010  background: var(--peach-accent);10011  animation: peach-pair-dot-bloom 1.4s ease-out;10012}10013.peach-pair-dot-core {10014  position: absolute; top: 50%; left: 50%;10015  transform: translate(-50%, -50%);10016  width: 8px; height: 8px;10017  border-radius: 50%;10018  background: var(--peach-accent);10019  box-shadow: 0 0 12px currentColor;10020  animation: peach-pair-dot-core 1.4s ease-out;10021}10022.peach-pair-dot-ring {10023  position: absolute; top: 50%; left: 50%;10024  width: 60px; height: 60px;10025  transform: translate(-50%, -50%);10026  animation: peach-pair-dot-ring 1.4s linear;10027  stroke: var(--peach-accent);10028}10029@keyframes peach-pair-dot-bloom {10030  0%   { width: 4px; height: 4px; opacity: 0; }10031  35%  { width: 60px; height: 60px; opacity: 0.7; }10032  100% { width: 38px; height: 38px; opacity: 0.55; }10033}10034@keyframes peach-pair-dot-core {10035  0%   { width: 0; height: 0; }10036  35%  { width: 12px; height: 12px; }10037  100% { width: 8px; height: 8px; }10038}10039@keyframes peach-pair-dot-ring {10040  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }10041  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }10042  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }10043}1004410045/* Motes — drift upward across the stage */10046.peach-pair-motes {10047  position: absolute;10048  inset: 0;10049  pointer-events: none;10050}10051.peach-pair-mote {10052  position: absolute;10053  width: 2px; height: 2px;10054  background: color-mix(in srgb, var(--peach-text) 35%, transparent);10055  border-radius: 50%;10056  bottom: 32px;10057  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);10058  opacity: 0;10059  animation: peach-pair-mote-drift 6s linear infinite;10060  animation-delay: calc(var(--mote-i, 0) * 0.7s);10061}10062@keyframes peach-pair-mote-drift {10063  0%   { transform: translateY(0); opacity: 0; }10064  10%  { opacity: 0.6; }10065  90%  { opacity: 0.1; }10066  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }10067}1006810069/* Status copy ---------------------------------------------------------- */10070.peach-pair-copy-host {10071  margin: 4px 4px 10px;10072  text-align: center;10073  min-height: 50px;10074}10075.peach-pair-copy {10076  animation: peach-pair-copy-in 0.35s ease both;10077}10078@keyframes peach-pair-copy-in {10079  from { opacity: 0; transform: translateY(4px); }10080  to   { opacity: 1; transform: translateY(0); }10081}10082.peach-pair-headline {10083  font-family: var(--font-display, Georgia, serif);10084  font-style: italic;10085  font-size: 20px;10086  font-weight: 500;10087  line-height: 1.2;10088  letter-spacing: 0.005em;10089  color: var(--peach-t0);10090  margin-bottom: 6px;10091}10092.peach-pair-copy-listening .peach-pair-headline,10093.peach-pair-copy-chirping .peach-pair-headline,10094.peach-pair-copy-idle .peach-pair-headline {10095  font-family: inherit;10096  font-style: normal;10097  font-weight: 500;10098  font-size: 15px;10099  color: var(--peach-t0);10100  letter-spacing: 0;10101}10102.peach-pair-copy-paired .peach-pair-headline {10103  color: var(--peach-t0);10104  font-weight: 600;10105}10106.peach-pair-sub {10107  font-size: 12.5px;10108  line-height: 1.45;10109  color: var(--peach-t1);10110  max-width: 280px;10111  margin: 0 auto;10112  text-wrap: pretty;10113}1011410115/* Status action -------------------------------------------------------- */10116.peach-pair-action {10117  margin: 2px 4px 10px;10118  margin-top: auto;10119  display: flex;10120  flex-direction: column;10121  gap: 8px;10122}10123.peach-pair-action-waiting {10124  display: flex;10125  align-items: center;10126  justify-content: space-between;10127  gap: 12px;10128}10129.peach-pair-cancel {10130  min-width: 96px;10131}10132.peach-pair-listening {10133  display: inline-flex; align-items: center; gap: 4px;10134  font-family: var(--peach-mono, ui-monospace, monospace);10135  font-size: 9.5px;10136  text-transform: uppercase;10137  letter-spacing: 0.12em;10138  color: var(--peach-t1);10139  padding: 8px 10px;10140}10141.peach-pair-listen-dot {10142  width: 4px; height: 4px;10143  border-radius: 50%;10144  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);10145  animation: peach-pair-listen-pulse 1.2s ease-in-out infinite;10146}10147.peach-pair-listen-dot:nth-child(2) { animation-delay: 0.2s; }10148.peach-pair-listen-dot:nth-child(3) { animation-delay: 0.4s; }10149.peach-pair-listen-label { margin-left: 6px; }10150@keyframes peach-pair-listen-pulse {10151  0%, 100% { opacity: 0.25; transform: scale(0.9); }10152  50%      { opacity: 1;     transform: scale(1.15); }10153}1015410155.peach-pair-action-handshake {10156  display: flex;10157  flex-direction: column;10158  align-items: center;10159  gap: 8px;10160  padding: 8px 4px;10161}10162.peach-pair-meter {10163  width: 100%;10164  max-width: 280px;10165  height: 2px;10166  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);10167  border-radius: 2px;10168  position: relative;10169  overflow: hidden;10170}10171.peach-pair-meter-bar {10172  position: absolute;10173  top: 0; bottom: 0;10174  width: 30%;10175  left: -30%;10176  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);10177  animation: peach-pair-meter-sweep 1.4s ease-in-out infinite;10178}10179@keyframes peach-pair-meter-sweep {10180  0%   { left: -30%; }10181  100% { left: 100%; }10182}10183.peach-pair-meter-label {10184  font-family: var(--peach-mono, ui-monospace, monospace);10185  font-size: 9.5px;10186  text-transform: uppercase;10187  letter-spacing: 0.14em;10188  color: var(--peach-t1);10189}1019010191.peach-pair-action-paired {10192  display: flex;10193  align-items: center;10194  gap: 10px;10195}10196.peach-pair-device-confirm {10197  flex: 1;10198  display: inline-flex;10199  align-items: center;10200  gap: 8px;10201  padding: 9px 10px 9px 12px;10202  border-radius: 10px;10203  background: color-mix(in srgb, #76b6e8 12%, transparent);10204  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);10205  font-size: 12.5px;10206  color: var(--peach-t0);10207  min-width: 0;10208}10209.peach-pair-device-confirm-glyph {10210  display: inline-flex;10211  color: #76b6e8;10212}10213.peach-pair-device-confirm-name {10214  flex: 1;10215  overflow: hidden;10216  text-overflow: ellipsis;10217  white-space: nowrap;10218}10219.peach-pair-device-confirm-trust {10220  font-family: var(--peach-mono, ui-monospace, monospace);10221  font-size: 9.5px;10222  text-transform: uppercase;10223  letter-spacing: 0.1em;10224  color: #76b6e8;10225  padding: 2px 6px;10226  border-radius: 4px;10227  background: color-mix(in srgb, #76b6e8 14%, transparent);10228}10229.peach-pair-done {10230  min-width: 80px;10231}10232.peach-pair-retry {10233  align-self: center;10234  display: block;10235  margin: 6px auto 0;10236  min-width: 120px;10237}10238.peach-pair-mic-help {10239  font-size: 12px;10240  color: var(--peach-t1);10241  text-align: center;10242  max-width: 320px;10243  margin: 0 auto;10244}1024510246/* Rest state — bird stage at idle pose, primary CTA + paired list */10247.peach-pair-pair[data-phase="idle"] .peach-pair-stage {10248  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */10249  height: 160px;10250}10251.peach-pair-pair-start {10252  width: 100%;10253  display: inline-flex;10254  align-items: center;10255  justify-content: center;10256  gap: 8px;10257  padding: 11px 14px;10258  border-radius: 10px;10259  background: var(--peach-accent);10260  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);10261  color: #1a0905;10262  font-family: inherit;10263  font-size: 13px;10264  font-weight: 600;10265  letter-spacing: 0.01em;10266  cursor: pointer;10267  transition: filter 0.15s ease, transform 0.1s ease;10268}10269.peach-pair-pair-start:hover { filter: brightness(1.08); }10270.peach-pair-pair-start:active { transform: translateY(1px); }1027110272.peach-pair-paired-section {10273  margin-top: 14px;10274  display: flex;10275  flex-direction: column;10276  gap: 8px;10277}10278.peach-pair-paired-heading {10279  margin: 0;10280  font-family: var(--peach-mono, ui-monospace, monospace);10281  font-size: 10px;10282  font-weight: 500;10283  letter-spacing: 0.14em;10284  text-transform: uppercase;10285  color: var(--peach-t1);10286}1028710288/* Footer --------------------------------------------------------------- */10289.peach-pair-foot {10290  margin: 10px -4px -2px;10291  margin-top: auto;10292}10293.peach-pair-foot-divider {10294  height: 1px;10295  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);10296  margin-bottom: 10px;10297}10298.peach-pair-foot-text {10299  font-size: 11px;10300  line-height: 1.5;10301  color: var(--peach-t1);10302  text-align: center;10303  padding: 0 4px;10304  text-wrap: pretty;10305}1030610307/* Screen-reader-only live region. Kept off the visual flow but read by10308   assistive tech as the pairing phase advances. */10309.peach-sr-only {10310  position: absolute;10311  width: 1px; height: 1px;10312  padding: 0; margin: -1px;10313  overflow: hidden;10314  clip: rect(0, 0, 0, 0);10315  white-space: nowrap;10316  border: 0;10317}1031810319/* Reduced motion — stage simplifies to opacity transitions only */10320@media (prefers-reduced-motion: reduce) {10321  .peach-pair-bird-body,10322  .peach-pair-bird-head-group,10323  .peach-pair-bird-beak,10324  .peach-pair-bird-wing,10325  .peach-pair-bird-tuft,10326  .peach-pair-bird-tail,10327  .peach-pair-bird-eye-group,10328  .peach-pair-bird-aura,10329  .peach-pair-arc,10330  .peach-pair-flight-path,10331  .peach-pair-flight-path-2,10332  .peach-pair-dot-glow,10333  .peach-pair-dot-core,10334  .peach-pair-dot-ring,10335  .peach-pair-mote,10336  .peach-pair-meter-bar,10337  .peach-pair-listen-dot,10338  .peach-pair-bird-slot,10339  .peach-pair-bird-slot-mobile {10340    animation: none !important;10341    transition: opacity 0.2s linear !important;10342  }10343}1034410345/* ─────────────────────────────────────────────────────────────────10346   Settings → Sync surface. Wraps the same bird10347   animation used by the pairing flow with a paired-devices list and10348   the "Pair a device" CTA.10349   ───────────────────────────────────────────────────────────────── */10350.peach-pair-settings {10351  position: absolute;10352  inset: 0;10353  z-index: 3;10354  display: flex;10355  flex-direction: column;10356  gap: 18px;10357  padding: 14px 12px 12px;10358  width: 100%;10359  box-sizing: border-box;10360  overflow-y: auto;10361  overflow-x: hidden;10362  /* Same warm surface as the pairing screen — unifies the two views. */10363  background:10364    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),10365    var(--peach-bg);10366  color: var(--peach-t0);10367  isolation: isolate;10368  /* Hide native scrollbar — content fits 99% of the time and a chunky10369     gutter ruins the surface. */10370  scrollbar-width: none;10371  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;10372}10373.peach-pair-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }10374.peach-pair-settings::before {10375  content: '';10376  position: absolute;10377  inset: 0;10378  pointer-events: none;10379  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);10380  z-index: 0;10381}10382.peach-pair-settings > * { position: relative; z-index: 1; }1038310384.peach-pair-settings--pairing {10385  padding: 0;10386  align-items: stretch;10387  justify-content: stretch;10388  background: none;10389  isolation: auto;10390}10391.peach-pair-settings--pairing::before { display: none; }1039210393.peach-pair-settings-header {10394  display: flex;10395  align-items: center;10396  gap: 10px;10397}10398.peach-pair-settings-title {10399  margin: 0;10400  font-family: var(--font-display, Georgia, serif);10401  font-style: italic;10402  font-size: 24px;10403  font-weight: 500;10404  line-height: 1;10405  color: var(--peach-t0);10406  letter-spacing: 0.005em;10407}10408.peach-pair-settings-section {10409  margin: 6px 0 -4px;10410  font-size: 11px;10411  font-weight: 600;10412  letter-spacing: 0.08em;10413  text-transform: uppercase;10414  color: var(--peach-text-muted);10415}10416.peach-pair-settings-error {10417  font-size: 12px;10418  padding: 8px 10px;10419  border-radius: 8px;10420  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);10421  color: var(--peach-text);10422}10423.peach-pair-settings-footer {10424  margin-top: auto;10425  padding-top: 18px;10426  font-size: 11.5px;10427  line-height: 1.5;10428  color: var(--peach-text-muted);10429  text-align: center;10430}1043110432/* Hero card shown when no devices are paired yet. */10433.peach-pair-hero {10434  display: flex;10435  flex-direction: column;10436  align-items: center;10437  gap: 12px;10438  padding: 20px 12px 8px;10439  text-align: center;10440}10441.peach-pair-hero-svg {10442  display: block;10443  max-width: 100%;10444  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));10445}10446.peach-pair-hero-headline {10447  margin: 0;10448  font-family: var(--font-display, Georgia, serif);10449  font-style: italic;10450  font-size: 20px;10451  font-weight: 500;10452  line-height: 1.2;10453  letter-spacing: 0.005em;10454  color: var(--peach-t0);10455}10456.peach-pair-hero-sub {10457  margin: 0;10458  font-size: 13px;10459  line-height: 1.5;10460  color: var(--peach-t1);10461  max-width: 320px;10462  text-wrap: pretty;10463}1046410465.peach-pair-pair-cta {10466  display: flex;10467  justify-content: center;10468  padding: 4px 0 6px;10469}10470.peach-pair-pair-button {10471  display: inline-flex;10472  align-items: center;10473  gap: 8px;10474  min-width: 220px;10475  justify-content: center;10476}10477.peach-pair-pair-button-icon {10478  flex: 0 0 auto;10479}1048010481/* Paired devices list. Roomy rows that look at home next to the rest10482   of Settings; stale rows get a soft warm-warning border tint. */10483.peach-pair-device-list {10484  list-style: none;10485  margin: 0;10486  padding: 0;10487  display: flex;10488  flex-direction: column;10489  gap: 8px;10490}10491.peach-pair-device-row {10492  display: flex;10493  align-items: center;10494  gap: 12px;10495  padding: 12px;10496  border-radius: 10px;10497  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10498  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);10499}10500.peach-pair-device-row[data-stale="true"] {10501  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);10502}10503.peach-pair-device-icon {10504  width: 32px;10505  height: 32px;10506  display: flex;10507  align-items: center;10508  justify-content: center;10509  border-radius: 8px;10510  color: var(--peach-text);10511  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);10512}10513.peach-pair-device-info {10514  flex: 1;10515  display: flex;10516  flex-direction: column;10517  gap: 2px;10518  min-width: 0;10519}10520.peach-pair-device-name {10521  font-size: 14px;10522  font-weight: 600;10523  color: var(--peach-text);10524  overflow: hidden;10525  text-overflow: ellipsis;10526  white-space: nowrap;10527}10528.peach-pair-device-meta {10529  font-size: 11.5px;10530  color: var(--peach-text-muted);10531  display: flex;10532  flex-wrap: wrap;10533  align-items: center;10534  gap: 8px;10535}10536.peach-pair-device-badge {10537  font-size: 10.5px;10538  font-weight: 500;10539  letter-spacing: 0.02em;10540  padding: 2px 6px;10541  border-radius: 999px;10542  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);10543  color: var(--peach-text);10544}10545.peach-pair-device-stale {10546  font-size: 10.5px;10547  font-weight: 500;10548  color: var(--peach-warn, #d29257);10549}10550.peach-pair-device-remove {10551  flex: 0 0 auto;10552  color: var(--peach-text-muted);10553}10554.peach-pair-device-remove:hover {10555  color: var(--peach-danger, #c25b4a);10556}10557.peach-pair-unpair-confirm {10558  display: flex;10559  gap: 6px;10560  align-items: center;10561}1056210563/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */10564.peach-pair-pro-card {10565  position: relative;10566  margin: 18px 12px;10567  padding: 18px 20px 22px;10568  border-radius: 22px;10569  background:10570    radial-gradient(140% 90% at 50% 0%,10571      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,10572      transparent 60%),10573    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10574  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);10575  box-shadow:10576    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,10577    0 18px 40px -24px rgba(0, 0, 0, 0.45);10578  display: flex;10579  flex-direction: column;10580  align-items: center;10581  gap: 10px;10582  text-align: center;10583  overflow: hidden;10584}10585.peach-pair-pro-stage {10586  position: relative;10587  width: 220px;10588  height: 140px;10589  display: flex;10590  align-items: flex-end;10591  justify-content: center;10592  margin-bottom: 2px;10593}10594.peach-pair-pro-bird-slot {10595  width: 140px;10596  height: 132px;10597  display: flex;10598  align-items: flex-end;10599  justify-content: center;10600  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));10601}10602.peach-pair-pro-bird-slot .peach-pair-bird {10603  width: 100%;10604  height: 100%;10605}10606.peach-pair-pro-bird-slot .peach-pair-bird svg {10607  width: 100%;10608  height: 100%;10609  overflow: visible;10610}10611.peach-pair-pro-headline {10612  margin: 4px 0 0;10613  font-family: var(--font-display, "Cormorant Garamond", serif);10614  font-style: italic;10615  font-size: 19px;10616  font-weight: 500;10617  letter-spacing: 0.01em;10618  color: var(--peach-t0);10619  max-width: 280px;10620  line-height: 1.25;10621}10622.peach-pair-pro-body {10623  margin: 0;10624  font-size: 13px;10625  line-height: 1.55;10626  color: var(--peach-t1);10627  max-width: 300px;10628}10629.peach-pair-pro-cta {10630  margin-top: 4px;10631}10632.peach-pair-pro-foot {10633  margin: 2px 0 0;10634  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;10635  font-size: 0.625rem;10636  letter-spacing: 0.08em;10637  text-transform: uppercase;10638  color: var(--peach-t2);10639  opacity: 0.75;10640}1064110642/* Shell border and shadow in light mode: match dark mode's near-invisible10643   border weight so the popup frame looks the same in both themes. */10644.light .peach-shell,10645.light .peach-screen {10646  border-color: rgba(26, 18, 8, 0.07);10647  box-shadow:10648    0 2px 8px rgba(80, 56, 32, 0.08),10649    0 14px 48px rgba(80, 56, 32, 0.10),10650    0 0 0 1px rgba(26, 18, 8, 0.04);10651}1065210653/* HOLE 4: the revoke confirmation carries its own disclosure, so it needs the10654   full row width rather than sitting inline beside the device name. */10655.peach-settings-row:has(> .peach-unpair-confirm) { flex-wrap: wrap; }10656.peach-unpair-confirm {10657  display: flex;10658  flex-direction: column;10659  gap: 8px;10660  width: 100%;10661}10662.peach-unpair-confirm-note {10663  margin: 0;10664  font-size: 0.6875rem;10665  line-height: 1.5;10666  color: var(--peach-t2);10667}1066810669/* Sync mode selector — three named choices (public / private / off). Replaces10670   the old binary "local network only" toggle; see docs/sync-lan-retirement.md. */10671.peach-sync-mode {10672  display: flex;10673  align-items: flex-start;10674  gap: 10px;10675  width: 100%;10676  text-align: left;10677  padding: 10px 12px;10678  margin-top: 8px;10679  border-radius: 10px;10680  border: 1px solid var(--peach-border);10681  background: color-mix(in srgb, var(--peach-t0) 3%, transparent);10682  color: var(--peach-t1);10683  cursor: pointer;10684  transition: border-color var(--peach-dur-80) var(--peach-curve-arrival),10685              background-color var(--peach-dur-80) var(--peach-curve-arrival);10686}10687.peach-sync-mode:hover:not(:disabled) {10688  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);10689}10690.peach-sync-mode.is-active {10691  border-color: var(--peach-accent);10692  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);10693}10694.peach-sync-mode:disabled { opacity: 0.6; cursor: default; }10695.peach-sync-mode-main { display: flex; flex-direction: column; gap: 3px; flex: 1; }10696.peach-sync-mode-title { font-size: 12px; }10697.peach-sync-mode-sub {10698  font-size: 11px;10699  line-height: 1.5;10700  color: var(--peach-t2);10701}10702.peach-sync-mode-pip {10703  flex: none;10704  margin-top: 3px;10705  width: 12px; height: 12px;10706  border-radius: 50%;10707  border: 1px solid var(--peach-t3);10708}10709.peach-sync-mode.is-active .peach-sync-mode-pip {10710  border-color: var(--peach-accent);10711  background:10712    radial-gradient(circle at 50% 50%, var(--peach-accent) 0 42%, transparent 44%);10713}10714.peach-sync-mode-disclosure {10715  margin: 10px 2px 0;10716  font-size: 11px;10717  line-height: 1.5;10718  color: var(--peach-t2);10719}10720.peach-sync-mode-warn { color: var(--peach-breach); }1072110722/* Compact form, used mid-pairing: a quiet line, not a decision to make. */10723.peach-sync-mode-summary {10724  margin: 8px 2px 0;10725  font-size: 11px;10726  color: var(--peach-t2);10727  text-align: center;10728}10729.peach-sync-mode-change {10730  background: none;10731  border: none;10732  padding: 0;10733  font: inherit;10734  color: var(--peach-accent);10735  text-decoration: underline;10736  cursor: pointer;10737}