popup.css

253.5 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: 12px 14px 8px;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: 1px solid transparent;3961  border-bottom: 2px solid transparent;3962  cursor: pointer;3963  padding: 4px 2px;3964  font-family: "IBM Plex Mono", monospace;3965  font-style: normal;3966  font-size: 0.6875rem;3967  letter-spacing: 0.04em;3968  text-transform: uppercase;3969  color: var(--peach-t2);3970  transition: color 150ms ease;3971  flex: 1;3972  min-width: 0;3973  text-align: center;3974  white-space: nowrap;3975  overflow: hidden;3976  text-overflow: ellipsis;3977}3978.peach-restore-tab:hover {3979  color: var(--peach-t0);3980}3981.peach-restore-tab.is-active {3982  color: var(--peach-t0);3983  border-bottom-color: var(--peach-accent);3984}39853986/* ── Content area ─────────────────────────────────────────────────────── */39873988.peach-restore-content {3989  padding: 16px 16px 14px;3990  display: flex;3991  flex-direction: column;3992  gap: 8px;3993  overflow: hidden;3994  scrollbar-width: none;3995  flex: 1;3996}3997.peach-restore-content::-webkit-scrollbar { display: none; }3998.peach-restore-content > * {3999  overflow: hidden;4000  scrollbar-width: none;4001}4002.peach-restore-content > *::-webkit-scrollbar { display: none; }40034004/* ── Shared tab inner layout ──────────────────────────────────────────── */40054006.peach-rt-symbols,4007.peach-rt-csv,4008.peach-rt-phone,4009.peach-restore-codex {4010  display: flex;4011  flex-direction: column;4012  gap: 8px;4013  overflow: hidden;4014}40154016.peach-restore-codex {4017  min-height: 0;4018  justify-content: center;4019}40204021.peach-restore-codex-title {4022  margin: 0;4023  font-family: var(--font-display);4024  font-size: 1rem;4025  font-style: italic;4026  color: var(--peach-t0);4027}40284029.peach-restore-codex-copy {4030  margin: 0;4031  font-size: 0.75rem;4032  line-height: 1.5;4033  color: var(--peach-t1);4034}40354036.peach-restore-codex-button {4037  width: 100%;4038  justify-content: center;4039}40404041.peach-rt-submit {4042  width: 100%;4043}40444045.peach-rt-error {4046  margin: 0;4047  font-size: 0.6875rem;4048  color: var(--peach-breach);4049  line-height: 1.4;4050}40514052/* ── PeachScript tab ──────────────────────────────────────────────────── */40534054.peach-restore-symbols-textarea {4055  font-family: 'PeachScript', monospace;4056  font-size: 13px;4057  line-height: 1.9;4058  letter-spacing: 0.1em;4059  word-break: break-all;4060  resize: none;4061  width: 100%;4062  min-height: 56px;4063  max-height: 72px;4064  overflow: hidden;4065  scrollbar-width: none;4066  -ms-overflow-style: none;4067  box-sizing: border-box;4068  padding: 6px 8px;4069  border-radius: 8px;4070  border: 1px solid var(--peach-t3);4071  background: rgba(240, 232, 216, 0.03);4072  color: var(--peach-t0);4073}4074.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }4075.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40764077.peach-restore-symbols-pass {4078  width: 100%;4079  box-sizing: border-box;4080  padding: 7px 10px;4081  border-radius: 8px;4082  border: 1px solid var(--peach-t3);4083  background: rgba(240, 232, 216, 0.03);4084  color: var(--peach-t0);4085  font-size: 0.8125rem;4086}4087.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }4088.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40894090.peach-rt-divider {4091  text-align: center;4092  font-size: 0.6875rem;4093  color: var(--peach-t2);4094  font-style: italic;4095}40964097.peach-rt-file-label {4098  width: 100%;4099  justify-content: center;4100}41014102.peach-rt-anim-canvas {4103  width: 100%;4104  height: 180px;4105  border-radius: 10px;4106  overflow: hidden;4107  display: block;4108}41094110/* ── CSV tab ──────────────────────────────────────────────────────────── */41114112.peach-rt-csv-sources {4113  margin: 0;4114  font-size: 0.6875rem;4115  color: var(--peach-t2);4116  line-height: 1.5;4117  text-align: center;4118}41194120.peach-rt-csv-warning {4121  margin: 0;4122  font-family: "IBM Plex Mono", monospace;4123  font-size: 0.5625rem;4124  letter-spacing: 0.12em;4125  color: var(--peach-breach);4126  text-align: center;4127}41284129/* ── From Phone tab ───────────────────────────────────────────────────── */41304131.peach-rt-phone-code {4132  margin: 0;4133  text-align: center;4134  font-family: "IBM Plex Mono", monospace;4135  font-size: 22px;4136  letter-spacing: 0.18em;4137  color: var(--peach-t0);4138}41394140.peach-rt-phone-qr {4141  display: block;4142  width: 96px;4143  height: 96px;4144  margin: 0 auto;4145  border-radius: 6px;4146  image-rendering: pixelated;4147  overflow: hidden;4148}41494150.peach-rt-phone-hint {4151  margin: 0;4152  font-size: 0.6875rem;4153  color: var(--peach-t2);4154  line-height: 1.55;4155  text-align: center;4156}41574158/* ── Intro popup ──────────────────────────────────────────────────────── */41594160.peach-restore-intro-overlay {4161  position: absolute;4162  inset: 0;4163  z-index: 100;4164  display: flex;4165  align-items: center;4166  justify-content: center;4167  padding: 20px;4168  background: rgba(12, 10, 6, 0.7);4169  backdrop-filter: blur(4px);4170  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4171}41724173.peach-restore-intro-card {4174  width: 100%;4175  display: flex;4176  flex-direction: column;4177  gap: 12px;4178  padding: 22px 20px 20px;4179  border-radius: 16px;4180  border: 1px solid var(--peach-t3);4181  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));4182  backdrop-filter: blur(4px);4183  -webkit-backdrop-filter: blur(4px);4184  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);4185}41864187.peach-restore-intro-headline {4188  margin: 0;4189  font-family: var(--font-display);4190  font-style: italic;4191  font-size: 20px;4192  font-weight: 400;4193  color: var(--peach-t0);4194}41954196.peach-restore-intro-body {4197  display: flex;4198  flex-direction: column;4199  gap: 8px;4200}4201.peach-restore-intro-body p {4202  margin: 0;4203  font-size: 0.75rem;4204  color: var(--peach-t1);4205  line-height: 1.5;4206}42074208.peach-restore-intro-btn {4209  width: 100%;4210  margin-top: 4px;4211}42124213/* Snapshot restore panel */4214.peach-snapshot-panel {4215  gap: 10px;4216  overflow-y: auto;4217  max-height: 340px;4218}4219.peach-snapshot-list {4220  display: flex;4221  flex-direction: column;4222  gap: 4px;4223}4224.peach-snapshot-row {4225  display: flex;4226  align-items: center;4227  justify-content: space-between;4228  width: 100%;4229  padding: 8px 10px;4230  border-radius: 8px;4231  border: 1px solid rgba(240, 232, 216, 0.07);4232  background: transparent;4233  cursor: pointer;4234  transition: border-color 120ms, background 120ms;4235  text-align: left;4236  gap: 8px;4237}4238.peach-snapshot-row:hover {4239  border-color: rgba(240, 232, 216, 0.14);4240  background: rgba(240, 232, 216, 0.03);4241}4242.peach-snapshot-row.is-selected {4243  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4244  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);4245}4246.peach-snapshot-time {4247  font-size: 11.5px;4248  color: var(--peach-t0);4249  flex: 1;4250}4251.peach-snapshot-count {4252  font-family: "IBM Plex Mono", monospace;4253  font-size: 0.625rem;4254  color: var(--peach-t2);4255  flex-shrink: 0;4256}4257.peach-snapshot-confirm {4258  display: flex;4259  flex-direction: column;4260  gap: 8px;4261  padding-top: 10px;4262  border-top: 1px solid rgba(240, 232, 216, 0.06);4263}4264.peach-snapshot-warning {4265  display: flex;4266  align-items: flex-start;4267  gap: 6px;4268  font-size: 10.5px;4269  color: rgba(220, 80, 60, 0.85);4270  line-height: 1.55;4271}4272.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }4273.peach-snapshot-confirm-row {4274  display: flex;4275  gap: 6px;4276  align-items: center;4277}4278.peach-snapshot-restore-btn {4279  width: 100%;4280}4281.peach-lock-hero--unlock .peach-lock-hero-art {4282  display: none;4283}42844285.peach-card {4286  border: 1px solid var(--peach-t3);4287  border-radius: 18px;4288  background:4289    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);4290  box-shadow:4291    inset 0 0 0 1px var(--peach-border-accent),4292    inset 0 1px 0 rgba(240, 232, 216, 0.04),4293    0 12px 32px rgba(0, 0, 0, 0.14);4294  overflow: hidden;4295}42964297.peach-card-active {4298  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4299  box-shadow:4300    inset 0 1px 0 rgba(240, 232, 216, 0.05),4301    0 16px 38px rgba(0, 0, 0, 0.18),4302    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4303}43044305.peach-card-disabled {4306  opacity: 0.72;4307}43084309.peach-card-header {4310  width: 100%;4311  padding: 13px 16px 11px;4312  background: transparent;4313  color: var(--peach-t0);4314  display: flex;4315  justify-content: space-between;4316  align-items: center;4317  text-align: left;4318  font-size: 0.75rem;4319}43204321.peach-card-body {4322  padding: 0 16px 16px;4323  display: grid;4324  gap: 9px;4325}43264327.peach-card-tag {4328  color: var(--peach-t2);4329  font-family: "IBM Plex Mono", monospace;4330  font-size: 0.5625rem;4331  letter-spacing: 0.12em;4332  text-transform: uppercase;4333}43344335.peach-empty-copy {4336  display: grid;4337  gap: 6px;4338  color: var(--peach-t1);4339  font-size: 0.8125rem;4340}43414342.peach-lock-submit {4343  width: 100%;4344  box-shadow:4345    0 1px 0 rgba(255,255,255,0.10) inset,4346    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4347    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4348    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4349}43504351.peach-lock-secondary {4352  width: 100%;4353  border-color: var(--peach-t3);4354  background: rgba(240, 232, 216, 0.02);4355}43564357.peach-lock-secondary:hover {4358  background: rgba(240, 232, 216, 0.04);4359}43604361.peach-lock-note {4362  max-width: none;4363  line-height: 1.55;4364  margin: 0;4365}43664367.peach-overlay-action {4368  font-size: 0.625rem;4369  padding: 4px 8px;4370  letter-spacing: 0.06em;4371  min-width: 44px;4372  text-align: center;4373}43744375.peach-inline-action {4376  flex-shrink: 0;4377  font-size: 0.5625rem;4378  letter-spacing: 0.1em;4379  text-transform: uppercase;4380  padding: 4px 7px;4381}4382.peach-password-toggle-btn {4383  display: inline-flex;4384  align-items: center;4385  justify-content: center;4386  min-width: 30px;4387  min-height: 26px;4388  padding: 0 7px;4389  border: 1px solid var(--peach-t3);4390  border-radius: 999px;4391  background: rgba(240, 232, 216, 0.04);4392  color: var(--peach-t2);4393  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4394}4395.peach-password-toggle-btn:hover {4396  border-color: var(--peach-t2);4397  color: var(--peach-t0);4398  background: rgba(240, 232, 216, 0.06);4399}44004401.peach-new-textarea {4402  width: 100%;4403  min-height: 88px;4404  resize: vertical;4405  border: 0;4406  outline: none;4407  background: transparent;4408  color: var(--peach-t1);4409  font-family: "IBM Plex Mono", monospace;4410  font-size: 0.75rem;4411  line-height: 1.65;4412  caret-color: var(--peach-accent);4413}44144415.peach-new-textarea::placeholder {4416  color: var(--peach-t2);4417  opacity: 0.7;4418}44194420.peach-settings-actions {4421  display: grid;4422  gap: 8px;4423}44244425.peach-sync-section-label {4426  font-size: 0.6875rem;4427  color: var(--peach-t2);4428  text-transform: uppercase;4429  letter-spacing: 0.05em;4430}44314432.peach-sync-network-note {4433  margin: 0 0 6px;4434  font-size: 0.75rem;4435  color: var(--peach-t2);4436  line-height: 1.4;4437}44384439.peach-settings-row--tappable {4440  background: none;4441  border: none;4442  width: 100%;4443  text-align: left;4444  cursor: pointer;4445  color: var(--peach-t1);4446  font-size: 0.8125rem;4447}4448.peach-settings-row--tappable:hover {4449  color: var(--peach-t0);4450}44514452.peach-sync-pro-hint {4453  display: flex;4454  flex-direction: column;4455  align-items: flex-start;4456  gap: 8px;4457  padding: 12px 0 4px;4458}44594460.peach-sync-device-row {4461  display: flex;4462  justify-content: space-between;4463  align-items: center;4464  padding: 6px 0;4465  border-bottom: 1px solid var(--peach-t3);4466}44674468.peach-sync-device-info {4469  display: flex;4470  flex-direction: column;4471  gap: 2px;4472}44734474.peach-sync-device-name {4475  font-size: 0.8125rem;4476  color: var(--peach-t0);4477}44784479.peach-sync-device-meta {4480  font-size: 0.6875rem;4481  color: var(--peach-t2);4482}44834484.peach-sync-status-dot {4485  display: inline-block;4486  width: 8px;4487  height: 8px;4488  border-radius: 50%;4489  vertical-align: middle;4490}44914492.peach-sync-remove-btn {4493  color: var(--peach-breach);4494}44954496.peach-sync-advanced-row {4497  display: flex;4498  justify-content: space-between;4499  align-items: center;4500  padding: 6px 0;4501  gap: 12px;4502}45034504.peach-sync-advanced-info {4505  display: flex;4506  flex-direction: column;4507  gap: 2px;4508  flex: 1;4509}45104511.peach-sync-advanced-name {4512  font-size: 0.8125rem;4513  color: var(--peach-t0);4514}45154516.peach-sync-reset-confirm {4517  display: flex;4518  flex-direction: column;4519  gap: 8px;4520  padding: 10px;4521  border: 1px solid var(--peach-breach);4522  border-radius: 10px;4523  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4524}45254526.peach-sync-reset-confirm-headline {4527  font-size: 0.8125rem;4528  font-weight: 600;4529  color: var(--peach-t0);4530  margin: 0;4531}45324533.peach-sync-reset-confirm-body {4534  font-size: 0.75rem;4535  color: var(--peach-t1);4536  margin: 0;4537  line-height: 1.4;4538}45394540.peach-btn--danger {4541  background: var(--peach-breach);4542  color: #fff;4543  border-color: var(--peach-breach);4544}4545.peach-btn--danger:hover:not(:disabled) {4546  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4547}4548.peach-btn--danger:disabled {4549  opacity: 0.55;4550  cursor: not-allowed;4551}45524553.peach-sync-hero-icon {4554  color: var(--peach-t1);4555  opacity: 0.85;4556}45574558.peach-import-preview {4559  margin-bottom: 12px;4560  max-height: 152px;4561  overflow-y: auto;4562  border: 1px solid var(--peach-t3);4563  border-radius: 10px;4564  padding: 8px 10px;4565  display: grid;4566  gap: 8px;4567  background: rgba(240, 232, 216, 0.02);4568}45694570.peach-import-preview-row {4571  display: flex;4572  justify-content: space-between;4573  gap: 10px;4574  font-size: 0.6875rem;4575  color: var(--peach-t1);4576}45774578.peach-import-preview-title {4579  color: var(--peach-t0);4580  flex: 1;4581  min-width: 0;4582  overflow: hidden;4583  text-overflow: ellipsis;4584  white-space: nowrap;4585}45864587.peach-import-preview-meta {4588  color: var(--peach-t2);4589  flex-shrink: 0;4590  max-width: 42%;4591  overflow: hidden;4592  text-overflow: ellipsis;4593  white-space: nowrap;4594}45954596.peach-import-preview-more {4597  color: var(--peach-t2);4598  font-size: 0.625rem;4599}46004601.peach-restore-copy {4602  margin: 0;4603  color: var(--peach-t1);4604  font-size: 0.6875rem;4605  line-height: 1.6;4606}46074608.peach-restore-warning {4609  padding: 10px 12px;4610  border-radius: 12px;4611  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4612  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4613  color: var(--peach-t0);4614  font-size: 0.6875rem;4615  line-height: 1.55;4616}46174618.peach-provider-chips {4619  display: flex;4620  flex-wrap: wrap;4621  gap: 6px;4622}46234624.peach-provider-chip {4625  display: inline-flex;4626  align-items: center;4627  padding: 5px 8px;4628  border-radius: 999px;4629  border: 1px solid var(--peach-t3);4630  background: rgba(240, 232, 216, 0.02);4631  color: var(--peach-t1);4632  font-family: "IBM Plex Mono", monospace;4633  font-size: 0.5rem;4634  letter-spacing: 0.08em;4635  text-transform: uppercase;4636}46374638.peach-restore-file,4639.peach-restore-input {4640  width: 100%;4641  border-radius: 10px;4642  border: 1px solid var(--peach-t3);4643  background: var(--peach-s2);4644  color: var(--peach-t0);4645  font-size: 0.75rem;4646}46474648.peach-restore-file {4649  padding: 9px 10px;4650}46514652.peach-restore-file::file-selector-button {4653  margin-right: 10px;4654  padding: 7px 10px;4655  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4656  border-radius: 999px;4657  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4658  color: var(--peach-t0);4659  font-size: 0.625rem;4660  letter-spacing: 0.08em;4661  text-transform: uppercase;4662  cursor: pointer;4663}46644665.peach-restore-input {4666  padding: 10px 12px;4667}46684669.peach-auth-grid {4670  display: grid;4671  gap: 10px;4672}46734674.peach-import-summary {4675  color: var(--peach-t1);4676  font-size: 0.75rem;4677  line-height: 1.6;4678  margin-bottom: 12px;4679}46804681.peach-restore-error {4682  color: rgba(220, 80, 60, 0.95);4683  font-size: 0.75rem;4684  line-height: 1.55;4685}46864687.peach-passkey-card {4688  max-width: 400px;4689  margin: auto 16px;4690  align-self: center;4691  width: calc(100% - 32px);4692}46934694/* Center the approval card vertically inside the overlay-view (which sets4695 * flex-direction: column without justify-content). Without this, the card4696 * sits at the top with a tall empty band below — looks unfinished on the4697 * 320px popup. */4698.peach-overlay-view:has(.peach-passkey-card) {4699  justify-content: center;4700}47014702.peach-pro-badge {4703  padding: 2px 6px;4704  border-radius: 999px;4705  font-family: var(--font-ui);4706  font-size: 0.625rem;4707  letter-spacing: 0.08em;4708  text-transform: uppercase;4709  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4710  color: var(--peach-accent);4711}47124713/* ── Shortcuts rebind table ─────────────────────────────────── */4714.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4715.peach-shortcut-row {4716  display: flex;4717  align-items: center;4718  gap: 10px;4719  padding: 6px 0;4720}4721.peach-shortcut-row-label {4722  flex: 1;4723  font-size: 0.75rem;4724  color: var(--peach-t0);4725}4726.peach-shortcut-chip {4727  min-width: 64px;4728  padding: 4px 10px;4729  border-radius: 6px;4730  border: 1px solid var(--peach-t3);4731  background: var(--peach-input-bg, var(--surface-card));4732  color: var(--peach-t0);4733  font-family: var(--font-mono);4734  font-size: 0.6875rem;4735  letter-spacing: 0.04em;4736  cursor: pointer;4737  text-align: center;4738  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4739}4740.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4741.peach-shortcut-chip.is-custom {4742  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4743  color: var(--peach-accent);4744}4745.peach-shortcut-chip.is-capturing {4746  border-color: var(--peach-accent);4747  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4748  color: var(--peach-accent);4749  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4750}4751@keyframes peach-shortcut-capture-pulse {4752  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4753  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4754}4755.peach-shortcut-reset {4756  background: transparent;4757  border: none;4758  cursor: pointer;4759  color: var(--peach-t2);4760  padding: 4px 6px;4761  border-radius: 5px;4762  font-size: 0.875rem;4763  line-height: 1;4764  transition: color 120ms ease, background 120ms ease;4765}4766.peach-shortcut-reset:hover {4767  color: var(--peach-t0);4768  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4769}4770.peach-shortcuts-conflict {4771  margin: 4px 0 0;4772  padding: 8px 10px;4773  border-radius: 7px;4774  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4775  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4776  font-family: var(--font-mono);4777  font-size: 0.6875rem;4778  color: var(--peach-t0);4779}47804781/* ── Help dialog overlay (? to open) ────────────────────────── */4782.peach-shortcuts-help-backdrop {4783  position: fixed;4784  inset: 0;4785  background: rgba(0, 0, 0, 0.55);4786  backdrop-filter: blur(2px);4787  display: flex;4788  align-items: center;4789  justify-content: center;4790  z-index: 1000;4791  animation: peach-help-fade-in 140ms ease forwards;4792}4793@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4794.peach-shortcuts-help-card {4795  width: min(320px, 92vw);4796  max-height: 80vh;4797  overflow-y: auto;4798  border-radius: 14px;4799  border: 1px solid var(--peach-t3);4800  background: var(--peach-bg);4801  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4802  padding: 16px 18px 18px;4803  display: flex;4804  flex-direction: column;4805  gap: 12px;4806}4807.peach-shortcuts-help-head {4808  display: flex; align-items: center; justify-content: space-between;4809}4810.peach-shortcuts-help-head h3 {4811  margin: 0;4812  font-family: var(--font-display);4813  font-style: italic;4814  font-weight: 400;4815  font-size: 22px;4816  color: var(--peach-t0);4817}4818.peach-shortcuts-help-close {4819  background: transparent;4820  border: none;4821  color: var(--peach-t2);4822  cursor: pointer;4823  font-size: 0.875rem;4824  padding: 4px 8px;4825  border-radius: 5px;4826}4827.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4828.peach-shortcuts-help-body ul {4829  list-style: none; padding: 0; margin: 4px 0 12px;4830  display: grid; gap: 8px;4831}4832.peach-shortcuts-help-body li {4833  display: flex; align-items: center; justify-content: space-between; gap: 12px;4834  font-size: 0.75rem; color: var(--peach-t0);4835}4836.peach-shortcuts-help-body kbd {4837  font-family: var(--font-mono);4838  font-size: 0.6875rem;4839  padding: 3px 8px;4840  border-radius: 6px;4841  background: var(--surface-card);4842  border: 1px solid var(--peach-t3);4843  color: var(--peach-accent);4844  letter-spacing: 0.04em;4845}48464847/* ── Pro promo on Account screen ────────────────────────────── */4848.peach-pro-promo {4849  position: relative;4850  border-radius: 14px;4851  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4852  background:4853    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4854    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4855    var(--surface-card);4856  overflow: hidden;4857  margin-bottom: 14px;4858}4859.peach-pro-promo-glow {4860  position: absolute;4861  inset: -40% -20% auto auto;4862  width: 220px; height: 220px;4863  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4864  pointer-events: none;4865  filter: blur(8px);4866}4867.peach-pro-promo-inner {4868  position: relative;4869  padding: 18px 18px 16px;4870}4871.peach-pro-promo-title {4872  font-family: var(--font-display);4873  font-style: italic;4874  font-weight: 400;4875  font-size: 28px;4876  line-height: 1;4877  letter-spacing: -0.005em;4878  color: var(--peach-t0);4879  margin: 0 0 4px;4880}4881.peach-pro-promo-tagline {4882  font-family: var(--font-mono);4883  font-size: 0.625rem;4884  letter-spacing: 0.06em;4885  color: var(--peach-t2);4886  margin: 0 0 14px;4887}4888.peach-pro-promo-list {4889  list-style: none;4890  margin: 0 0 16px;4891  padding: 0;4892  display: grid;4893  gap: 9px;4894}4895.peach-pro-promo-list li {4896  display: flex;4897  align-items: flex-start;4898  gap: 9px;4899  font-size: 0.75rem;4900  color: var(--peach-t1);4901  line-height: 1.4;4902}4903.peach-pro-promo-list svg {4904  width: 14px;4905  height: 14px;4906  flex-shrink: 0;4907  color: var(--peach-accent);4908  margin-top: 2px;4909}4910.peach-pro-promo-list span {4911  color: var(--peach-t0);4912}4913.peach-pro-promo-cta {4914  width: 100%;4915  background: var(--peach-accent);4916  color: #fff;4917  border: none;4918  padding: 9px 12px;4919  border-radius: 9px;4920  font-size: 0.75rem;4921  font-weight: 500;4922  font-family: var(--font-ui);4923  letter-spacing: 0.02em;4924  text-decoration: none;4925  display: inline-flex;4926  align-items: center;4927  justify-content: center;4928  cursor: pointer;4929  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4930  box-shadow: 0 2px 16px var(--peach-glow);4931}4932.peach-pro-promo-cta:hover {4933  filter: brightness(1.07);4934  box-shadow: 0 4px 24px var(--peach-glow);4935  transform: translateY(-1px);4936}4937.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }49384939.peach-pro-or-divider {4940  display: flex;4941  align-items: center;4942  gap: 10px;4943  margin: 4px 0 12px;4944  font-family: var(--font-mono);4945  font-size: 0.625rem;4946  letter-spacing: 0.06em;4947  color: var(--peach-t2);4948  text-transform: uppercase;4949}4950.peach-pro-or-divider::before,4951.peach-pro-or-divider::after {4952  content: "";4953  flex: 1;4954  height: 1px;4955  background: var(--peach-t3);4956}49574958.peach-loading {4959  position: absolute;4960  inset: 0;4961  display: flex;4962  align-items: center;4963  justify-content: center;4964  background: var(--bg);4965  animation: peach-loading-pulse 1.2s ease-in-out infinite;4966}49674968@keyframes peach-loading-pulse {4969  0%, 100% { opacity: 0.6; }4970  50% { opacity: 1; }4971}49724973/* ── Health Dashboard ─────────────────────────────────────────────────── */4974.peach-health-body {4975  flex: 1;4976  overflow-y: auto;4977  display: flex;4978  flex-direction: column;4979  /* Hide the platform scrollbar — every other scrollable surface in the4980   * popup hides it; the Health view was the one outlier and it ruined the4981   * polish. Behavior unchanged, just no rail rendered. */4982  scrollbar-width: none;4983  -ms-overflow-style: none;4984}4985.peach-health-body::-webkit-scrollbar { display: none; }49864987/* Loading screen for the Vault Health view. The advanced report computation4988 * can run for a few seconds on a large vault — without a clear loading4989 * screen the surface looked broken (the entry view bleeds through the4990 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4991.peach-health-loading-screen {4992  flex: 1;4993  display: flex;4994  flex-direction: column;4995  align-items: center;4996  justify-content: center;4997  gap: 14px;4998  padding: 32px 28px;4999  text-align: center;5000}50015002.peach-health-loading-glyph {5003  width: 48px;5004  height: 48px;5005  display: flex;5006  align-items: center;5007  justify-content: center;5008  border-radius: 14px;5009  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5010  color: var(--peach-accent);5011}50125013.peach-health-loading-title {5014  margin: 0;5015  font-family: var(--font-display);5016  font-style: italic;5017  font-weight: 300;5018  font-size: 19px;5019  line-height: 1.2;5020  color: var(--peach-t0);5021}50225023.peach-health-loading-copy {5024  margin: 0;5025  max-width: 240px;5026  font-size: 0.75rem;5027  line-height: 1.55;5028  color: var(--peach-t2);5029}50305031.peach-health-loading-track {5032  width: 200px;5033  height: 3px;5034  margin-top: 6px;5035  border-radius: 999px;5036  background: rgba(240, 232, 216, 0.06);5037  overflow: hidden;5038}50395040.peach-health-loading-fill {5041  width: 40%;5042  height: 100%;5043  border-radius: inherit;5044  background: linear-gradient(5045    90deg,5046    transparent 0%,5047    var(--peach-accent) 50%,5048    transparent 100%5049  );5050  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;5051}50525053@keyframes peach-health-loading-sweep {5054  0%   { transform: translateX(-100%); }5055  100% { transform: translateX(350%); }5056}50575058[data-motion="reduce"] .peach-health-loading-fill,5059[data-motion="reduce"] .peach-health-loading-glyph svg path {5060  animation: none;5061}50625063.peach-health-summary {5064  padding: 10px 16px 6px;5065  font-family: "IBM Plex Mono", monospace;5066  font-size: 0.6875rem;5067}5068.peach-health-summary-warn { color: rgba(220,80,60,0.9); }5069.peach-health-summary-ok { color: var(--peach-t2); }50705071.peach-health-check-row {5072  padding: 0 16px 10px;5073}5074.peach-health-check-btn {5075  width: 100%;5076  display: flex;5077  align-items: center;5078  justify-content: center;5079}50805081.peach-health-sections {5082  flex: 1;5083  display: flex;5084  flex-direction: column;5085}50865087.peach-health-section {5088  border-bottom: 1px solid var(--peach-t3);5089}50905091.peach-health-section-header {5092  width: 100%;5093  display: flex;5094  align-items: center;5095  justify-content: space-between;5096  padding: 9px 16px;5097  background: transparent;5098  cursor: pointer;5099  color: var(--peach-t0);5100}51015102.peach-health-section-title-row {5103  display: flex;5104  align-items: center;5105  gap: 8px;5106}51075108.peach-health-count-badge {5109  display: inline-flex;5110  align-items: center;5111  justify-content: center;5112  min-width: 20px;5113  height: 18px;5114  padding: 0 5px;5115  border-radius: 999px;5116  background: rgba(220,80,60,0.15);5117  border: 1px solid rgba(220,80,60,0.25);5118  font-family: "IBM Plex Mono", monospace;5119  font-size: 0.5625rem;5120  color: rgba(220,80,60,0.9);5121}51225123.peach-health-section-title {5124  font-family: "IBM Plex Mono", monospace;5125  font-size: 0.6875rem;5126  text-transform: uppercase;5127  letter-spacing: 0.1em;5128  color: var(--peach-t1);5129}51305131.peach-health-chevron {5132  color: var(--peach-t2);5133  transition: transform 200ms ease;5134  flex-shrink: 0;5135}5136.peach-health-chevron.is-expanded {5137  transform: rotate(180deg);5138}51395140.peach-health-section-body {5141  padding: 0 16px 10px;5142  display: flex;5143  flex-direction: column;5144  gap: 4px;5145}51465147.peach-health-row {5148  display: flex;5149  align-items: flex-start;5150  justify-content: space-between;5151  gap: 8px;5152  padding: 6px 8px;5153  border-radius: 8px;5154  background: rgba(240,232,216,0.02);5155}51565157.peach-health-row-info {5158  flex: 1;5159  min-width: 0;5160  display: flex;5161  flex-direction: column;5162  gap: 2px;5163}51645165.peach-health-row-name {5166  font-family: var(--font-display);5167  font-size: 0.9375rem;5168  font-style: italic;5169  font-weight: 400;5170  color: var(--peach-t0);5171  white-space: nowrap;5172  overflow: hidden;5173  text-overflow: ellipsis;5174}51755176.peach-health-row-meta {5177  font-family: "IBM Plex Mono", monospace;5178  font-size: 0.5625rem;5179  color: var(--peach-t2);5180  letter-spacing: 0.05em;5181}51825183.peach-health-fix-btn {5184  font-size: 0.5625rem;5185  letter-spacing: 0.08em;5186  text-transform: uppercase;5187  padding: 4px 7px;5188  flex-shrink: 0;5189  display: flex;5190  align-items: center;5191}51925193.peach-health-empty {5194  font-family: "IBM Plex Mono", monospace;5195  font-size: 0.625rem;5196  color: var(--peach-t2);5197  padding: 6px 0;5198}51995200.peach-health-loading {5201  font-family: "IBM Plex Mono", monospace;5202  font-size: 0.625rem;5203  color: var(--peach-t2);5204  padding: 6px 0;5205  display: flex;5206  align-items: center;5207  gap: 6px;5208}52095210.peach-health-loading::before {5211  content: "";5212  width: 10px;5213  height: 10px;5214  border: 1.5px solid var(--peach-t3);5215  border-top-color: var(--peach-accent);5216  border-radius: 50%;5217  animation: peach-spin 600ms linear infinite;5218}52195220@keyframes peach-spin {5221  to { transform: rotate(360deg); }5222}52235224.peach-spinner {5225  width: 32px;5226  height: 32px;5227  border: 2px solid var(--peach-s2);5228  border-top-color: var(--peach-accent);5229  border-radius: 50%;5230  margin: 0 auto 16px;5231  animation: peach-spin 0.8s linear infinite;5232}52335234.peach-progress-screen {5235  text-align: center;5236  padding: 32px 16px;5237}52385239.peach-progress-screen-title {5240  font-size: 0.8125rem;5241  color: var(--peach-t0);5242  margin-bottom: 16px;5243}52445245.peach-progress-screen-stage {5246  font-size: 0.6875rem;5247  color: var(--peach-t2);5248  min-height: 14px;5249}52505251.peach-progress-screen-note {5252  font-size: 0.625rem;5253  color: var(--peach-t2);5254  margin-top: 8px;5255}52565257/* Pairing commits the vault key before the first entry sync. Keep that5258   implementation detail off-screen until the paired source records a real,5259   durable sync completion. */5260.peach-initial-sync {5261  position: relative;5262  display: flex;5263  align-items: center;5264  justify-content: center;5265  overflow: hidden;5266}52675268.peach-initial-sync-card {5269  position: relative;5270  z-index: 1;5271  width: min(100%, 320px);5272  display: flex;5273  flex-direction: column;5274  align-items: center;5275  gap: 10px;5276  padding: 36px 26px;5277  text-align: center;5278}52795280.peach-initial-sync-mark {5281  width: 54px;5282  height: 54px;5283  display: flex;5284  align-items: center;5285  justify-content: center;5286  border-radius: 18px;5287  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5288  margin-bottom: 4px;5289}52905291.peach-initial-sync-mark svg {5292  width: 34px;5293  height: 34px;5294}52955296.peach-initial-sync-card h1 {5297  margin: 0;5298  color: var(--peach-t0);5299  font-family: var(--font-display);5300  font-size: 1.55rem;5301  font-style: italic;5302  font-weight: 400;5303}53045305.peach-initial-sync-card > p {5306  margin: 0;5307}53085309.peach-initial-sync-card #initial-sync-copy {5310  color: var(--peach-t1);5311  font-size: 0.78rem;5312  line-height: 1.55;5313}53145315.peach-initial-sync-progress {5316  width: 100%;5317  height: 3px;5318  overflow: hidden;5319  border-radius: 999px;5320  background: color-mix(in srgb, var(--peach-t0) 8%, transparent);5321  margin: 8px 0 2px;5322}53235324.peach-initial-sync-progress span {5325  display: block;5326  width: 42%;5327  height: 100%;5328  border-radius: inherit;5329  background: var(--peach-accent);5330  animation: peach-initial-sync-progress 1.4s cubic-bezier(0.2, 0, 0, 1) infinite;5331}53325333@keyframes peach-initial-sync-progress {5334  from { transform: translateX(-115%); }5335  to { transform: translateX(340%); }5336}53375338.peach-initial-sync-note {5339  color: var(--peach-t2);5340  font-size: 0.625rem;5341  line-height: 1.45;5342}53435344.peach-initial-sync-slow {5345  width: 100%;5346  display: flex;5347  flex-direction: column;5348  gap: 10px;5349  padding-top: 10px;5350  border-top: 1px solid var(--peach-border);5351}53525353.peach-initial-sync-slow p {5354  margin: 0;5355  color: var(--peach-t2);5356  font-size: 0.6875rem;5357  line-height: 1.45;5358}53595360.peach-initial-sync-slow .peach-btn {5361  width: 100%;5362}53635364@media (prefers-reduced-motion: reduce) {5365  .peach-initial-sync-progress span {5366    width: 100%;5367    opacity: 0.7;5368    animation: none;5369  }5370}53715372/* Tag chips */5373.peach-tag-chip {5374  display: inline-flex;5375  align-items: center;5376  gap: 4px;5377  padding: 3px 8px;5378  border-radius: 999px;5379  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5380  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5381  color: var(--peach-t0);5382  font-family: "IBM Plex Mono", monospace;5383  font-size: 0.625rem;5384  letter-spacing: 0.04em;5385}53865387.peach-tag-chip-remove {5388  background: transparent;5389  border: none;5390  color: inherit;5391  opacity: 0.6;5392  cursor: pointer;5393  padding: 0;5394  font-size: 0.75rem;5395  line-height: 1;5396}53975398.peach-tag-chip-remove:hover {5399  opacity: 1;5400}54015402/* Tag input */5403.peach-tag-input-wrap {5404  border-bottom: 1px solid var(--peach-t3);5405}54065407.peach-tag-suggestions {5408  display: flex;5409  flex-wrap: wrap;5410  gap: 4px;5411  padding: 6px 0;5412}54135414.peach-tag-suggestion {5415  padding: 2px 8px;5416  border-radius: 999px;5417  border: 1px solid var(--peach-t3);5418  background: var(--peach-s2);5419  color: var(--peach-t1);5420  font-family: "IBM Plex Mono", monospace;5421  font-size: 0.625rem;5422  cursor: pointer;5423  transition: border-color 80ms ease, background 80ms ease;5424}54255426.peach-tag-suggestion:hover {5427  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5428  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5429}54305431/* Identity suggestions — shown below username/email inputs in new-entry form */5432@keyframes peach-suggest-in {5433  from { opacity: 0; transform: translateY(-4px); }5434  to   { opacity: 1; transform: none; }5435}54365437.peach-identity-suggestions {5438  display: flex;5439  flex-direction: column;5440  gap: 1px;5441  margin-top: 4px;5442  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5443}54445445.peach-identity-filter-row {5446  display: flex;5447  align-items: center;5448  gap: 4px;5449  padding: 2px 0 5px;5450}54515452.peach-identity-collapse-btn {5453  margin-left: auto;5454  background: transparent;5455  border: none;5456  cursor: pointer;5457  color: var(--peach-t3);5458  padding: 2px 4px;5459  display: flex;5460  align-items: center;5461  line-height: 0;5462  border-radius: 3px;5463  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5464}54655466.peach-identity-collapse-btn:hover {5467  color: var(--peach-t1);5468}54695470.peach-identity-collapse-btn.is-collapsed {5471  transform: rotate(-90deg);5472}54735474.peach-identity-rows {5475  display: grid;5476  grid-template-rows: 1fr;5477  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5478}54795480.peach-identity-rows.is-collapsed {5481  grid-template-rows: 0fr;5482}54835484.peach-identity-rows-inner {5485  overflow-y: auto;5486  min-height: 0;5487  max-height: 148px;5488  scrollbar-width: thin;5489  scrollbar-color: var(--peach-t3) transparent;5490  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5491  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5492}54935494.peach-identity-rows-inner::-webkit-scrollbar {5495  width: 4px;5496}54975498.peach-identity-rows-inner::-webkit-scrollbar-track {5499  background: transparent;5500}55015502.peach-identity-rows-inner::-webkit-scrollbar-thumb {5503  background: var(--peach-t3);5504  border-radius: 2px;5505}55065507.peach-identity-filter-pill {5508  padding: 2px 7px;5509  border-radius: 999px;5510  border: 1px solid var(--peach-t3);5511  background: transparent;5512  color: var(--peach-t2);5513  font-family: "IBM Plex Mono", monospace;5514  font-size: 0.6rem;5515  cursor: pointer;5516  transition: border-color 80ms, background 80ms, color 80ms;5517}55185519.peach-identity-filter-pill.is-on {5520  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5521  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5522  color: var(--peach-accent);5523}55245525.peach-identity-suggestion {5526  display: flex;5527  align-items: center;5528  gap: 6px;5529  width: 100%;5530  padding: 4px 6px;5531  border-radius: 5px;5532  border: none;5533  background: transparent;5534  cursor: pointer;5535  text-align: left;5536  transition: background 80ms ease;5537}55385539.peach-identity-suggestion:hover,5540.peach-identity-suggestion:focus {5541  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5542  outline: none;5543}55445545.peach-identity-suggestion-value {5546  font-family: "IBM Plex Mono", monospace;5547  font-size: 0.7rem;5548  color: var(--peach-t1);5549  overflow: hidden;5550  text-overflow: ellipsis;5551  white-space: nowrap;5552  flex: 1;5553  min-width: 0;5554}55555556.peach-identity-suggestion-type {5557  font-family: "IBM Plex Mono", monospace;5558  font-size: 0.55rem;5559  font-weight: 600;5560  flex-shrink: 0;5561  padding: 1px 4px;5562  border-radius: 3px;5563}55645565.peach-identity-suggestion-type--email {5566  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5567  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5568}55695570.peach-identity-suggestion-type--username {5571  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5572  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5573}55745575.peach-identity-suggestion-meta {5576  font-family: "IBM Plex Mono", monospace;5577  font-size: 0.6rem;5578  color: var(--peach-t3);5579  flex-shrink: 0;5580}55815582/* Tag filter strip */5583.peach-tag-filter-strip {5584  border-bottom: 1px solid var(--peach-t3);5585  flex-shrink: 0;5586}55875588.peach-tag-filter-chip {5589  display: inline-flex;5590  align-items: center;5591  padding: 4px 10px;5592  border-radius: 999px;5593  border: 1px solid var(--peach-t3);5594  background: transparent;5595  color: var(--peach-t2);5596  font-family: "IBM Plex Mono", monospace;5597  font-size: 0.5625rem;5598  letter-spacing: 0.06em;5599  text-transform: uppercase;5600  cursor: pointer;5601  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5602  white-space: nowrap;5603}56045605.peach-tag-filter-chip:hover {5606  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5607  color: var(--peach-t1);5608}56095610.peach-tag-filter-chip.is-selected {5611  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5612  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5613  color: var(--peach-t0);5614}56155616/* ─────────────────────────────────────────────────────────────────────────5617   v1.4.12 additions5618   ─────────────────────────────────────────────────────────────────────── */56195620/* Sort bar */5621.peach-sort-bar {5622  display: flex;5623  align-items: center;5624  gap: 4px;5625  padding: 5px 12px;5626  border-bottom: 1px solid var(--peach-t3);5627  flex-shrink: 0;5628  overflow-x: auto;5629  scrollbar-width: none;5630}56315632.peach-sort-btn {5633  padding: 2px 9px;5634  border-radius: 999px;5635  border: 1px solid transparent;5636  background: transparent;5637  color: var(--peach-t2);5638  font-family: "IBM Plex Mono", monospace;5639  font-size: 0.5625rem;5640  letter-spacing: 0.07em;5641  text-transform: uppercase;5642  cursor: pointer;5643  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5644  white-space: nowrap;5645}56465647.peach-sort-btn:hover {5648  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5649  color: var(--peach-t1);5650}56515652.peach-sort-btn.is-active {5653  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5654  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5655  color: var(--peach-t0);5656}56575658.peach-sort-scope-btn {5659  padding-inline: 8px;5660  font-size: 0.53125rem;5661  letter-spacing: 0.05em;5662}56635664.peach-sort-domain-hint {5665  margin-left: auto;5666  font-family: "IBM Plex Mono", monospace;5667  font-size: 0.5625rem;5668  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5669  white-space: nowrap;5670  overflow: hidden;5671  text-overflow: ellipsis;5672  max-width: 110px;5673}56745675/* Tab-match badge on entry rows */5676.peach-tab-match-badge {5677  display: inline-block;5678  width: 6px;5679  height: 6px;5680  border-radius: 50%;5681  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5682  margin-left: 5px;5683  vertical-align: middle;5684  flex-shrink: 0;5685  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5686}56875688.peach-entry-row.is-tab-match {5689  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5690  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5691}56925693.peach-entry-row.is-tab-match:hover {5694  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5695}56965697/* Entry list stagger entrance */5698@keyframes peach-entry-fadein {5699  from { opacity: 0; transform: translateY(4px); }5700  to   { opacity: 1; transform: translateY(0); }5701}57025703.peach-vault-list .peach-entry-row {5704  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5705}57065707/* Button press micro-interaction */5708.peach-btn:active {5709  transform: scale(0.95);5710  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5711}57125713.peach-sort-btn:active,5714.peach-tag-filter-chip:active {5715  transform: scale(0.93);5716  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5717}57185719/* Password strength bar (Lock view + shared) */5720.peach-password-strength {5721  display: flex;5722  align-items: center;5723  gap: 8px;5724  margin-top: 6px;5725}57265727.peach-strength-bar {5728  flex: 1;5729  height: 3px;5730  border-radius: 2px;5731  background: var(--peach-t3);5732  overflow: hidden;5733}57345735.peach-strength-fill {5736  height: 100%;5737  border-radius: 2px;5738  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5739              background 300ms ease;5740}57415742.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5743.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5744.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5745.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }57465747.peach-strength-label {5748  font-family: "IBM Plex Mono", monospace;5749  font-style: italic;5750  font-size: 0.5625rem;5751  font-weight: 300;5752  letter-spacing: 0.06em;5753  color: var(--peach-t2);5754  min-width: 36px;5755  text-align: right;5756}57575758.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5759.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5760.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5761.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }57625763/* Duress form */5764.peach-duress-status {5765  padding: 2px 8px;5766  border-radius: 999px;5767  border: 1px solid var(--peach-t3);5768  font-family: "IBM Plex Mono", monospace;5769  font-size: 0.5625rem;5770  letter-spacing: 0.07em;5771  text-transform: uppercase;5772  color: var(--peach-t2);5773  flex-shrink: 0;5774}57755776.peach-duress-status.is-active {5777  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5778  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5779  color: var(--peach-t0);5780}57815782.peach-duress-form {5783  padding: 8px 0 4px;5784  display: flex;5785  flex-direction: column;5786  gap: 6px;5787}57885789.peach-duress-form .peach-label {5790  margin-top: 4px;5791}57925793.peach-duress-actions {5794  display: flex;5795  gap: 6px;5796  align-items: center;5797  margin-top: 4px;5798}57995800.peach-duress-actions .peach-btn:first-child {5801  margin-right: auto;5802}58035804/* Improved overlay spring entrance */5805.peach-overlay-view.ov-enter-up {5806  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5807}58085809@keyframes ov-enter-up-spring {5810  from { opacity: 0; transform: translateY(16px) scale(0.98); }5811  to   { opacity: 1; transform: translateY(0) scale(1); }5812}58135814.peach-overlay-view.ov-enter-right {5815  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5816}58175818@keyframes ov-enter-right-spring {5819  from { opacity: 0; transform: translateX(18px) scale(0.98); }5820  to   { opacity: 1; transform: translateX(0) scale(1); }5821}58225823/* ── Onboarding-mode restore screens (file import) ── */5824/* Used when MainImportView renders during onboarding (no vault yet).5825   Animates like a lock-screen transition. */5826.peach-lock-view {5827  position: absolute;5828  inset: 0;5829  display: flex;5830  flex-direction: column;5831  background:5832    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5833    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5834    var(--peach-bg);5835  z-index: 2;5836  overflow: hidden;5837  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5838}58395840.peach-lock-view-header {5841  display: flex;5842  align-items: center;5843  justify-content: space-between;5844  padding: 16px 18px 12px;5845  flex-shrink: 0;5846}58475848/* ───────── Settings: auto-lock select ───────── */5849.peach-settings-select {5850  font-family: "IBM Plex Mono", monospace;5851  font-size: 0.6875rem;5852  background: transparent;5853  border: 1px solid var(--peach-t3);5854  border-radius: 4px;5855  color: var(--peach-t1);5856  padding: 3px 6px;5857  cursor: pointer;5858  outline: none;5859}5860.peach-settings-select:focus {5861  border-color: var(--peach-accent);5862}58635864/* ───────── Duress status pill (new polished) ───────── */5865.peach-duress-status-pill {5866  font-family: "IBM Plex Mono", monospace;5867  font-size: 0.5625rem;5868  text-transform: uppercase;5869  letter-spacing: 0.12em;5870  padding: 2px 8px;5871  border-radius: 12px;5872  background: var(--peach-t3);5873  color: var(--peach-t2);5874  flex-shrink: 0;5875}5876.peach-duress-status-pill.is-active {5877  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5878  color: var(--peach-accent);5879}58805881/* ───────── Entry advanced disclosure (canary) ───────── */5882.peach-entry-advanced {5883  margin-top: 12px;5884  border-top: 1px solid var(--peach-t3);5885  padding-top: 10px;5886  position: relative;5887  z-index: 1;5888}5889.peach-entry-advanced-toggle {5890  display: flex;5891  align-items: center;5892  justify-content: space-between;5893  width: 100%;5894  background: transparent;5895  border: none;5896  cursor: pointer;5897  padding: 0;5898  color: var(--peach-t2);5899}5900.peach-canary-section {5901  margin-top: 10px;5902  display: grid;5903  gap: 6px;5904}59055906/* ───────── Import: merge/replace radio choices ───────── */5907.peach-import-choice {5908  display: flex;5909  align-items: flex-start;5910  gap: 10px;5911  padding: 8px 10px;5912  border: 1px solid var(--peach-t3);5913  border-radius: 10px;5914  cursor: pointer;5915  margin-bottom: 6px;5916  transition: border-color 120ms ease, background 120ms ease;5917}5918.peach-import-choice:hover {5919  border-color: var(--peach-accent);5920}5921.peach-import-choice input[type="radio"] {5922  margin-top: 3px;5923  accent-color: var(--peach-accent);5924  flex-shrink: 0;5925}5926.peach-import-choice-main {5927  display: flex;5928  flex-direction: column;5929  gap: 2px;5930  min-width: 0;5931}5932.peach-import-choice-label {5933  font-size: 0.75rem;5934  color: var(--peach-t0);5935}5936.peach-import-choice-sub {5937  font-size: 0.6875rem;5938  color: var(--peach-t2);5939  line-height: 1.5;5940}59415942/* ───────── Export: success confirmation strip ───────── */5943.peach-export-success {5944  display: flex;5945  align-items: flex-start;5946  gap: 10px;5947  padding: 12px;5948  border-radius: 12px;5949  border: 1px solid rgba(150, 175, 110, 0.3);5950  background: rgba(150, 175, 110, 0.08);5951  color: var(--peach-t0);5952  font-size: 0.75rem;5953  line-height: 1.55;5954}5955.peach-export-success-check {5956  color: rgba(150, 175, 110, 0.9);5957  font-size: 0.875rem;5958  flex-shrink: 0;5959}59605961/* ── Trash view ──────────────────────────────────────────────────────── */5962.peach-trash-entry-row {5963  display: flex;5964  align-items: center;5965  justify-content: space-between;5966  gap: 8px;5967  padding: 8px 0;5968  border-bottom: 1px solid var(--peach-border);5969}5970.peach-trash-entry-info {5971  flex: 1;5972  min-width: 0;5973  display: flex;5974  flex-direction: column;5975  gap: 2px;5976}5977.peach-trash-entry-title {5978  font-size: 0.8125rem;5979  color: var(--peach-t0);5980  overflow: hidden;5981  text-overflow: ellipsis;5982  white-space: nowrap;5983}5984.peach-trash-entry-meta {5985  font-family: var(--font-mono);5986  font-size: 0.5625rem;5987  color: var(--peach-t2);5988  letter-spacing: 0.04em;5989}5990.peach-trash-entry-actions {5991  display: flex;5992  align-items: center;5993  gap: 4px;5994  flex-shrink: 0;5995}5996.peach-trash-delete-btn {5997  background: transparent;5998  border: 0;5999  color: var(--peach-t3);6000  font-size: 1rem;6001  line-height: 1;6002  cursor: pointer;6003  padding: 2px 5px;6004  transition: color 0.15s;6005}6006.peach-trash-delete-btn:hover { color: var(--peach-breach); }6007.peach-trash-list {6008  overflow-y: auto;6009}6010.peach-trash-footer {6011  display: flex;6012  align-items: center;6013  gap: 8px;6014  padding: 8px 0 0;6015  border-top: 1px solid var(--peach-border);6016  margin-top: 4px;6017}6018.peach-trash-purge-all {6019  background: transparent;6020  border: 0;6021  color: var(--peach-t3);6022  font-size: 0.625rem;6023  cursor: pointer;6024  padding: 4px 0;6025  letter-spacing: 0.03em;6026  transition: color 0.2s;6027}6028.peach-trash-purge-all:hover { color: var(--peach-breach); }6029.peach-trash-purge-confirm-label {6030  font-size: 0.625rem;6031  color: var(--peach-t1);6032  flex: 1;6033}60346035/* ── Settings shortcuts grid ─────────────────────────────────────────── */6036.peach-shortcuts-grid {6037  display: grid;6038  grid-template-columns: auto 1fr;6039  gap: 6px 12px;6040  align-items: center;6041  padding: 4px 0;6042}6043.peach-shortcut-key {6044  font-family: var(--font-mono);6045  font-size: 0.625rem;6046  color: var(--peach-t0);6047  background: var(--peach-t3);6048  border-radius: 4px;6049  padding: 2px 6px;6050  white-space: nowrap;6051  text-align: center;6052}6053.peach-shortcut-desc {6054  font-size: 0.6875rem;6055  color: var(--peach-t1);6056}60576058/* ── Sort bar trash button ───────────────────────────────────────────── */6059.peach-sort-trash-btn {6060  display: flex;6061  align-items: center;6062  justify-content: center;6063  padding: 3px 5px;6064  background: transparent;6065  border: none;6066  cursor: pointer;6067  color: var(--peach-t2);6068  border-radius: 4px;6069  transition: color 140ms ease, background 140ms ease;6070}6071.peach-sort-trash-btn:hover {6072  color: var(--peach-t1);6073  background: var(--peach-t3);6074}6075.peach-sort-trash-btn.is-active {6076  color: var(--peach-accent);6077}60786079/* Accent color picker */6080.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }6081.peach-accent-picker {6082  display: flex;6083  flex-wrap: wrap;6084  gap: 7px;6085  padding: 2px 0;6086}6087.peach-accent-swatch {6088  width: 22px;6089  height: 22px;6090  border-radius: 50%;6091  border: 2px solid transparent;6092  cursor: pointer;6093  padding: 0;6094  transition: transform 100ms;6095  outline-offset: 2px;6096}6097.peach-accent-swatch:hover { transform: scale(1.15); }6098.peach-accent-swatch.is-active {6099  border-color: var(--peach-t0);6100  transform: scale(1.1);6101}61026103.peach-pill-group {6104  display: flex;6105  gap: 6px;6106}6107.peach-pill-group .peach-btn.is-active {6108  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);6109  border-color: var(--peach-accent);6110  color: var(--peach-t0);6111}61126113/* ── Card entry styles ───────────────────────────────────────── */6114.peach-card-number {6115  font-family: var(--peach-mono);6116  letter-spacing: 0.08em;6117}61186119.peach-card-network-badge {6120  font-size: 0.625rem;6121  padding: 1px 5px;6122  border-radius: 4px;6123  border: 0.5px solid var(--peach-border);6124  color: var(--peach-text-dim);6125  margin-left: 6px;6126  vertical-align: middle;6127}61286129.peach-card-expiry-row {6130  display: flex;6131  align-items: center;6132  gap: 8px;6133}61346135.peach-card-expiry-sep {6136  color: var(--peach-text-dim);6137}61386139/* ── Pro tier — upgrade screen ──────────────────────────────── */6140.peach-pro-mark {6141  font-size: 0.5625rem;6142  color: var(--peach-accent);6143  margin-left: 6px;6144  vertical-align: super;6145  opacity: 0.7;6146}61476148.peach-pro-mini-badge {6149  display: block;6150  font-size: 0.625rem;6151  font-style: italic;6152  color: var(--peach-accent);6153  letter-spacing: 0.04em;6154  margin-top: -2px;6155  padding-left: 2px;6156  opacity: 0.85;6157  text-align: center;6158}61596160.peach-wordmark-stack {6161  display: inline-flex;6162  flex-direction: column;6163  align-items: center;6164}61656166/* ── Pro tier — upgrade page ─────────────────────────────────── */6167/* ── Pro upgrade — redesigned editorial layout ─────────────────── */61686169.peach-pro-upgrade {6170  display: flex;6171  flex-direction: column;6172  align-items: stretch;6173  gap: 10px;6174  padding: 2px 2px 12px;6175}61766177.peach-pro-eyebrow {6178  margin: 0;6179  font-family: var(--font-ui);6180  font-size: 0.625rem;6181  font-weight: 500;6182  letter-spacing: 0.12em;6183  color: var(--peach-accent);6184}61856186.peach-pro-headline {6187  margin: 0;6188  font-family: var(--font-display, "Cormorant Garamond", serif);6189  font-size: 30px;6190  font-weight: 700;6191  font-style: normal;6192  line-height: 1.05;6193  color: var(--peach-t0);6194  letter-spacing: -0.01em;6195}6196.peach-pro-headline em {6197  font-style: italic;6198  font-weight: 400;6199  color: var(--peach-accent);6200}62016202.peach-pro-subtitle {6203  margin: 0;6204  font-size: 0.6875rem;6205  line-height: 1.5;6206  color: var(--peach-t1);6207}62086209/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */6210.peach-pro-section-label {6211  margin: 6px 0 0;6212  font-family: var(--font-ui);6213  font-size: 0.5625rem;6214  font-weight: 500;6215  letter-spacing: 0.12em;6216  text-transform: uppercase;6217  color: var(--peach-t2);6218}62196220/* 2-column numbered feature grid */6221.peach-pro-grid {6222  display: grid;6223  grid-template-columns: 1fr 1fr;6224  border-top: 1px solid var(--peach-border);6225  border-left: 1px solid var(--peach-border);6226}62276228.peach-pro-grid-item {6229  display: flex;6230  flex-direction: column;6231  gap: 2px;6232  padding: 8px 9px;6233  border-right: 1px solid var(--peach-border);6234  border-bottom: 1px solid var(--peach-border);6235}62366237.peach-pro-grid-item--wide {6238  grid-column: 1 / -1;6239}62406241.peach-pro-grid-num {6242  font-family: var(--font-mono);6243  font-size: 0.5625rem;6244  color: var(--peach-accent);6245  letter-spacing: 0.06em;6246  opacity: 0.85;6247}62486249.peach-pro-grid-name {6250  font-size: 0.8125rem;6251  font-weight: 500;6252  color: var(--peach-t0);6253  line-height: 1.2;6254}62556256.peach-pro-grid-desc {6257  font-size: 0.625rem;6258  color: var(--peach-t1);6259  line-height: 1.4;6260}62616262.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6263  animation: peach-pulse-accent 600ms ease-out forwards;6264}62656266@keyframes peach-pulse-accent {6267  0%   { opacity: 1; transform: scale(1.2); }6268  100% { opacity: 0.85; transform: scale(1); }6269}62706271/* Actions */6272.peach-pro-upgrade-actions {6273  display: flex;6274  flex-direction: column;6275  align-items: stretch;6276  gap: 10px;6277}62786279.peach-pro-pricing {6280  margin: 0;6281  font-size: 1rem;6282  font-weight: 600;6283  color: var(--peach-t0);6284  letter-spacing: 0.01em;6285}6286.peach-pro-pricing-sub {6287  font-size: 0.75rem;6288  font-weight: 400;6289  color: var(--peach-t1);6290  letter-spacing: 0.02em;6291}62926293.peach-pro-upgrade-cta {6294  display: flex;6295  align-items: center;6296  justify-content: center;6297  text-decoration: none;6298  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6299  border: 1px solid var(--peach-accent);6300  border-radius: 10px;6301  color: var(--peach-accent);6302  font-family: var(--font-ui);6303  font-size: 0.8125rem;6304  font-weight: 600;6305  letter-spacing: 0.06em;6306  padding: 11px 16px;6307  transition: background 0.15s ease, color 0.15s ease;6308}6309.peach-pro-upgrade-cta:hover {6310  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6311}63126313/* Pairing's terminal entitlement fallback reuses the Peach Pro card's6314   editorial hierarchy without embedding the settings deck itself. */6315.peach-pair-pro-required {6316  width: 100%;6317  display: flex;6318  flex-direction: column;6319  align-items: stretch;6320  gap: 10px;6321  text-align: left;6322}6323.peach-pair-pro-required .peach-pro-headline {6324  font-size: 1.75rem;6325}6326.peach-pair-pro-required .peach-pro-subtitle {6327  font-size: 0.6875rem;6328}6329.peach-pair-pro-grid {6330  grid-template-columns: 1fr;6331}6332.peach-pair-pro-button {6333  width: 100%;6334  cursor: pointer;6335}6336.peach-desktop-error--pro {6337  width: min(100%, 320px);6338  overflow-y: auto;6339}63406341.peach-pro-key-divider {6342  display: flex;6343  align-items: center;6344  gap: 8px;6345  color: var(--peach-t2);6346  font-size: 0.5625rem;6347  letter-spacing: 0.1em;6348}6349.peach-pro-key-divider::before,6350.peach-pro-key-divider::after {6351  content: "";6352  flex: 1;6353  height: 1px;6354  background: var(--peach-border);6355}63566357/* Inline key entry row */6358.peach-pro-key-inline {6359  display: flex;6360  align-items: center;6361  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6362  border: 1px solid var(--peach-border);6363  border-radius: 8px;6364  overflow: hidden;6365}6366.peach-pro-key-inline-input {6367  flex: 1;6368  background: transparent;6369  border: none;6370  outline: none;6371  color: var(--peach-t1);6372  font-family: var(--font-mono);6373  font-size: 0.625rem;6374  letter-spacing: 0.06em;6375  padding: 9px 10px;6376}6377.peach-pro-key-inline-input::placeholder {6378  color: var(--peach-t2);6379}6380.peach-pro-key-apply {6381  background: transparent;6382  border: none;6383  border-left: 1px solid var(--peach-border);6384  color: var(--peach-t2);6385  font-family: var(--font-ui);6386  font-size: 0.5625rem;6387  font-weight: 600;6388  letter-spacing: 0.08em;6389  padding: 9px 10px;6390  cursor: pointer;6391  transition: color 0.15s ease;6392  flex-shrink: 0;6393}6394.peach-pro-key-apply:not(:disabled):hover {6395  color: var(--peach-accent);6396}6397.peach-pro-key-apply:disabled {6398  opacity: 0.35;6399  cursor: not-allowed;6400}64016402/* ── Pro tier — key ceremony ─────────────────────────────────── */6403.peach-pro-key-ceremony {6404  display: flex;6405  flex-direction: column;6406  align-items: center;6407  gap: 12px;6408  padding: 20px 4px 16px;6409}64106411.peach-pro-key-ceremony .peach-lock-rune-string {6412  font-size: 1rem;6413  gap: 12px;6414  flex: 0;6415  justify-content: center;6416}64176418.peach-pro-key-ceremony-label {6419  margin: 0;6420  font-size: 0.6875rem;6421  color: var(--peach-t2);6422  font-style: italic;6423  letter-spacing: 0.04em;6424}64256426.peach-pro-key-input {6427  font-family: var(--font-mono, monospace);6428  letter-spacing: 0.06em;6429  text-align: center;6430  width: 100%;6431  box-sizing: border-box;6432}64336434.peach-pro-key-error {6435  margin: 0;6436  font-size: 0.75rem;6437  text-align: center;6438  color: var(--peach-breach, #e55);6439  padding: 0;6440}64416442.peach-pro-key-activate {6443  width: 100%;6444  text-align: center;6445  box-sizing: border-box;6446  padding: 10px 20px;6447  font-size: 0.8125rem;6448}64496450.peach-pro-key-cancel {6451  background: transparent;6452  border: 0;6453  color: var(--peach-t2);6454  font-size: 0.6875rem;6455  cursor: pointer;6456  padding: 2px 8px;6457  transition: color 0.2s;6458}64596460.peach-pro-key-cancel:hover { color: var(--peach-accent); }64616462/* ── Pro tier — active state ─────────────────────────────────── */6463.peach-pro-active {6464  display: flex;6465  flex-direction: column;6466  align-items: center;6467  gap: 0;6468  padding: 8px 4px 16px;6469  min-height: 280px;6470}64716472.peach-pro-active-hero {6473  display: flex;6474  flex-direction: column;6475  align-items: center;6476  gap: 6px;6477  padding: 20px 0 8px;6478}64796480.peach-pro-active-mark-wrap {6481  display: flex;6482  align-items: center;6483  justify-content: center;6484  margin-bottom: 4px;6485}64866487.peach-pro-active-mark {6488  width: 60px;6489  height: 60px;6490}64916492.peach-pro-active-title {6493  font-family: var(--font-display, var(--font-ui));6494  font-size: 26px;6495  margin: 0;6496  color: var(--peach-t0);6497  letter-spacing: 0.01em;6498}64996500.peach-pro-active-since {6501  margin: 0;6502  font-size: 0.6875rem;6503  color: var(--peach-t2);6504  font-style: italic;6505}65066507.peach-pro-active-features {6508  display: flex;6509  flex-direction: column;6510  gap: 8px;6511  width: 100%;6512  padding: 14px 8px 0;6513  border-top: 1px solid var(--peach-border);6514  flex: 1;6515}65166517.peach-pro-active-feature {6518  display: flex;6519  align-items: center;6520  gap: 9px;6521}65226523.peach-pro-active-feature-mark {6524  color: var(--peach-accent);6525  font-size: 0.625rem;6526  opacity: 0.65;6527  flex-shrink: 0;6528}65296530.peach-pro-active-feature-name {6531  font-size: 0.75rem;6532  color: var(--peach-t1);6533}65346535.peach-pro-deactivate {6536  align-self: center;6537  background: transparent;6538  border: 0;6539  color: var(--peach-t3);6540  font-size: 0.625rem;6541  cursor: pointer;6542  padding: 8px 0 0;6543  margin-top: 16px;6544  letter-spacing: 0.03em;6545  transition: color 0.2s;6546}65476548.peach-pro-deactivate:hover { color: var(--peach-t2); }65496550.peach-pro-deactivate:disabled {6551  opacity: 0.5;6552  cursor: default;6553}65546555/* ── Pro card activation sparkles & thank-you ── */6556button.peach-pro-active-mark-wrap {6557  background: transparent;6558  border: 0;6559  padding: 0;6560  cursor: pointer;6561  position: relative;6562  overflow: visible;6563}65646565.peach-pro-sparks {6566  position: absolute;6567  inset: 0;6568  pointer-events: none;6569  overflow: visible;6570}65716572.peach-pro-spark {6573  position: absolute;6574  top: 50%;6575  left: 50%;6576  font-size: 9px;6577  line-height: 1;6578  opacity: 0;6579  transform: translate(-50%, -50%);6580  animation: peach-pro-spark-fly 1.4s ease-out var(--spark-delay, 0ms) both;6581}65826583@keyframes peach-pro-spark-fly {6584  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }6585  25%  { opacity: 1; }6586  100% {6587    opacity: 0;6588    transform: translate(6589      calc(-50% + var(--spark-x, 0px)),6590      calc(-50% + var(--spark-y, -40px))6591    ) scale(0.8);6592  }6593}65946595.peach-pro-thankyou-text {6596  margin: 4px 0 0;6597  font-size: 0.6875rem;6598  font-style: italic;6599  color: currentColor;6600  opacity: 0;6601  animation: peach-pro-thankyou-flash 2.5s ease both;6602}66036604@keyframes peach-pro-thankyou-flash {6605  0%   { opacity: 0; transform: translateY(4px); }6606  15%  { opacity: 0.75; transform: translateY(0); }6607  75%  { opacity: 0.75; }6608  100% { opacity: 0; }6609}66106611/* ── Pro advanced health remediation queue ──────────────────── */6612.peach-health-pro-queue {6613  display: flex;6614  flex-direction: column;6615  gap: 10px;6616  padding: 12px;6617  margin: 0 0 12px;6618  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6619  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6620  border-radius: 10px;6621}66226623.peach-health-pro-queue-head {6624  display: flex;6625  justify-content: space-between;6626  align-items: baseline;6627}66286629.peach-health-pro-queue-title {6630  font-size: 0.75rem;6631  font-weight: 500;6632  letter-spacing: 0.04em;6633  text-transform: uppercase;6634  color: var(--peach-accent);6635}66366637.peach-health-pro-queue-score {6638  font-size: 0.6875rem;6639  color: var(--peach-t2);6640}66416642.peach-health-pro-row {6643  display: flex;6644  gap: 10px;6645  align-items: center;6646  padding: 8px 0;6647  border-top: 1px solid var(--peach-border);6648}66496650.peach-health-pro-row-info {6651  flex: 1;6652  display: flex;6653  flex-direction: column;6654  gap: 4px;6655  min-width: 0;6656}66576658.peach-health-pro-action {6659  flex: 0 0 auto;6660  padding: 4px 8px;6661  font-size: 0.5625rem;6662  letter-spacing: 0.08em;6663  text-transform: uppercase;6664}66656666.peach-health-pro-row-name {6667  font-size: 0.8125rem;6668  color: var(--peach-t0);6669  overflow: hidden;6670  text-overflow: ellipsis;6671  white-space: nowrap;6672}66736674.peach-health-pro-row-meta {6675  font-size: 0.6875rem;6676  color: var(--peach-t2);6677}66786679.peach-health-pro-bar {6680  height: 2px;6681  background: var(--peach-border);6682  border-radius: 2px;6683  overflow: hidden;6684  margin-top: 2px;6685}66866687.peach-health-pro-bar-fill {6688  height: 100%;6689  background: var(--peach-accent);6690  transition: width 200ms ease-out;6691}66926693/* ── Pro activation celebration ── */6694@keyframes peach-pro-bloom {6695  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6696  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6697                 drop-shadow(0 0 48px var(--peach-glow)); }6698  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6699}67006701@keyframes peach-pro-wordmark-in {6702  from { opacity: 0; transform: translateY(4px); }6703  to   { opacity: 1; transform: translateY(0); }6704}67056706@keyframes peach-pro-fade-out {6707  from { opacity: 1; }6708  to   { opacity: 0; }6709}67106711.peach-pro-celebration {6712  background:6713    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6714    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6715    var(--peach-bg);6716  border: 1px solid var(--peach-t3);6717  box-shadow:6718    0 2px 8px rgba(0,0,0,0.55),6719    0 14px 48px rgba(0,0,0,0.7),6720    0 0 0 1px rgba(240,232,216,0.04);6721  overflow: hidden;6722  width: 320px;6723  height: 520px;6724  display: flex;6725  flex-direction: column;6726  align-items: center;6727  justify-content: center;6728  gap: 8px;6729  padding: 32px 24px;6730  text-align: center;6731}67326733.peach-pro-celebration.is-leaving {6734  animation: peach-pro-fade-out 400ms ease forwards;6735}67366737.peach-pro-bloom-target {6738  display: flex;6739  align-items: center;6740  justify-content: center;6741  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6742  margin-bottom: 12px;6743}67446745.peach-pro-bloom-icon {6746  width: 48px;6747  height: 48px;6748}67496750.peach-pro-wordmark {6751  font-family: var(--font-display);6752  font-size: 22px;6753  font-style: italic;6754  font-weight: 400;6755  color: var(--peach-accent);6756  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6757}67586759.peach-pro-thankyou {6760  font-size: 0.75rem;6761  font-style: italic;6762  color: var(--peach-t2);6763  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6764}676567666767/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6768.peach-pro-notice-banner {6769  display: flex;6770  align-items: center;6771  gap: 8px;6772  padding: 7px 12px;6773  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6774  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6775  font-size: 0.6875rem;6776  color: var(--peach-t2);6777  font-family: "IBM Plex Mono", monospace;6778  flex-shrink: 0;6779}67806781.peach-pro-notice-link {6782  background: none;6783  border: none;6784  padding: 0;6785  cursor: pointer;6786  font-size: 0.6875rem;6787  color: var(--peach-accent);6788  font-family: "IBM Plex Mono", monospace;6789  margin-left: auto;6790  white-space: nowrap;6791}67926793.peach-pro-notice-close {6794  background: none;6795  border: none;6796  padding: 0 0 0 4px;6797  cursor: pointer;6798  font-size: 0.625rem;6799  color: var(--peach-t3);6800  line-height: 1;6801}68026803/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6804   Renders over whatever view is showing. 60-second expiry; the popup ticks6805   the countdown each second and clears the banner when it hits zero. */6806.peach-pair-request-banner {6807  display: flex;6808  flex-direction: column;6809  gap: 8px;6810  padding: 10px 12px;6811  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6812  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6813  font-family: "IBM Plex Mono", monospace;6814  flex-shrink: 0;6815}68166817.peach-pair-toast {6818  padding: 8px 12px;6819  font-family: "IBM Plex Mono", monospace;6820  font-size: 0.75rem;6821  color: var(--peach-t1);6822  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6823  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6824  flex-shrink: 0;6825  text-align: center;6826}68276828.peach-pair-toast strong {6829  color: var(--peach-t0);6830  font-weight: 500;6831}68326833.peach-pair-request-header {6834  display: flex;6835  align-items: center;6836  gap: 8px;6837  font-size: 0.75rem;6838  color: var(--peach-t1);6839}68406841.peach-pair-request-mark {6842  font-size: 0.875rem;6843  display: inline-flex;6844  align-items: center;6845}68466847.peach-pair-request-icon {6848  width: 1em;6849  height: 1em;6850}68516852.peach-pair-request-title {6853  font-weight: 600;6854  color: var(--peach-t0);6855}68566857.peach-pair-request-countdown {6858  margin-left: auto;6859  font-variant-numeric: tabular-nums;6860  color: var(--peach-t2);6861  font-size: 0.6875rem;6862}68636864.peach-pair-request-body {6865  margin: 0;6866  font-size: 0.75rem;6867  color: var(--peach-t1);6868  line-height: 1.4;6869}68706871.peach-pair-request-body strong {6872  color: var(--peach-t0);6873  font-weight: 600;6874}68756876.peach-pair-request-actions {6877  display: flex;6878  gap: 8px;6879  justify-content: flex-end;6880}68816882/* ─── First-run onboarding ──────────────────────────────────────────────6883   Three-card welcome shown once before vault creation. The PeachScript6884   rune background drifts behind everything at very low opacity — it's6885   atmosphere, not focus. The cards themselves use the same panel6886   language as the rest of the popup so the transition into NewVault is6887   continuous, not a jarring switch of visual register. */68886889.peach-onboarding {6890  position: relative;6891  display: flex;6892  flex-direction: column;6893  width: 100%;6894  height: 100%;6895  padding: 16px 16px 18px;6896  box-sizing: border-box;6897  overflow: hidden;6898  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6899}69006901.peach-onboarding.is-completing {6902  animation: peach-onboard-exit 200ms ease-out forwards;6903}69046905.peach-rune-background {6906  position: absolute;6907  inset: 0;6908  width: 100%;6909  height: 100%;6910  pointer-events: none;6911  z-index: 0;6912  transition: opacity 500ms ease-out;6913}69146915.peach-onboarding.is-completing .peach-rune-background {6916  opacity: 0;6917}69186919.peach-onboarding-header {6920  position: relative;6921  z-index: 1;6922  display: flex;6923  align-items: center;6924  margin-bottom: 14px;6925}69266927.peach-onboarding-card {6928  position: relative;6929  z-index: 1;6930  flex: 1;6931  min-height: 0;6932  display: flex;6933  flex-direction: column;6934  gap: 10px;6935  padding: 22px 20px;6936  border-radius: 16px;6937  border: 1px solid var(--peach-t3);6938  background:6939    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6940  backdrop-filter: blur(3px);6941  -webkit-backdrop-filter: blur(3px);6942  box-shadow:6943    inset 0 1px 0 rgba(240, 232, 216, 0.04),6944    0 12px 28px rgba(0, 0, 0, 0.12);6945  cursor: pointer;6946  user-select: none;6947  overflow-y: auto;6948  scrollbar-width: none;6949  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6950}69516952.peach-onboarding-card::-webkit-scrollbar {6953  display: none;6954}69556956.peach-onboarding-card.is-exiting {6957  animation: peach-card-out 120ms ease-in forwards;6958  pointer-events: none;6959}69606961/* The final card carries the choice rows on top of the full intro copy, which6962 * overflows the 520px popup at the default spacing. Tighten only here so the6963 * three choices fit without scrolling above the nav (scroll stays available as6964 * a fallback on shorter viewports). */6965.peach-onboarding-card--final {6966  gap: 6px;6967  padding-top: 14px;6968  padding-bottom: 12px;6969}69706971.peach-onboarding-card--final .peach-onboarding-body {6972  font-size: 0.75rem;6973  line-height: 1.5;6974}69756976.peach-onboarding-card--final .peach-onboarding-choice {6977  min-height: 40px;6978  padding: 6px 10px;6979}69806981.peach-onboarding-card--final .peach-onboarding-choice-row {6982  gap: 6px;6983}69846985.peach-onboarding-card--final .peach-onboarding-choice-heading {6986  margin: 2px 0 -2px;6987}69886989.peach-onboarding-card-headline {6990  margin: 0;6991  font-family: var(--font-display);6992  font-style: italic;6993  font-weight: 400;6994  font-size: 22px;6995  line-height: 1.05;6996  color: var(--peach-t0);6997  white-space: pre-line;6998}69997000.peach-onboarding-divider {7001  margin: 4px 0 6px;7002  border: 0;7003  border-top: 1px solid var(--peach-t3);7004  width: 100%;7005}70067007.peach-onboarding-body {7008  margin: 0;7009  font-size: 0.8125rem;7010  line-height: 1.6;7011  color: var(--peach-t1);7012}70137014.peach-onboarding-warning {7015  display: flex;7016  align-items: flex-start;7017  gap: 8px;7018  margin: 6px 0 0;7019  padding-top: 8px;7020  border-top: 1px dashed var(--peach-t3);7021  font-size: 0.8125rem;7022  line-height: 1.5;7023  color: var(--peach-t1);7024}70257026.peach-onboarding-warning-icon {7027  color: var(--peach-accent);7028  font-size: 0.8125rem;7029  line-height: 1.5;7030  flex: 0 0 auto;7031}70327033.peach-onboarding-nav {7034  position: relative;7035  z-index: 1;7036  display: flex;7037  align-items: center;7038  justify-content: space-between;7039  margin-top: 12px;7040  padding: 0 4px;7041}70427043.peach-onboarding-dots {7044  display: flex;7045  align-items: center;7046  gap: 6px;7047}70487049.peach-onboarding-dot {7050  width: 6px;7051  height: 6px;7052  border-radius: 50%;7053  background: var(--peach-t2);7054  transition: width 200ms ease, height 200ms ease, background 200ms ease;7055}70567057.peach-onboarding-dot.is-active {7058  width: 8px;7059  height: 8px;7060  background: var(--peach-accent);7061}70627063.peach-onboarding-next {7064  background: none;7065  border: none;7066  padding: 4px 0;7067  cursor: pointer;7068  font-family: "IBM Plex Mono", monospace;7069  font-size: 0.6875rem;7070  letter-spacing: 0.04em;7071  color: var(--peach-t1);7072  transition: color 150ms ease;7073}70747075.peach-onboarding-next:hover {7076  color: var(--peach-t0);7077}70787079.peach-onboarding-next:disabled {7080  opacity: 0.5;7081  cursor: default;7082}70837084.peach-onboarding-back {7085  background: none;7086  border: none;7087  padding: 4px 0;7088  cursor: pointer;7089  font-family: "IBM Plex Mono", monospace;7090  font-size: 0.6875rem;7091  letter-spacing: 0.04em;7092  color: var(--peach-t2);7093  transition: color 150ms ease;7094}70957096.peach-onboarding-back:hover {7097  color: var(--peach-t0);7098}70997100.peach-onboarding-back:disabled {7101  opacity: 0.5;7102  cursor: default;7103}71047105/* Reserve back-button width on the first card so the dots stay centred */7106.peach-onboarding-back-spacer {7107  width: 44px;7108}71097110.peach-onboarding-choice-row {7111  display: grid;7112  grid-template-columns: 1fr;7113  gap: 8px;7114}71157116.peach-onboarding-choice-heading {7117  margin: 8px 0 -2px;7118  color: var(--peach-t1);7119  font-family: "IBM Plex Mono", monospace;7120  font-size: 0.6875rem;7121  letter-spacing: 0.04em;7122  text-transform: uppercase;7123}71247125.peach-onboarding-choice {7126  min-height: 48px;7127  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);7128  border-radius: 8px;7129  padding: 8px 10px;7130  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7131  color: var(--peach-t0);7132  font-size: 0.76rem;7133  font-weight: 700;7134  text-align: left;7135}71367137.peach-onboarding-choice-label {7138  display: flex;7139  align-items: center;7140  gap: 6px;7141}71427143.peach-onboarding-choice-detail {7144  display: block;7145}71467147.peach-onboarding-choice-detail {7148  margin-top: 2px;7149  color: var(--peach-t1);7150  font-size: 0.625rem;7151  font-weight: 400;7152  line-height: 1.35;7153}71547155.peach-onboarding-choice--adopt {7156  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);7157  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7158}71597160.peach-onboarding-choice--create {7161  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);7162  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);7163  color: var(--peach-t0);7164  box-shadow:7165    inset 0 1px 0 rgba(255, 255, 255, 0.05),7166    0 0 18px color-mix(in srgb, var(--peach-accent) 12%, transparent);7167}71687169.peach-onboarding-choice--create:hover {7170  border-color: color-mix(in srgb, var(--peach-accent) 75%, transparent);7171  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);7172}71737174.peach-onboarding-choice--create .peach-onboarding-choice-detail {7175  color: var(--peach-t1);7176}71777178.peach-adopt-vault {7179  position: relative;7180  min-height: 100%;7181  padding: 22px;7182  display: grid;7183  place-items: center;7184}71857186.peach-adopt-vault--pair {7187  padding: 10px;7188  overflow-y: auto;7189  scrollbar-width: none;7190}71917192.peach-adopt-vault--pair::-webkit-scrollbar {7193  display: none;7194}71957196.peach-adopt-card {7197  position: relative;7198  z-index: 1;7199  width: min(100%, 330px);7200  padding: 20px;7201  border-radius: 8px;7202  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7203  background: color-mix(in srgb, var(--peach-surface) 90%, transparent);7204  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);7205}72067207.peach-adopt-card--pair {7208  width: 100%;7209  max-height: 500px;7210  margin: auto;7211  padding: 14px 16px 12px;7212  overflow-y: auto;7213  scrollbar-width: none;7214  border: 0;7215  border-radius: 16px;7216  background:7217    radial-gradient(7218      circle at 50% -10%,7219      color-mix(in srgb, var(--peach-accent) 14%, transparent),7220      transparent 38%7221    ),7222    color-mix(in srgb, var(--peach-surface) 94%, transparent);7223}72247225.peach-adopt-card--pair::-webkit-scrollbar {7226  display: none;7227}72287229.peach-adopt-card h1 {7230  margin: 0 0 10px;7231  font-size: 1.28rem;7232  line-height: 1.15;7233}72347235.peach-adopt-card p {7236  margin: 0 0 14px;7237  color: var(--peach-t1);7238  line-height: 1.35;7239}72407241.peach-adopt-card .peach-hint-relay {7242  margin: 12px 0 0;7243  font-size: 11px;7244  line-height: 1.4;7245  color: var(--peach-t2);7246  opacity: 0.85;7247}72487249.peach-adopt-input {7250  margin-bottom: 12px;7251}72527253.peach-adopt-card textarea.peach-adopt-input {7254  width: 100%;7255  resize: vertical;7256  overflow-wrap: anywhere;7257  font-family: "IBM Plex Mono", monospace;7258  font-size: 0.64rem;7259}72607261.peach-adopt-qr-video {7262  display: block;7263  width: 100%;7264  max-height: 220px;7265  margin: 0 0 12px;7266  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);7267  border-radius: 8px;7268  background: #000;7269  object-fit: cover;7270}72717272.peach-adoption-source-invitation {7273  display: flex;7274  flex-direction: column;7275  align-items: center;7276  gap: 10px;7277  padding: 4px 18px 16px;7278  text-align: center;7279}72807281.peach-pair-qr {7282  display: block;7283  margin-inline: auto;7284  max-width: min(224px, 100%);7285  height: auto;7286  padding: 8px;7287  border-radius: 10px;7288  background: #fff;7289}72907291.peach-adopt-card > .peach-btn + .peach-btn {7292  margin-top: 8px;7293}72947295.peach-adopt-actions {7296  display: flex;7297  gap: 10px;7298  margin-top: 14px;7299}73007301.peach-adopt-actions > button {7302  flex: 1;7303}73047305.peach-adopt-sas {7306  margin: 18px 0;7307  padding: 14px;7308  border-radius: 8px;7309  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);7310  color: var(--peach-t0);7311  font-size: 1.35rem;7312  font-weight: 800;7313  font-variant-numeric: tabular-nums;7314  text-align: center;7315}73167317.peach-adopt-pairing {7318  text-align: center;7319}73207321.peach-adopt-pairing h1 {7322  max-width: 260px;7323  margin: 0 auto 6px;7324  color: var(--peach-t0);7325  font-family: var(--font-display, Georgia, serif);7326  font-size: 1.42rem;7327  font-style: italic;7328  font-weight: 500;7329  line-height: 1.12;7330  text-wrap: balance;7331}73327333.peach-adopt-pairing .peach-adopt-pair-lede {7334  max-width: 258px;7335  margin: 0 auto;7336  color: color-mix(in srgb, var(--peach-t0) 82%, var(--peach-bg));7337  font-size: 0.73rem;7338  line-height: 1.42;7339  text-wrap: pretty;7340}73417342.peach-pair-stage.peach-adopt-bird-stage {7343  width: min(100%, 260px);7344  height: 102px;7345  margin: -6px auto 2px;7346}73477348.peach-adopt-bird-stage .peach-pair-bird-slot,7349.peach-adopt-bird-stage .peach-pair-bird {7350  width: 90px;7351  height: 90px;7352}73537354.peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7355  left: 12px;7356}73577358.peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7359  right: 12px;7360}73617362.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-desktop {7363  --bb-x: 12px;7364  transform: translateX(12px);7365}73667367.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7368  --bb-x: -12px;7369  transform: translateX(-12px);7370}73717372.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot {7373  animation: peach-adopt-happy-bob 0.8s ease-in-out infinite;7374}73757376.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7377  animation-delay: 0.18s;7378  animation-direction: reverse;7379}73807381.peach-adopt-pairing.is-complete .peach-pair-stage.peach-adopt-bird-stage {7382  width: 100%;7383  height: 135px;7384  margin: -8px auto 6px;7385}73867387.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot,7388.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird {7389  width: 112px;7390  height: 112px;7391}73927393.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7394  left: 0;7395  --bb-x: 0;7396  transform: translateX(0);7397}73987399.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7400  right: 0;7401  --bb-x: 0;7402  transform: translateX(0);7403}74047405.peach-adopt-pairing.is-complete h1 {7406  font-size: 1.6rem;7407}74087409.peach-adopt-pairing.is-complete .peach-adopt-pair-lede {7410  font-size: 0.78rem;7411}74127413@keyframes peach-adopt-happy-bob {7414  0%, 100% {7415    transform: translateX(var(--bb-x, 0)) translateY(0) rotate(0deg);7416  }7417  35% {7418    transform: translateX(var(--bb-x, 0)) translateY(-8px) rotate(-3deg);7419  }7420  70% {7421    transform: translateX(var(--bb-x, 0)) translateY(-3px) rotate(2deg);7422  }7423}74247425.peach-adopt-connection {7426  position: absolute;7427  left: 50%;7428  bottom: 38px;7429  width: 78px;7430  height: 1px;7431  translate: -50% 0;7432  background: color-mix(in srgb, var(--peach-accent) 62%, transparent);7433  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 56%, transparent);7434}74357436.peach-adopt-pairing.is-complete .peach-adopt-connection {7437  bottom: 49px;7438  width: 92px;7439}74407441.peach-adopt-connection::after {7442  content: "";7443  position: absolute;7444  left: 50%;7445  top: 50%;7446  width: 7px;7447  height: 7px;7448  border-radius: 50%;7449  translate: -50% -50%;7450  background: var(--peach-accent);7451  box-shadow:7452    0 0 0 4px color-mix(in srgb, var(--peach-accent) 17%, transparent),7453    0 0 14px color-mix(in srgb, var(--peach-accent) 74%, transparent);7454  animation: peach-adopt-connection-pulse 1.1s ease-in-out infinite;7455}74567457@keyframes peach-adopt-connection-pulse {7458  0%, 100% { scale: 0.8; opacity: 0.72; }7459  50% { scale: 1.14; opacity: 1; }7460}74617462.peach-adopt-qr-wrap {7463  min-height: 160px;7464  display: grid;7465  place-items: center;7466}74677468.peach-adopt-qr-wrap .peach-hint-error {7469  margin: 12px 0;7470}74717472.peach-adopt-pairing .peach-adopt-pair-status {7473  margin: 0;7474  color: var(--peach-t0);7475  font-size: 0.75rem;7476}74777478.peach-adopt-confirmation {7479  margin-top: 18px;7480  padding: 8px 0 4px;7481}74827483.peach-adopt-confirmation .peach-adopt-confirmation-label {7484  margin: 0 0 7px;7485  color: color-mix(in srgb, var(--peach-accent) 72%, var(--peach-t0));7486  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7487  font-size: 0.625rem;7488  font-weight: 700;7489  letter-spacing: 0.14em;7490}74917492.peach-adopt-confirmation .peach-adoption-sas {7493  margin: 0 auto;7494  padding: 12px 14px;7495  border-color: color-mix(in srgb, var(--peach-accent) 36%, transparent);7496  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7497}74987499.peach-adopt-confirmation .peach-adoption-sas strong {7500  color: color-mix(in srgb, var(--peach-accent) 84%, var(--peach-t0));7501  font-size: 1.58rem;7502  text-shadow: 0 0 16px color-mix(in srgb, var(--peach-accent) 30%, transparent);7503}75047505.peach-adopt-confirmation .peach-adopt-confirmation-help {7506  max-width: 270px;7507  margin: 8px auto 0;7508  color: color-mix(in srgb, var(--peach-t0) 78%, var(--peach-bg));7509  font-size: 0.7rem;7510  line-height: 1.45;7511}75127513.peach-adopt-privacy {7514  display: flex;7515  align-items: flex-start;7516  gap: 9px;7517  margin-top: 10px;7518  padding: 8px 9px;7519  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7520  border-radius: 10px;7521  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);7522  text-align: left;7523}75247525.peach-adopt-privacy svg {7526  width: 16px;7527  height: 16px;7528  flex: 0 0 auto;7529  margin-top: 1px;7530  fill: none;7531  stroke: color-mix(in srgb, var(--peach-accent) 74%, var(--peach-t0));7532  stroke-linecap: round;7533  stroke-linejoin: round;7534  stroke-width: 1.7;7535}75367537.peach-adopt-pairing .peach-adopt-privacy p {7538  margin: 0;7539  color: color-mix(in srgb, var(--peach-t0) 76%, var(--peach-bg));7540  font-size: 0.62rem;7541  line-height: 1.4;7542}75437544.peach-adopt-privacy strong {7545  color: var(--peach-t0);7546  font-weight: 700;7547}75487549.peach-adopt-pair-actions {7550  margin-top: 9px;7551}75527553.peach-adopt-pair-actions > button {7554  width: 100%;7555}75567557.peach-adopt-paired-status {7558  display: inline-flex;7559  align-items: center;7560  gap: 8px;7561  margin: 22px auto 18px;7562  padding: 9px 13px;7563  border: 1px solid color-mix(in srgb, var(--peach-accent) 30%, transparent);7564  border-radius: 999px;7565  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);7566  color: color-mix(in srgb, var(--peach-accent) 78%, var(--peach-t0));7567  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7568  font-size: 0.66rem;7569  font-weight: 700;7570  letter-spacing: 0.04em;7571}75727573.peach-adopt-paired-status span {7574  width: 7px;7575  height: 7px;7576  border-radius: 50%;7577  background: var(--peach-accent);7578  box-shadow: 0 0 8px color-mix(in srgb, var(--peach-accent) 68%, transparent);7579}75807581@media (prefers-reduced-motion: reduce) {7582  .peach-adopt-connection::after {7583    animation: none;7584  }7585}75867587.peach-onboarding-mobile-card-buttons {7588  display: flex;7589  flex-direction: column;7590  gap: 8px;7591  margin-top: 16px;7592}75937594@keyframes peach-onboard-enter {7595  from { opacity: 0; transform: translateY(20px); }7596  to   { opacity: 1; transform: translateY(0); }7597}75987599@keyframes peach-onboard-exit {7600  from { opacity: 1; }7601  to   { opacity: 0; }7602}76037604@keyframes peach-card-in {7605  from { opacity: 0; transform: translateX(12px); }7606  to   { opacity: 1; transform: translateX(0); }7607}76087609@keyframes peach-card-out {7610  from { opacity: 1; transform: translateX(0); }7611  to   { opacity: 0; transform: translateX(-12px); }7612}76137614/* ─── New vault screen — matched to onboarding card language ─────────── */76157616/* Two classes so this beats the shared .peach-screen.lock-screen--vault-stage7617   rule (same element) without loosening the unlock/restore screens. The7618   create-vault screen is the only vault-stage view tall enough to overflow7619   the 520px popup, so its spacing is tuned to fit header → card → restore →7620   recovery warning with nothing clipped. */7621.peach-screen.peach-newvault {7622  position: relative;7623  display: flex;7624  flex-direction: column;7625  gap: 12px;7626  padding: 14px 16px 12px;7627  overflow: hidden;7628}76297630/* Suppress the warm-blob ambient art inherited from .lock-screen — the7631   new vault card now carries the visual weight. */7632.peach-newvault::before {7633  content: none;7634}76357636.peach-newvault-header {7637  position: relative;7638  z-index: 2;7639  display: flex;7640  align-items: center;7641  gap: 10px;7642  margin-bottom: 2px;7643}76447645.peach-newvault-back {7646  display: inline-flex;7647  align-items: center;7648  gap: 4px;7649  background: transparent;7650  border: none;7651  color: var(--peach-t2);7652  font-family: "IBM Plex Mono", monospace;7653  font-size: 0.625rem;7654  letter-spacing: 0.06em;7655  cursor: pointer;7656  padding: 4px 6px;7657  border-radius: 6px;7658  transition: color 120ms ease, background 120ms ease;7659}76607661.peach-newvault-back:hover {7662  color: var(--peach-t0);7663  background: rgba(240, 232, 216, 0.04);7664}76657666.peach-newvault-mark {7667  position: absolute;7668  right: -12px;7669  top: 6px;7670  width: 110px;7671  height: 110px;7672  pointer-events: none;7673  opacity: 0.10;7674  filter: saturate(0.9);7675  z-index: 0;7676}7677.peach-newvault-mark-art {7678  width: 100%;7679  height: 100%;7680}7681.peach-newvault-mark-art path:nth-child(1) {7682  fill: rgba(123, 144, 96, 0.88);7683}7684.peach-newvault-mark-art path:nth-child(2) {7685  stroke: rgba(94, 122, 66, 0.95);7686}76877688.peach-newvault-card {7689  position: relative;7690  z-index: 1;7691  display: flex;7692  flex-direction: column;7693  gap: 8px;7694  padding: 16px 20px 14px;7695  border-radius: 16px;7696  border: 1px solid var(--peach-t3);7697  background:7698    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));7699  backdrop-filter: blur(3px);7700  -webkit-backdrop-filter: blur(3px);7701  box-shadow:7702    inset 0 1px 0 rgba(240, 232, 216, 0.04),7703    0 12px 28px rgba(0, 0, 0, 0.12);7704  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;7705}77067707.peach-newvault-headline {7708  margin: 0;7709  font-family: var(--font-display);7710  font-style: italic;7711  font-weight: 400;7712  font-size: 24px;7713  line-height: 1.05;7714  color: var(--peach-t0);7715  white-space: pre-line;7716}77177718.peach-newvault-divider {7719  margin: 2px 0 4px;7720  border: 0;7721  border-top: 1px solid var(--peach-t3);7722  width: 100%;7723}77247725.peach-newvault-field {7726  display: flex;7727  flex-direction: column;7728  gap: 4px;7729}77307731.peach-newvault-label-row {7732  display: flex;7733  align-items: center;7734  justify-content: space-between;7735}77367737/* Monospace input scaled to the card. Replaces the 22px unlock-input7738   so the placeholder no longer overflows and the field reads as part7739   of the same surface as the body copy. */7740.peach-newvault-input {7741  font-size: 0.875rem;7742  letter-spacing: 0.18em;7743  padding: 8px 0;7744}7745.peach-newvault-input::placeholder {7746  letter-spacing: 0.18em;7747  color: var(--peach-t2);7748}77497750.peach-newvault-hint {7751  margin: 2px 0 0;7752  font-family: "IBM Plex Mono", monospace;7753  font-size: 0.625rem;7754  color: var(--peach-t2);7755  letter-spacing: 0.04em;7756}77577758.peach-newvault-submit {7759  margin-top: 4px;7760}77617762.peach-newvault-warning {7763  display: flex;7764  align-items: flex-start;7765  gap: 8px;7766  margin: 2px 0 0;7767  padding-top: 8px;7768  border-top: 1px dashed var(--peach-t3);7769  font-size: 0.75rem;7770  line-height: 1.45;7771  color: var(--peach-t1);7772}77737774.peach-newvault-warning-icon {7775  color: var(--peach-accent);7776  font-size: 0.8125rem;7777  line-height: 1.4;7778  flex: 0 0 auto;7779}77807781/* Restore options sit inside the card, directly under "create vault", so7782   they are always reachable without scrolling. The top divider mirrors the7783   warning's so the choice reads as a deliberate fork, not a footnote. */7784.peach-newvault-restore {7785  position: relative;7786  z-index: 1;7787  display: flex;7788  flex-direction: column;7789  gap: 4px;7790  margin-top: 4px;7791  padding-top: 10px;7792  border-top: 1px dashed var(--peach-t3);7793}77947795/* Settings body — warm accent gradient gives the glass something to blur against */7796.peach-settings-body {7797  background:7798    radial-gradient(7799      ellipse at 30% 20%,7800      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,7801      transparent 60%7802    );7803}78047805/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */7806/* ── Danger cards (Replace + Destroy) ────────────────────────────────────7807 * Two severity levels: "warn" for actions that are dangerous-but-recoverable7808 * (replacing the vault from a backup file) and "hazard" for actions that7809 * are absolutely irreversible (Panic). Both use the same card scaffold so7810 * they read as a pair, but the colour family signals the severity at a7811 * glance — yellow for caution, red for don't.7812 */7813.peach-danger-card {7814  --danger-tint: 235, 158, 52; /* amber */7815  display: flex;7816  flex-direction: column;7817  gap: 8px;7818  padding: 14px;7819  margin-top: 10px;7820  border-radius: 12px;7821  border: 1px solid rgba(var(--danger-tint), 0.32);7822  background:7823    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),7824    rgba(var(--danger-tint), 0.04);7825  box-shadow:7826    inset 0 1px 0 rgba(var(--danger-tint), 0.08),7827    0 0 24px rgba(var(--danger-tint), 0.04);7828  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;7829}78307831.peach-danger-card:hover {7832  border-color: rgba(var(--danger-tint), 0.55);7833  box-shadow:7834    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7835    0 0 36px rgba(var(--danger-tint), 0.10);7836}78377838.peach-danger-card--hazard {7839  --danger-tint: 220, 38, 38; /* red */7840}78417842.peach-danger-card-head {7843  display: flex;7844  align-items: center;7845  gap: 10px;7846}78477848.peach-danger-card-glyph {7849  width: 28px;7850  height: 28px;7851  flex-shrink: 0;7852  display: flex;7853  align-items: center;7854  justify-content: center;7855  border-radius: 8px;7856  background: rgba(var(--danger-tint), 0.12);7857  color: rgba(var(--danger-tint), 0.95);7858  font-size: 1rem;7859  line-height: 1;7860}78617862.peach-danger-card-title {7863  margin: 0;7864  font-size: 0.8125rem;7865  font-weight: 600;7866  color: rgba(var(--danger-tint), 0.92);7867  letter-spacing: 0.01em;7868}78697870.peach-danger-card-copy {7871  margin: 0;7872  font-size: 0.6875rem;7873  line-height: 1.5;7874  color: var(--peach-t2);7875}78767877.peach-danger-card-button {7878  width: 100%;7879  padding: 9px;7880  margin-top: 4px;7881  background: transparent;7882  border: 1px solid rgba(var(--danger-tint), 0.45);7883  border-radius: 8px;7884  color: rgba(var(--danger-tint), 0.9);7885  font-size: 0.75rem;7886  font-weight: 500;7887  letter-spacing: 0.02em;7888  cursor: pointer;7889  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7890}78917892.peach-danger-card-button:hover {7893  background: rgba(var(--danger-tint), 0.10);7894  border-color: rgba(var(--danger-tint), 0.75);7895  color: rgb(var(--danger-tint));7896}78977898.peach-adoption-sas {7899  margin: 16px auto 0;7900  padding: 12px 16px;7901  border: 1px solid color-mix(in srgb, var(--peach-t0) 18%, transparent);7902  border-radius: 10px;7903  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7904  color: var(--peach-t0);7905  text-align: center;7906}79077908.peach-adoption-sas strong {7909  font-size: 1.65rem;7910  font-variant-numeric: tabular-nums;7911  letter-spacing: 0.18em;7912  white-space: nowrap;7913}79147915/* ── Panic flow (three-step destruction) ───────────────────────────────── */7916.peach-panic {7917  display: flex;7918  flex-direction: column;7919  flex: 1;7920  min-height: 0;7921  padding: 28px 20px 20px;7922  gap: 18px;7923  overflow-y: auto;7924  scrollbar-width: none;7925  -ms-overflow-style: none;7926}79277928.peach-panic::-webkit-scrollbar { display: none; }79297930.peach-panic-step2 {7931  background: rgba(220, 38, 38, 0.04);7932}79337934.peach-panic-step3 {7935  position: relative;7936  background: #0f0505;7937  color: #ffffff;7938  overflow: hidden;7939}79407941.peach-panic-rune-bg {7942  position: absolute;7943  inset: 0;7944  opacity: 0.22;7945  pointer-events: none;7946  overflow: hidden;7947}79487949.peach-panic-rune-bg canvas {7950  width: 100% !important;7951  height: 100% !important;7952}79537954.peach-panic-icon {7955  font-size: 32px;7956  color: rgb(220, 38, 38);7957  line-height: 1;7958}79597960.peach-panic-title {7961  margin: 0;7962  font-size: 18px;7963  font-weight: 500;7964  color: var(--peach-t1);7965}79667967.peach-panic-title--severe {7968  font-size: 20px;7969  font-weight: 700;7970  color: rgb(220, 38, 38);7971}79727973.peach-panic-body {7974  margin: 0;7975  font-size: 0.8125rem;7976  line-height: 1.55;7977  color: var(--peach-t2);7978}79797980.peach-panic-body--severe {7981  color: rgba(220, 38, 38, 0.85);7982}79837984.peach-panic-body--final {7985  font-size: 1rem;7986  font-weight: 700;7987  color: rgb(255, 80, 80);7988  line-height: 1.4;7989}79907991.peach-panic-body--final-intro {7992  font-size: 1rem;7993  color: #ffffff;7994  font-weight: 400;7995}79967997.peach-panic-divider {7998  height: 1px;7999  background: rgba(255, 255, 255, 0.08);8000  margin: 4px 0;8001}80028003.peach-panic-confirm-input {8004  width: 100%;8005  padding: 10px 12px;8006  background: rgba(255, 255, 255, 0.02);8007  border: 1px solid rgba(220, 38, 38, 0.4);8008  border-radius: 8px;8009  color: var(--peach-t1);8010  font-family: "IBM Plex Mono", monospace;8011  font-size: 0.875rem;8012  letter-spacing: 0.12em;8013  text-transform: uppercase;8014}80158016.peach-panic-confirm-input:focus {8017  outline: none;8018  border-color: rgb(220, 38, 38);8019}80208021.peach-panic-confirm-input--match {8022  border-color: rgb(220, 38, 38);8023  color: rgb(220, 38, 38);8024}80258026.peach-panic-confirm-label {8027  font-size: 0.6875rem;8028  color: var(--peach-t2);8029  margin: 0 0 -8px;8030  letter-spacing: 0.06em;8031}80328033.peach-panic-actions {8034  display: flex;8035  flex-direction: column;8036  gap: 10px;8037  margin-top: auto;8038}80398040.peach-panic-button {8041  width: 100%;8042  padding: 12px;8043  border-radius: 8px;8044  font-size: 0.8125rem;8045  cursor: pointer;8046  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;8047}80488049.peach-panic-button--primary {8050  background: var(--peach-accent);8051  border: 1px solid var(--peach-accent);8052  color: #ffffff;8053  font-weight: 600;8054}80558056.peach-panic-button--primary:hover {8057  background: color-mix(in srgb, var(--peach-accent) 88%, white);8058}80598060.peach-panic-button--danger {8061  background: rgb(220, 38, 38);8062  border: 1px solid rgb(220, 38, 38);8063  color: #ffffff;8064  font-weight: 600;8065}80668067.peach-panic-button--danger:disabled {8068  opacity: 0.35;8069  cursor: not-allowed;8070}80718072.peach-panic-button--ghost {8073  background: transparent;8074  border: 1px solid rgba(255, 255, 255, 0.18);8075  color: var(--peach-t2);8076}80778078.peach-panic-button--ghost:hover {8079  border-color: rgba(255, 255, 255, 0.32);8080  color: var(--peach-t1);8081}80828083.peach-panic-link {8084  background: transparent;8085  border: none;8086  padding: 4px 0;8087  color: rgba(220, 38, 38, 0.65);8088  font-size: 0.75rem;8089  cursor: pointer;8090  text-align: left;8091  text-decoration: underline;8092  text-underline-offset: 3px;8093}80948095.peach-panic-link:hover {8096  color: rgb(220, 38, 38);8097}80988099.peach-panic-bar {8100  background: rgb(220, 38, 38);8101  padding: 16px 20px;8102  margin: -28px -20px 0;8103  text-align: center;8104  font-size: 0.8125rem;8105  font-weight: 700;8106  letter-spacing: 0.12em;8107  color: #ffffff;8108}81098110.peach-panic-final-button {8111  width: 100%;8112  padding: 14px;8113  background: rgb(220, 38, 38);8114  border: none;8115  border-radius: 8px;8116  color: #ffffff;8117  font-size: 0.875rem;8118  font-weight: 700;8119  letter-spacing: 0.08em;8120  text-transform: uppercase;8121  cursor: pointer;8122  animation: peach-panic-pulse 2s ease-in-out infinite;8123}81248125.peach-settings-license {8126  margin-top: 10px;8127  padding-top: 10px;8128  border-top: 1px solid var(--peach-t3);8129}81308131.peach-settings-label {8132  font-size: 0.625rem;8133  letter-spacing: 0.08em;8134  color: var(--peach-t3);8135  display: block;8136  margin-bottom: 6px;8137}81388139.peach-settings-license-row {8140  display: flex;8141  align-items: center;8142  justify-content: space-between;8143  gap: 8px;8144}81458146.peach-settings-license-key {8147  font-family: 'IBM Plex Mono', monospace;8148  font-size: 0.75rem;8149  color: var(--peach-t0);8150  letter-spacing: 0.04em;8151  word-break: break-all;8152  flex: 1;8153  min-width: 0;8154}81558156.peach-settings-license-key--masked {8157  font-family: 'IBM Plex Mono', monospace;8158  font-size: 0.6rem;8159  color: var(--peach-t1);8160  letter-spacing: 0.18em;8161  user-select: none;8162}81638164.peach-settings-license-actions {8165  display: flex;8166  align-items: center;8167  gap: 2px;8168  flex-shrink: 0;8169}81708171.peach-settings-license-copy {8172  font-size: 0.6875rem;8173  color: var(--peach-accent);8174  background: transparent;8175  border: none;8176  cursor: pointer;8177  padding: 4px 8px;8178  border-radius: 4px;8179  flex-shrink: 0;8180  transition: opacity 150ms ease;8181}81828183.peach-settings-license-copy:hover {8184  opacity: 0.75;8185}81868187.peach-settings-license-toggle {8188  display: flex;8189  align-items: center;8190  justify-content: center;8191  background: transparent;8192  border: none;8193  cursor: pointer;8194  padding: 4px 6px;8195  border-radius: 4px;8196  color: var(--peach-t2);8197  transition: color 150ms ease;8198}81998200.peach-settings-license-toggle:hover {8201  color: var(--peach-t1);8202}82038204@keyframes peach-panic-pulse {8205  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }8206  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }8207}82088209[data-motion="reduce"] .peach-panic-final-button {8210  animation: none;8211}82128213/* Vault History — Settings → Vault sub-view */82148215.peach-history-list {8216  border: 1px solid var(--peach-border);8217  border-radius: 8px;8218  overflow: hidden;8219  margin: 8px 0 4px;8220}82218222.peach-history-row {8223  display: flex;8224  align-items: center;8225  justify-content: space-between;8226  padding: 9px 12px;8227  gap: 10px;8228  border-bottom: 1px solid var(--peach-border);8229}82308231.peach-history-row:last-child {8232  border-bottom: none;8233}82348235.peach-history-meta {8236  display: flex;8237  flex-direction: column;8238  gap: 2px;8239  min-width: 0;8240  flex: 1;8241}82428243.peach-history-time {8244  font-size: 0.75rem;8245  font-family: 'IBM Plex Mono', ui-monospace, monospace;8246  color: var(--peach-t0);8247  white-space: nowrap;8248  overflow: hidden;8249  text-overflow: ellipsis;8250}82518252.peach-history-sub {8253  font-size: 0.625rem;8254  color: var(--peach-t2);8255  letter-spacing: 0.06em;8256  text-transform: uppercase;8257  white-space: nowrap;8258  overflow: hidden;8259  text-overflow: ellipsis;8260}82618262.peach-history-btn {8263  flex-shrink: 0;8264  white-space: nowrap;8265  min-width: 56px;8266  text-align: center;8267}82688269.peach-history-btn.is-busy {8270  opacity: 0.65;8271}82728273.peach-history-footer {8274  font-size: 0.625rem;8275  color: var(--peach-t3);8276  letter-spacing: 0.05em;8277  text-align: right;8278  margin: 0;8279  padding: 2px 0 0;8280}82818282/* ── Context menu + swipe-copy flash ─────────────────────── */8283.peach-context-menu-backdrop {8284  position: fixed;8285  inset: 0;8286  background: rgba(0, 0, 0, 0.45);8287  z-index: 100;8288  display: flex;8289  align-items: flex-end;8290  justify-content: center;8291  animation: peach-ctx-fade 140ms ease both;8292}8293.peach-context-menu {8294  width: min(360px, calc(100vw - 24px));8295  margin-bottom: max(env(safe-area-inset-bottom), 12px);8296  background: var(--peach-bg);8297  border: 1px solid var(--peach-t3);8298  border-radius: 14px;8299  padding: 6px;8300  display: flex;8301  flex-direction: column;8302  gap: 2px;8303  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);8304  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;8305}8306@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }8307@keyframes peach-ctx-rise {8308  from { transform: translateY(16px); opacity: 0; }8309  to   { transform: translateY(0);    opacity: 1; }8310}8311.peach-context-menu-item {8312  background: transparent;8313  color: var(--peach-t0);8314  border: 0;8315  border-radius: 10px;8316  padding: 12px 14px;8317  text-align: left;8318  font: inherit;8319  cursor: pointer;8320}8321.peach-context-menu-item:hover,8322.peach-context-menu-item:focus-visible {8323  background: var(--peach-t3);8324}8325.peach-context-menu-item--danger {8326  color: var(--peach-health-bad, #d96868);8327}8328.peach-context-menu-item--cancel {8329  color: var(--peach-t2);8330  margin-top: 4px;8331  border-top: 1px solid var(--peach-t3);8332  border-radius: 0 0 10px 10px;8333}83348335/* Swipe-to-copy flash */8336.peach-entry-row.is-copy-flash {8337  animation: peach-copy-flash 600ms ease both;8338}8339@keyframes peach-copy-flash {8340  0%   { background: transparent; }8341  20%  { background: rgba(217, 153, 51, 0.32); }8342  100% { background: transparent; }8343}83448345html { font-size: 16px; }83468347/* ── Recovery word entry ─────────────────────────────────────────── */8348.peach-lock-recover-link {8349  display: block;8350  width: 100%;8351  margin-top: 12px;8352  background: none;8353  border: none;8354  font-family: "IBM Plex Mono", monospace;8355  font-size: 0.625rem;8356  letter-spacing: 0.06em;8357  color: var(--peach-t2);8358  cursor: pointer;8359  text-align: center;8360  padding: 4px;8361  transition: color 120ms ease;8362}8363.peach-lock-recover-link:hover {8364  color: var(--peach-t0);8365}83668367.lock-screen--recovery {8368  display: flex;8369  flex-direction: column;8370  align-items: stretch;8371  padding: 12px 20px 24px;8372  overflow: hidden;8373}83748375.peach-recovery-nav {8376  display: flex;8377  align-items: center;8378  position: relative;8379  z-index: 1;8380  margin-bottom: 4px;8381}83828383/* Mask runes to the top decorative band only — keep inputs and the8384   bottom CTA button clear. The bottom of the popup is reserved for8385   submit buttons; rendering runes there overlaps the button glyph. */8386.peach-rune-background--recovery {8387  -webkit-mask-image: linear-gradient(8388    to bottom,8389    black 0px, black 85px,8390    transparent 110px,8391    transparent 100%8392  );8393  mask-image: linear-gradient(8394    to bottom,8395    black 0px, black 85px,8396    transparent 110px,8397    transparent 100%8398  );8399}84008401.peach-recovery-header {8402  text-align: center;8403  margin-bottom: 16px;8404  margin-top: 4px;8405}8406.peach-recovery-header .peach-onboarding-headline {8407  font-size: 1.25rem;8408  font-weight: 300;8409  letter-spacing: 0.02em;8410  margin: 0 0 4px;8411}8412.peach-recovery-header .peach-hint {8413  font-family: "IBM Plex Mono", monospace;8414  font-size: 0.625rem;8415  color: var(--peach-t2);8416  letter-spacing: 0.04em;8417  margin: 0;8418}84198420/* 12-word grid: 2 columns × 6 rows */8421.peach-recovery-grid {8422  display: grid;8423  grid-template-columns: repeat(2, 1fr);8424  gap: 12px 20px;8425  width: 100%;8426  margin-bottom: 0;8427}84288429.peach-recovery-word-slot {8430  display: flex;8431  align-items: center;8432  gap: 6px;8433  min-width: 0;8434}84358436.peach-recovery-word-index {8437  font-family: "IBM Plex Mono", monospace;8438  font-size: 0.5rem;8439  color: rgba(255, 255, 255, 0.35);8440  min-width: 14px;8441  flex-shrink: 0;8442  text-align: right;8443  letter-spacing: 0.04em;8444}84458446.peach-recovery-word-input {8447  flex: 1;8448  min-width: 0;8449  background: transparent;8450  border: none;8451  border-bottom: 1px solid rgba(255, 255, 255, 0.22);8452  color: var(--peach-t0);8453  font-family: "IBM Plex Mono", monospace;8454  font-size: 0.6875rem;8455  letter-spacing: 0.06em;8456  padding: 5px 2px 4px;8457  outline: none;8458  text-transform: lowercase;8459  transition: border-color 120ms ease;8460}8461.peach-recovery-word-input::placeholder {8462  color: rgba(255, 255, 255, 0.18);8463}8464.peach-recovery-word-input:focus {8465  border-bottom-color: var(--peach-accent);8466}84678468.peach-recovery-submit {8469  width: 100%;8470  margin-top: auto;8471}84728473.peach-recovery-new-password-form {8474  width: 100%;8475  display: flex;8476  flex-direction: column;8477  gap: 16px;8478  margin-bottom: 8px;8479}8480.peach-recovery-new-password-form .peach-newvault-field {8481  display: flex;8482  flex-direction: column;8483  gap: 4px;8484}84858486/* ── Recovery words display (post-create) ────────────────────────── */8487.lock-screen--recovery-display {8488  display: flex;8489  flex-direction: column;8490  align-items: stretch;8491  padding: 0 20px 20px;8492  min-height: 0;8493  overflow-y: auto;8494}84958496.peach-recovery-words-display {8497  width: 100%;8498  margin-bottom: 16px;8499  border: 1px solid var(--peach-t3);8500  border-radius: 8px;8501  padding: 12px 14px;8502  background: rgba(245, 240, 234, 0.04);8503}85048505.peach-recovery-words-label {8506  font-family: "IBM Plex Mono", monospace;8507  font-size: 0.5rem;8508  letter-spacing: 0.08em;8509  color: var(--peach-t2);8510  text-transform: uppercase;8511  margin-bottom: 10px;8512}85138514.peach-recovery-word-list {8515  list-style: none;8516  margin: 0;8517  padding: 0;8518  display: grid;8519  grid-template-columns: repeat(2, 1fr);8520  gap: 6px 16px;8521}85228523.peach-recovery-word-item {8524  display: flex;8525  align-items: baseline;8526  gap: 5px;8527}85288529.peach-recovery-word-num {8530  font-family: "IBM Plex Mono", monospace;8531  font-size: 0.5rem;8532  color: var(--peach-t2);8533  width: 14px;8534  flex: 0 0 14px;8535  text-align: right;8536  letter-spacing: 0.04em;8537  font-variant-numeric: tabular-nums;8538}85398540.peach-recovery-download-btn {8541  display: block;8542  margin: 10px auto 0;8543  padding: 4px 10px;8544  background: transparent;8545  border: 1px solid var(--peach-border);8546  border-radius: 6px;8547  color: var(--peach-t2);8548  font-family: "IBM Plex Mono", monospace;8549  font-size: 0.5625rem;8550  letter-spacing: 0.06em;8551  text-transform: lowercase;8552  cursor: pointer;8553  transition: border-color 0.15s, color 0.15s;8554}85558556.peach-recovery-download-btn:hover {8557  border-color: var(--peach-accent);8558  color: var(--peach-t0);8559}85608561.peach-recovery-word-text {8562  font-family: "IBM Plex Mono", monospace;8563  font-size: 0.6875rem;8564  letter-spacing: 0.06em;8565  color: var(--peach-t0);8566  text-transform: lowercase;8567}85688569.peach-hint--warning {8570  color: var(--peach-accent);8571  font-style: italic;8572}8573.peach-hint--success {8574  color: var(--peach-t2);8575  font-family: "IBM Plex Mono", monospace;8576  font-size: 0.625rem;8577  letter-spacing: 0.06em;8578}85798580/* Confirmation step */8581.peach-recovery-confirm {8582  width: 100%;8583  flex: 1;8584  display: flex;8585  flex-direction: column;8586}8587.peach-recovery-confirm-label {8588  font-family: "IBM Plex Mono", monospace;8589  font-size: 0.5625rem;8590  letter-spacing: 0.04em;8591  color: var(--peach-t2);8592  text-align: center;8593  margin: 0 0 12px;8594}8595.peach-recovery-confirm-fields {8596  display: flex;8597  flex-direction: column;8598  gap: 14px;8599  margin-bottom: 10px;8600}8601.peach-recovery-confirm-field {8602  display: flex;8603  align-items: center;8604  gap: 8px;8605}8606.peach-recovery-confirm-num {8607  font-family: "IBM Plex Mono", monospace;8608  font-size: 0.5rem;8609  color: var(--peach-t2);8610  min-width: 44px;8611  letter-spacing: 0.04em;8612}8613.peach-recovery-confirm-input {8614  flex: 1;8615  background: transparent;8616  border: none;8617  border-bottom: 1px solid var(--peach-t3);8618  color: var(--peach-t0);8619  font-family: "IBM Plex Mono", monospace;8620  font-size: 0.6875rem;8621  letter-spacing: 0.06em;8622  padding: 4px 2px 3px;8623  outline: none;8624  text-transform: lowercase;8625  transition: border-color 120ms ease;8626}8627.peach-recovery-confirm-input:focus {8628  border-bottom-color: var(--peach-accent);8629}8630.peach-recovery-confirm-input:disabled {8631  opacity: 0.4;8632  cursor: not-allowed;8633}8634.peach-recovery-confirm-btn {8635  width: 100%;8636  margin-top: auto;8637}86388639/* ============================================================8640   Sync info sheet8641   ============================================================ */86428643.peach-sync-info-backdrop {8644  position: fixed;8645  inset: 0;8646  z-index: 200;8647  background: rgba(0, 0, 0, 0.55);8648  display: flex;8649  align-items: flex-end;8650  animation: peach-fade-in 200ms ease forwards;8651}86528653@keyframes peach-fade-in {8654  from { opacity: 0; }8655  to   { opacity: 1; }8656}86578658.peach-sync-info-sheet {8659  width: 100%;8660  background: var(--peach-bg-card, var(--peach-bg));8661  border-top-left-radius: 20px;8662  border-top-right-radius: 20px;8663  padding: 12px 24px 32px;8664  display: flex;8665  flex-direction: column;8666  gap: 20px;8667  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;8668}86698670@keyframes peach-sheet-up {8671  from { transform: translateY(100%); }8672  to   { transform: translateY(0); }8673}86748675.peach-sync-info-handle {8676  width: 36px;8677  height: 4px;8678  border-radius: 2px;8679  background: var(--peach-border);8680  margin: 0 auto 4px;8681  flex-shrink: 0;8682}86838684.peach-sync-info-title {8685  font-family: 'Cormorant Garamond', serif;8686  font-style: italic;8687  font-size: 26px;8688  font-weight: 600;8689  color: var(--peach-t0);8690  margin: 0;8691  line-height: 1.2;8692}86938694.peach-sync-info-body {8695  display: flex;8696  flex-direction: column;8697  gap: 14px;8698}86998700.peach-sync-info-point {8701  display: flex;8702  gap: 12px;8703  align-items: flex-start;8704  font-size: 14px;8705  color: var(--peach-t2);8706  line-height: 1.6;8707  margin: 0;8708}87098710.peach-sync-info-icon {8711  color: var(--peach-accent);8712  font-size: 16px;8713  flex-shrink: 0;8714  margin-top: 1px;8715}87168717.peach-sync-info-actions {8718  display: flex;8719  flex-direction: column;8720  gap: 12px;8721  margin-top: 4px;8722}87238724.peach-sync-info-pro-link {8725  background: none;8726  border: none;8727  font-size: 13px;8728  color: var(--peach-t3);8729  cursor: pointer;8730  padding: 0;8731  font-family: inherit;8732  text-align: center;8733  transition: color 150ms ease;8734}87358736.peach-sync-info-pro-link:hover {8737  color: var(--peach-accent);8738}87398740.peach-btn--full {8741  width: 100%;8742}87438744/* ── Sync screen ── */87458746.peach-sync-coming-soon {8747  display: flex;8748  align-items: flex-start;8749  gap: 10px;8750  padding: 12px 14px;8751  background: var(--peach-s1);8752  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);8753  border-radius: 10px;8754}8755.peach-sync-coming-soon__icon {8756  flex-shrink: 0;8757  color: var(--peach-accent);8758  margin-top: 1px;8759  line-height: 0;8760}8761.peach-sync-coming-soon__title {8762  font-family: 'Cormorant Garamond', serif;8763  font-weight: 500;8764  font-size: 13px;8765  color: var(--peach-accent);8766  margin: 0 0 5px;8767  line-height: 1.3;8768}8769.peach-sync-coming-soon__body {8770  font-size: 12px;8771  color: var(--peach-t1);8772  line-height: 1.55;8773  margin: 0;8774}87758776.peach-sync-screen {8777  display: flex;8778  flex-direction: column;8779  height: 100%;8780}87818782.peach-sync-content {8783  flex: 1;8784  overflow-y: auto;8785  padding: 24px 20px 40px;8786  display: flex;8787  flex-direction: column;8788  gap: 24px;8789}87908791/* Intro (State A) */8792.peach-sync-headline {8793  font-family: 'Cormorant Garamond', serif;8794  font-style: italic;8795  font-size: 28px;8796  font-weight: 600;8797  color: var(--peach-t0);8798  margin: 0 0 10px;8799  line-height: 1.2;8800}88018802.peach-sync-intro-body {8803  font-size: 14px;8804  color: var(--peach-t1);8805  line-height: 1.6;8806  margin: 0;8807}88088809.peach-sync-pro-note {8810  display: flex;8811  flex-direction: column;8812  gap: 8px;8813  background: var(--peach-t3);8814  border-radius: 10px;8815  padding: 12px 14px;8816}88178818.peach-sync-pro-note-text {8819  font-size: 12px;8820  color: var(--peach-t2);8821  line-height: 1.5;8822  margin: 0;8823}88248825.peach-sync-pro-link {8826  background: none;8827  border: none;8828  font-size: 12px;8829  color: var(--peach-accent);8830  cursor: pointer;8831  padding: 0;8832  font-family: inherit;8833  text-align: left;8834}88358836/* Status (State C) */8837.peach-sync-status {8838  padding: 12px 0;8839  border-bottom: 1px solid var(--peach-border);8840}88418842.peach-sync-status-row {8843  display: flex;8844  align-items: center;8845  gap: 8px;8846}88478848.peach-sync-dot {8849  width: 7px;8850  height: 7px;8851  border-radius: 50%;8852  flex-shrink: 0;8853}88548855.peach-sync-dot--green { background: var(--peach-health-ok); }8856.peach-sync-dot--amber { background: var(--peach-accent); }88578858.peach-sync-status-text {8859  font-family: 'IBM Plex Mono', monospace;8860  font-size: 11px;8861  color: var(--peach-t2);8862}88638864/* Paired devices */8865.peach-sync-section {8866  display: flex;8867  flex-direction: column;8868  gap: 2px;8869}88708871.peach-sync-section-label {8872  font-family: 'IBM Plex Mono', monospace;8873  font-size: 10px;8874  letter-spacing: 0.1em;8875  color: var(--peach-t3);8876  margin: 0 0 10px;8877}88788879.peach-sync-device-row {8880  display: flex;8881  justify-content: space-between;8882  align-items: baseline;8883  padding: 10px 0;8884  border-bottom: 1px solid var(--peach-border);8885  gap: 12px;8886}88878888.peach-sync-device-name {8889  font-size: 14px;8890  color: var(--peach-t1);8891}88928893.peach-sync-device-meta {8894  font-family: 'IBM Plex Mono', monospace;8895  font-size: 11px;8896  color: var(--peach-t3);8897  white-space: nowrap;8898}88998900.peach-sync-hub-note {8901  padding: 14px 16px;8902  border: 1px solid var(--peach-border);8903  border-radius: 10px;8904  display: flex;8905  flex-direction: column;8906  gap: 6px;8907  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8908}89098910.peach-sync-hub-note-title {8911  font-size: 13px;8912  font-weight: 600;8913  color: var(--peach-t0);8914  margin: 0;8915}89168917.peach-sync-hub-note-body {8918  font-size: 12px;8919  color: var(--peach-t2);8920  line-height: 1.6;8921  margin: 0;8922}89238924/* Action buttons */8925.peach-sync-actions {8926  display: flex;8927  gap: 10px;8928  flex-wrap: wrap;8929}89308931/* Upgrade prompt (State B) */8932.peach-sync-upgrade {8933  display: flex;8934  flex-direction: column;8935  gap: 12px;8936  padding: 16px;8937  border: 1px solid var(--peach-border);8938  border-radius: 10px;8939}89408941.peach-sync-upgrade-text {8942  font-size: 13px;8943  color: var(--peach-t2);8944  line-height: 1.6;8945  margin: 0;8946}89478948/* Network note */8949.peach-sync-network-note {8950  font-size: 12px;8951  color: var(--peach-t3);8952  line-height: 1.6;8953  margin: 0;8954}89558956/* Advanced */8957.peach-sync-advanced {8958  margin-top: auto;8959  padding-top: 16px;8960  border-top: 1px solid var(--peach-border);8961}89628963.peach-sync-advanced-toggle {8964  display: flex;8965  align-items: center;8966  gap: 8px;8967  background: none;8968  border: none;8969  font-family: 'IBM Plex Mono', monospace;8970  font-size: 11px;8971  letter-spacing: 0.08em;8972  color: var(--peach-t3);8973  cursor: pointer;8974  padding: 0;8975  text-transform: uppercase;8976}89778978.peach-sync-advanced-chevron {8979  display: inline-block;8980  transition: transform 200ms ease;8981  font-size: 10px;8982}89838984.peach-sync-advanced-chevron.is-open {8985  transform: rotate(90deg);8986}89878988.peach-sync-advanced-content {8989  margin-top: 14px;8990}89918992.peach-sync-advanced-row {8993  display: flex;8994  justify-content: space-between;8995  align-items: center;8996  gap: 16px;8997}89988999.peach-sync-advanced-title {9000  font-size: 14px;9001  color: var(--peach-t1);9002  margin: 0 0 2px;9003}90049005.peach-sync-advanced-subtitle {9006  font-size: 12px;9007  color: var(--peach-t3);9008  margin: 0;9009  line-height: 1.5;9010}90119012/* ── Notes Mode ── */90139014/* Overlay that crossfades over the vault */9015.peach-notes-overlay {9016  position: fixed;9017  inset: 0;9018  z-index: 90;9019  opacity: 0;9020  pointer-events: none;9021  animation: peach-mode-in 220ms ease-in forwards;9022}90239024.peach-notes-overlay.is-visible {9025  opacity: 1;9026  pointer-events: auto;9027}90289029@keyframes peach-mode-in {9030  from { opacity: 0; }9031  to   { opacity: 1; }9032}90339034/* Top-level notes surface */9035.peach-notes-mode {9036  position: absolute;9037  inset: 0;9038  background:9039    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 5%, transparent) 0%, transparent 62%),9040    var(--peach-bg);9041  display: flex;9042  flex-direction: column;9043}90449045/* Rune canvas positioned behind content */9046.peach-note-rune-canvas {9047  position: absolute;9048  inset: 0;9049  width: 100%;9050  height: 100%;9051  pointer-events: none;9052  z-index: 0;9053}90549055/* TOC wrapper */9056.peach-notes-toc-wrapper {9057  position: absolute;9058  inset: 0;9059  z-index: 1;9060  opacity: 1;9061  pointer-events: auto;9062  transition: opacity 200ms ease;9063}90649065.peach-notes-toc-wrapper.is-hidden {9066  opacity: 0;9067  pointer-events: none;9068}90699070/* Editor wrapper */9071.peach-notes-editor-wrapper {9072  position: absolute;9073  inset: 0;9074  z-index: 2;9075  opacity: 0;9076  pointer-events: none;9077  transition: opacity 200ms ease;9078}90799080.peach-notes-editor-wrapper.is-visible {9081  opacity: 1;9082  pointer-events: auto;9083}90849085/* TOC inner */9086.peach-notes-toc {9087  position: relative;9088  display: flex;9089  flex-direction: column;9090  height: 100%;9091  padding-top: env(safe-area-inset-top, 0px);9092  padding-bottom: env(safe-area-inset-bottom, 0px);9093}90949095/* Shared header */9096.peach-notes-header {9097  display: flex;9098  align-items: center;9099  padding: 12px 16px;9100  gap: 12px;9101  flex-shrink: 0;9102  min-height: 52px;9103  position: relative;9104  z-index: 2;9105}91069107.peach-notes-back {9108  font-size: 22px;9109  color: var(--peach-t2);9110  background: none;9111  border: none;9112  padding: 4px;9113  cursor: pointer;9114  line-height: 1;9115  flex-shrink: 0;9116  transition: color 150ms ease;9117  -webkit-tap-highlight-color: transparent;9118}91199120.peach-notes-back:active { color: var(--peach-t0); }91219122.peach-notes-header-title {9123  flex: 1;9124  font-family: 'Cormorant Garamond', serif;9125  font-style: italic;9126  font-size: 22px;9127  color: var(--peach-t0);9128  text-align: center;9129}91309131.peach-notes-header--editor {9132  display: grid;9133  grid-template-columns: 36px minmax(0, 1fr) 36px;9134}91359136.peach-notes-header--editor .peach-notes-back,9137.peach-notes-header--editor .peach-notes-header-actions {9138  width: 36px;9139}91409141.peach-notes-header--editor .peach-notes-header-title {9142  cursor: pointer;9143}91449145.peach-notes-header-actions {9146  display: flex;9147  gap: 8px;9148  flex-shrink: 0;9149}91509151.peach-notes-header-btn {9152  width: 36px;9153  height: 36px;9154  display: flex;9155  align-items: center;9156  justify-content: center;9157  background: none;9158  border: none;9159  color: var(--peach-t2);9160  cursor: pointer;9161  border-radius: 8px;9162  font-size: 16px;9163  transition: color 150ms ease, background 150ms ease;9164  -webkit-tap-highlight-color: transparent;9165}91669167.peach-notes-header-btn:active {9168  background: rgba(255,255,255,0.06);9169  color: var(--peach-t0);9170}91719172/* The header + glyph is larger than the search svg so the two right-side9173 * buttons feel visually balanced. The base .peach-notes-header-btn caps font9174 * at 16px which would render the + too small. */9175.peach-notes-new-btn-icon {9176  font-size: 22px;9177  font-weight: 300;9178  line-height: 1;9179}91809181.peach-notes-search-btn svg {9182  display: block;9183  transform: translate(0.5px, 2.5px);9184}91859186/* Inline search bar */9187.peach-notes-search-input {9188  flex: 1;9189  background: none;9190  border: none;9191  outline: none;9192  font-family: 'IBM Plex Mono', monospace;9193  font-size: 13px;9194  color: var(--peach-t0);9195  padding: 4px 0;9196  letter-spacing: 0.02em;9197}91989199.peach-notes-search-input::placeholder {9200  color: var(--peach-t3);9201}92029203/* TOC list */9204.peach-notes-list-container {9205  flex: 1;9206  overflow-y: auto;9207  overflow-x: hidden;9208  scrollbar-width: none;9209  -webkit-overflow-scrolling: touch;9210  overscroll-behavior: contain;9211  position: relative;9212  z-index: 1;9213}92149215.peach-notes-list-container::-webkit-scrollbar { display: none; }92169217/* Note row */9218.peach-note-row {9219  position: relative;9220  display: grid;9221  grid-template-columns: 44px 8px 1fr 8px auto;9222  align-items: center;9223  min-height: 72px;9224  padding: 16px 20px;9225  border-bottom: 0.5px solid var(--peach-border);9226  cursor: pointer;9227  overflow: hidden;9228  touch-action: pan-y;9229  user-select: none;9230  -webkit-user-select: none;9231  -webkit-tap-highlight-color: transparent;9232}92339234.peach-note-row:first-child {9235  border-top: 0.5px solid var(--peach-border);9236}92379238.peach-note-row:active {9239  background: rgba(255,255,255,0.02);9240}92419242.peach-note-numeral {9243  font-family: 'Cormorant Garamond', serif;9244  font-style: italic;9245  font-size: 15px;9246  color: var(--peach-accent);9247  text-align: right;9248  line-height: 1;9249  flex-shrink: 0;9250}92519252.peach-note-title-gap { /* grid spacer */ }92539254.peach-note-title {9255  font-family: 'Cormorant Garamond', serif;9256  font-style: italic;9257  font-size: 18px;9258  color: var(--peach-t0);9259  line-height: 1.3;9260  min-width: 0;9261  overflow-wrap: break-word;9262}92639264.peach-note-title-match {9265  color: var(--peach-accent);9266}92679268.peach-note-date {9269  font-family: 'IBM Plex Mono', monospace;9270  font-size: 11px;9271  color: var(--peach-t1);9272  opacity: 0.62;9273  white-space: nowrap;9274  text-align: right;9275  flex-shrink: 0;9276  grid-column: 5;9277}92789279/* Swipe underlays */9280.peach-note-row-underlay {9281  position: absolute;9282  inset: 0;9283  display: flex;9284  align-items: center;9285  padding: 0 24px;9286  font-family: 'IBM Plex Mono', monospace;9287  font-size: 11px;9288  letter-spacing: 0.1em;9289  pointer-events: none;9290  z-index: 0;9291}92929293.peach-note-row-underlay--delete {9294  background: #8B2020;9295  color: rgba(255,255,255,0.9);9296  justify-content: flex-end;9297}92989299.peach-note-row-underlay--archive {9300  background: var(--peach-accent);9301  color: #0C0A06;9302  justify-content: flex-start;9303}93049305/* Delete confirm strip */9306.peach-note-delete-confirm {9307  position: absolute;9308  inset: 0;9309  background: var(--peach-bg);9310  display: flex;9311  align-items: center;9312  gap: 12px;9313  padding: 0 20px;9314  font-family: 'IBM Plex Mono', monospace;9315  font-size: 11px;9316  color: var(--peach-t1);9317  letter-spacing: 0.04em;9318  animation: peach-delete-confirm-in 150ms ease both;9319  z-index: 10;9320}93219322@keyframes peach-delete-confirm-in {9323  from { opacity: 0; }9324  to   { opacity: 1; }9325}93269327.peach-note-delete-confirm-btn {9328  background: #8B2020;9329  color: rgba(255,255,255,0.9);9330  border: none;9331  border-radius: 6px;9332  padding: 4px 10px;9333  font-family: 'IBM Plex Mono', monospace;9334  font-size: 10px;9335  cursor: pointer;9336  letter-spacing: 0.06em;9337}93389339.peach-note-delete-cancel-btn {9340  background: none;9341  border: none;9342  color: var(--peach-t3);9343  font-family: 'IBM Plex Mono', monospace;9344  font-size: 10px;9345  cursor: pointer;9346  letter-spacing: 0.06em;9347  padding: 4px 6px;9348}93499350/* + New note button */9351.peach-notes-new-btn {9352  font-family: 'IBM Plex Mono', monospace;9353  font-size: 12px;9354  color: var(--peach-t3);9355  text-align: center;9356  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));9357  background: none;9358  border: none;9359  width: 100%;9360  cursor: pointer;9361  letter-spacing: 0.04em;9362  transition: color 150ms ease;9363  -webkit-tap-highlight-color: transparent;9364}93659366.peach-notes-new-btn:active { color: var(--peach-accent); }93679368/* Empty state */9369.peach-notes-empty {9370  display: flex;9371  flex-direction: column;9372  align-items: center;9373  justify-content: center;9374  flex: 1;9375  padding: 48px 32px;9376  gap: 16px;9377}93789379.peach-notes-empty-text {9380  font-family: 'Cormorant Garamond', serif;9381  font-style: italic;9382  font-size: 20px;9383  color: var(--peach-t3);9384  text-align: center;9385  margin: 0;9386  line-height: 1.4;9387  white-space: pre-line;9388}93899390/* ── Editor surface ── */93919392.peach-note-editor-surface {9393  position: absolute;9394  inset: 0;9395  background:9396    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 5%, transparent) 0%, transparent 62%),9397    var(--peach-bg);9398  display: flex;9399  flex-direction: column;9400  padding-top: env(safe-area-inset-top, 0px);9401}94029403.peach-note-editor-scroll {9404  flex: 1;9405  overflow-y: auto;9406  overflow-x: hidden;9407  scrollbar-width: none;9408  -webkit-overflow-scrolling: touch;9409  padding: 0 20px 120px;9410  position: relative;9411  z-index: 1;9412}94139414.peach-note-editor-scroll::-webkit-scrollbar { display: none; }94159416/* Desktop toolbar (always visible above body) */9417.peach-note-toolbar-desktop-inline {9418  display: grid;9419  grid-template-columns: repeat(4, minmax(0, 1fr)) auto repeat(5, minmax(0, 1fr));9420  align-items: center;9421  gap: 0;9422  padding: 5px 0 10px;9423  margin-bottom: 10px;9424  border-bottom: 0.5px solid var(--peach-border);9425}94269427/* Title field */9428.peach-note-title-field {9429  font-family: var(--font-display);9430  font-style: italic;9431  font-size: clamp(34px, 13vw, 44px);9432  font-weight: 400;9433  color: var(--peach-t0);9434  line-height: 0.98;9435  letter-spacing: -0.015em;9436  padding: 10px 0 2px;9437  outline: none;9438  min-height: 52px;9439  word-break: break-word;9440  position: relative;9441  z-index: 1;9442}94439444.peach-note-title-field:empty::before {9445  content: attr(data-placeholder);9446  color: var(--peach-t1);9447  opacity: 0.58;9448  pointer-events: none;9449}94509451/* Hairline separator */9452.peach-note-hairline {9453  height: 0.5px;9454  background: var(--peach-border);9455  margin: 14px 0 18px;9456  position: relative;9457  z-index: 1;9458}94599460/* Body field */9461.peach-note-body-field {9462  font-family: var(--font-display);9463  font-size: 17px;9464  color: var(--peach-t1);9465  line-height: 1.72;9466  padding: 0;9467  outline: none;9468  min-height: 240px;9469  word-break: break-word;9470  position: relative;9471  z-index: 1;9472}94739474.peach-note-body-field:empty::before {9475  content: attr(data-placeholder);9476  color: var(--peach-t1);9477  opacity: 0.56;9478  font-style: italic;9479  pointer-events: none;9480}94819482.peach-note-body-field h2 {9483  font-family: var(--font-display);9484  font-style: italic;9485  font-size: 22px;9486  font-weight: 600;9487  color: var(--peach-t0);9488  margin: 20px 0 8px;9489}94909491.peach-note-body-field blockquote {9492  border-left: 2px solid var(--peach-accent);9493  margin: 12px 0;9494  padding-left: 16px;9495  color: var(--peach-t1);9496  font-style: italic;9497}94989499.peach-note-body-field ul,9500.peach-note-body-field ol {9501  padding-left: 20px;9502  margin: 8px 0;9503}95049505.peach-note-body-field li {9506  margin: 4px 0;9507}95089509.peach-note-body-field hr {9510  border: none;9511  border-top: 0.5px solid var(--peach-border);9512  margin: 16px 0;9513}95149515/* Saved indicator */9516.peach-note-saved-indicator {9517  font-family: var(--font-mono);9518  font-size: 11px;9519  color: var(--peach-t3);9520  letter-spacing: 0.04em;9521  text-align: right;9522  padding: 6px 24px;9523  flex-shrink: 0;9524  transition: opacity 300ms ease;9525  pointer-events: none;9526  position: relative;9527  z-index: 1;9528}95299530/* Mobile keyboard toolbar */9531.peach-note-toolbar-mobile {9532  display: flex;9533  align-items: center;9534  padding: 8px 16px;9535  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));9536  background: var(--peach-bg);9537  border-top: 0.5px solid var(--peach-border);9538  gap: 0;9539  flex-shrink: 0;9540  position: relative;9541  z-index: 10;9542}95439544.peach-note-toolbar-btn {9545  min-width: 0;9546  width: auto;9547  height: 30px;9548  display: flex;9549  align-items: center;9550  justify-content: center;9551  background: none;9552  border: none;9553  border-radius: 4px;9554  cursor: pointer;9555  color: var(--peach-t1);9556  transition: background 100ms ease, color 100ms ease;9557  -webkit-tap-highlight-color: transparent;9558}95599560.peach-note-toolbar-btn svg {9561  width: 14px;9562  height: 14px;9563  fill: none;9564  stroke: currentColor;9565  stroke-width: 1.15;9566  stroke-linecap: round;9567  stroke-linejoin: round;9568  pointer-events: none;9569}95709571.peach-note-toolbar-mobile .peach-note-toolbar-btn {9572  flex: 1 1 0;9573  height: 36px;9574}95759576.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }9577.peach-note-toolbar-btn:hover,9578.peach-note-toolbar-btn:active {9579  background: var(--peach-t4);9580  color: var(--peach-t0);9581}95829583.peach-note-toolbar-divider {9584  width: 0.5px;9585  height: 20px;9586  background: var(--peach-border);9587  margin: 0 4px;9588  flex-shrink: 0;9589}95909591.peach-note-toolbar-spacer { display: none; }95929593/* Desktop: larger headline in TOC */9594@media (min-width: 400px) {9595  .peach-notes-header-title:not(.is-breadcrumb) {9596    font-size: 32px;9597  }95989599  .peach-note-row {9600    min-height: 64px;9601    padding: 14px 16px;9602  }9603}96049605/* Flying title — shared element during expansion/collapse */96069607/* ─── Light theme overrides ───────────────────────────────────────────────9608   Tokens that cannot be expressed as variable substitutions — hardcoded9609   context-specific values that need separate light-mode rules. */96109611/* Settings section headers: use text-label (#79766F) per restoration brief —9612   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY9613   presence without fighting the light parchment background. */9614.light .peach-settings-sub-label,9615[data-theme="light"] .peach-settings-sub-label,9616.light .peach-settings-nav-label,9617[data-theme="light"] .peach-settings-nav-label {9618  color: #79766F;9619}96209621/* Secondary action buttons (ghost / subtle): filled with input-well surface9622   so they read as recessed against the parchment card background. */9623.light .peach-btn--ghost:not(.peach-icon-btn),9624[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {9625  background: #EEE7DD;9626  border-color: #DDD5CB;9627  color: #1A1208;9628}9629.light .peach-icon-btn,9630[data-theme="light"] .peach-icon-btn {9631  background: transparent;9632  border-color: transparent;9633}9634.light .peach-btn--subtle,9635[data-theme="light"] .peach-btn--subtle {9636  background: #EEE7DD;9637  border-color: #DDD5CB;9638}96399640/* Wide secondary action button on the lock screen — override the9641   hardcoded dark-mode rgba values with warm parchment equivalents. */9642.light .peach-lock-secondary,9643[data-theme="light"] .peach-lock-secondary {9644  background: #EEE7DD;9645  border-color: #DDD5CB;9646  color: #1A1208;9647}9648.light .peach-lock-secondary:hover,9649[data-theme="light"] .peach-lock-secondary:hover {9650  background: #F0E9DF;9651}96529653/* Entry row hover: bg-row lifts the row above the card surface. */9654.light .peach-entry-row:hover,9655[data-theme="light"] .peach-entry-row:hover {9656  background: #F2EBE1;9657}9658.light .peach-entry-row.is-active,9659[data-theme="light"] .peach-entry-row.is-active {9660  background: #F2EBE1;9661}9662.light .peach-entry-row.is-selected,9663[data-theme="light"] .peach-entry-row.is-selected {9664  background: #F5EDE2;9665}96669667/* ──────────────────────────────────────────────────────────────────────────9668   Pair-device flow — bird-stage animation (Phase 1)9669   See src/popup/components/PairingBirds.tsx and the brief §6.2.9670   Three-act animation gated on the [data-phase] attribute of9671   .peach-pair-pair; child layers (birds, sound arcs, flight wave, dot)9672   each react via either pose class or visibility flag.9673   Tokens: accent surfaces use var(--peach-accent); bird illustration9674   colours are baked into the SVG per the brand-peach exception in §3.1.9675   ────────────────────────────────────────────────────────────────────── */96769677.peach-pair-pair {9678  position: absolute;9679  inset: 0;9680  z-index: 3;9681  display: flex;9682  flex-direction: column;9683  padding: 14px 12px 12px;9684  width: 100%;9685  box-sizing: border-box;9686  gap: 0;9687  background:9688    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9689    var(--peach-bg);9690  color: var(--peach-t0);9691  overflow-y: auto;9692  overflow-x: hidden;9693  scrollbar-width: none;9694  isolation: isolate;9695  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9696}9697@keyframes peach-pair-overlay-in {9698  from { opacity: 0; transform: translateY(8px); }9699  to   { opacity: 1; transform: translateY(0); }9700}9701.peach-pair-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }9702.peach-pair-pair::before {9703  content: '';9704  position: absolute;9705  inset: 0;9706  border-radius: inherit;9707  pointer-events: none;9708  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9709  z-index: 0;9710}9711.peach-pair-pair > * { position: relative; z-index: 1; }97129713/* Header --------------------------------------------------------------- */9714.peach-pair-head {9715  display: flex; align-items: center; gap: 10px;9716}9717.peach-pair-back {9718  width: 32px; height: 32px;9719  display: inline-flex; align-items: center; justify-content: center;9720  background: transparent;9721  border: none;9722  border-radius: 8px;9723  color: var(--peach-t1);9724  cursor: pointer;9725  transition: color 0.15s ease, box-shadow 0.15s ease;9726}9727.peach-pair-back:hover {9728  color: var(--peach-accent);9729  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);9730}9731.peach-pair-title {9732  font-family: var(--font-display, Georgia, serif);9733  font-style: italic;9734  font-size: 24px;9735  font-weight: 500;9736  letter-spacing: 0.005em;9737  color: var(--peach-t0);9738  line-height: 1;9739}9740.peach-pair-head-spacer { flex: 1; }97419742/* Chip row ------------------------------------------------------------- */9743.peach-pair-chip-row {9744  display: flex;9745  align-items: center;9746  justify-content: flex-start;9747  margin-top: 12px;9748}9749.peach-pair-chip {9750  display: inline-flex; align-items: center; gap: 8px;9751  padding: 5px 10px 5px 8px;9752  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);9753  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);9754  border-radius: 999px;9755  font-family: var(--peach-mono, ui-monospace, monospace);9756  font-size: 11px;9757  letter-spacing: 0.04em;9758  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));9759}9760.peach-pair-chip-dot {9761  width: 6px; height: 6px; border-radius: 50%;9762  background: var(--peach-accent);9763  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);9764}9765.peach-pair-chip[data-phase="paired"] {9766  background: color-mix(in srgb, #4f9eda 12%, transparent);9767  border-color: color-mix(in srgb, #4f9eda 28%, transparent);9768  color: #76b6e8;9769}9770.peach-pair-chip[data-phase="paired"] .peach-pair-chip-dot {9771  background: #76b6e8;9772  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);9773}9774.peach-pair-chip[data-phase="timeout"],9775.peach-pair-chip[data-phase="mic_denied"],9776.peach-pair-chip[data-phase="version_mismatch"],9777.peach-pair-chip[data-phase="handshake_failed"] {9778  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);9779  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);9780  color: var(--peach-warn, #d29257);9781}9782.peach-pair-chip[data-phase="timeout"] .peach-pair-chip-dot,9783.peach-pair-chip[data-phase="mic_denied"] .peach-pair-chip-dot,9784.peach-pair-chip[data-phase="version_mismatch"] .peach-pair-chip-dot,9785.peach-pair-chip[data-phase="handshake_failed"] .peach-pair-chip-dot {9786  background: var(--peach-warn, #d29257);9787  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);9788}978997909791/* Bird stage ----------------------------------------------------------- */9792.peach-pair-stage {9793  position: relative;9794  height: 180px;9795  margin: 8px auto 18px;9796  width: 300px;9797  display: flex;9798  align-items: flex-end;9799  justify-content: center;9800}9801.peach-pair-bird-slot {9802  position: absolute;9803  bottom: 0;9804  width: 108px;9805  height: 108px;9806  transform-origin: 50% 95%;9807}9808.peach-pair-bird-slot-desktop { left: 12px; }9809.peach-pair-bird-slot-mobile { right: 12px; }9810.peach-pair-stage.act-handshake .peach-pair-bird-slot-desktop,9811.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop {9812  transform: translateX(6px);9813  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9814}9815.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop { --bb-x: 6px; }9816.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { --bb-x: -6px; }9817.peach-pair-stage.act-paired .peach-pair-bird-slot {9818  animation: peach-pair-happy-bob 1.2s ease-in-out infinite;9819}9820.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { animation-delay: 0.2s; }9821@keyframes peach-pair-happy-bob {9822  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9823  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9824}98259826/* Bird internal -------------------------------------------------------- */9827.peach-pair-bird {9828  width: 108px;9829  height: 108px;9830  transform-origin: 50% 95%;9831}9832.peach-pair-bird svg { width: 100%; height: 100%; overflow: visible; }98339834.peach-pair-bird-body {9835  transform-origin: 50% 80%;9836  animation: peach-pair-bird-bob 2.4s ease-in-out infinite;9837}9838.peach-pair-bird-pose-chirping .peach-pair-bird-body { animation-duration: 1.4s; }9839.peach-pair-bird-pose-happy .peach-pair-bird-body   { animation: peach-pair-bird-celebrate 0.9s ease-in-out infinite; }9840.peach-pair-bird-pose-attentive .peach-pair-bird-body { animation-duration: 2.0s; }98419842@keyframes peach-pair-bird-bob {9843  0%, 100% { transform: translateY(0) rotate(0deg); }9844  50%      { transform: translateY(-2px) rotate(-1deg); }9845}9846@keyframes peach-pair-bird-celebrate {9847  0%, 100% { transform: translateY(0) rotate(0deg); }9848  25%      { transform: translateY(-4px) rotate(-2deg); }9849  75%      { transform: translateY(-4px) rotate(2deg); }9850}98519852.peach-pair-bird-wing {9853  transform-origin: 50% 50%;9854  animation: peach-pair-bird-flap 0.9s ease-in-out infinite;9855}9856.peach-pair-bird-pose-happy .peach-pair-bird-wing { animation-duration: 0.35s; }9857.peach-pair-bird-pose-attentive .peach-pair-bird-wing { animation-duration: 1.4s; }9858@keyframes peach-pair-bird-flap {9859  0%, 100% { transform: scaleY(1); }9860  50%      { transform: scaleY(0.85); }9861}98629863.peach-pair-bird-head-group {9864  transform-origin: 95px 52px;9865  animation: peach-pair-bird-bob-head 2.6s ease-in-out infinite;9866}9867.peach-pair-bird-pose-chirping .peach-pair-bird-head-group { animation-duration: 0.45s; }9868.peach-pair-bird-pose-attentive .peach-pair-bird-head-group { animation: none; }9869@keyframes peach-pair-bird-bob-head {9870  0%, 100% { transform: rotate(0deg); }9871  50%      { transform: rotate(3deg); }9872}98739874.peach-pair-bird-eye-group { transform-origin: center; }9875.peach-pair-bird-blink { animation: peach-pair-bird-blink 4s ease-in-out infinite; }9876@keyframes peach-pair-bird-blink {9877  0%, 92%, 100% { transform: scaleY(1); }9878  95%           { transform: scaleY(0.1); }9879}98809881.peach-pair-bird-aura {9882  animation: peach-pair-bird-aura 2.6s ease-in-out infinite;9883}9884.peach-pair-bird-pose-happy .peach-pair-bird-aura { animation-duration: 1.4s; }9885@keyframes peach-pair-bird-aura {9886  0%, 100% { opacity: 0; }9887  50%      { opacity: 0.18; }9888}98899890.peach-pair-bird-tail {9891  transform-origin: 50% 100%;9892  animation: peach-pair-bird-tail-wag 3s ease-in-out infinite;9893}9894@keyframes peach-pair-bird-tail-wag {9895  0%, 100% { transform: rotate(0deg); }9896  50%      { transform: rotate(2deg); }9897}98989899.peach-pair-bird-pose-happy .peach-pair-bird-shadow { animation: peach-pair-bird-shadow-pulse 0.9s ease-in-out infinite; }9900@keyframes peach-pair-bird-shadow-pulse {9901  0%, 100% { transform: scaleX(1); opacity: 0.45; }9902  50%      { transform: scaleX(0.92); opacity: 0.3; }9903}99049905/* Per-pose variants --------------------------------------------------- */9906.peach-pair-bird-pose-sad .peach-pair-bird-head-group { transform: translateY(4px) rotate(8deg); }9907.peach-pair-bird-pose-sad .peach-pair-bird-tuft { transform: rotate(15deg) translateY(2px); }9908.peach-pair-bird-pose-sad .peach-pair-bird-tail { transform: rotate(8deg) translateY(2px); }9909.peach-pair-bird-pose-hidden { opacity: 0; }99109911/* Rest state — bird stage at idle pose, primary CTA + paired list */9912.peach-pair-pair[data-phase="idle"] .peach-pair-stage {9913  height: 160px;9914}99159916/* Sound arcs ----------------------------------------------------------- */9917.peach-pair-arcs {9918  position: absolute;9919  top: 18px;9920  width: 96px;9921  height: 70px;9922  pointer-events: none;9923}9924.peach-pair-arcs-right { right: -60px; }9925.peach-pair-arcs-left  { left: -60px; transform: scaleX(-1); }9926.peach-pair-arc {9927  position: absolute;9928  top: 50%;9929  left: 0;9930  width: 40px;9931  height: 40px;9932  margin-top: -20px;9933  border: 1.2px solid #f4d5a8;9934  border-color: transparent #f4d5a8 transparent transparent;9935  border-radius: 50%;9936  opacity: 0;9937  animation: peach-pair-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9938}9939@keyframes peach-pair-arc-expand {9940  0%   { transform: scale(0.4); opacity: 0; }9941  20%  { opacity: 0.9; }9942  100% { transform: scale(1.6); opacity: 0; }9943}99449945/* Flight wave ---------------------------------------------------------- */9946.peach-pair-flight-track {9947  position: absolute;9948  inset: 32px 36px 38px 36px;9949  pointer-events: none;9950}9951.peach-pair-flight-wave {9952  position: absolute;9953  top: 8px;9954  left: 76px;9955  right: 76px;9956  height: 60px;9957  width: auto;9958  opacity: 0;9959  transition: opacity 0.15s ease;9960  stroke: #f4d5a8;9961  fill: none;9962}9963.peach-pair-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9964.peach-pair-flight-wave.is-visible { opacity: 1; }9965.peach-pair-flight-path,9966.peach-pair-flight-path-2 {9967  stroke-dasharray: 240;9968  stroke-dashoffset: 240;9969  stroke-linecap: round;9970  fill: none;9971}9972.peach-pair-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9973.peach-pair-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9974.peach-pair-flight-wave.is-visible .peach-pair-flight-path {9975  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9976}9977.peach-pair-flight-wave.is-visible .peach-pair-flight-path-2 {9978  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9979}9980@keyframes peach-pair-fly {9981  0%   { stroke-dashoffset: 240; opacity: 0; }9982  20%  { opacity: 1; }9983  100% { stroke-dashoffset: -120; opacity: 0; }9984}99859986/* Connection dot ------------------------------------------------------- */9987.peach-pair-dot {9988  position: absolute;9989  top: 50%; left: 50%;9990  transform: translate(-50%, -50%);9991  width: 40px; height: 40px;9992  opacity: 0;9993  pointer-events: none;9994  transition: opacity 0.3s ease;9995  color: var(--peach-accent);9996}9997.peach-pair-dot.is-visible { opacity: 1; }9998.peach-pair-dot-glow {9999  position: absolute; top: 50%; left: 50%;10000  transform: translate(-50%, -50%);10001  width: 38px; height: 38px;10002  border-radius: 50%;10003  filter: blur(10px);10004  opacity: 0.55;10005  background: var(--peach-accent);10006  animation: peach-pair-dot-bloom 1.4s ease-out;10007}10008.peach-pair-dot-core {10009  position: absolute; top: 50%; left: 50%;10010  transform: translate(-50%, -50%);10011  width: 8px; height: 8px;10012  border-radius: 50%;10013  background: var(--peach-accent);10014  box-shadow: 0 0 12px currentColor;10015  animation: peach-pair-dot-core 1.4s ease-out;10016}10017.peach-pair-dot-ring {10018  position: absolute; top: 50%; left: 50%;10019  width: 60px; height: 60px;10020  transform: translate(-50%, -50%);10021  animation: peach-pair-dot-ring 1.4s linear;10022  stroke: var(--peach-accent);10023}10024@keyframes peach-pair-dot-bloom {10025  0%   { width: 4px; height: 4px; opacity: 0; }10026  35%  { width: 60px; height: 60px; opacity: 0.7; }10027  100% { width: 38px; height: 38px; opacity: 0.55; }10028}10029@keyframes peach-pair-dot-core {10030  0%   { width: 0; height: 0; }10031  35%  { width: 12px; height: 12px; }10032  100% { width: 8px; height: 8px; }10033}10034@keyframes peach-pair-dot-ring {10035  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }10036  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }10037  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }10038}1003910040/* Motes — drift upward across the stage */10041.peach-pair-motes {10042  position: absolute;10043  inset: 0;10044  pointer-events: none;10045}10046.peach-pair-mote {10047  position: absolute;10048  width: 2px; height: 2px;10049  background: color-mix(in srgb, var(--peach-text) 35%, transparent);10050  border-radius: 50%;10051  bottom: 32px;10052  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);10053  opacity: 0;10054  animation: peach-pair-mote-drift 6s linear infinite;10055  animation-delay: calc(var(--mote-i, 0) * 0.7s);10056}10057@keyframes peach-pair-mote-drift {10058  0%   { transform: translateY(0); opacity: 0; }10059  10%  { opacity: 0.6; }10060  90%  { opacity: 0.1; }10061  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }10062}1006310064/* Status copy ---------------------------------------------------------- */10065.peach-pair-copy-host {10066  margin: 4px 4px 10px;10067  text-align: center;10068  min-height: 50px;10069}10070.peach-pair-copy {10071  animation: peach-pair-copy-in 0.35s ease both;10072}10073@keyframes peach-pair-copy-in {10074  from { opacity: 0; transform: translateY(4px); }10075  to   { opacity: 1; transform: translateY(0); }10076}10077.peach-pair-headline {10078  font-family: var(--font-display, Georgia, serif);10079  font-style: italic;10080  font-size: 20px;10081  font-weight: 500;10082  line-height: 1.2;10083  letter-spacing: 0.005em;10084  color: var(--peach-t0);10085  margin-bottom: 6px;10086}10087.peach-pair-copy-listening .peach-pair-headline,10088.peach-pair-copy-chirping .peach-pair-headline,10089.peach-pair-copy-idle .peach-pair-headline {10090  font-family: inherit;10091  font-style: normal;10092  font-weight: 500;10093  font-size: 15px;10094  color: var(--peach-t0);10095  letter-spacing: 0;10096}10097.peach-pair-copy-paired .peach-pair-headline {10098  color: var(--peach-t0);10099  font-weight: 600;10100}10101.peach-pair-sub {10102  font-size: 12.5px;10103  line-height: 1.45;10104  color: var(--peach-t1);10105  max-width: 280px;10106  margin: 0 auto;10107  text-wrap: pretty;10108}1010910110/* Status action -------------------------------------------------------- */10111.peach-pair-action {10112  margin: 2px 4px 10px;10113  margin-top: auto;10114  display: flex;10115  flex-direction: column;10116  gap: 8px;10117}10118.peach-pair-action-waiting {10119  display: flex;10120  align-items: center;10121  justify-content: space-between;10122  gap: 12px;10123}10124.peach-pair-cancel {10125  min-width: 96px;10126}10127.peach-pair-listening {10128  display: inline-flex; align-items: center; gap: 4px;10129  font-family: var(--peach-mono, ui-monospace, monospace);10130  font-size: 9.5px;10131  text-transform: uppercase;10132  letter-spacing: 0.12em;10133  color: var(--peach-t1);10134  padding: 8px 10px;10135}10136.peach-pair-listen-dot {10137  width: 4px; height: 4px;10138  border-radius: 50%;10139  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);10140  animation: peach-pair-listen-pulse 1.2s ease-in-out infinite;10141}10142.peach-pair-listen-dot:nth-child(2) { animation-delay: 0.2s; }10143.peach-pair-listen-dot:nth-child(3) { animation-delay: 0.4s; }10144.peach-pair-listen-label { margin-left: 6px; }10145@keyframes peach-pair-listen-pulse {10146  0%, 100% { opacity: 0.25; transform: scale(0.9); }10147  50%      { opacity: 1;     transform: scale(1.15); }10148}1014910150.peach-pair-action-handshake {10151  display: flex;10152  flex-direction: column;10153  align-items: center;10154  gap: 8px;10155  padding: 8px 4px;10156}10157.peach-pair-meter {10158  width: 100%;10159  max-width: 280px;10160  height: 2px;10161  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);10162  border-radius: 2px;10163  position: relative;10164  overflow: hidden;10165}10166.peach-pair-meter-bar {10167  position: absolute;10168  top: 0; bottom: 0;10169  width: 30%;10170  left: -30%;10171  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);10172  animation: peach-pair-meter-sweep 1.4s ease-in-out infinite;10173}10174@keyframes peach-pair-meter-sweep {10175  0%   { left: -30%; }10176  100% { left: 100%; }10177}10178.peach-pair-meter-label {10179  font-family: var(--peach-mono, ui-monospace, monospace);10180  font-size: 9.5px;10181  text-transform: uppercase;10182  letter-spacing: 0.14em;10183  color: var(--peach-t1);10184}1018510186.peach-pair-action-paired {10187  display: flex;10188  align-items: center;10189  gap: 10px;10190}10191.peach-pair-device-confirm {10192  flex: 1;10193  display: inline-flex;10194  align-items: center;10195  gap: 8px;10196  padding: 9px 10px 9px 12px;10197  border-radius: 10px;10198  background: color-mix(in srgb, #76b6e8 12%, transparent);10199  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);10200  font-size: 12.5px;10201  color: var(--peach-t0);10202  min-width: 0;10203}10204.peach-pair-device-confirm-glyph {10205  display: inline-flex;10206  color: #76b6e8;10207}10208.peach-pair-device-confirm-name {10209  flex: 1;10210  overflow: hidden;10211  text-overflow: ellipsis;10212  white-space: nowrap;10213}10214.peach-pair-device-confirm-trust {10215  font-family: var(--peach-mono, ui-monospace, monospace);10216  font-size: 9.5px;10217  text-transform: uppercase;10218  letter-spacing: 0.1em;10219  color: #76b6e8;10220  padding: 2px 6px;10221  border-radius: 4px;10222  background: color-mix(in srgb, #76b6e8 14%, transparent);10223}10224.peach-pair-done {10225  min-width: 80px;10226}10227.peach-pair-retry {10228  align-self: center;10229  display: block;10230  margin: 6px auto 0;10231  min-width: 120px;10232}10233.peach-pair-mic-help {10234  font-size: 12px;10235  color: var(--peach-t1);10236  text-align: center;10237  max-width: 320px;10238  margin: 0 auto;10239}1024010241/* Rest state — bird stage at idle pose, primary CTA + paired list */10242.peach-pair-pair[data-phase="idle"] .peach-pair-stage {10243  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */10244  height: 160px;10245}10246.peach-pair-pair-start {10247  width: 100%;10248  display: inline-flex;10249  align-items: center;10250  justify-content: center;10251  gap: 8px;10252  padding: 11px 14px;10253  border-radius: 10px;10254  background: var(--peach-accent);10255  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);10256  color: #1a0905;10257  font-family: inherit;10258  font-size: 13px;10259  font-weight: 600;10260  letter-spacing: 0.01em;10261  cursor: pointer;10262  transition: filter 0.15s ease, transform 0.1s ease;10263}10264.peach-pair-pair-start:hover { filter: brightness(1.08); }10265.peach-pair-pair-start:active { transform: translateY(1px); }1026610267.peach-pair-paired-section {10268  margin-top: 14px;10269  display: flex;10270  flex-direction: column;10271  gap: 8px;10272}10273.peach-pair-paired-heading {10274  margin: 0;10275  font-family: var(--peach-mono, ui-monospace, monospace);10276  font-size: 10px;10277  font-weight: 500;10278  letter-spacing: 0.14em;10279  text-transform: uppercase;10280  color: var(--peach-t1);10281}1028210283/* Footer --------------------------------------------------------------- */10284.peach-pair-foot {10285  margin: 10px -4px -2px;10286  margin-top: auto;10287}10288.peach-pair-foot-divider {10289  height: 1px;10290  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);10291  margin-bottom: 10px;10292}10293.peach-pair-foot-text {10294  font-size: 11px;10295  line-height: 1.5;10296  color: var(--peach-t1);10297  text-align: center;10298  padding: 0 4px;10299  text-wrap: pretty;10300}1030110302/* Screen-reader-only live region. Kept off the visual flow but read by10303   assistive tech as the pairing phase advances. */10304.peach-sr-only {10305  position: absolute;10306  width: 1px; height: 1px;10307  padding: 0; margin: -1px;10308  overflow: hidden;10309  clip: rect(0, 0, 0, 0);10310  white-space: nowrap;10311  border: 0;10312}1031310314/* Reduced motion — stage simplifies to opacity transitions only */10315@media (prefers-reduced-motion: reduce) {10316  .peach-pair-bird-body,10317  .peach-pair-bird-head-group,10318  .peach-pair-bird-beak,10319  .peach-pair-bird-wing,10320  .peach-pair-bird-tuft,10321  .peach-pair-bird-tail,10322  .peach-pair-bird-eye-group,10323  .peach-pair-bird-aura,10324  .peach-pair-arc,10325  .peach-pair-flight-path,10326  .peach-pair-flight-path-2,10327  .peach-pair-dot-glow,10328  .peach-pair-dot-core,10329  .peach-pair-dot-ring,10330  .peach-pair-mote,10331  .peach-pair-meter-bar,10332  .peach-pair-listen-dot,10333  .peach-pair-bird-slot,10334  .peach-pair-bird-slot-mobile {10335    animation: none !important;10336    transition: opacity 0.2s linear !important;10337  }10338}1033910340/* ─────────────────────────────────────────────────────────────────10341   Settings → Sync surface. Wraps the same bird10342   animation used by the pairing flow with a paired-devices list and10343   the "Pair a device" CTA.10344   ───────────────────────────────────────────────────────────────── */10345.peach-pair-settings {10346  position: absolute;10347  inset: 0;10348  z-index: 3;10349  display: flex;10350  flex-direction: column;10351  gap: 18px;10352  padding: 14px 12px 12px;10353  width: 100%;10354  box-sizing: border-box;10355  overflow-y: auto;10356  overflow-x: hidden;10357  /* Same warm surface as the pairing screen — unifies the two views. */10358  background:10359    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),10360    var(--peach-bg);10361  color: var(--peach-t0);10362  isolation: isolate;10363  /* Hide native scrollbar — content fits 99% of the time and a chunky10364     gutter ruins the surface. */10365  scrollbar-width: none;10366  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;10367}10368.peach-pair-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }10369.peach-pair-settings::before {10370  content: '';10371  position: absolute;10372  inset: 0;10373  pointer-events: none;10374  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);10375  z-index: 0;10376}10377.peach-pair-settings > * { position: relative; z-index: 1; }1037810379.peach-pair-settings--pairing {10380  padding: 0;10381  align-items: stretch;10382  justify-content: stretch;10383  background: none;10384  isolation: auto;10385}10386.peach-pair-settings--pairing::before { display: none; }1038710388.peach-pair-settings-header {10389  display: flex;10390  align-items: center;10391  gap: 10px;10392}10393.peach-pair-settings-title {10394  margin: 0;10395  font-family: var(--font-display, Georgia, serif);10396  font-style: italic;10397  font-size: 24px;10398  font-weight: 500;10399  line-height: 1;10400  color: var(--peach-t0);10401  letter-spacing: 0.005em;10402}10403.peach-pair-settings-section {10404  margin: 6px 0 -4px;10405  font-size: 11px;10406  font-weight: 600;10407  letter-spacing: 0.08em;10408  text-transform: uppercase;10409  color: var(--peach-text-muted);10410}10411.peach-pair-settings-error {10412  font-size: 12px;10413  padding: 8px 10px;10414  border-radius: 8px;10415  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);10416  color: var(--peach-text);10417}10418.peach-pair-settings-footer {10419  margin-top: auto;10420  padding-top: 18px;10421  font-size: 11.5px;10422  line-height: 1.5;10423  color: var(--peach-text-muted);10424  text-align: center;10425}1042610427/* Hero card shown when no devices are paired yet. */10428.peach-pair-hero {10429  display: flex;10430  flex-direction: column;10431  align-items: center;10432  gap: 12px;10433  padding: 20px 12px 8px;10434  text-align: center;10435}10436.peach-pair-hero-svg {10437  display: block;10438  max-width: 100%;10439  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));10440}10441.peach-pair-hero-headline {10442  margin: 0;10443  font-family: var(--font-display, Georgia, serif);10444  font-style: italic;10445  font-size: 20px;10446  font-weight: 500;10447  line-height: 1.2;10448  letter-spacing: 0.005em;10449  color: var(--peach-t0);10450}10451.peach-pair-hero-sub {10452  margin: 0;10453  font-size: 13px;10454  line-height: 1.5;10455  color: var(--peach-t1);10456  max-width: 320px;10457  text-wrap: pretty;10458}1045910460.peach-pair-pair-cta {10461  display: flex;10462  justify-content: center;10463  padding: 4px 0 6px;10464}10465.peach-pair-pair-button {10466  display: inline-flex;10467  align-items: center;10468  gap: 8px;10469  min-width: 220px;10470  justify-content: center;10471}10472.peach-pair-pair-button-icon {10473  flex: 0 0 auto;10474}1047510476/* Paired devices list. Roomy rows that look at home next to the rest10477   of Settings; stale rows get a soft warm-warning border tint. */10478.peach-pair-device-list {10479  list-style: none;10480  margin: 0;10481  padding: 0;10482  display: flex;10483  flex-direction: column;10484  gap: 8px;10485}10486.peach-pair-device-row {10487  display: flex;10488  align-items: center;10489  gap: 12px;10490  padding: 12px;10491  border-radius: 10px;10492  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10493  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);10494}10495.peach-pair-device-row[data-stale="true"] {10496  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);10497}10498.peach-pair-device-icon {10499  width: 32px;10500  height: 32px;10501  display: flex;10502  align-items: center;10503  justify-content: center;10504  border-radius: 8px;10505  color: var(--peach-text);10506  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);10507}10508.peach-pair-device-info {10509  flex: 1;10510  display: flex;10511  flex-direction: column;10512  gap: 2px;10513  min-width: 0;10514}10515.peach-pair-device-name {10516  font-size: 14px;10517  font-weight: 600;10518  color: var(--peach-text);10519  overflow: hidden;10520  text-overflow: ellipsis;10521  white-space: nowrap;10522}10523.peach-pair-device-meta {10524  font-size: 11.5px;10525  color: var(--peach-text-muted);10526  display: flex;10527  flex-wrap: wrap;10528  align-items: center;10529  gap: 8px;10530}10531.peach-pair-device-badge {10532  font-size: 10.5px;10533  font-weight: 500;10534  letter-spacing: 0.02em;10535  padding: 2px 6px;10536  border-radius: 999px;10537  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);10538  color: var(--peach-text);10539}10540.peach-pair-device-stale {10541  font-size: 10.5px;10542  font-weight: 500;10543  color: var(--peach-warn, #d29257);10544}10545.peach-pair-device-remove {10546  flex: 0 0 auto;10547  color: var(--peach-text-muted);10548}10549.peach-pair-device-remove:hover {10550  color: var(--peach-danger, #c25b4a);10551}10552.peach-pair-unpair-confirm {10553  display: flex;10554  gap: 6px;10555  align-items: center;10556}1055710558/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */10559.peach-pair-pro-card {10560  position: relative;10561  margin: 18px 12px;10562  padding: 18px 20px 22px;10563  border-radius: 22px;10564  background:10565    radial-gradient(140% 90% at 50% 0%,10566      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,10567      transparent 60%),10568    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10569  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);10570  box-shadow:10571    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,10572    0 18px 40px -24px rgba(0, 0, 0, 0.45);10573  display: flex;10574  flex-direction: column;10575  align-items: center;10576  gap: 10px;10577  text-align: center;10578  overflow: hidden;10579}10580.peach-pair-pro-stage {10581  position: relative;10582  width: 220px;10583  height: 140px;10584  display: flex;10585  align-items: flex-end;10586  justify-content: center;10587  margin-bottom: 2px;10588}10589.peach-pair-pro-bird-slot {10590  width: 140px;10591  height: 132px;10592  display: flex;10593  align-items: flex-end;10594  justify-content: center;10595  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));10596}10597.peach-pair-pro-bird-slot .peach-pair-bird {10598  width: 100%;10599  height: 100%;10600}10601.peach-pair-pro-bird-slot .peach-pair-bird svg {10602  width: 100%;10603  height: 100%;10604  overflow: visible;10605}10606.peach-pair-pro-headline {10607  margin: 4px 0 0;10608  font-family: var(--font-display, "Cormorant Garamond", serif);10609  font-style: italic;10610  font-size: 19px;10611  font-weight: 500;10612  letter-spacing: 0.01em;10613  color: var(--peach-t0);10614  max-width: 280px;10615  line-height: 1.25;10616}10617.peach-pair-pro-body {10618  margin: 0;10619  font-size: 13px;10620  line-height: 1.55;10621  color: var(--peach-t1);10622  max-width: 300px;10623}10624.peach-pair-pro-cta {10625  margin-top: 4px;10626}10627.peach-pair-pro-foot {10628  margin: 2px 0 0;10629  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;10630  font-size: 0.625rem;10631  letter-spacing: 0.08em;10632  text-transform: uppercase;10633  color: var(--peach-t2);10634  opacity: 0.75;10635}1063610637/* Shell border and shadow in light mode: match dark mode's near-invisible10638   border weight so the popup frame looks the same in both themes. */10639.light .peach-shell,10640.light .peach-screen {10641  border-color: rgba(26, 18, 8, 0.07);10642  box-shadow:10643    0 2px 8px rgba(80, 56, 32, 0.08),10644    0 14px 48px rgba(80, 56, 32, 0.10),10645    0 0 0 1px rgba(26, 18, 8, 0.04);10646}1064710648/* HOLE 4: the revoke confirmation carries its own disclosure, so it needs the10649   full row width rather than sitting inline beside the device name. */10650.peach-settings-row:has(> .peach-unpair-confirm) { flex-wrap: wrap; }10651.peach-unpair-confirm {10652  display: flex;10653  flex-direction: column;10654  gap: 8px;10655  width: 100%;10656}10657.peach-unpair-confirm-note {10658  margin: 0;10659  font-size: 0.6875rem;10660  line-height: 1.5;10661  color: var(--peach-t2);10662}1066310664/* Sync mode selector — three named choices (public / private / off). Replaces10665   the old binary "local network only" toggle; see docs/sync-lan-retirement.md. */10666.peach-sync-mode {10667  display: flex;10668  align-items: flex-start;10669  gap: 10px;10670  width: 100%;10671  text-align: left;10672  padding: 10px 12px;10673  margin-top: 8px;10674  border-radius: 10px;10675  border: 1px solid var(--peach-border);10676  background: color-mix(in srgb, var(--peach-t0) 3%, transparent);10677  color: var(--peach-t1);10678  cursor: pointer;10679  transition: border-color var(--peach-dur-80) var(--peach-curve-arrival),10680              background-color var(--peach-dur-80) var(--peach-curve-arrival);10681}10682.peach-sync-mode:hover:not(:disabled) {10683  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);10684}10685.peach-sync-mode.is-active {10686  border-color: var(--peach-accent);10687  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);10688}10689.peach-sync-mode:disabled { opacity: 0.6; cursor: default; }10690.peach-sync-mode-main { display: flex; flex-direction: column; gap: 3px; flex: 1; }10691.peach-sync-mode-title { font-size: 12px; }10692.peach-sync-mode-sub {10693  font-size: 11px;10694  line-height: 1.5;10695  color: var(--peach-t2);10696}10697.peach-sync-mode-pip {10698  flex: none;10699  margin-top: 3px;10700  width: 12px; height: 12px;10701  border-radius: 50%;10702  border: 1px solid var(--peach-t3);10703}10704.peach-sync-mode.is-active .peach-sync-mode-pip {10705  border-color: var(--peach-accent);10706  background:10707    radial-gradient(circle at 50% 50%, var(--peach-accent) 0 42%, transparent 44%);10708}10709.peach-sync-mode-disclosure {10710  margin: 10px 2px 0;10711  font-size: 11px;10712  line-height: 1.5;10713  color: var(--peach-t2);10714}10715.peach-sync-mode-warn { color: var(--peach-breach); }1071610717/* Compact form, used mid-pairing: a quiet line, not a decision to make. */10718.peach-sync-mode-summary {10719  margin: 8px 2px 0;10720  font-size: 11px;10721  color: var(--peach-t2);10722  text-align: center;10723}10724.peach-sync-mode-change {10725  background: none;10726  border: none;10727  padding: 0;10728  font: inherit;10729  color: var(--peach-accent);10730  text-decoration: underline;10731  cursor: pointer;10732}