popup.css

251.9 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/* Full-width toolbar row inside the body (Add.tsx note type).3193   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */3194.peach-note-toolbar-body {3195  display: flex;3196  align-items: center;3197  gap: 3px;3198  padding: 5px 20px 4px;3199  margin: 2px -20px 0;3200  border-bottom: 1px solid var(--peach-t3);3201  flex-shrink: 0;3202}32033204/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)3205   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn3206   and .peach-note-tool-divider button-level styles. */3207.peach-note-toolbar-inline {3208  display: flex;3209  align-items: center;3210  gap: 3px;3211  margin-left: auto;3212  padding-left: 10px;3213  border-left: 1px solid var(--peach-t3);3214  min-height: 22px;3215}32163217/* Entry.tsx toolbar row (no tabs, toolbar only) */3218.peach-entry-note-toolbar-row {3219  display: flex;3220  align-items: center;3221  margin: 4px 0 6px;3222  position: relative;3223  z-index: 1;3224}3225.peach-entry-note-toolbar-row .peach-note-toolbar-inline {3226  border-left: none;3227  padding-left: 0;3228  margin-left: 0;3229}32303231/* Note body — fills available vertical space in Add.tsx and Entry.tsx */3232.peach-note-body {3233  display: flex;3234  flex-direction: column;3235  flex: 1;3236  min-height: 0;3237  margin: 4px 0 0;3238}3239.peach-entry-body--new .peach-note-body {3240  margin: 8px -20px 0;3241}32423243/* Add.tsx body is a grid by default; swap to a flex column when a note is3244   active so the note body can stretch and pin the tags row to the bottom. */3245.peach-entry-body--new:has(.peach-note-body) {3246  display: flex;3247  flex-direction: column;3248}32493250/* Rich content element styles (editor + display) */3251.peach-note-editor-body h2,3252.peach-note-content h2 {3253  font-family: var(--font-display);3254  font-size: 20px;3255  font-weight: 600;3256  font-style: italic;3257  color: var(--peach-t0);3258  margin: 6px 0 2px;3259  line-height: 1.3;3260}3261.peach-note-editor-body ul,3262.peach-note-content ul {3263  padding-left: 18px;3264  margin: 3px 0;3265  list-style: disc;3266}3267.peach-note-editor-body ol,3268.peach-note-content ol {3269  padding-left: 18px;3270  margin: 3px 0;3271  list-style: decimal;3272}3273.peach-note-editor-body li,3274.peach-note-content li { margin: 2px 0; }3275.peach-note-editor-body hr,3276.peach-note-content hr {3277  border: none;3278  border-top: 1px solid var(--peach-t3);3279  margin: 10px 0;3280}32813282/* font size elements from execCommand */3283.peach-note-editor-body font[size="1"],3284.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }3285.peach-note-editor-body font[size="2"],3286.peach-note-content font[size="2"] { font-size: 0.8125rem; }3287.peach-note-editor-body font[size="3"],3288.peach-note-content font[size="3"] { font-size: 1rem; }3289.peach-note-editor-body font[size="4"],3290.peach-note-content font[size="4"] { font-size: 20px; }3291.peach-note-editor-body font[size="5"],3292.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }32933294/* bold / italic inside the editor and note display */3295.peach-note-editor-body b, .peach-note-editor-body strong,3296.peach-note-content b, .peach-note-content strong { font-weight: 700; }3297.peach-note-editor-body em, .peach-note-editor-body i,3298.peach-note-content em, .peach-note-content i { font-style: italic; }32993300/* note display — rendered HTML, no pre-wrap */3301.peach-note-content {3302  overflow: auto;3303  max-height: 340px;3304  word-break: break-word;3305}33063307/* ── Note textarea ── */3308.peach-note-textarea {3309  width: 100%;3310  min-height: 180px;3311  max-height: 280px;3312  resize: vertical;3313  background: var(--peach-t4);3314  border: 1px solid var(--peach-t3);3315  border-radius: 8px;3316  padding: 10px 12px;3317  font-family: "IBM Plex Mono", monospace;3318  font-size: 0.75rem;3319  line-height: 1.7;3320  color: var(--peach-t1);3321  outline: none;3322  transition: border-color 150ms ease;3323}33243325.peach-note-textarea:focus {3326  border-color: var(--peach-t2);3327}33283329.peach-note-char-count {3330  font-family: "IBM Plex Mono", monospace;3331  font-size: 0.5625rem;3332  color: var(--peach-t3);3333  text-align: right;3334  margin-top: 4px;3335  letter-spacing: 0.1em;3336}33373338/* ── Field input baseline ── */3339.peach-new-field-input {3340  width: 100%;3341  background: transparent;3342  border: none;3343  border-bottom: 1px solid var(--peach-t3);3344  padding: 4px 0;3345  color: var(--peach-t1);3346  font-family: "IBM Plex Mono", monospace;3347  font-size: 0.8125rem;3348  outline: none;3349  transition: border-color 150ms ease;3350}33513352.peach-new-field-input:focus {3353  border-bottom-color: var(--peach-t0);3354  color: var(--peach-t0);3355}33563357.peach-new-name-input {3358  width: 100%;3359  background: transparent;3360  border: none;3361  border-bottom: 1px solid var(--peach-t3);3362  padding: 6px 0;3363  font-family: var(--font-display);3364  font-style: italic;3365  font-size: 28px;3366  color: var(--peach-t0);3367  outline: none;3368  transition: border-color 150ms ease;3369}33703371.peach-new-name-input:focus {3372  border-bottom-color: var(--peach-t1);3373}33743375.peach-new-name-input::placeholder {3376  color: var(--peach-t2);3377  font-style: italic;3378}33793380.peach-new-field-input::placeholder {3381  color: var(--peach-t3);3382}33833384/* ── Demo entrance animation ── */3385#hd-shell {3386  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3387}3388@keyframes hd-shell-enter {3389  from { opacity: 0; transform: scale(0.96) translateY(16px); }3390  to   { opacity: 1; transform: scale(1) translateY(0); }3391}33923393/* ── Keyframes ── */3394@keyframes peach-char-enter {3395  from { opacity: 0; transform: translateY(0.22em); }3396  to   { opacity: 1; transform: translateY(0); }3397}3398@keyframes peach-content-enter {3399  from { opacity: 0.96; transform: translateY(4px); }3400  to   { opacity: 1; transform: translateY(0); }3401}3402@keyframes peach-content-exit {3403  from { opacity: 1; transform: translateY(0); }3404  to   { opacity: 0.92; transform: translateY(-3px); }3405}3406@keyframes peach-screen-enter {3407  from { opacity: 0; transform: translateY(14px); }3408  to   { opacity: 1; transform: translateY(0); }3409}3410@keyframes peach-shell-fade-in {3411  from { opacity: 0; }3412  to   { opacity: 1; }3413}3414@keyframes peach-veil-in {3415  from { opacity: 0; }3416  to   { opacity: 1; }3417}3418@keyframes peach-lock-settle {3419  0%   { transform: scale(0.9); }3420  65%  { transform: scale(1.08); }3421  100% { transform: scale(1); }3422}3423@keyframes peach-copy-confirm {3424  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3425  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); }3426}3427@keyframes peach-copy-retreat {3428  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); }3429  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3430}3431@keyframes peach-copy-flood {3432  from { opacity: 0; transform: scaleX(0.15); }3433  to   { opacity: 1; transform: scaleX(1); }3434}3435@keyframes peach-copy-icon-settle {3436  from  { transform: scale(0.84); }3437  70%   { transform: scale(1.08); }3438  to    { transform: scale(1); }3439}3440@keyframes peach-copy-sheen-retreat {3441  from { opacity: 1; transform: scaleX(1); }3442  to   { opacity: 0; transform: scaleX(0.15); }3443}3444@keyframes peach-copy-drain {3445  from { width: 100%; }3446  to   { width: 0; }3447}3448@keyframes peach-shake {3449  0%, 100% { transform: translateX(0); }3450  20%      { transform: translateX(-6px); }3451  40%      { transform: translateX(6px); }3452  60%      { transform: translateX(-4px); }3453  80%      { transform: translateX(4px); }3454}34553456@keyframes pip-pulse {3457  0% { transform: scale(1); }3458  40% { transform: scale(2.2); }3459  100% { transform: scale(1); }3460}346134623463/* ── Password generator ── */3464.peach-pwgen-body {3465  flex: 1; overflow-y: auto;3466  display: flex; flex-direction: column;3467}3468.peach-policy-badge {3469  display: flex; align-items: center;3470  padding: 6px 20px 0;3471  font-size: 0.625rem; font-family: Inter, sans-serif;3472  color: var(--peach-t2); letter-spacing: 0.04em;3473}3474.peach-pwgen-display {3475  padding: 14px 20px 12px;3476  border-bottom: 1px solid var(--peach-t3);3477  display: flex; align-items: flex-start; gap: 10px;3478}3479.peach-pwgen-display-row {3480  display: flex;3481  align-items: flex-start;3482  gap: 8px;3483  padding-bottom: 8px;3484  border-bottom: 1px solid var(--peach-t3);3485}3486.peach-pwgen-output {3487  flex: 1; min-width: 0; margin: 0;3488  font-family: "IBM Plex Mono", monospace;3489  font-size: 0.8125rem; color: var(--peach-t0);3490  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3491  white-space: normal;3492  padding: 10px 12px;3493  background: var(--peach-t4);3494  border-radius: 6px;3495  min-height: 36px;3496}3497.peach-pwgen-output-display {3498  flex: 1;3499  min-width: 0;3500  margin: 0;3501  font-family: var(--font-display);3502  font-style: italic;3503  font-weight: 300;3504  font-size: 32px;3505  line-height: 1.05;3506  color: var(--peach-t0);3507  word-break: break-all;3508  overflow-wrap: break-word;3509  white-space: normal;3510  letter-spacing: 0.02em;3511}3512.peach-pwgen-display-actions {3513  display: flex;3514  flex-direction: column;3515  gap: 4px;3516  flex-shrink: 0;3517  margin-top: 2px;3518}3519.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3520.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3521.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3522.peach-pwgen-len-num {3523  font-family: "IBM Plex Mono", monospace;3524  font-size: 0.75rem; color: var(--peach-accent);3525}3526.peach-pwgen-len-num--edit {3527  cursor: text;3528  border-bottom: 1px dotted color-mix(in srgb, var(--peach-accent) 50%, transparent);3529}3530.peach-pwgen-len-input {3531  font-family: "IBM Plex Mono", monospace;3532  font-size: 0.75rem;3533  color: var(--peach-accent);3534  background: transparent;3535  border: none;3536  border-bottom: 1px solid var(--peach-accent);3537  outline: none;3538  width: 32px;3539  text-align: right;3540  padding: 0;3541}3542.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3543.peach-pwgen-toggles { display: flex; flex-direction: column; }3544.peach-pwgen-charset-pills {3545  display: flex;3546  gap: 6px;3547  flex-wrap: wrap;3548}3549.peach-pwgen-pill {3550  padding: 4px 11px;3551  border-radius: 999px;3552  border: 1px solid var(--peach-t3);3553  background: transparent;3554  color: var(--peach-t2);3555  font-family: "IBM Plex Mono", monospace;3556  font-size: 0.5625rem;3557  letter-spacing: 0.08em;3558  cursor: pointer;3559  transition: all 150ms ease;3560}3561.peach-pwgen-pill.is-on {3562  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3563  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3564  color: var(--peach-accent);3565}3566.peach-pwgen-pill:not(.is-on):hover {3567  color: var(--peach-t1);3568  border-color: var(--peach-t2);3569}3570.peach-pwgen-use-btn {3571  width: 100%;3572  min-height: 34px;3573  border-radius: 8px;3574  margin-top: 2px;3575}3576.peach-generator-constraint-note {3577  font-family: 'IBM Plex Mono', monospace;3578  font-size: 10px;3579  color: var(--peach-t3);3580  letter-spacing: 0.04em;3581  margin: 0;3582  transition: opacity 200ms ease;3583}3584.peach-pwgen-toggle-row {3585  display: flex; align-items: center; justify-content: space-between;3586  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3587}3588.peach-pwgen-toggle-row:last-child { border-bottom: none; }3589.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }35903591/* Peach popup should not expose native scrollbars on internal panels. */3592.peach-settings-body,3593.peach-new-body,3594.peach-pwgen-body,3595.lock-screen,3596.peach-import-preview {3597  scrollbar-width: none;3598  -ms-overflow-style: none;3599  overscroll-behavior: contain;3600}3601.peach-settings-body::-webkit-scrollbar,3602.peach-new-body::-webkit-scrollbar,3603.peach-pwgen-body::-webkit-scrollbar,3604.lock-screen::-webkit-scrollbar,3605.peach-import-preview::-webkit-scrollbar {3606  width: 0;3607  height: 0;3608  display: none;3609}36103611.lock-screen {3612  height: 100%;3613  min-height: 100%;3614  overflow-y: auto;3615  padding: 18px 18px 16px;3616  gap: 14px;3617  grid-template-rows: auto auto auto 1fr auto;3618  align-content: stretch;3619  position: relative;3620  isolation: isolate;3621}3622.peach-screen.lock-screen--vault-stage {3623  display: flex;3624  flex-direction: column;3625  justify-content: flex-start;3626  gap: 18px;3627  padding: 20px 18px 18px;3628  overflow: hidden;3629}3630.peach-screen.lock-screen--vault-stage .peach-lock-panel {3631  margin-top: 0;3632}3633.lock-screen--onboarding {3634  display: flex;3635  flex-direction: column;3636  gap: 12px;3637  justify-content: flex-start;3638}36393640.lock-screen::before {3641  content: "";3642  position: absolute;3643  inset: 12px 18px auto auto;3644  width: 160px;3645  height: 160px;3646  border-radius: 999px;3647  background:3648    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%);3649  filter: blur(6px);3650  opacity: 0.7;3651  pointer-events: none;3652  z-index: 0;3653}36543655.peach-lock-rune-string {3656  flex: 1;3657  display: flex;3658  align-items: center;3659  justify-content: center;3660  gap: 6px;3661  font-family: PeachScript, monospace;3662  font-size: 0.8125rem;3663  letter-spacing: 0.05em;3664  pointer-events: none;3665  user-select: none;3666  position: relative;3667  z-index: 1;3668}36693670.peach-lock-rune-string span {3671  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3672  text-shadow:3673    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3674    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3675  transition: color 0.9s ease, text-shadow 0.9s ease;3676}36773678.peach-lock-rune-string span.is-glowing {3679  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3680  text-shadow:3681    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3682    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3683}36843685.lock-screen-header {3686  display: flex;3687  align-items: center;3688  justify-content: space-between;3689  position: relative;3690  z-index: 1;3691}36923693.lock-password-input.shake {3694  animation: peach-shake 300ms ease-in-out;3695}36963697.peach-hint-error {3698  color: rgba(220, 80, 60, 0.92);3699}37003701.peach-onboarding-headline {3702  margin: 0;3703  font-family: var(--font-display);3704  font-size: 35px;3705  line-height: 0.88;3706  font-style: italic;3707  font-weight: 400;3708  max-width: 252px;3709}37103711.peach-lock-copy {3712  display: grid;3713  gap: 8px;3714  position: relative;3715  z-index: 1;3716}37173718.peach-lock-copy--onboarding {3719  gap: 10px;3720}37213722.peach-lock-hero {3723  position: relative;3724  z-index: 1;3725  display: flex;3726  flex-direction: column;3727  align-items: center;3728  justify-content: center;3729  text-align: center;3730  gap: 10px;3731  min-height: 0;3732  padding: 4px 2px 0;3733  border: none;3734  border-radius: 0;3735  background: transparent;3736  box-shadow: none;3737}3738.peach-lock-hero > * {3739  position: relative;3740  z-index: 1;3741}37423743.peach-lock-mark {3744  width: 40px;3745  height: 40px;3746  margin: 0 auto 6px;3747  display: block;3748}37493750.peach-lock-eyebrow {3751  display: inline-flex;3752  align-items: center;3753  width: fit-content;3754  margin: 0 auto;3755  padding: 4px 9px;3756  border-radius: 999px;3757  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3758  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3759  color: var(--peach-t0);3760  font-family: "IBM Plex Mono", monospace;3761  font-weight: 600;3762  font-size: 0.55rem;3763  letter-spacing: 0.14em;3764  text-transform: uppercase;3765}37663767.peach-lock-label-row {3768  display: flex;3769  align-items: center;3770  justify-content: space-between;3771  margin-bottom: 0;3772}37733774.peach-lock-reveal-btn {3775  display: inline-flex;3776  align-items: center;3777  gap: 4px;3778  background: none;3779  border: none;3780  cursor: pointer;3781  font-family: "IBM Plex Mono", monospace;3782  font-size: 0.5625rem;3783  letter-spacing: 0.06em;3784  color: var(--peach-t2);3785  padding: 2px 0;3786  transition: color 150ms ease;3787}37883789.peach-lock-reveal-btn:hover {3790  color: var(--peach-t1);3791}37923793.peach-lock-warning {3794  color: rgba(220, 80, 60, 0.85) !important;3795  line-height: 1.5;3796}37973798.peach-onboarding-cards {3799  display: grid;3800  gap: 8px;3801  position: relative;3802  z-index: 1;3803}38043805.peach-lock-panel {3806  position: relative;3807  z-index: 1;3808  display: grid;3809  gap: 9px;3810  padding: 14px 16px 15px;3811  border-radius: 18px;3812  border: 1px solid var(--peach-t3);3813  background:3814    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3815  box-shadow:3816    inset 0 1px 0 rgba(240, 232, 216, 0.04),3817    0 12px 28px rgba(0, 0, 0, 0.12);3818}38193820/* Glass surface — lock panel and settings groups */3821.peach-glass {3822  background: rgba(26, 20, 16, 0.65);3823  border: 1px solid rgba(255, 255, 255, 0.08);3824  border-radius: 12px;3825  backdrop-filter: blur(12px) saturate(1.4);3826  -webkit-backdrop-filter: blur(12px) saturate(1.4);3827}38283829@supports not (backdrop-filter: blur(1px)) {3830  .peach-glass {3831    background: rgba(26, 20, 16, 0.92);3832    border: 1px solid rgba(255, 255, 255, 0.10);3833    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3834  }3835}38363837.light .peach-glass,3838[data-theme="light"] .peach-glass {3839  background: rgba(240, 233, 223, 0.72);3840  border: 1px solid rgba(26, 18, 8, 0.08);3841  backdrop-filter: blur(12px) saturate(1.2);3842  -webkit-backdrop-filter: blur(12px) saturate(1.2);3843}38443845@supports not (backdrop-filter: blur(1px)) {3846  .light .peach-glass,3847  [data-theme="light"] .peach-glass {3848    background: rgba(240, 233, 223, 0.97);3849    border: 1px solid rgba(26, 18, 8, 0.10);3850  }3851}38523853/* Lock panel keeps its own border-radius over the generic glass token */3854.peach-lock-panel.peach-glass {3855  border-radius: 18px;3856  background: rgba(26, 20, 16, 0.65);3857  border: 1px solid rgba(255, 255, 255, 0.08);3858  box-shadow:3859    inset 0 1px 0 rgba(255, 255, 255, 0.05),3860    0 12px 28px rgba(0, 0, 0, 0.3);3861}38623863.light .peach-lock-panel.peach-glass,3864[data-theme="light"] .peach-lock-panel.peach-glass {3865  background: rgba(240, 233, 223, 0.82);3866  border: 1px solid rgba(26, 18, 8, 0.08);3867  box-shadow:3868    inset 0 1px 0 rgba(255, 255, 255, 0.4),3869    0 8px 24px rgba(80, 56, 32, 0.15);3870}38713872@supports not (backdrop-filter: blur(1px)) {3873  .peach-lock-panel.peach-glass {3874    background: rgba(26, 20, 16, 0.92);3875    box-shadow:3876      inset 0 1px 0 rgba(255, 255, 255, 0.05),3877      0 12px 28px rgba(0, 0, 0, 0.4);3878  }3879  .light .peach-lock-panel.peach-glass,3880  [data-theme="light"] .peach-lock-panel.peach-glass {3881    background: rgba(240, 233, 223, 0.98);3882  }3883}38843885.peach-lock-panel--secondary {3886  gap: 12px;3887}38883889.peach-lock-panel-header {3890  display: flex;3891  align-items: baseline;3892  justify-content: space-between;3893  gap: 12px;3894}38953896.peach-lock-option-grid {3897  display: grid;3898  gap: 10px;3899}39003901.peach-lock-option {3902  width: 100%;3903  display: grid;3904  gap: 6px;3905  padding: 14px 15px;3906  border-radius: 16px;3907  border: 1px solid rgba(240, 232, 216, 0.08);3908  background: rgba(240, 232, 216, 0.02);3909  color: var(--peach-t0);3910  text-align: left;3911  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3912}39133914.peach-lock-option:hover {3915  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3916  background: rgba(240, 232, 216, 0.04);3917  transform: translateY(-1px);3918}39193920.peach-lock-option-title {3921  font-size: 0.75rem;3922  color: var(--peach-t0);3923}39243925.peach-lock-option-copy {3926  font-size: 0.6875rem;3927  line-height: 1.55;3928  color: var(--peach-t1);3929}39303931.peach-onboarding-stack {3932  margin-top: 2px;3933}3934.peach-lock-panel-footer {3935  display: grid;3936  gap: 6px;3937  margin-top: 2px;3938  padding-top: 10px;3939  border-top: 1px solid rgba(240, 232, 216, 0.06);3940}39413942/* ── Restore tab view ─────────────────────────────────────────────────────3943   Tab-based restore screen replacing the old three-card picker. */39443945.peach-restore-tabview {3946  overflow: hidden;3947}39483949.peach-restore-tabcard {3950  flex: 1;3951  display: flex;3952  flex-direction: column;3953  gap: 0;3954  padding: 0;3955  overflow: hidden;3956  cursor: default;3957  user-select: none;3958  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3959}39603961/* ── Tab selector ─────────────────────────────────────────────────────── */39623963.peach-restore-tabs {3964  display: flex;3965  justify-content: space-around;3966  padding: 14px 10px 10px;3967  border-bottom: 1px solid var(--peach-t3);3968  gap: 2px;3969  overflow: hidden;3970  scrollbar-width: none;3971}3972.peach-restore-tabs::-webkit-scrollbar { display: none; }39733974.peach-restore-tab {3975  background: none;3976  border: none;3977  cursor: pointer;3978  padding: 3px 2px;3979  font-family: 'Cormorant Garamond', Georgia, serif;3980  font-style: italic;3981  font-size: 11px;3982  color: var(--peach-t2);3983  transition: color 150ms ease, text-shadow 150ms ease;3984  flex: 1;3985  min-width: 0;3986  text-align: center;3987  white-space: nowrap;3988  overflow: hidden;3989  text-overflow: ellipsis;3990}3991.peach-restore-tab:hover {3992  color: var(--peach-accent);3993  text-shadow:3994    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3995    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3996}3997.peach-restore-tab.is-active {3998  color: var(--peach-accent);3999  text-shadow:4000    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),4001    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);4002}40034004/* ── Content area ─────────────────────────────────────────────────────── */40054006.peach-restore-content {4007  padding: 16px 16px 14px;4008  display: flex;4009  flex-direction: column;4010  gap: 8px;4011  overflow: hidden;4012  scrollbar-width: none;4013  flex: 1;4014}4015.peach-restore-content::-webkit-scrollbar { display: none; }4016.peach-restore-content > * {4017  overflow: hidden;4018  scrollbar-width: none;4019}4020.peach-restore-content > *::-webkit-scrollbar { display: none; }40214022/* ── Shared tab inner layout ──────────────────────────────────────────── */40234024.peach-rt-symbols,4025.peach-rt-csv,4026.peach-rt-phone,4027.peach-restore-codex {4028  display: flex;4029  flex-direction: column;4030  gap: 8px;4031  overflow: hidden;4032}40334034.peach-restore-codex {4035  min-height: 0;4036  justify-content: center;4037}40384039.peach-restore-codex-title {4040  margin: 0;4041  font-family: var(--font-display);4042  font-size: 1rem;4043  font-style: italic;4044  color: var(--peach-t0);4045}40464047.peach-restore-codex-copy {4048  margin: 0;4049  font-size: 0.75rem;4050  line-height: 1.5;4051  color: var(--peach-t1);4052}40534054.peach-restore-codex-button {4055  width: 100%;4056  justify-content: center;4057}40584059.peach-rt-submit {4060  width: 100%;4061}40624063.peach-rt-error {4064  margin: 0;4065  font-size: 0.6875rem;4066  color: var(--peach-breach);4067  line-height: 1.4;4068}40694070/* ── PeachScript tab ──────────────────────────────────────────────────── */40714072.peach-restore-symbols-textarea {4073  font-family: 'PeachScript', monospace;4074  font-size: 13px;4075  line-height: 1.9;4076  letter-spacing: 0.1em;4077  word-break: break-all;4078  resize: none;4079  width: 100%;4080  min-height: 56px;4081  max-height: 72px;4082  overflow: hidden;4083  scrollbar-width: none;4084  -ms-overflow-style: none;4085  box-sizing: border-box;4086  padding: 6px 8px;4087  border-radius: 8px;4088  border: 1px solid var(--peach-t3);4089  background: rgba(240, 232, 216, 0.03);4090  color: var(--peach-t0);4091}4092.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }4093.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }40944095.peach-restore-symbols-pass {4096  width: 100%;4097  box-sizing: border-box;4098  padding: 7px 10px;4099  border-radius: 8px;4100  border: 1px solid var(--peach-t3);4101  background: rgba(240, 232, 216, 0.03);4102  color: var(--peach-t0);4103  font-size: 0.8125rem;4104}4105.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }4106.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }41074108.peach-rt-divider {4109  text-align: center;4110  font-size: 0.6875rem;4111  color: var(--peach-t2);4112  font-style: italic;4113}41144115.peach-rt-file-label {4116  width: 100%;4117  justify-content: center;4118}41194120.peach-rt-anim-canvas {4121  width: 100%;4122  height: 180px;4123  border-radius: 10px;4124  overflow: hidden;4125  display: block;4126}41274128/* ── CSV tab ──────────────────────────────────────────────────────────── */41294130.peach-rt-csv-sources {4131  margin: 0;4132  font-size: 0.6875rem;4133  color: var(--peach-t2);4134  line-height: 1.5;4135  text-align: center;4136}41374138.peach-rt-csv-warning {4139  margin: 0;4140  font-family: "IBM Plex Mono", monospace;4141  font-size: 0.5625rem;4142  letter-spacing: 0.12em;4143  color: var(--peach-breach);4144  text-align: center;4145}41464147/* ── From Phone tab ───────────────────────────────────────────────────── */41484149.peach-rt-phone-code {4150  margin: 0;4151  text-align: center;4152  font-family: "IBM Plex Mono", monospace;4153  font-size: 22px;4154  letter-spacing: 0.18em;4155  color: var(--peach-t0);4156}41574158.peach-rt-phone-qr {4159  display: block;4160  width: 96px;4161  height: 96px;4162  margin: 0 auto;4163  border-radius: 6px;4164  image-rendering: pixelated;4165  overflow: hidden;4166}41674168.peach-rt-phone-hint {4169  margin: 0;4170  font-size: 0.6875rem;4171  color: var(--peach-t2);4172  line-height: 1.55;4173  text-align: center;4174}41754176/* ── Intro popup ──────────────────────────────────────────────────────── */41774178.peach-restore-intro-overlay {4179  position: absolute;4180  inset: 0;4181  z-index: 100;4182  display: flex;4183  align-items: center;4184  justify-content: center;4185  padding: 20px;4186  background: rgba(12, 10, 6, 0.7);4187  backdrop-filter: blur(4px);4188  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4189}41904191.peach-restore-intro-card {4192  width: 100%;4193  display: flex;4194  flex-direction: column;4195  gap: 12px;4196  padding: 22px 20px 20px;4197  border-radius: 16px;4198  border: 1px solid var(--peach-t3);4199  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));4200  backdrop-filter: blur(4px);4201  -webkit-backdrop-filter: blur(4px);4202  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);4203}42044205.peach-restore-intro-headline {4206  margin: 0;4207  font-family: var(--font-display);4208  font-style: italic;4209  font-size: 20px;4210  font-weight: 400;4211  color: var(--peach-t0);4212}42134214.peach-restore-intro-body {4215  display: flex;4216  flex-direction: column;4217  gap: 8px;4218}4219.peach-restore-intro-body p {4220  margin: 0;4221  font-size: 0.75rem;4222  color: var(--peach-t1);4223  line-height: 1.5;4224}42254226.peach-restore-intro-btn {4227  width: 100%;4228  margin-top: 4px;4229}42304231/* Snapshot restore panel */4232.peach-snapshot-panel {4233  gap: 10px;4234  overflow-y: auto;4235  max-height: 340px;4236}4237.peach-snapshot-list {4238  display: flex;4239  flex-direction: column;4240  gap: 4px;4241}4242.peach-snapshot-row {4243  display: flex;4244  align-items: center;4245  justify-content: space-between;4246  width: 100%;4247  padding: 8px 10px;4248  border-radius: 8px;4249  border: 1px solid rgba(240, 232, 216, 0.07);4250  background: transparent;4251  cursor: pointer;4252  transition: border-color 120ms, background 120ms;4253  text-align: left;4254  gap: 8px;4255}4256.peach-snapshot-row:hover {4257  border-color: rgba(240, 232, 216, 0.14);4258  background: rgba(240, 232, 216, 0.03);4259}4260.peach-snapshot-row.is-selected {4261  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4262  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);4263}4264.peach-snapshot-time {4265  font-size: 11.5px;4266  color: var(--peach-t0);4267  flex: 1;4268}4269.peach-snapshot-count {4270  font-family: "IBM Plex Mono", monospace;4271  font-size: 0.625rem;4272  color: var(--peach-t2);4273  flex-shrink: 0;4274}4275.peach-snapshot-confirm {4276  display: flex;4277  flex-direction: column;4278  gap: 8px;4279  padding-top: 10px;4280  border-top: 1px solid rgba(240, 232, 216, 0.06);4281}4282.peach-snapshot-warning {4283  display: flex;4284  align-items: flex-start;4285  gap: 6px;4286  font-size: 10.5px;4287  color: rgba(220, 80, 60, 0.85);4288  line-height: 1.55;4289}4290.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }4291.peach-snapshot-confirm-row {4292  display: flex;4293  gap: 6px;4294  align-items: center;4295}4296.peach-snapshot-restore-btn {4297  width: 100%;4298}4299.peach-lock-hero--unlock .peach-lock-hero-art {4300  display: none;4301}43024303.peach-card {4304  border: 1px solid var(--peach-t3);4305  border-radius: 18px;4306  background:4307    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);4308  box-shadow:4309    inset 0 0 0 1px var(--peach-border-accent),4310    inset 0 1px 0 rgba(240, 232, 216, 0.04),4311    0 12px 32px rgba(0, 0, 0, 0.14);4312  overflow: hidden;4313}43144315.peach-card-active {4316  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4317  box-shadow:4318    inset 0 1px 0 rgba(240, 232, 216, 0.05),4319    0 16px 38px rgba(0, 0, 0, 0.18),4320    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4321}43224323.peach-card-disabled {4324  opacity: 0.72;4325}43264327.peach-card-header {4328  width: 100%;4329  padding: 13px 16px 11px;4330  background: transparent;4331  color: var(--peach-t0);4332  display: flex;4333  justify-content: space-between;4334  align-items: center;4335  text-align: left;4336  font-size: 0.75rem;4337}43384339.peach-card-body {4340  padding: 0 16px 16px;4341  display: grid;4342  gap: 9px;4343}43444345.peach-card-tag {4346  color: var(--peach-t2);4347  font-family: "IBM Plex Mono", monospace;4348  font-size: 0.5625rem;4349  letter-spacing: 0.12em;4350  text-transform: uppercase;4351}43524353.peach-empty-copy {4354  display: grid;4355  gap: 6px;4356  color: var(--peach-t1);4357  font-size: 0.8125rem;4358}43594360.peach-lock-submit {4361  width: 100%;4362  box-shadow:4363    0 1px 0 rgba(255,255,255,0.10) inset,4364    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4365    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4366    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4367}43684369.peach-lock-secondary {4370  width: 100%;4371  border-color: var(--peach-t3);4372  background: rgba(240, 232, 216, 0.02);4373}43744375.peach-lock-secondary:hover {4376  background: rgba(240, 232, 216, 0.04);4377}43784379.peach-lock-note {4380  max-width: none;4381  line-height: 1.55;4382  margin: 0;4383}43844385.peach-overlay-action {4386  font-size: 0.625rem;4387  padding: 4px 8px;4388  letter-spacing: 0.06em;4389  min-width: 44px;4390  text-align: center;4391}43924393.peach-inline-action {4394  flex-shrink: 0;4395  font-size: 0.5625rem;4396  letter-spacing: 0.1em;4397  text-transform: uppercase;4398  padding: 4px 7px;4399}4400.peach-password-toggle-btn {4401  display: inline-flex;4402  align-items: center;4403  justify-content: center;4404  min-width: 30px;4405  min-height: 26px;4406  padding: 0 7px;4407  border: 1px solid var(--peach-t3);4408  border-radius: 999px;4409  background: rgba(240, 232, 216, 0.04);4410  color: var(--peach-t2);4411  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4412}4413.peach-password-toggle-btn:hover {4414  border-color: var(--peach-t2);4415  color: var(--peach-t0);4416  background: rgba(240, 232, 216, 0.06);4417}44184419.peach-new-textarea {4420  width: 100%;4421  min-height: 88px;4422  resize: vertical;4423  border: 0;4424  outline: none;4425  background: transparent;4426  color: var(--peach-t1);4427  font-family: "IBM Plex Mono", monospace;4428  font-size: 0.75rem;4429  line-height: 1.65;4430  caret-color: var(--peach-accent);4431}44324433.peach-new-textarea::placeholder {4434  color: var(--peach-t2);4435  opacity: 0.7;4436}44374438.peach-settings-actions {4439  display: grid;4440  gap: 8px;4441}44424443.peach-sync-section-label {4444  font-size: 0.6875rem;4445  color: var(--peach-t2);4446  text-transform: uppercase;4447  letter-spacing: 0.05em;4448}44494450.peach-sync-network-note {4451  margin: 0 0 6px;4452  font-size: 0.75rem;4453  color: var(--peach-t2);4454  line-height: 1.4;4455}44564457.peach-settings-row--tappable {4458  background: none;4459  border: none;4460  width: 100%;4461  text-align: left;4462  cursor: pointer;4463  color: var(--peach-t1);4464  font-size: 0.8125rem;4465}4466.peach-settings-row--tappable:hover {4467  color: var(--peach-t0);4468}44694470.peach-sync-pro-hint {4471  display: flex;4472  flex-direction: column;4473  align-items: flex-start;4474  gap: 8px;4475  padding: 12px 0 4px;4476}44774478.peach-sync-device-row {4479  display: flex;4480  justify-content: space-between;4481  align-items: center;4482  padding: 6px 0;4483  border-bottom: 1px solid var(--peach-t3);4484}44854486.peach-sync-device-info {4487  display: flex;4488  flex-direction: column;4489  gap: 2px;4490}44914492.peach-sync-device-name {4493  font-size: 0.8125rem;4494  color: var(--peach-t0);4495}44964497.peach-sync-device-meta {4498  font-size: 0.6875rem;4499  color: var(--peach-t2);4500}45014502.peach-sync-status-dot {4503  display: inline-block;4504  width: 8px;4505  height: 8px;4506  border-radius: 50%;4507  vertical-align: middle;4508}45094510.peach-sync-remove-btn {4511  color: var(--peach-breach);4512}45134514.peach-sync-advanced-row {4515  display: flex;4516  justify-content: space-between;4517  align-items: center;4518  padding: 6px 0;4519  gap: 12px;4520}45214522.peach-sync-advanced-info {4523  display: flex;4524  flex-direction: column;4525  gap: 2px;4526  flex: 1;4527}45284529.peach-sync-advanced-name {4530  font-size: 0.8125rem;4531  color: var(--peach-t0);4532}45334534.peach-sync-reset-confirm {4535  display: flex;4536  flex-direction: column;4537  gap: 8px;4538  padding: 10px;4539  border: 1px solid var(--peach-breach);4540  border-radius: 10px;4541  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4542}45434544.peach-sync-reset-confirm-headline {4545  font-size: 0.8125rem;4546  font-weight: 600;4547  color: var(--peach-t0);4548  margin: 0;4549}45504551.peach-sync-reset-confirm-body {4552  font-size: 0.75rem;4553  color: var(--peach-t1);4554  margin: 0;4555  line-height: 1.4;4556}45574558.peach-btn--danger {4559  background: var(--peach-breach);4560  color: #fff;4561  border-color: var(--peach-breach);4562}4563.peach-btn--danger:hover:not(:disabled) {4564  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4565}4566.peach-btn--danger:disabled {4567  opacity: 0.55;4568  cursor: not-allowed;4569}45704571.peach-sync-hero-icon {4572  color: var(--peach-t1);4573  opacity: 0.85;4574}45754576.peach-import-preview {4577  margin-bottom: 12px;4578  max-height: 152px;4579  overflow-y: auto;4580  border: 1px solid var(--peach-t3);4581  border-radius: 10px;4582  padding: 8px 10px;4583  display: grid;4584  gap: 8px;4585  background: rgba(240, 232, 216, 0.02);4586}45874588.peach-import-preview-row {4589  display: flex;4590  justify-content: space-between;4591  gap: 10px;4592  font-size: 0.6875rem;4593  color: var(--peach-t1);4594}45954596.peach-import-preview-title {4597  color: var(--peach-t0);4598  flex: 1;4599  min-width: 0;4600  overflow: hidden;4601  text-overflow: ellipsis;4602  white-space: nowrap;4603}46044605.peach-import-preview-meta {4606  color: var(--peach-t2);4607  flex-shrink: 0;4608  max-width: 42%;4609  overflow: hidden;4610  text-overflow: ellipsis;4611  white-space: nowrap;4612}46134614.peach-import-preview-more {4615  color: var(--peach-t2);4616  font-size: 0.625rem;4617}46184619.peach-restore-copy {4620  margin: 0;4621  color: var(--peach-t1);4622  font-size: 0.6875rem;4623  line-height: 1.6;4624}46254626.peach-restore-warning {4627  padding: 10px 12px;4628  border-radius: 12px;4629  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4630  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4631  color: var(--peach-t0);4632  font-size: 0.6875rem;4633  line-height: 1.55;4634}46354636.peach-provider-chips {4637  display: flex;4638  flex-wrap: wrap;4639  gap: 6px;4640}46414642.peach-provider-chip {4643  display: inline-flex;4644  align-items: center;4645  padding: 5px 8px;4646  border-radius: 999px;4647  border: 1px solid var(--peach-t3);4648  background: rgba(240, 232, 216, 0.02);4649  color: var(--peach-t1);4650  font-family: "IBM Plex Mono", monospace;4651  font-size: 0.5rem;4652  letter-spacing: 0.08em;4653  text-transform: uppercase;4654}46554656.peach-restore-file,4657.peach-restore-input {4658  width: 100%;4659  border-radius: 10px;4660  border: 1px solid var(--peach-t3);4661  background: var(--peach-s2);4662  color: var(--peach-t0);4663  font-size: 0.75rem;4664}46654666.peach-restore-file {4667  padding: 9px 10px;4668}46694670.peach-restore-file::file-selector-button {4671  margin-right: 10px;4672  padding: 7px 10px;4673  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4674  border-radius: 999px;4675  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4676  color: var(--peach-t0);4677  font-size: 0.625rem;4678  letter-spacing: 0.08em;4679  text-transform: uppercase;4680  cursor: pointer;4681}46824683.peach-restore-input {4684  padding: 10px 12px;4685}46864687.peach-auth-grid {4688  display: grid;4689  gap: 10px;4690}46914692.peach-import-summary {4693  color: var(--peach-t1);4694  font-size: 0.75rem;4695  line-height: 1.6;4696  margin-bottom: 12px;4697}46984699.peach-restore-error {4700  color: rgba(220, 80, 60, 0.95);4701  font-size: 0.75rem;4702  line-height: 1.55;4703}47044705.peach-passkey-card {4706  max-width: 400px;4707  margin: auto 16px;4708  align-self: center;4709  width: calc(100% - 32px);4710}47114712/* Center the approval card vertically inside the overlay-view (which sets4713 * flex-direction: column without justify-content). Without this, the card4714 * sits at the top with a tall empty band below — looks unfinished on the4715 * 320px popup. */4716.peach-overlay-view:has(.peach-passkey-card) {4717  justify-content: center;4718}47194720.peach-pro-badge {4721  padding: 2px 6px;4722  border-radius: 999px;4723  font-family: var(--font-ui);4724  font-size: 0.625rem;4725  letter-spacing: 0.08em;4726  text-transform: uppercase;4727  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4728  color: var(--peach-accent);4729}47304731/* ── Shortcuts rebind table ─────────────────────────────────── */4732.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4733.peach-shortcut-row {4734  display: flex;4735  align-items: center;4736  gap: 10px;4737  padding: 6px 0;4738}4739.peach-shortcut-row-label {4740  flex: 1;4741  font-size: 0.75rem;4742  color: var(--peach-t0);4743}4744.peach-shortcut-chip {4745  min-width: 64px;4746  padding: 4px 10px;4747  border-radius: 6px;4748  border: 1px solid var(--peach-t3);4749  background: var(--peach-input-bg, var(--surface-card));4750  color: var(--peach-t0);4751  font-family: var(--font-mono);4752  font-size: 0.6875rem;4753  letter-spacing: 0.04em;4754  cursor: pointer;4755  text-align: center;4756  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4757}4758.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4759.peach-shortcut-chip.is-custom {4760  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4761  color: var(--peach-accent);4762}4763.peach-shortcut-chip.is-capturing {4764  border-color: var(--peach-accent);4765  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4766  color: var(--peach-accent);4767  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4768}4769@keyframes peach-shortcut-capture-pulse {4770  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4771  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4772}4773.peach-shortcut-reset {4774  background: transparent;4775  border: none;4776  cursor: pointer;4777  color: var(--peach-t2);4778  padding: 4px 6px;4779  border-radius: 5px;4780  font-size: 0.875rem;4781  line-height: 1;4782  transition: color 120ms ease, background 120ms ease;4783}4784.peach-shortcut-reset:hover {4785  color: var(--peach-t0);4786  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4787}4788.peach-shortcuts-conflict {4789  margin: 4px 0 0;4790  padding: 8px 10px;4791  border-radius: 7px;4792  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4793  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4794  font-family: var(--font-mono);4795  font-size: 0.6875rem;4796  color: var(--peach-t0);4797}47984799/* ── Help dialog overlay (? to open) ────────────────────────── */4800.peach-shortcuts-help-backdrop {4801  position: fixed;4802  inset: 0;4803  background: rgba(0, 0, 0, 0.55);4804  backdrop-filter: blur(2px);4805  display: flex;4806  align-items: center;4807  justify-content: center;4808  z-index: 1000;4809  animation: peach-help-fade-in 140ms ease forwards;4810}4811@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4812.peach-shortcuts-help-card {4813  width: min(320px, 92vw);4814  max-height: 80vh;4815  overflow-y: auto;4816  border-radius: 14px;4817  border: 1px solid var(--peach-t3);4818  background: var(--peach-bg);4819  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4820  padding: 16px 18px 18px;4821  display: flex;4822  flex-direction: column;4823  gap: 12px;4824}4825.peach-shortcuts-help-head {4826  display: flex; align-items: center; justify-content: space-between;4827}4828.peach-shortcuts-help-head h3 {4829  margin: 0;4830  font-family: var(--font-display);4831  font-style: italic;4832  font-weight: 400;4833  font-size: 22px;4834  color: var(--peach-t0);4835}4836.peach-shortcuts-help-close {4837  background: transparent;4838  border: none;4839  color: var(--peach-t2);4840  cursor: pointer;4841  font-size: 0.875rem;4842  padding: 4px 8px;4843  border-radius: 5px;4844}4845.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4846.peach-shortcuts-help-body ul {4847  list-style: none; padding: 0; margin: 4px 0 12px;4848  display: grid; gap: 8px;4849}4850.peach-shortcuts-help-body li {4851  display: flex; align-items: center; justify-content: space-between; gap: 12px;4852  font-size: 0.75rem; color: var(--peach-t0);4853}4854.peach-shortcuts-help-body kbd {4855  font-family: var(--font-mono);4856  font-size: 0.6875rem;4857  padding: 3px 8px;4858  border-radius: 6px;4859  background: var(--surface-card);4860  border: 1px solid var(--peach-t3);4861  color: var(--peach-accent);4862  letter-spacing: 0.04em;4863}48644865/* ── Pro promo on Account screen ────────────────────────────── */4866.peach-pro-promo {4867  position: relative;4868  border-radius: 14px;4869  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4870  background:4871    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4872    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4873    var(--surface-card);4874  overflow: hidden;4875  margin-bottom: 14px;4876}4877.peach-pro-promo-glow {4878  position: absolute;4879  inset: -40% -20% auto auto;4880  width: 220px; height: 220px;4881  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4882  pointer-events: none;4883  filter: blur(8px);4884}4885.peach-pro-promo-inner {4886  position: relative;4887  padding: 18px 18px 16px;4888}4889.peach-pro-promo-title {4890  font-family: var(--font-display);4891  font-style: italic;4892  font-weight: 400;4893  font-size: 28px;4894  line-height: 1;4895  letter-spacing: -0.005em;4896  color: var(--peach-t0);4897  margin: 0 0 4px;4898}4899.peach-pro-promo-tagline {4900  font-family: var(--font-mono);4901  font-size: 0.625rem;4902  letter-spacing: 0.06em;4903  color: var(--peach-t2);4904  margin: 0 0 14px;4905}4906.peach-pro-promo-list {4907  list-style: none;4908  margin: 0 0 16px;4909  padding: 0;4910  display: grid;4911  gap: 9px;4912}4913.peach-pro-promo-list li {4914  display: flex;4915  align-items: flex-start;4916  gap: 9px;4917  font-size: 0.75rem;4918  color: var(--peach-t1);4919  line-height: 1.4;4920}4921.peach-pro-promo-list svg {4922  width: 14px;4923  height: 14px;4924  flex-shrink: 0;4925  color: var(--peach-accent);4926  margin-top: 2px;4927}4928.peach-pro-promo-list span {4929  color: var(--peach-t0);4930}4931.peach-pro-promo-cta {4932  width: 100%;4933  background: var(--peach-accent);4934  color: #fff;4935  border: none;4936  padding: 9px 12px;4937  border-radius: 9px;4938  font-size: 0.75rem;4939  font-weight: 500;4940  font-family: var(--font-ui);4941  letter-spacing: 0.02em;4942  text-decoration: none;4943  display: inline-flex;4944  align-items: center;4945  justify-content: center;4946  cursor: pointer;4947  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4948  box-shadow: 0 2px 16px var(--peach-glow);4949}4950.peach-pro-promo-cta:hover {4951  filter: brightness(1.07);4952  box-shadow: 0 4px 24px var(--peach-glow);4953  transform: translateY(-1px);4954}4955.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }49564957.peach-pro-or-divider {4958  display: flex;4959  align-items: center;4960  gap: 10px;4961  margin: 4px 0 12px;4962  font-family: var(--font-mono);4963  font-size: 0.625rem;4964  letter-spacing: 0.06em;4965  color: var(--peach-t2);4966  text-transform: uppercase;4967}4968.peach-pro-or-divider::before,4969.peach-pro-or-divider::after {4970  content: "";4971  flex: 1;4972  height: 1px;4973  background: var(--peach-t3);4974}49754976.peach-loading {4977  position: absolute;4978  inset: 0;4979  display: flex;4980  align-items: center;4981  justify-content: center;4982  background: var(--bg);4983  animation: peach-loading-pulse 1.2s ease-in-out infinite;4984}49854986@keyframes peach-loading-pulse {4987  0%, 100% { opacity: 0.6; }4988  50% { opacity: 1; }4989}49904991/* ── Health Dashboard ─────────────────────────────────────────────────── */4992.peach-health-body {4993  flex: 1;4994  overflow-y: auto;4995  display: flex;4996  flex-direction: column;4997  /* Hide the platform scrollbar — every other scrollable surface in the4998   * popup hides it; the Health view was the one outlier and it ruined the4999   * polish. Behavior unchanged, just no rail rendered. */5000  scrollbar-width: none;5001  -ms-overflow-style: none;5002}5003.peach-health-body::-webkit-scrollbar { display: none; }50045005/* Loading screen for the Vault Health view. The advanced report computation5006 * can run for a few seconds on a large vault — without a clear loading5007 * screen the surface looked broken (the entry view bleeds through the5008 * empty body). Centered glyph + title + copy + indeterminate progress bar. */5009.peach-health-loading-screen {5010  flex: 1;5011  display: flex;5012  flex-direction: column;5013  align-items: center;5014  justify-content: center;5015  gap: 14px;5016  padding: 32px 28px;5017  text-align: center;5018}50195020.peach-health-loading-glyph {5021  width: 48px;5022  height: 48px;5023  display: flex;5024  align-items: center;5025  justify-content: center;5026  border-radius: 14px;5027  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5028  color: var(--peach-accent);5029}50305031.peach-health-loading-title {5032  margin: 0;5033  font-family: var(--font-display);5034  font-style: italic;5035  font-weight: 300;5036  font-size: 19px;5037  line-height: 1.2;5038  color: var(--peach-t0);5039}50405041.peach-health-loading-copy {5042  margin: 0;5043  max-width: 240px;5044  font-size: 0.75rem;5045  line-height: 1.55;5046  color: var(--peach-t2);5047}50485049.peach-health-loading-track {5050  width: 200px;5051  height: 3px;5052  margin-top: 6px;5053  border-radius: 999px;5054  background: rgba(240, 232, 216, 0.06);5055  overflow: hidden;5056}50575058.peach-health-loading-fill {5059  width: 40%;5060  height: 100%;5061  border-radius: inherit;5062  background: linear-gradient(5063    90deg,5064    transparent 0%,5065    var(--peach-accent) 50%,5066    transparent 100%5067  );5068  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;5069}50705071@keyframes peach-health-loading-sweep {5072  0%   { transform: translateX(-100%); }5073  100% { transform: translateX(350%); }5074}50755076[data-motion="reduce"] .peach-health-loading-fill,5077[data-motion="reduce"] .peach-health-loading-glyph svg path {5078  animation: none;5079}50805081.peach-health-summary {5082  padding: 10px 16px 6px;5083  font-family: "IBM Plex Mono", monospace;5084  font-size: 0.6875rem;5085}5086.peach-health-summary-warn { color: rgba(220,80,60,0.9); }5087.peach-health-summary-ok { color: var(--peach-t2); }50885089.peach-health-check-row {5090  padding: 0 16px 10px;5091}5092.peach-health-check-btn {5093  width: 100%;5094  display: flex;5095  align-items: center;5096  justify-content: center;5097}50985099.peach-health-sections {5100  flex: 1;5101  display: flex;5102  flex-direction: column;5103}51045105.peach-health-section {5106  border-bottom: 1px solid var(--peach-t3);5107}51085109.peach-health-section-header {5110  width: 100%;5111  display: flex;5112  align-items: center;5113  justify-content: space-between;5114  padding: 9px 16px;5115  background: transparent;5116  cursor: pointer;5117  color: var(--peach-t0);5118}51195120.peach-health-section-title-row {5121  display: flex;5122  align-items: center;5123  gap: 8px;5124}51255126.peach-health-count-badge {5127  display: inline-flex;5128  align-items: center;5129  justify-content: center;5130  min-width: 20px;5131  height: 18px;5132  padding: 0 5px;5133  border-radius: 999px;5134  background: rgba(220,80,60,0.15);5135  border: 1px solid rgba(220,80,60,0.25);5136  font-family: "IBM Plex Mono", monospace;5137  font-size: 0.5625rem;5138  color: rgba(220,80,60,0.9);5139}51405141.peach-health-section-title {5142  font-family: "IBM Plex Mono", monospace;5143  font-size: 0.6875rem;5144  text-transform: uppercase;5145  letter-spacing: 0.1em;5146  color: var(--peach-t1);5147}51485149.peach-health-chevron {5150  color: var(--peach-t2);5151  transition: transform 200ms ease;5152  flex-shrink: 0;5153}5154.peach-health-chevron.is-expanded {5155  transform: rotate(180deg);5156}51575158.peach-health-section-body {5159  padding: 0 16px 10px;5160  display: flex;5161  flex-direction: column;5162  gap: 4px;5163}51645165.peach-health-row {5166  display: flex;5167  align-items: flex-start;5168  justify-content: space-between;5169  gap: 8px;5170  padding: 6px 8px;5171  border-radius: 8px;5172  background: rgba(240,232,216,0.02);5173}51745175.peach-health-row-info {5176  flex: 1;5177  min-width: 0;5178  display: flex;5179  flex-direction: column;5180  gap: 2px;5181}51825183.peach-health-row-name {5184  font-family: var(--font-display);5185  font-size: 0.9375rem;5186  font-style: italic;5187  font-weight: 400;5188  color: var(--peach-t0);5189  white-space: nowrap;5190  overflow: hidden;5191  text-overflow: ellipsis;5192}51935194.peach-health-row-meta {5195  font-family: "IBM Plex Mono", monospace;5196  font-size: 0.5625rem;5197  color: var(--peach-t2);5198  letter-spacing: 0.05em;5199}52005201.peach-health-fix-btn {5202  font-size: 0.5625rem;5203  letter-spacing: 0.08em;5204  text-transform: uppercase;5205  padding: 4px 7px;5206  flex-shrink: 0;5207  display: flex;5208  align-items: center;5209}52105211.peach-health-empty {5212  font-family: "IBM Plex Mono", monospace;5213  font-size: 0.625rem;5214  color: var(--peach-t2);5215  padding: 6px 0;5216}52175218.peach-health-loading {5219  font-family: "IBM Plex Mono", monospace;5220  font-size: 0.625rem;5221  color: var(--peach-t2);5222  padding: 6px 0;5223  display: flex;5224  align-items: center;5225  gap: 6px;5226}52275228.peach-health-loading::before {5229  content: "";5230  width: 10px;5231  height: 10px;5232  border: 1.5px solid var(--peach-t3);5233  border-top-color: var(--peach-accent);5234  border-radius: 50%;5235  animation: peach-spin 600ms linear infinite;5236}52375238@keyframes peach-spin {5239  to { transform: rotate(360deg); }5240}52415242.peach-spinner {5243  width: 32px;5244  height: 32px;5245  border: 2px solid var(--peach-s2);5246  border-top-color: var(--peach-accent);5247  border-radius: 50%;5248  margin: 0 auto 16px;5249  animation: peach-spin 0.8s linear infinite;5250}52515252.peach-progress-screen {5253  text-align: center;5254  padding: 32px 16px;5255}52565257.peach-progress-screen-title {5258  font-size: 0.8125rem;5259  color: var(--peach-t0);5260  margin-bottom: 16px;5261}52625263.peach-progress-screen-stage {5264  font-size: 0.6875rem;5265  color: var(--peach-t2);5266  min-height: 14px;5267}52685269.peach-progress-screen-note {5270  font-size: 0.625rem;5271  color: var(--peach-t2);5272  margin-top: 8px;5273}52745275/* Pairing commits the vault key before the first entry sync. Keep that5276   implementation detail off-screen until the paired source records a real,5277   durable sync completion. */5278.peach-initial-sync {5279  position: relative;5280  display: flex;5281  align-items: center;5282  justify-content: center;5283  overflow: hidden;5284}52855286.peach-initial-sync-card {5287  position: relative;5288  z-index: 1;5289  width: min(100%, 320px);5290  display: flex;5291  flex-direction: column;5292  align-items: center;5293  gap: 10px;5294  padding: 36px 26px;5295  text-align: center;5296}52975298.peach-initial-sync-mark {5299  width: 54px;5300  height: 54px;5301  display: flex;5302  align-items: center;5303  justify-content: center;5304  border-radius: 18px;5305  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5306  margin-bottom: 4px;5307}53085309.peach-initial-sync-mark svg {5310  width: 34px;5311  height: 34px;5312}53135314.peach-initial-sync-card h1 {5315  margin: 0;5316  color: var(--peach-t0);5317  font-family: var(--font-display);5318  font-size: 1.55rem;5319  font-style: italic;5320  font-weight: 400;5321}53225323.peach-initial-sync-card > p {5324  margin: 0;5325}53265327.peach-initial-sync-card #initial-sync-copy {5328  color: var(--peach-t1);5329  font-size: 0.78rem;5330  line-height: 1.55;5331}53325333.peach-initial-sync-progress {5334  width: 100%;5335  height: 3px;5336  overflow: hidden;5337  border-radius: 999px;5338  background: color-mix(in srgb, var(--peach-t0) 8%, transparent);5339  margin: 8px 0 2px;5340}53415342.peach-initial-sync-progress span {5343  display: block;5344  width: 42%;5345  height: 100%;5346  border-radius: inherit;5347  background: var(--peach-accent);5348  animation: peach-initial-sync-progress 1.4s cubic-bezier(0.2, 0, 0, 1) infinite;5349}53505351@keyframes peach-initial-sync-progress {5352  from { transform: translateX(-115%); }5353  to { transform: translateX(340%); }5354}53555356.peach-initial-sync-note {5357  color: var(--peach-t2);5358  font-size: 0.625rem;5359  line-height: 1.45;5360}53615362.peach-initial-sync-slow {5363  width: 100%;5364  display: flex;5365  flex-direction: column;5366  gap: 10px;5367  padding-top: 10px;5368  border-top: 1px solid var(--peach-border);5369}53705371.peach-initial-sync-slow p {5372  margin: 0;5373  color: var(--peach-t2);5374  font-size: 0.6875rem;5375  line-height: 1.45;5376}53775378.peach-initial-sync-slow .peach-btn {5379  width: 100%;5380}53815382@media (prefers-reduced-motion: reduce) {5383  .peach-initial-sync-progress span {5384    width: 100%;5385    opacity: 0.7;5386    animation: none;5387  }5388}53895390/* Tag chips */5391.peach-tag-chip {5392  display: inline-flex;5393  align-items: center;5394  gap: 4px;5395  padding: 3px 8px;5396  border-radius: 999px;5397  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5398  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5399  color: var(--peach-t0);5400  font-family: "IBM Plex Mono", monospace;5401  font-size: 0.625rem;5402  letter-spacing: 0.04em;5403}54045405.peach-tag-chip-remove {5406  background: transparent;5407  border: none;5408  color: inherit;5409  opacity: 0.6;5410  cursor: pointer;5411  padding: 0;5412  font-size: 0.75rem;5413  line-height: 1;5414}54155416.peach-tag-chip-remove:hover {5417  opacity: 1;5418}54195420/* Tag input */5421.peach-tag-input-wrap {5422  border-bottom: 1px solid var(--peach-t3);5423}54245425.peach-tag-suggestions {5426  display: flex;5427  flex-wrap: wrap;5428  gap: 4px;5429  padding: 6px 0;5430}54315432.peach-tag-suggestion {5433  padding: 2px 8px;5434  border-radius: 999px;5435  border: 1px solid var(--peach-t3);5436  background: var(--peach-s2);5437  color: var(--peach-t1);5438  font-family: "IBM Plex Mono", monospace;5439  font-size: 0.625rem;5440  cursor: pointer;5441  transition: border-color 80ms ease, background 80ms ease;5442}54435444.peach-tag-suggestion:hover {5445  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5446  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5447}54485449/* Identity suggestions — shown below username/email inputs in new-entry form */5450@keyframes peach-suggest-in {5451  from { opacity: 0; transform: translateY(-4px); }5452  to   { opacity: 1; transform: none; }5453}54545455.peach-identity-suggestions {5456  display: flex;5457  flex-direction: column;5458  gap: 1px;5459  margin-top: 4px;5460  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5461}54625463.peach-identity-filter-row {5464  display: flex;5465  align-items: center;5466  gap: 4px;5467  padding: 2px 0 5px;5468}54695470.peach-identity-collapse-btn {5471  margin-left: auto;5472  background: transparent;5473  border: none;5474  cursor: pointer;5475  color: var(--peach-t3);5476  padding: 2px 4px;5477  display: flex;5478  align-items: center;5479  line-height: 0;5480  border-radius: 3px;5481  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5482}54835484.peach-identity-collapse-btn:hover {5485  color: var(--peach-t1);5486}54875488.peach-identity-collapse-btn.is-collapsed {5489  transform: rotate(-90deg);5490}54915492.peach-identity-rows {5493  display: grid;5494  grid-template-rows: 1fr;5495  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5496}54975498.peach-identity-rows.is-collapsed {5499  grid-template-rows: 0fr;5500}55015502.peach-identity-rows-inner {5503  overflow-y: auto;5504  min-height: 0;5505  max-height: 148px;5506  scrollbar-width: thin;5507  scrollbar-color: var(--peach-t3) transparent;5508  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5509  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5510}55115512.peach-identity-rows-inner::-webkit-scrollbar {5513  width: 4px;5514}55155516.peach-identity-rows-inner::-webkit-scrollbar-track {5517  background: transparent;5518}55195520.peach-identity-rows-inner::-webkit-scrollbar-thumb {5521  background: var(--peach-t3);5522  border-radius: 2px;5523}55245525.peach-identity-filter-pill {5526  padding: 2px 7px;5527  border-radius: 999px;5528  border: 1px solid var(--peach-t3);5529  background: transparent;5530  color: var(--peach-t2);5531  font-family: "IBM Plex Mono", monospace;5532  font-size: 0.6rem;5533  cursor: pointer;5534  transition: border-color 80ms, background 80ms, color 80ms;5535}55365537.peach-identity-filter-pill.is-on {5538  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5539  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5540  color: var(--peach-accent);5541}55425543.peach-identity-suggestion {5544  display: flex;5545  align-items: center;5546  gap: 6px;5547  width: 100%;5548  padding: 4px 6px;5549  border-radius: 5px;5550  border: none;5551  background: transparent;5552  cursor: pointer;5553  text-align: left;5554  transition: background 80ms ease;5555}55565557.peach-identity-suggestion:hover,5558.peach-identity-suggestion:focus {5559  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5560  outline: none;5561}55625563.peach-identity-suggestion-value {5564  font-family: "IBM Plex Mono", monospace;5565  font-size: 0.7rem;5566  color: var(--peach-t1);5567  overflow: hidden;5568  text-overflow: ellipsis;5569  white-space: nowrap;5570  flex: 1;5571  min-width: 0;5572}55735574.peach-identity-suggestion-type {5575  font-family: "IBM Plex Mono", monospace;5576  font-size: 0.55rem;5577  font-weight: 600;5578  flex-shrink: 0;5579  padding: 1px 4px;5580  border-radius: 3px;5581}55825583.peach-identity-suggestion-type--email {5584  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5585  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5586}55875588.peach-identity-suggestion-type--username {5589  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5590  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5591}55925593.peach-identity-suggestion-meta {5594  font-family: "IBM Plex Mono", monospace;5595  font-size: 0.6rem;5596  color: var(--peach-t3);5597  flex-shrink: 0;5598}55995600/* Tag filter strip */5601.peach-tag-filter-strip {5602  border-bottom: 1px solid var(--peach-t3);5603  flex-shrink: 0;5604}56055606.peach-tag-filter-chip {5607  display: inline-flex;5608  align-items: center;5609  padding: 4px 10px;5610  border-radius: 999px;5611  border: 1px solid var(--peach-t3);5612  background: transparent;5613  color: var(--peach-t2);5614  font-family: "IBM Plex Mono", monospace;5615  font-size: 0.5625rem;5616  letter-spacing: 0.06em;5617  text-transform: uppercase;5618  cursor: pointer;5619  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5620  white-space: nowrap;5621}56225623.peach-tag-filter-chip:hover {5624  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5625  color: var(--peach-t1);5626}56275628.peach-tag-filter-chip.is-selected {5629  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5630  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5631  color: var(--peach-t0);5632}56335634/* ─────────────────────────────────────────────────────────────────────────5635   v1.4.12 additions5636   ─────────────────────────────────────────────────────────────────────── */56375638/* Sort bar */5639.peach-sort-bar {5640  display: flex;5641  align-items: center;5642  gap: 4px;5643  padding: 5px 12px;5644  border-bottom: 1px solid var(--peach-t3);5645  flex-shrink: 0;5646  overflow-x: auto;5647  scrollbar-width: none;5648}56495650.peach-sort-btn {5651  padding: 2px 9px;5652  border-radius: 999px;5653  border: 1px solid transparent;5654  background: transparent;5655  color: var(--peach-t2);5656  font-family: "IBM Plex Mono", monospace;5657  font-size: 0.5625rem;5658  letter-spacing: 0.07em;5659  text-transform: uppercase;5660  cursor: pointer;5661  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5662  white-space: nowrap;5663}56645665.peach-sort-btn:hover {5666  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5667  color: var(--peach-t1);5668}56695670.peach-sort-btn.is-active {5671  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5672  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5673  color: var(--peach-t0);5674}56755676.peach-sort-scope-btn {5677  padding-inline: 8px;5678  font-size: 0.53125rem;5679  letter-spacing: 0.05em;5680}56815682.peach-sort-domain-hint {5683  margin-left: auto;5684  font-family: "IBM Plex Mono", monospace;5685  font-size: 0.5625rem;5686  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5687  white-space: nowrap;5688  overflow: hidden;5689  text-overflow: ellipsis;5690  max-width: 110px;5691}56925693/* Tab-match badge on entry rows */5694.peach-tab-match-badge {5695  display: inline-block;5696  width: 6px;5697  height: 6px;5698  border-radius: 50%;5699  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5700  margin-left: 5px;5701  vertical-align: middle;5702  flex-shrink: 0;5703  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5704}57055706.peach-entry-row.is-tab-match {5707  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5708  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5709}57105711.peach-entry-row.is-tab-match:hover {5712  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5713}57145715/* Entry list stagger entrance */5716@keyframes peach-entry-fadein {5717  from { opacity: 0; transform: translateY(4px); }5718  to   { opacity: 1; transform: translateY(0); }5719}57205721.peach-vault-list .peach-entry-row {5722  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5723}57245725/* Button press micro-interaction */5726.peach-btn:active {5727  transform: scale(0.95);5728  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5729}57305731.peach-sort-btn:active,5732.peach-tag-filter-chip:active {5733  transform: scale(0.93);5734  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5735}57365737/* Password strength bar (Lock view + shared) */5738.peach-password-strength {5739  display: flex;5740  align-items: center;5741  gap: 8px;5742  margin-top: 6px;5743}57445745.peach-strength-bar {5746  flex: 1;5747  height: 3px;5748  border-radius: 2px;5749  background: var(--peach-t3);5750  overflow: hidden;5751}57525753.peach-strength-fill {5754  height: 100%;5755  border-radius: 2px;5756  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5757              background 300ms ease;5758}57595760.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5761.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5762.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5763.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }57645765.peach-strength-label {5766  font-family: "IBM Plex Mono", monospace;5767  font-style: italic;5768  font-size: 0.5625rem;5769  font-weight: 300;5770  letter-spacing: 0.06em;5771  color: var(--peach-t2);5772  min-width: 36px;5773  text-align: right;5774}57755776.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5777.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5778.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5779.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }57805781/* Duress form */5782.peach-duress-status {5783  padding: 2px 8px;5784  border-radius: 999px;5785  border: 1px solid var(--peach-t3);5786  font-family: "IBM Plex Mono", monospace;5787  font-size: 0.5625rem;5788  letter-spacing: 0.07em;5789  text-transform: uppercase;5790  color: var(--peach-t2);5791  flex-shrink: 0;5792}57935794.peach-duress-status.is-active {5795  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5796  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5797  color: var(--peach-t0);5798}57995800.peach-duress-form {5801  padding: 8px 0 4px;5802  display: flex;5803  flex-direction: column;5804  gap: 6px;5805}58065807.peach-duress-form .peach-label {5808  margin-top: 4px;5809}58105811.peach-duress-actions {5812  display: flex;5813  gap: 6px;5814  align-items: center;5815  margin-top: 4px;5816}58175818.peach-duress-actions .peach-btn:first-child {5819  margin-right: auto;5820}58215822/* Improved overlay spring entrance */5823.peach-overlay-view.ov-enter-up {5824  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5825}58265827@keyframes ov-enter-up-spring {5828  from { opacity: 0; transform: translateY(16px) scale(0.98); }5829  to   { opacity: 1; transform: translateY(0) scale(1); }5830}58315832.peach-overlay-view.ov-enter-right {5833  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5834}58355836@keyframes ov-enter-right-spring {5837  from { opacity: 0; transform: translateX(18px) scale(0.98); }5838  to   { opacity: 1; transform: translateX(0) scale(1); }5839}58405841/* ── Onboarding-mode restore screens (file import) ── */5842/* Used when MainImportView renders during onboarding (no vault yet).5843   Animates like a lock-screen transition. */5844.peach-lock-view {5845  position: absolute;5846  inset: 0;5847  display: flex;5848  flex-direction: column;5849  background:5850    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5851    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5852    var(--peach-bg);5853  z-index: 2;5854  overflow: hidden;5855  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5856}58575858.peach-lock-view-header {5859  display: flex;5860  align-items: center;5861  justify-content: space-between;5862  padding: 16px 18px 12px;5863  flex-shrink: 0;5864}58655866/* ───────── Settings: auto-lock select ───────── */5867.peach-settings-select {5868  font-family: "IBM Plex Mono", monospace;5869  font-size: 0.6875rem;5870  background: transparent;5871  border: 1px solid var(--peach-t3);5872  border-radius: 4px;5873  color: var(--peach-t1);5874  padding: 3px 6px;5875  cursor: pointer;5876  outline: none;5877}5878.peach-settings-select:focus {5879  border-color: var(--peach-accent);5880}58815882/* ───────── Duress status pill (new polished) ───────── */5883.peach-duress-status-pill {5884  font-family: "IBM Plex Mono", monospace;5885  font-size: 0.5625rem;5886  text-transform: uppercase;5887  letter-spacing: 0.12em;5888  padding: 2px 8px;5889  border-radius: 12px;5890  background: var(--peach-t3);5891  color: var(--peach-t2);5892  flex-shrink: 0;5893}5894.peach-duress-status-pill.is-active {5895  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5896  color: var(--peach-accent);5897}58985899/* ───────── Entry advanced disclosure (canary) ───────── */5900.peach-entry-advanced {5901  margin-top: 12px;5902  border-top: 1px solid var(--peach-t3);5903  padding-top: 10px;5904  position: relative;5905  z-index: 1;5906}5907.peach-entry-advanced-toggle {5908  display: flex;5909  align-items: center;5910  justify-content: space-between;5911  width: 100%;5912  background: transparent;5913  border: none;5914  cursor: pointer;5915  padding: 0;5916  color: var(--peach-t2);5917}5918.peach-canary-section {5919  margin-top: 10px;5920  display: grid;5921  gap: 6px;5922}59235924/* ───────── Import: merge/replace radio choices ───────── */5925.peach-import-choice {5926  display: flex;5927  align-items: flex-start;5928  gap: 10px;5929  padding: 8px 10px;5930  border: 1px solid var(--peach-t3);5931  border-radius: 10px;5932  cursor: pointer;5933  margin-bottom: 6px;5934  transition: border-color 120ms ease, background 120ms ease;5935}5936.peach-import-choice:hover {5937  border-color: var(--peach-accent);5938}5939.peach-import-choice input[type="radio"] {5940  margin-top: 3px;5941  accent-color: var(--peach-accent);5942  flex-shrink: 0;5943}5944.peach-import-choice-main {5945  display: flex;5946  flex-direction: column;5947  gap: 2px;5948  min-width: 0;5949}5950.peach-import-choice-label {5951  font-size: 0.75rem;5952  color: var(--peach-t0);5953}5954.peach-import-choice-sub {5955  font-size: 0.6875rem;5956  color: var(--peach-t2);5957  line-height: 1.5;5958}59595960/* ───────── Export: success confirmation strip ───────── */5961.peach-export-success {5962  display: flex;5963  align-items: flex-start;5964  gap: 10px;5965  padding: 12px;5966  border-radius: 12px;5967  border: 1px solid rgba(150, 175, 110, 0.3);5968  background: rgba(150, 175, 110, 0.08);5969  color: var(--peach-t0);5970  font-size: 0.75rem;5971  line-height: 1.55;5972}5973.peach-export-success-check {5974  color: rgba(150, 175, 110, 0.9);5975  font-size: 0.875rem;5976  flex-shrink: 0;5977}59785979/* ── Trash view ──────────────────────────────────────────────────────── */5980.peach-trash-entry-row {5981  display: flex;5982  align-items: center;5983  justify-content: space-between;5984  gap: 8px;5985  padding: 8px 0;5986  border-bottom: 1px solid var(--peach-border);5987}5988.peach-trash-entry-info {5989  flex: 1;5990  min-width: 0;5991  display: flex;5992  flex-direction: column;5993  gap: 2px;5994}5995.peach-trash-entry-title {5996  font-size: 0.8125rem;5997  color: var(--peach-t0);5998  overflow: hidden;5999  text-overflow: ellipsis;6000  white-space: nowrap;6001}6002.peach-trash-entry-meta {6003  font-family: var(--font-mono);6004  font-size: 0.5625rem;6005  color: var(--peach-t2);6006  letter-spacing: 0.04em;6007}6008.peach-trash-entry-actions {6009  display: flex;6010  align-items: center;6011  gap: 4px;6012  flex-shrink: 0;6013}6014.peach-trash-delete-btn {6015  background: transparent;6016  border: 0;6017  color: var(--peach-t3);6018  font-size: 1rem;6019  line-height: 1;6020  cursor: pointer;6021  padding: 2px 5px;6022  transition: color 0.15s;6023}6024.peach-trash-delete-btn:hover { color: var(--peach-breach); }6025.peach-trash-list {6026  overflow-y: auto;6027}6028.peach-trash-footer {6029  display: flex;6030  align-items: center;6031  gap: 8px;6032  padding: 8px 0 0;6033  border-top: 1px solid var(--peach-border);6034  margin-top: 4px;6035}6036.peach-trash-purge-all {6037  background: transparent;6038  border: 0;6039  color: var(--peach-t3);6040  font-size: 0.625rem;6041  cursor: pointer;6042  padding: 4px 0;6043  letter-spacing: 0.03em;6044  transition: color 0.2s;6045}6046.peach-trash-purge-all:hover { color: var(--peach-breach); }6047.peach-trash-purge-confirm-label {6048  font-size: 0.625rem;6049  color: var(--peach-t1);6050  flex: 1;6051}60526053/* ── Settings shortcuts grid ─────────────────────────────────────────── */6054.peach-shortcuts-grid {6055  display: grid;6056  grid-template-columns: auto 1fr;6057  gap: 6px 12px;6058  align-items: center;6059  padding: 4px 0;6060}6061.peach-shortcut-key {6062  font-family: var(--font-mono);6063  font-size: 0.625rem;6064  color: var(--peach-t0);6065  background: var(--peach-t3);6066  border-radius: 4px;6067  padding: 2px 6px;6068  white-space: nowrap;6069  text-align: center;6070}6071.peach-shortcut-desc {6072  font-size: 0.6875rem;6073  color: var(--peach-t1);6074}60756076/* ── Sort bar trash button ───────────────────────────────────────────── */6077.peach-sort-trash-btn {6078  display: flex;6079  align-items: center;6080  justify-content: center;6081  padding: 3px 5px;6082  background: transparent;6083  border: none;6084  cursor: pointer;6085  color: var(--peach-t2);6086  border-radius: 4px;6087  transition: color 140ms ease, background 140ms ease;6088}6089.peach-sort-trash-btn:hover {6090  color: var(--peach-t1);6091  background: var(--peach-t3);6092}6093.peach-sort-trash-btn.is-active {6094  color: var(--peach-accent);6095}60966097/* Accent color picker */6098.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }6099.peach-accent-picker {6100  display: flex;6101  flex-wrap: wrap;6102  gap: 7px;6103  padding: 2px 0;6104}6105.peach-accent-swatch {6106  width: 22px;6107  height: 22px;6108  border-radius: 50%;6109  border: 2px solid transparent;6110  cursor: pointer;6111  padding: 0;6112  transition: transform 100ms;6113  outline-offset: 2px;6114}6115.peach-accent-swatch:hover { transform: scale(1.15); }6116.peach-accent-swatch.is-active {6117  border-color: var(--peach-t0);6118  transform: scale(1.1);6119}61206121.peach-pill-group {6122  display: flex;6123  gap: 6px;6124}6125.peach-pill-group .peach-btn.is-active {6126  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);6127  border-color: var(--peach-accent);6128  color: var(--peach-t0);6129}61306131/* ── Card entry styles ───────────────────────────────────────── */6132.peach-card-number {6133  font-family: var(--peach-mono);6134  letter-spacing: 0.08em;6135}61366137.peach-card-network-badge {6138  font-size: 0.625rem;6139  padding: 1px 5px;6140  border-radius: 4px;6141  border: 0.5px solid var(--peach-border);6142  color: var(--peach-text-dim);6143  margin-left: 6px;6144  vertical-align: middle;6145}61466147.peach-card-expiry-row {6148  display: flex;6149  align-items: center;6150  gap: 8px;6151}61526153.peach-card-expiry-sep {6154  color: var(--peach-text-dim);6155}61566157/* ── Pro tier — upgrade screen ──────────────────────────────── */6158.peach-pro-mark {6159  font-size: 0.5625rem;6160  color: var(--peach-accent);6161  margin-left: 6px;6162  vertical-align: super;6163  opacity: 0.7;6164}61656166.peach-pro-mini-badge {6167  display: block;6168  font-size: 0.625rem;6169  font-style: italic;6170  color: var(--peach-accent);6171  letter-spacing: 0.04em;6172  margin-top: -2px;6173  padding-left: 2px;6174  opacity: 0.85;6175  text-align: center;6176}61776178.peach-wordmark-stack {6179  display: inline-flex;6180  flex-direction: column;6181  align-items: center;6182}61836184/* ── Pro tier — upgrade page ─────────────────────────────────── */6185/* ── Pro upgrade — redesigned editorial layout ─────────────────── */61866187.peach-pro-upgrade {6188  display: flex;6189  flex-direction: column;6190  align-items: stretch;6191  gap: 10px;6192  padding: 2px 2px 12px;6193}61946195.peach-pro-eyebrow {6196  margin: 0;6197  font-family: var(--font-ui);6198  font-size: 0.625rem;6199  font-weight: 500;6200  letter-spacing: 0.12em;6201  color: var(--peach-accent);6202}62036204.peach-pro-headline {6205  margin: 0;6206  font-family: var(--font-display, "Cormorant Garamond", serif);6207  font-size: 30px;6208  font-weight: 700;6209  font-style: normal;6210  line-height: 1.05;6211  color: var(--peach-t0);6212  letter-spacing: -0.01em;6213}6214.peach-pro-headline em {6215  font-style: italic;6216  font-weight: 400;6217  color: var(--peach-accent);6218}62196220.peach-pro-subtitle {6221  margin: 0;6222  font-size: 0.6875rem;6223  line-height: 1.5;6224  color: var(--peach-t1);6225}62266227/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */6228.peach-pro-section-label {6229  margin: 6px 0 0;6230  font-family: var(--font-ui);6231  font-size: 0.5625rem;6232  font-weight: 500;6233  letter-spacing: 0.12em;6234  text-transform: uppercase;6235  color: var(--peach-t2);6236}62376238/* 2-column numbered feature grid */6239.peach-pro-grid {6240  display: grid;6241  grid-template-columns: 1fr 1fr;6242  border-top: 1px solid var(--peach-border);6243  border-left: 1px solid var(--peach-border);6244}62456246.peach-pro-grid-item {6247  display: flex;6248  flex-direction: column;6249  gap: 2px;6250  padding: 8px 9px;6251  border-right: 1px solid var(--peach-border);6252  border-bottom: 1px solid var(--peach-border);6253}62546255.peach-pro-grid-item--wide {6256  grid-column: 1 / -1;6257}62586259.peach-pro-grid-num {6260  font-family: var(--font-mono);6261  font-size: 0.5625rem;6262  color: var(--peach-accent);6263  letter-spacing: 0.06em;6264  opacity: 0.85;6265}62666267.peach-pro-grid-name {6268  font-size: 0.8125rem;6269  font-weight: 500;6270  color: var(--peach-t0);6271  line-height: 1.2;6272}62736274.peach-pro-grid-desc {6275  font-size: 0.625rem;6276  color: var(--peach-t1);6277  line-height: 1.4;6278}62796280.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6281  animation: peach-pulse-accent 600ms ease-out forwards;6282}62836284@keyframes peach-pulse-accent {6285  0%   { opacity: 1; transform: scale(1.2); }6286  100% { opacity: 0.85; transform: scale(1); }6287}62886289/* Actions */6290.peach-pro-upgrade-actions {6291  display: flex;6292  flex-direction: column;6293  align-items: stretch;6294  gap: 10px;6295}62966297.peach-pro-pricing {6298  margin: 0;6299  font-size: 1rem;6300  font-weight: 600;6301  color: var(--peach-t0);6302  letter-spacing: 0.01em;6303}6304.peach-pro-pricing-sub {6305  font-size: 0.75rem;6306  font-weight: 400;6307  color: var(--peach-t1);6308  letter-spacing: 0.02em;6309}63106311.peach-pro-upgrade-cta {6312  display: flex;6313  align-items: center;6314  justify-content: center;6315  text-decoration: none;6316  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6317  border: 1px solid var(--peach-accent);6318  border-radius: 10px;6319  color: var(--peach-accent);6320  font-family: var(--font-ui);6321  font-size: 0.8125rem;6322  font-weight: 600;6323  letter-spacing: 0.06em;6324  padding: 11px 16px;6325  transition: background 0.15s ease, color 0.15s ease;6326}6327.peach-pro-upgrade-cta:hover {6328  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6329}63306331/* Pairing's terminal entitlement fallback reuses the Peach Pro card's6332   editorial hierarchy without embedding the settings deck itself. */6333.peach-pair-pro-required {6334  width: 100%;6335  display: flex;6336  flex-direction: column;6337  align-items: stretch;6338  gap: 10px;6339  text-align: left;6340}6341.peach-pair-pro-required .peach-pro-headline {6342  font-size: 1.75rem;6343}6344.peach-pair-pro-required .peach-pro-subtitle {6345  font-size: 0.6875rem;6346}6347.peach-pair-pro-grid {6348  grid-template-columns: 1fr;6349}6350.peach-pair-pro-button {6351  width: 100%;6352  cursor: pointer;6353}6354.peach-desktop-error--pro {6355  width: min(100%, 320px);6356  overflow-y: auto;6357}63586359.peach-pro-key-divider {6360  display: flex;6361  align-items: center;6362  gap: 8px;6363  color: var(--peach-t2);6364  font-size: 0.5625rem;6365  letter-spacing: 0.1em;6366}6367.peach-pro-key-divider::before,6368.peach-pro-key-divider::after {6369  content: "";6370  flex: 1;6371  height: 1px;6372  background: var(--peach-border);6373}63746375/* Inline key entry row */6376.peach-pro-key-inline {6377  display: flex;6378  align-items: center;6379  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6380  border: 1px solid var(--peach-border);6381  border-radius: 8px;6382  overflow: hidden;6383}6384.peach-pro-key-inline-input {6385  flex: 1;6386  background: transparent;6387  border: none;6388  outline: none;6389  color: var(--peach-t1);6390  font-family: var(--font-mono);6391  font-size: 0.625rem;6392  letter-spacing: 0.06em;6393  padding: 9px 10px;6394}6395.peach-pro-key-inline-input::placeholder {6396  color: var(--peach-t2);6397}6398.peach-pro-key-apply {6399  background: transparent;6400  border: none;6401  border-left: 1px solid var(--peach-border);6402  color: var(--peach-t2);6403  font-family: var(--font-ui);6404  font-size: 0.5625rem;6405  font-weight: 600;6406  letter-spacing: 0.08em;6407  padding: 9px 10px;6408  cursor: pointer;6409  transition: color 0.15s ease;6410  flex-shrink: 0;6411}6412.peach-pro-key-apply:not(:disabled):hover {6413  color: var(--peach-accent);6414}6415.peach-pro-key-apply:disabled {6416  opacity: 0.35;6417  cursor: not-allowed;6418}64196420/* ── Pro tier — key ceremony ─────────────────────────────────── */6421.peach-pro-key-ceremony {6422  display: flex;6423  flex-direction: column;6424  align-items: center;6425  gap: 12px;6426  padding: 20px 4px 16px;6427}64286429.peach-pro-key-ceremony .peach-lock-rune-string {6430  font-size: 1rem;6431  gap: 12px;6432  flex: 0;6433  justify-content: center;6434}64356436.peach-pro-key-ceremony-label {6437  margin: 0;6438  font-size: 0.6875rem;6439  color: var(--peach-t2);6440  font-style: italic;6441  letter-spacing: 0.04em;6442}64436444.peach-pro-key-input {6445  font-family: var(--font-mono, monospace);6446  letter-spacing: 0.06em;6447  text-align: center;6448  width: 100%;6449  box-sizing: border-box;6450}64516452.peach-pro-key-error {6453  margin: 0;6454  font-size: 0.75rem;6455  text-align: center;6456  color: var(--peach-breach, #e55);6457  padding: 0;6458}64596460.peach-pro-key-activate {6461  width: 100%;6462  text-align: center;6463  box-sizing: border-box;6464  padding: 10px 20px;6465  font-size: 0.8125rem;6466}64676468.peach-pro-key-cancel {6469  background: transparent;6470  border: 0;6471  color: var(--peach-t2);6472  font-size: 0.6875rem;6473  cursor: pointer;6474  padding: 2px 8px;6475  transition: color 0.2s;6476}64776478.peach-pro-key-cancel:hover { color: var(--peach-accent); }64796480/* ── Pro tier — active state ─────────────────────────────────── */6481.peach-pro-active {6482  display: flex;6483  flex-direction: column;6484  align-items: center;6485  gap: 0;6486  padding: 8px 4px 16px;6487  min-height: 280px;6488}64896490.peach-pro-active-hero {6491  display: flex;6492  flex-direction: column;6493  align-items: center;6494  gap: 6px;6495  padding: 20px 0 8px;6496}64976498.peach-pro-active-mark-wrap {6499  display: flex;6500  align-items: center;6501  justify-content: center;6502  margin-bottom: 4px;6503}65046505.peach-pro-active-mark {6506  width: 60px;6507  height: 60px;6508}65096510.peach-pro-active-title {6511  font-family: var(--font-display, var(--font-ui));6512  font-size: 26px;6513  margin: 0;6514  color: var(--peach-t0);6515  letter-spacing: 0.01em;6516}65176518.peach-pro-active-since {6519  margin: 0;6520  font-size: 0.6875rem;6521  color: var(--peach-t2);6522  font-style: italic;6523}65246525.peach-pro-active-features {6526  display: flex;6527  flex-direction: column;6528  gap: 8px;6529  width: 100%;6530  padding: 14px 8px 0;6531  border-top: 1px solid var(--peach-border);6532  flex: 1;6533}65346535.peach-pro-active-feature {6536  display: flex;6537  align-items: center;6538  gap: 9px;6539}65406541.peach-pro-active-feature-mark {6542  color: var(--peach-accent);6543  font-size: 0.625rem;6544  opacity: 0.65;6545  flex-shrink: 0;6546}65476548.peach-pro-active-feature-name {6549  font-size: 0.75rem;6550  color: var(--peach-t1);6551}65526553.peach-pro-deactivate {6554  align-self: center;6555  background: transparent;6556  border: 0;6557  color: var(--peach-t3);6558  font-size: 0.625rem;6559  cursor: pointer;6560  padding: 8px 0 0;6561  margin-top: 16px;6562  letter-spacing: 0.03em;6563  transition: color 0.2s;6564}65656566.peach-pro-deactivate:hover { color: var(--peach-t2); }65676568.peach-pro-deactivate:disabled {6569  opacity: 0.5;6570  cursor: default;6571}65726573/* ── Pro card activation sparkles & thank-you ── */6574button.peach-pro-active-mark-wrap {6575  background: transparent;6576  border: 0;6577  padding: 0;6578  cursor: pointer;6579  position: relative;6580  overflow: visible;6581}65826583.peach-pro-sparks {6584  position: absolute;6585  inset: 0;6586  pointer-events: none;6587  overflow: visible;6588}65896590.peach-pro-spark {6591  position: absolute;6592  top: 50%;6593  left: 50%;6594  font-size: 9px;6595  line-height: 1;6596  opacity: 0;6597  transform: translate(-50%, -50%);6598  animation: peach-pro-spark-fly 1.4s ease-out var(--spark-delay, 0ms) both;6599}66006601@keyframes peach-pro-spark-fly {6602  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }6603  25%  { opacity: 1; }6604  100% {6605    opacity: 0;6606    transform: translate(6607      calc(-50% + var(--spark-x, 0px)),6608      calc(-50% + var(--spark-y, -40px))6609    ) scale(0.8);6610  }6611}66126613.peach-pro-thankyou-text {6614  margin: 4px 0 0;6615  font-size: 0.6875rem;6616  font-style: italic;6617  color: currentColor;6618  opacity: 0;6619  animation: peach-pro-thankyou-flash 2.5s ease both;6620}66216622@keyframes peach-pro-thankyou-flash {6623  0%   { opacity: 0; transform: translateY(4px); }6624  15%  { opacity: 0.75; transform: translateY(0); }6625  75%  { opacity: 0.75; }6626  100% { opacity: 0; }6627}66286629/* ── Pro advanced health remediation queue ──────────────────── */6630.peach-health-pro-queue {6631  display: flex;6632  flex-direction: column;6633  gap: 10px;6634  padding: 12px;6635  margin: 0 0 12px;6636  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6637  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6638  border-radius: 10px;6639}66406641.peach-health-pro-queue-head {6642  display: flex;6643  justify-content: space-between;6644  align-items: baseline;6645}66466647.peach-health-pro-queue-title {6648  font-size: 0.75rem;6649  font-weight: 500;6650  letter-spacing: 0.04em;6651  text-transform: uppercase;6652  color: var(--peach-accent);6653}66546655.peach-health-pro-queue-score {6656  font-size: 0.6875rem;6657  color: var(--peach-t2);6658}66596660.peach-health-pro-row {6661  display: flex;6662  gap: 10px;6663  align-items: center;6664  padding: 8px 0;6665  border-top: 1px solid var(--peach-border);6666}66676668.peach-health-pro-row-info {6669  flex: 1;6670  display: flex;6671  flex-direction: column;6672  gap: 4px;6673  min-width: 0;6674}66756676.peach-health-pro-action {6677  flex: 0 0 auto;6678  padding: 4px 8px;6679  font-size: 0.5625rem;6680  letter-spacing: 0.08em;6681  text-transform: uppercase;6682}66836684.peach-health-pro-row-name {6685  font-size: 0.8125rem;6686  color: var(--peach-t0);6687  overflow: hidden;6688  text-overflow: ellipsis;6689  white-space: nowrap;6690}66916692.peach-health-pro-row-meta {6693  font-size: 0.6875rem;6694  color: var(--peach-t2);6695}66966697.peach-health-pro-bar {6698  height: 2px;6699  background: var(--peach-border);6700  border-radius: 2px;6701  overflow: hidden;6702  margin-top: 2px;6703}67046705.peach-health-pro-bar-fill {6706  height: 100%;6707  background: var(--peach-accent);6708  transition: width 200ms ease-out;6709}67106711/* ── Pro activation celebration ── */6712@keyframes peach-pro-bloom {6713  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6714  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6715                 drop-shadow(0 0 48px var(--peach-glow)); }6716  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6717}67186719@keyframes peach-pro-wordmark-in {6720  from { opacity: 0; transform: translateY(4px); }6721  to   { opacity: 1; transform: translateY(0); }6722}67236724@keyframes peach-pro-fade-out {6725  from { opacity: 1; }6726  to   { opacity: 0; }6727}67286729.peach-pro-celebration {6730  background:6731    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6732    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6733    var(--peach-bg);6734  border: 1px solid var(--peach-t3);6735  box-shadow:6736    0 2px 8px rgba(0,0,0,0.55),6737    0 14px 48px rgba(0,0,0,0.7),6738    0 0 0 1px rgba(240,232,216,0.04);6739  overflow: hidden;6740  width: 320px;6741  height: 520px;6742  display: flex;6743  flex-direction: column;6744  align-items: center;6745  justify-content: center;6746  gap: 8px;6747  padding: 32px 24px;6748  text-align: center;6749}67506751.peach-pro-celebration.is-leaving {6752  animation: peach-pro-fade-out 400ms ease forwards;6753}67546755.peach-pro-bloom-target {6756  display: flex;6757  align-items: center;6758  justify-content: center;6759  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6760  margin-bottom: 12px;6761}67626763.peach-pro-bloom-icon {6764  width: 48px;6765  height: 48px;6766}67676768.peach-pro-wordmark {6769  font-family: var(--font-display);6770  font-size: 22px;6771  font-style: italic;6772  font-weight: 400;6773  color: var(--peach-accent);6774  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6775}67766777.peach-pro-thankyou {6778  font-size: 0.75rem;6779  font-style: italic;6780  color: var(--peach-t2);6781  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6782}678367846785/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6786.peach-pro-notice-banner {6787  display: flex;6788  align-items: center;6789  gap: 8px;6790  padding: 7px 12px;6791  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6792  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6793  font-size: 0.6875rem;6794  color: var(--peach-t2);6795  font-family: "IBM Plex Mono", monospace;6796  flex-shrink: 0;6797}67986799.peach-pro-notice-link {6800  background: none;6801  border: none;6802  padding: 0;6803  cursor: pointer;6804  font-size: 0.6875rem;6805  color: var(--peach-accent);6806  font-family: "IBM Plex Mono", monospace;6807  margin-left: auto;6808  white-space: nowrap;6809}68106811.peach-pro-notice-close {6812  background: none;6813  border: none;6814  padding: 0 0 0 4px;6815  cursor: pointer;6816  font-size: 0.625rem;6817  color: var(--peach-t3);6818  line-height: 1;6819}68206821/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6822   Renders over whatever view is showing. 60-second expiry; the popup ticks6823   the countdown each second and clears the banner when it hits zero. */6824.peach-pair-request-banner {6825  display: flex;6826  flex-direction: column;6827  gap: 8px;6828  padding: 10px 12px;6829  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6830  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6831  font-family: "IBM Plex Mono", monospace;6832  flex-shrink: 0;6833}68346835.peach-pair-toast {6836  padding: 8px 12px;6837  font-family: "IBM Plex Mono", monospace;6838  font-size: 0.75rem;6839  color: var(--peach-t1);6840  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6841  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6842  flex-shrink: 0;6843  text-align: center;6844}68456846.peach-pair-toast strong {6847  color: var(--peach-t0);6848  font-weight: 500;6849}68506851.peach-pair-request-header {6852  display: flex;6853  align-items: center;6854  gap: 8px;6855  font-size: 0.75rem;6856  color: var(--peach-t1);6857}68586859.peach-pair-request-mark {6860  font-size: 0.875rem;6861  display: inline-flex;6862  align-items: center;6863}68646865.peach-pair-request-icon {6866  width: 1em;6867  height: 1em;6868}68696870.peach-pair-request-title {6871  font-weight: 600;6872  color: var(--peach-t0);6873}68746875.peach-pair-request-countdown {6876  margin-left: auto;6877  font-variant-numeric: tabular-nums;6878  color: var(--peach-t2);6879  font-size: 0.6875rem;6880}68816882.peach-pair-request-body {6883  margin: 0;6884  font-size: 0.75rem;6885  color: var(--peach-t1);6886  line-height: 1.4;6887}68886889.peach-pair-request-body strong {6890  color: var(--peach-t0);6891  font-weight: 600;6892}68936894.peach-pair-request-actions {6895  display: flex;6896  gap: 8px;6897  justify-content: flex-end;6898}68996900/* ─── First-run onboarding ──────────────────────────────────────────────6901   Three-card welcome shown once before vault creation. The PeachScript6902   rune background drifts behind everything at very low opacity — it's6903   atmosphere, not focus. The cards themselves use the same panel6904   language as the rest of the popup so the transition into NewVault is6905   continuous, not a jarring switch of visual register. */69066907.peach-onboarding {6908  position: relative;6909  display: flex;6910  flex-direction: column;6911  width: 100%;6912  height: 100%;6913  padding: 16px 16px 18px;6914  box-sizing: border-box;6915  overflow: hidden;6916  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6917}69186919.peach-onboarding.is-completing {6920  animation: peach-onboard-exit 200ms ease-out forwards;6921}69226923.peach-rune-background {6924  position: absolute;6925  inset: 0;6926  width: 100%;6927  height: 100%;6928  pointer-events: none;6929  z-index: 0;6930  transition: opacity 500ms ease-out;6931}69326933.peach-onboarding.is-completing .peach-rune-background {6934  opacity: 0;6935}69366937.peach-onboarding-header {6938  position: relative;6939  z-index: 1;6940  display: flex;6941  align-items: center;6942  margin-bottom: 14px;6943}69446945.peach-onboarding-card {6946  position: relative;6947  z-index: 1;6948  flex: 1;6949  display: flex;6950  flex-direction: column;6951  gap: 10px;6952  padding: 22px 20px;6953  border-radius: 16px;6954  border: 1px solid var(--peach-t3);6955  background:6956    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6957  backdrop-filter: blur(3px);6958  -webkit-backdrop-filter: blur(3px);6959  box-shadow:6960    inset 0 1px 0 rgba(240, 232, 216, 0.04),6961    0 12px 28px rgba(0, 0, 0, 0.12);6962  cursor: pointer;6963  user-select: none;6964  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6965}69666967.peach-onboarding-card.is-exiting {6968  animation: peach-card-out 120ms ease-in forwards;6969  pointer-events: none;6970}69716972.peach-onboarding-card-headline {6973  margin: 0;6974  font-family: var(--font-display);6975  font-style: italic;6976  font-weight: 400;6977  font-size: 22px;6978  line-height: 1.05;6979  color: var(--peach-t0);6980  white-space: pre-line;6981}69826983.peach-onboarding-divider {6984  margin: 4px 0 6px;6985  border: 0;6986  border-top: 1px solid var(--peach-t3);6987  width: 100%;6988}69896990.peach-onboarding-body {6991  margin: 0;6992  font-size: 0.8125rem;6993  line-height: 1.6;6994  color: var(--peach-t1);6995}69966997.peach-onboarding-warning {6998  display: flex;6999  align-items: flex-start;7000  gap: 8px;7001  margin: 6px 0 0;7002  padding-top: 8px;7003  border-top: 1px dashed var(--peach-t3);7004  font-size: 0.8125rem;7005  line-height: 1.5;7006  color: var(--peach-t1);7007}70087009.peach-onboarding-warning-icon {7010  color: var(--peach-accent);7011  font-size: 0.8125rem;7012  line-height: 1.5;7013  flex: 0 0 auto;7014}70157016.peach-onboarding-nav {7017  position: relative;7018  z-index: 1;7019  display: flex;7020  align-items: center;7021  justify-content: space-between;7022  margin-top: 12px;7023  padding: 0 4px;7024}70257026.peach-onboarding-dots {7027  display: flex;7028  align-items: center;7029  gap: 6px;7030}70317032.peach-onboarding-dot {7033  width: 6px;7034  height: 6px;7035  border-radius: 50%;7036  background: var(--peach-t2);7037  transition: width 200ms ease, height 200ms ease, background 200ms ease;7038}70397040.peach-onboarding-dot.is-active {7041  width: 8px;7042  height: 8px;7043  background: var(--peach-accent);7044}70457046.peach-onboarding-next {7047  background: none;7048  border: none;7049  padding: 4px 0;7050  cursor: pointer;7051  font-family: "IBM Plex Mono", monospace;7052  font-size: 0.6875rem;7053  letter-spacing: 0.04em;7054  color: var(--peach-t1);7055  transition: color 150ms ease;7056}70577058.peach-onboarding-next:hover {7059  color: var(--peach-t0);7060}70617062.peach-onboarding-next:disabled {7063  opacity: 0.5;7064  cursor: default;7065}70667067.peach-onboarding-back {7068  background: none;7069  border: none;7070  padding: 4px 0;7071  cursor: pointer;7072  font-family: "IBM Plex Mono", monospace;7073  font-size: 0.6875rem;7074  letter-spacing: 0.04em;7075  color: var(--peach-t2);7076  transition: color 150ms ease;7077}70787079.peach-onboarding-back:hover {7080  color: var(--peach-t0);7081}70827083.peach-onboarding-back:disabled {7084  opacity: 0.5;7085  cursor: default;7086}70877088/* Reserve back-button width on the first card so the dots stay centred */7089.peach-onboarding-back-spacer {7090  width: 44px;7091}70927093.peach-onboarding-choice-row {7094  display: grid;7095  grid-template-columns: 1fr;7096  gap: 8px;7097}70987099.peach-onboarding-choice-heading {7100  margin: 8px 0 -2px;7101  color: var(--peach-t1);7102  font-family: "IBM Plex Mono", monospace;7103  font-size: 0.6875rem;7104  letter-spacing: 0.04em;7105  text-transform: uppercase;7106}71077108.peach-onboarding-choice {7109  min-height: 48px;7110  border: 1px solid color-mix(in srgb, var(--peach-t0) 16%, transparent);7111  border-radius: 8px;7112  padding: 8px 10px;7113  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7114  color: var(--peach-t0);7115  font-size: 0.76rem;7116  font-weight: 700;7117  text-align: left;7118}71197120.peach-onboarding-choice-label,7121.peach-onboarding-choice-detail {7122  display: block;7123}71247125.peach-onboarding-choice-detail {7126  margin-top: 2px;7127  color: var(--peach-t1);7128  font-size: 0.625rem;7129  font-weight: 400;7130  line-height: 1.35;7131}71327133.peach-onboarding-choice--adopt {7134  border-color: color-mix(in srgb, var(--peach-accent) 34%, transparent);7135  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7136}71377138.peach-adopt-vault {7139  position: relative;7140  min-height: 100%;7141  padding: 22px;7142  display: grid;7143  place-items: center;7144}71457146.peach-adopt-vault--pair {7147  padding: 10px;7148  overflow-y: auto;7149  scrollbar-width: none;7150}71517152.peach-adopt-vault--pair::-webkit-scrollbar {7153  display: none;7154}71557156.peach-adopt-card {7157  position: relative;7158  z-index: 1;7159  width: min(100%, 330px);7160  padding: 20px;7161  border-radius: 8px;7162  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7163  background: color-mix(in srgb, var(--peach-surface) 90%, transparent);7164  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);7165}71667167.peach-adopt-card--pair {7168  width: 100%;7169  max-height: 500px;7170  margin: auto;7171  padding: 14px 16px 12px;7172  overflow-y: auto;7173  scrollbar-width: none;7174  border: 0;7175  border-radius: 16px;7176  background:7177    radial-gradient(7178      circle at 50% -10%,7179      color-mix(in srgb, var(--peach-accent) 14%, transparent),7180      transparent 38%7181    ),7182    color-mix(in srgb, var(--peach-surface) 94%, transparent);7183}71847185.peach-adopt-card--pair::-webkit-scrollbar {7186  display: none;7187}71887189.peach-adopt-card h1 {7190  margin: 0 0 10px;7191  font-size: 1.28rem;7192  line-height: 1.15;7193}71947195.peach-adopt-card p {7196  margin: 0 0 14px;7197  color: var(--peach-t1);7198  line-height: 1.35;7199}72007201.peach-adopt-card .peach-hint-relay {7202  margin: 12px 0 0;7203  font-size: 11px;7204  line-height: 1.4;7205  color: var(--peach-t2);7206  opacity: 0.85;7207}72087209.peach-adopt-input {7210  margin-bottom: 12px;7211}72127213.peach-adopt-card textarea.peach-adopt-input {7214  width: 100%;7215  resize: vertical;7216  overflow-wrap: anywhere;7217  font-family: "IBM Plex Mono", monospace;7218  font-size: 0.64rem;7219}72207221.peach-adopt-qr-video {7222  display: block;7223  width: 100%;7224  max-height: 220px;7225  margin: 0 0 12px;7226  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);7227  border-radius: 8px;7228  background: #000;7229  object-fit: cover;7230}72317232.peach-adoption-source-invitation {7233  display: flex;7234  flex-direction: column;7235  align-items: center;7236  gap: 10px;7237  padding: 4px 18px 16px;7238  text-align: center;7239}72407241.peach-pair-qr {7242  display: block;7243  margin-inline: auto;7244  max-width: min(224px, 100%);7245  height: auto;7246  padding: 8px;7247  border-radius: 10px;7248  background: #fff;7249}72507251.peach-adopt-card > .peach-btn + .peach-btn {7252  margin-top: 8px;7253}72547255.peach-adopt-actions {7256  display: flex;7257  gap: 10px;7258  margin-top: 14px;7259}72607261.peach-adopt-actions > button {7262  flex: 1;7263}72647265.peach-adopt-sas {7266  margin: 18px 0;7267  padding: 14px;7268  border-radius: 8px;7269  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);7270  color: var(--peach-t0);7271  font-size: 1.35rem;7272  font-weight: 800;7273  font-variant-numeric: tabular-nums;7274  text-align: center;7275}72767277.peach-adopt-pairing {7278  text-align: center;7279}72807281.peach-adopt-pairing h1 {7282  max-width: 260px;7283  margin: 0 auto 6px;7284  color: var(--peach-t0);7285  font-family: var(--font-display, Georgia, serif);7286  font-size: 1.42rem;7287  font-style: italic;7288  font-weight: 500;7289  line-height: 1.12;7290  text-wrap: balance;7291}72927293.peach-adopt-pairing .peach-adopt-pair-lede {7294  max-width: 258px;7295  margin: 0 auto;7296  color: color-mix(in srgb, var(--peach-t0) 82%, var(--peach-bg));7297  font-size: 0.73rem;7298  line-height: 1.42;7299  text-wrap: pretty;7300}73017302.peach-pair-stage.peach-adopt-bird-stage {7303  width: min(100%, 260px);7304  height: 102px;7305  margin: -6px auto 2px;7306}73077308.peach-adopt-bird-stage .peach-pair-bird-slot,7309.peach-adopt-bird-stage .peach-pair-bird {7310  width: 90px;7311  height: 90px;7312}73137314.peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7315  left: 12px;7316}73177318.peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7319  right: 12px;7320}73217322.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-desktop {7323  --bb-x: 12px;7324  transform: translateX(12px);7325}73267327.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7328  --bb-x: -12px;7329  transform: translateX(-12px);7330}73317332.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot {7333  animation: peach-adopt-happy-bob 0.8s ease-in-out infinite;7334}73357336.peach-pair-stage.peach-adopt-bird-stage.act-paired .peach-pair-bird-slot-mobile {7337  animation-delay: 0.18s;7338  animation-direction: reverse;7339}73407341.peach-adopt-pairing.is-complete .peach-pair-stage.peach-adopt-bird-stage {7342  width: 100%;7343  height: 135px;7344  margin: -8px auto 6px;7345}73467347.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot,7348.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird {7349  width: 112px;7350  height: 112px;7351}73527353.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-desktop {7354  left: 0;7355  --bb-x: 0;7356  transform: translateX(0);7357}73587359.peach-adopt-pairing.is-complete .peach-adopt-bird-stage .peach-pair-bird-slot-mobile {7360  right: 0;7361  --bb-x: 0;7362  transform: translateX(0);7363}73647365.peach-adopt-pairing.is-complete h1 {7366  font-size: 1.6rem;7367}73687369.peach-adopt-pairing.is-complete .peach-adopt-pair-lede {7370  font-size: 0.78rem;7371}73727373@keyframes peach-adopt-happy-bob {7374  0%, 100% {7375    transform: translateX(var(--bb-x, 0)) translateY(0) rotate(0deg);7376  }7377  35% {7378    transform: translateX(var(--bb-x, 0)) translateY(-8px) rotate(-3deg);7379  }7380  70% {7381    transform: translateX(var(--bb-x, 0)) translateY(-3px) rotate(2deg);7382  }7383}73847385.peach-adopt-connection {7386  position: absolute;7387  left: 50%;7388  bottom: 38px;7389  width: 78px;7390  height: 1px;7391  translate: -50% 0;7392  background: color-mix(in srgb, var(--peach-accent) 62%, transparent);7393  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 56%, transparent);7394}73957396.peach-adopt-pairing.is-complete .peach-adopt-connection {7397  bottom: 49px;7398  width: 92px;7399}74007401.peach-adopt-connection::after {7402  content: "";7403  position: absolute;7404  left: 50%;7405  top: 50%;7406  width: 7px;7407  height: 7px;7408  border-radius: 50%;7409  translate: -50% -50%;7410  background: var(--peach-accent);7411  box-shadow:7412    0 0 0 4px color-mix(in srgb, var(--peach-accent) 17%, transparent),7413    0 0 14px color-mix(in srgb, var(--peach-accent) 74%, transparent);7414  animation: peach-adopt-connection-pulse 1.1s ease-in-out infinite;7415}74167417@keyframes peach-adopt-connection-pulse {7418  0%, 100% { scale: 0.8; opacity: 0.72; }7419  50% { scale: 1.14; opacity: 1; }7420}74217422.peach-adopt-qr-wrap {7423  min-height: 160px;7424  display: grid;7425  place-items: center;7426}74277428.peach-adopt-qr-wrap .peach-hint-error {7429  margin: 12px 0;7430}74317432.peach-adopt-pairing .peach-adopt-pair-status {7433  margin: 0;7434  color: var(--peach-t0);7435  font-size: 0.75rem;7436}74377438.peach-adopt-confirmation {7439  margin-top: 18px;7440  padding: 8px 0 4px;7441}74427443.peach-adopt-confirmation .peach-adopt-confirmation-label {7444  margin: 0 0 7px;7445  color: color-mix(in srgb, var(--peach-accent) 72%, var(--peach-t0));7446  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7447  font-size: 0.625rem;7448  font-weight: 700;7449  letter-spacing: 0.14em;7450}74517452.peach-adopt-confirmation .peach-adoption-sas {7453  margin: 0 auto;7454  padding: 12px 14px;7455  border-color: color-mix(in srgb, var(--peach-accent) 36%, transparent);7456  background: color-mix(in srgb, var(--peach-accent) 13%, transparent);7457}74587459.peach-adopt-confirmation .peach-adoption-sas strong {7460  color: color-mix(in srgb, var(--peach-accent) 84%, var(--peach-t0));7461  font-size: 1.58rem;7462  text-shadow: 0 0 16px color-mix(in srgb, var(--peach-accent) 30%, transparent);7463}74647465.peach-adopt-confirmation .peach-adopt-confirmation-help {7466  max-width: 270px;7467  margin: 8px auto 0;7468  color: color-mix(in srgb, var(--peach-t0) 78%, var(--peach-bg));7469  font-size: 0.7rem;7470  line-height: 1.45;7471}74727473.peach-adopt-privacy {7474  display: flex;7475  align-items: flex-start;7476  gap: 9px;7477  margin-top: 10px;7478  padding: 8px 9px;7479  border: 1px solid color-mix(in srgb, var(--peach-t0) 13%, transparent);7480  border-radius: 10px;7481  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);7482  text-align: left;7483}74847485.peach-adopt-privacy svg {7486  width: 16px;7487  height: 16px;7488  flex: 0 0 auto;7489  margin-top: 1px;7490  fill: none;7491  stroke: color-mix(in srgb, var(--peach-accent) 74%, var(--peach-t0));7492  stroke-linecap: round;7493  stroke-linejoin: round;7494  stroke-width: 1.7;7495}74967497.peach-adopt-pairing .peach-adopt-privacy p {7498  margin: 0;7499  color: color-mix(in srgb, var(--peach-t0) 76%, var(--peach-bg));7500  font-size: 0.62rem;7501  line-height: 1.4;7502}75037504.peach-adopt-privacy strong {7505  color: var(--peach-t0);7506  font-weight: 700;7507}75087509.peach-adopt-pair-actions {7510  margin-top: 9px;7511}75127513.peach-adopt-pair-actions > button {7514  width: 100%;7515}75167517.peach-adopt-paired-status {7518  display: inline-flex;7519  align-items: center;7520  gap: 8px;7521  margin: 22px auto 18px;7522  padding: 9px 13px;7523  border: 1px solid color-mix(in srgb, var(--peach-accent) 30%, transparent);7524  border-radius: 999px;7525  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);7526  color: color-mix(in srgb, var(--peach-accent) 78%, var(--peach-t0));7527  font-family: var(--peach-mono, "IBM Plex Mono", monospace);7528  font-size: 0.66rem;7529  font-weight: 700;7530  letter-spacing: 0.04em;7531}75327533.peach-adopt-paired-status span {7534  width: 7px;7535  height: 7px;7536  border-radius: 50%;7537  background: var(--peach-accent);7538  box-shadow: 0 0 8px color-mix(in srgb, var(--peach-accent) 68%, transparent);7539}75407541@media (prefers-reduced-motion: reduce) {7542  .peach-adopt-connection::after {7543    animation: none;7544  }7545}75467547.peach-onboarding-mobile-card-buttons {7548  display: flex;7549  flex-direction: column;7550  gap: 8px;7551  margin-top: 16px;7552}75537554@keyframes peach-onboard-enter {7555  from { opacity: 0; transform: translateY(20px); }7556  to   { opacity: 1; transform: translateY(0); }7557}75587559@keyframes peach-onboard-exit {7560  from { opacity: 1; }7561  to   { opacity: 0; }7562}75637564@keyframes peach-card-in {7565  from { opacity: 0; transform: translateX(12px); }7566  to   { opacity: 1; transform: translateX(0); }7567}75687569@keyframes peach-card-out {7570  from { opacity: 1; transform: translateX(0); }7571  to   { opacity: 0; transform: translateX(-12px); }7572}75737574/* ─── New vault screen — matched to onboarding card language ─────────── */75757576/* Two classes so this beats the shared .peach-screen.lock-screen--vault-stage7577   rule (same element) without loosening the unlock/restore screens. The7578   create-vault screen is the only vault-stage view tall enough to overflow7579   the 520px popup, so its spacing is tuned to fit header → card → restore →7580   recovery warning with nothing clipped. */7581.peach-screen.peach-newvault {7582  position: relative;7583  display: flex;7584  flex-direction: column;7585  gap: 12px;7586  padding: 14px 16px 12px;7587  overflow: hidden;7588}75897590/* Suppress the warm-blob ambient art inherited from .lock-screen — the7591   new vault card now carries the visual weight. */7592.peach-newvault::before {7593  content: none;7594}75957596.peach-newvault-header {7597  position: relative;7598  z-index: 2;7599  display: flex;7600  align-items: center;7601  gap: 10px;7602  margin-bottom: 2px;7603}76047605.peach-newvault-back {7606  display: inline-flex;7607  align-items: center;7608  gap: 4px;7609  background: transparent;7610  border: none;7611  color: var(--peach-t2);7612  font-family: "IBM Plex Mono", monospace;7613  font-size: 0.625rem;7614  letter-spacing: 0.06em;7615  cursor: pointer;7616  padding: 4px 6px;7617  border-radius: 6px;7618  transition: color 120ms ease, background 120ms ease;7619}76207621.peach-newvault-back:hover {7622  color: var(--peach-t0);7623  background: rgba(240, 232, 216, 0.04);7624}76257626.peach-newvault-mark {7627  position: absolute;7628  right: -12px;7629  top: 6px;7630  width: 110px;7631  height: 110px;7632  pointer-events: none;7633  opacity: 0.10;7634  filter: saturate(0.9);7635  z-index: 0;7636}7637.peach-newvault-mark-art {7638  width: 100%;7639  height: 100%;7640}7641.peach-newvault-mark-art path:nth-child(1) {7642  fill: rgba(123, 144, 96, 0.88);7643}7644.peach-newvault-mark-art path:nth-child(2) {7645  stroke: rgba(94, 122, 66, 0.95);7646}76477648.peach-newvault-card {7649  position: relative;7650  z-index: 1;7651  display: flex;7652  flex-direction: column;7653  gap: 8px;7654  padding: 16px 20px 14px;7655  border-radius: 16px;7656  border: 1px solid var(--peach-t3);7657  background:7658    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));7659  backdrop-filter: blur(3px);7660  -webkit-backdrop-filter: blur(3px);7661  box-shadow:7662    inset 0 1px 0 rgba(240, 232, 216, 0.04),7663    0 12px 28px rgba(0, 0, 0, 0.12);7664  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;7665}76667667.peach-newvault-headline {7668  margin: 0;7669  font-family: var(--font-display);7670  font-style: italic;7671  font-weight: 400;7672  font-size: 24px;7673  line-height: 1.05;7674  color: var(--peach-t0);7675  white-space: pre-line;7676}76777678.peach-newvault-divider {7679  margin: 2px 0 4px;7680  border: 0;7681  border-top: 1px solid var(--peach-t3);7682  width: 100%;7683}76847685.peach-newvault-field {7686  display: flex;7687  flex-direction: column;7688  gap: 4px;7689}76907691.peach-newvault-label-row {7692  display: flex;7693  align-items: center;7694  justify-content: space-between;7695}76967697/* Monospace input scaled to the card. Replaces the 22px unlock-input7698   so the placeholder no longer overflows and the field reads as part7699   of the same surface as the body copy. */7700.peach-newvault-input {7701  font-size: 0.875rem;7702  letter-spacing: 0.18em;7703  padding: 8px 0;7704}7705.peach-newvault-input::placeholder {7706  letter-spacing: 0.18em;7707  color: var(--peach-t2);7708}77097710.peach-newvault-hint {7711  margin: 2px 0 0;7712  font-family: "IBM Plex Mono", monospace;7713  font-size: 0.625rem;7714  color: var(--peach-t2);7715  letter-spacing: 0.04em;7716}77177718.peach-newvault-submit {7719  margin-top: 4px;7720}77217722.peach-newvault-warning {7723  display: flex;7724  align-items: flex-start;7725  gap: 8px;7726  margin: 2px 0 0;7727  padding-top: 8px;7728  border-top: 1px dashed var(--peach-t3);7729  font-size: 0.75rem;7730  line-height: 1.45;7731  color: var(--peach-t1);7732}77337734.peach-newvault-warning-icon {7735  color: var(--peach-accent);7736  font-size: 0.8125rem;7737  line-height: 1.4;7738  flex: 0 0 auto;7739}77407741/* Restore options sit inside the card, directly under "create vault", so7742   they are always reachable without scrolling. The top divider mirrors the7743   warning's so the choice reads as a deliberate fork, not a footnote. */7744.peach-newvault-restore {7745  position: relative;7746  z-index: 1;7747  display: flex;7748  flex-direction: column;7749  gap: 4px;7750  margin-top: 4px;7751  padding-top: 10px;7752  border-top: 1px dashed var(--peach-t3);7753}77547755/* Settings body — warm accent gradient gives the glass something to blur against */7756.peach-settings-body {7757  background:7758    radial-gradient(7759      ellipse at 30% 20%,7760      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,7761      transparent 60%7762    );7763}77647765/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */7766/* ── Danger cards (Replace + Destroy) ────────────────────────────────────7767 * Two severity levels: "warn" for actions that are dangerous-but-recoverable7768 * (replacing the vault from a backup file) and "hazard" for actions that7769 * are absolutely irreversible (Panic). Both use the same card scaffold so7770 * they read as a pair, but the colour family signals the severity at a7771 * glance — yellow for caution, red for don't.7772 */7773.peach-danger-card {7774  --danger-tint: 235, 158, 52; /* amber */7775  display: flex;7776  flex-direction: column;7777  gap: 8px;7778  padding: 14px;7779  margin-top: 10px;7780  border-radius: 12px;7781  border: 1px solid rgba(var(--danger-tint), 0.32);7782  background:7783    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),7784    rgba(var(--danger-tint), 0.04);7785  box-shadow:7786    inset 0 1px 0 rgba(var(--danger-tint), 0.08),7787    0 0 24px rgba(var(--danger-tint), 0.04);7788  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;7789}77907791.peach-danger-card:hover {7792  border-color: rgba(var(--danger-tint), 0.55);7793  box-shadow:7794    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7795    0 0 36px rgba(var(--danger-tint), 0.10);7796}77977798.peach-danger-card--hazard {7799  --danger-tint: 220, 38, 38; /* red */7800}78017802.peach-danger-card-head {7803  display: flex;7804  align-items: center;7805  gap: 10px;7806}78077808.peach-danger-card-glyph {7809  width: 28px;7810  height: 28px;7811  flex-shrink: 0;7812  display: flex;7813  align-items: center;7814  justify-content: center;7815  border-radius: 8px;7816  background: rgba(var(--danger-tint), 0.12);7817  color: rgba(var(--danger-tint), 0.95);7818  font-size: 1rem;7819  line-height: 1;7820}78217822.peach-danger-card-title {7823  margin: 0;7824  font-size: 0.8125rem;7825  font-weight: 600;7826  color: rgba(var(--danger-tint), 0.92);7827  letter-spacing: 0.01em;7828}78297830.peach-danger-card-copy {7831  margin: 0;7832  font-size: 0.6875rem;7833  line-height: 1.5;7834  color: var(--peach-t2);7835}78367837.peach-danger-card-button {7838  width: 100%;7839  padding: 9px;7840  margin-top: 4px;7841  background: transparent;7842  border: 1px solid rgba(var(--danger-tint), 0.45);7843  border-radius: 8px;7844  color: rgba(var(--danger-tint), 0.9);7845  font-size: 0.75rem;7846  font-weight: 500;7847  letter-spacing: 0.02em;7848  cursor: pointer;7849  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7850}78517852.peach-danger-card-button:hover {7853  background: rgba(var(--danger-tint), 0.10);7854  border-color: rgba(var(--danger-tint), 0.75);7855  color: rgb(var(--danger-tint));7856}78577858.peach-adoption-sas {7859  margin: 16px auto 0;7860  padding: 12px 16px;7861  border: 1px solid color-mix(in srgb, var(--peach-t0) 18%, transparent);7862  border-radius: 10px;7863  background: color-mix(in srgb, var(--peach-t0) 7%, transparent);7864  color: var(--peach-t0);7865  text-align: center;7866}78677868.peach-adoption-sas strong {7869  font-size: 1.65rem;7870  font-variant-numeric: tabular-nums;7871  letter-spacing: 0.18em;7872  white-space: nowrap;7873}78747875/* ── Panic flow (three-step destruction) ───────────────────────────────── */7876.peach-panic {7877  display: flex;7878  flex-direction: column;7879  flex: 1;7880  min-height: 0;7881  padding: 28px 20px 20px;7882  gap: 18px;7883  overflow-y: auto;7884  scrollbar-width: none;7885  -ms-overflow-style: none;7886}78877888.peach-panic::-webkit-scrollbar { display: none; }78897890.peach-panic-step2 {7891  background: rgba(220, 38, 38, 0.04);7892}78937894.peach-panic-step3 {7895  position: relative;7896  background: #0f0505;7897  color: #ffffff;7898  overflow: hidden;7899}79007901.peach-panic-rune-bg {7902  position: absolute;7903  inset: 0;7904  opacity: 0.22;7905  pointer-events: none;7906  overflow: hidden;7907}79087909.peach-panic-rune-bg canvas {7910  width: 100% !important;7911  height: 100% !important;7912}79137914.peach-panic-icon {7915  font-size: 32px;7916  color: rgb(220, 38, 38);7917  line-height: 1;7918}79197920.peach-panic-title {7921  margin: 0;7922  font-size: 18px;7923  font-weight: 500;7924  color: var(--peach-t1);7925}79267927.peach-panic-title--severe {7928  font-size: 20px;7929  font-weight: 700;7930  color: rgb(220, 38, 38);7931}79327933.peach-panic-body {7934  margin: 0;7935  font-size: 0.8125rem;7936  line-height: 1.55;7937  color: var(--peach-t2);7938}79397940.peach-panic-body--severe {7941  color: rgba(220, 38, 38, 0.85);7942}79437944.peach-panic-body--final {7945  font-size: 1rem;7946  font-weight: 700;7947  color: rgb(255, 80, 80);7948  line-height: 1.4;7949}79507951.peach-panic-body--final-intro {7952  font-size: 1rem;7953  color: #ffffff;7954  font-weight: 400;7955}79567957.peach-panic-divider {7958  height: 1px;7959  background: rgba(255, 255, 255, 0.08);7960  margin: 4px 0;7961}79627963.peach-panic-confirm-input {7964  width: 100%;7965  padding: 10px 12px;7966  background: rgba(255, 255, 255, 0.02);7967  border: 1px solid rgba(220, 38, 38, 0.4);7968  border-radius: 8px;7969  color: var(--peach-t1);7970  font-family: "IBM Plex Mono", monospace;7971  font-size: 0.875rem;7972  letter-spacing: 0.12em;7973  text-transform: uppercase;7974}79757976.peach-panic-confirm-input:focus {7977  outline: none;7978  border-color: rgb(220, 38, 38);7979}79807981.peach-panic-confirm-input--match {7982  border-color: rgb(220, 38, 38);7983  color: rgb(220, 38, 38);7984}79857986.peach-panic-confirm-label {7987  font-size: 0.6875rem;7988  color: var(--peach-t2);7989  margin: 0 0 -8px;7990  letter-spacing: 0.06em;7991}79927993.peach-panic-actions {7994  display: flex;7995  flex-direction: column;7996  gap: 10px;7997  margin-top: auto;7998}79998000.peach-panic-button {8001  width: 100%;8002  padding: 12px;8003  border-radius: 8px;8004  font-size: 0.8125rem;8005  cursor: pointer;8006  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;8007}80088009.peach-panic-button--primary {8010  background: var(--peach-accent);8011  border: 1px solid var(--peach-accent);8012  color: #ffffff;8013  font-weight: 600;8014}80158016.peach-panic-button--primary:hover {8017  background: color-mix(in srgb, var(--peach-accent) 88%, white);8018}80198020.peach-panic-button--danger {8021  background: rgb(220, 38, 38);8022  border: 1px solid rgb(220, 38, 38);8023  color: #ffffff;8024  font-weight: 600;8025}80268027.peach-panic-button--danger:disabled {8028  opacity: 0.35;8029  cursor: not-allowed;8030}80318032.peach-panic-button--ghost {8033  background: transparent;8034  border: 1px solid rgba(255, 255, 255, 0.18);8035  color: var(--peach-t2);8036}80378038.peach-panic-button--ghost:hover {8039  border-color: rgba(255, 255, 255, 0.32);8040  color: var(--peach-t1);8041}80428043.peach-panic-link {8044  background: transparent;8045  border: none;8046  padding: 4px 0;8047  color: rgba(220, 38, 38, 0.65);8048  font-size: 0.75rem;8049  cursor: pointer;8050  text-align: left;8051  text-decoration: underline;8052  text-underline-offset: 3px;8053}80548055.peach-panic-link:hover {8056  color: rgb(220, 38, 38);8057}80588059.peach-panic-bar {8060  background: rgb(220, 38, 38);8061  padding: 16px 20px;8062  margin: -28px -20px 0;8063  text-align: center;8064  font-size: 0.8125rem;8065  font-weight: 700;8066  letter-spacing: 0.12em;8067  color: #ffffff;8068}80698070.peach-panic-final-button {8071  width: 100%;8072  padding: 14px;8073  background: rgb(220, 38, 38);8074  border: none;8075  border-radius: 8px;8076  color: #ffffff;8077  font-size: 0.875rem;8078  font-weight: 700;8079  letter-spacing: 0.08em;8080  text-transform: uppercase;8081  cursor: pointer;8082  animation: peach-panic-pulse 2s ease-in-out infinite;8083}80848085.peach-settings-license {8086  margin-top: 10px;8087  padding-top: 10px;8088  border-top: 1px solid var(--peach-t3);8089}80908091.peach-settings-label {8092  font-size: 0.625rem;8093  letter-spacing: 0.08em;8094  color: var(--peach-t3);8095  display: block;8096  margin-bottom: 6px;8097}80988099.peach-settings-license-row {8100  display: flex;8101  align-items: center;8102  justify-content: space-between;8103  gap: 8px;8104}81058106.peach-settings-license-key {8107  font-family: 'IBM Plex Mono', monospace;8108  font-size: 0.75rem;8109  color: var(--peach-t0);8110  letter-spacing: 0.04em;8111  word-break: break-all;8112  flex: 1;8113  min-width: 0;8114}81158116.peach-settings-license-key--masked {8117  font-family: 'IBM Plex Mono', monospace;8118  font-size: 0.6rem;8119  color: var(--peach-t1);8120  letter-spacing: 0.18em;8121  user-select: none;8122}81238124.peach-settings-license-actions {8125  display: flex;8126  align-items: center;8127  gap: 2px;8128  flex-shrink: 0;8129}81308131.peach-settings-license-copy {8132  font-size: 0.6875rem;8133  color: var(--peach-accent);8134  background: transparent;8135  border: none;8136  cursor: pointer;8137  padding: 4px 8px;8138  border-radius: 4px;8139  flex-shrink: 0;8140  transition: opacity 150ms ease;8141}81428143.peach-settings-license-copy:hover {8144  opacity: 0.75;8145}81468147.peach-settings-license-toggle {8148  display: flex;8149  align-items: center;8150  justify-content: center;8151  background: transparent;8152  border: none;8153  cursor: pointer;8154  padding: 4px 6px;8155  border-radius: 4px;8156  color: var(--peach-t2);8157  transition: color 150ms ease;8158}81598160.peach-settings-license-toggle:hover {8161  color: var(--peach-t1);8162}81638164@keyframes peach-panic-pulse {8165  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }8166  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }8167}81688169[data-motion="reduce"] .peach-panic-final-button {8170  animation: none;8171}81728173/* Vault History — Settings → Vault sub-view */81748175.peach-history-list {8176  border: 1px solid var(--peach-border);8177  border-radius: 8px;8178  overflow: hidden;8179  margin: 8px 0 4px;8180}81818182.peach-history-row {8183  display: flex;8184  align-items: center;8185  justify-content: space-between;8186  padding: 9px 12px;8187  gap: 10px;8188  border-bottom: 1px solid var(--peach-border);8189}81908191.peach-history-row:last-child {8192  border-bottom: none;8193}81948195.peach-history-meta {8196  display: flex;8197  flex-direction: column;8198  gap: 2px;8199  min-width: 0;8200  flex: 1;8201}82028203.peach-history-time {8204  font-size: 0.75rem;8205  font-family: 'IBM Plex Mono', ui-monospace, monospace;8206  color: var(--peach-t0);8207  white-space: nowrap;8208  overflow: hidden;8209  text-overflow: ellipsis;8210}82118212.peach-history-sub {8213  font-size: 0.625rem;8214  color: var(--peach-t2);8215  letter-spacing: 0.06em;8216  text-transform: uppercase;8217  white-space: nowrap;8218  overflow: hidden;8219  text-overflow: ellipsis;8220}82218222.peach-history-btn {8223  flex-shrink: 0;8224  white-space: nowrap;8225  min-width: 56px;8226  text-align: center;8227}82288229.peach-history-btn.is-busy {8230  opacity: 0.65;8231}82328233.peach-history-footer {8234  font-size: 0.625rem;8235  color: var(--peach-t3);8236  letter-spacing: 0.05em;8237  text-align: right;8238  margin: 0;8239  padding: 2px 0 0;8240}82418242/* ── Context menu + swipe-copy flash ─────────────────────── */8243.peach-context-menu-backdrop {8244  position: fixed;8245  inset: 0;8246  background: rgba(0, 0, 0, 0.45);8247  z-index: 100;8248  display: flex;8249  align-items: flex-end;8250  justify-content: center;8251  animation: peach-ctx-fade 140ms ease both;8252}8253.peach-context-menu {8254  width: min(360px, calc(100vw - 24px));8255  margin-bottom: max(env(safe-area-inset-bottom), 12px);8256  background: var(--peach-bg);8257  border: 1px solid var(--peach-t3);8258  border-radius: 14px;8259  padding: 6px;8260  display: flex;8261  flex-direction: column;8262  gap: 2px;8263  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);8264  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;8265}8266@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }8267@keyframes peach-ctx-rise {8268  from { transform: translateY(16px); opacity: 0; }8269  to   { transform: translateY(0);    opacity: 1; }8270}8271.peach-context-menu-item {8272  background: transparent;8273  color: var(--peach-t0);8274  border: 0;8275  border-radius: 10px;8276  padding: 12px 14px;8277  text-align: left;8278  font: inherit;8279  cursor: pointer;8280}8281.peach-context-menu-item:hover,8282.peach-context-menu-item:focus-visible {8283  background: var(--peach-t3);8284}8285.peach-context-menu-item--danger {8286  color: var(--peach-health-bad, #d96868);8287}8288.peach-context-menu-item--cancel {8289  color: var(--peach-t2);8290  margin-top: 4px;8291  border-top: 1px solid var(--peach-t3);8292  border-radius: 0 0 10px 10px;8293}82948295/* Swipe-to-copy flash */8296.peach-entry-row.is-copy-flash {8297  animation: peach-copy-flash 600ms ease both;8298}8299@keyframes peach-copy-flash {8300  0%   { background: transparent; }8301  20%  { background: rgba(217, 153, 51, 0.32); }8302  100% { background: transparent; }8303}83048305html { font-size: 16px; }83068307/* ── Recovery word entry ─────────────────────────────────────────── */8308.peach-lock-recover-link {8309  display: block;8310  width: 100%;8311  margin-top: 12px;8312  background: none;8313  border: none;8314  font-family: "IBM Plex Mono", monospace;8315  font-size: 0.625rem;8316  letter-spacing: 0.06em;8317  color: var(--peach-t2);8318  cursor: pointer;8319  text-align: center;8320  padding: 4px;8321  transition: color 120ms ease;8322}8323.peach-lock-recover-link:hover {8324  color: var(--peach-t0);8325}83268327.lock-screen--recovery {8328  display: flex;8329  flex-direction: column;8330  align-items: stretch;8331  padding: 12px 20px 24px;8332  overflow: hidden;8333}83348335.peach-recovery-nav {8336  display: flex;8337  align-items: center;8338  position: relative;8339  z-index: 1;8340  margin-bottom: 4px;8341}83428343/* Mask runes to the top decorative band only — keep inputs and the8344   bottom CTA button clear. The bottom of the popup is reserved for8345   submit buttons; rendering runes there overlaps the button glyph. */8346.peach-rune-background--recovery {8347  -webkit-mask-image: linear-gradient(8348    to bottom,8349    black 0px, black 85px,8350    transparent 110px,8351    transparent 100%8352  );8353  mask-image: linear-gradient(8354    to bottom,8355    black 0px, black 85px,8356    transparent 110px,8357    transparent 100%8358  );8359}83608361.peach-recovery-header {8362  text-align: center;8363  margin-bottom: 16px;8364  margin-top: 4px;8365}8366.peach-recovery-header .peach-onboarding-headline {8367  font-size: 1.25rem;8368  font-weight: 300;8369  letter-spacing: 0.02em;8370  margin: 0 0 4px;8371}8372.peach-recovery-header .peach-hint {8373  font-family: "IBM Plex Mono", monospace;8374  font-size: 0.625rem;8375  color: var(--peach-t2);8376  letter-spacing: 0.04em;8377  margin: 0;8378}83798380/* 12-word grid: 2 columns × 6 rows */8381.peach-recovery-grid {8382  display: grid;8383  grid-template-columns: repeat(2, 1fr);8384  gap: 12px 20px;8385  width: 100%;8386  margin-bottom: 0;8387}83888389.peach-recovery-word-slot {8390  display: flex;8391  align-items: center;8392  gap: 6px;8393  min-width: 0;8394}83958396.peach-recovery-word-index {8397  font-family: "IBM Plex Mono", monospace;8398  font-size: 0.5rem;8399  color: rgba(255, 255, 255, 0.35);8400  min-width: 14px;8401  flex-shrink: 0;8402  text-align: right;8403  letter-spacing: 0.04em;8404}84058406.peach-recovery-word-input {8407  flex: 1;8408  min-width: 0;8409  background: transparent;8410  border: none;8411  border-bottom: 1px solid rgba(255, 255, 255, 0.22);8412  color: var(--peach-t0);8413  font-family: "IBM Plex Mono", monospace;8414  font-size: 0.6875rem;8415  letter-spacing: 0.06em;8416  padding: 5px 2px 4px;8417  outline: none;8418  text-transform: lowercase;8419  transition: border-color 120ms ease;8420}8421.peach-recovery-word-input::placeholder {8422  color: rgba(255, 255, 255, 0.18);8423}8424.peach-recovery-word-input:focus {8425  border-bottom-color: var(--peach-accent);8426}84278428.peach-recovery-submit {8429  width: 100%;8430  margin-top: auto;8431}84328433.peach-recovery-new-password-form {8434  width: 100%;8435  display: flex;8436  flex-direction: column;8437  gap: 16px;8438  margin-bottom: 8px;8439}8440.peach-recovery-new-password-form .peach-newvault-field {8441  display: flex;8442  flex-direction: column;8443  gap: 4px;8444}84458446/* ── Recovery words display (post-create) ────────────────────────── */8447.lock-screen--recovery-display {8448  display: flex;8449  flex-direction: column;8450  align-items: stretch;8451  padding: 0 20px 20px;8452  min-height: 0;8453  overflow-y: auto;8454}84558456.peach-recovery-words-display {8457  width: 100%;8458  margin-bottom: 16px;8459  border: 1px solid var(--peach-t3);8460  border-radius: 8px;8461  padding: 12px 14px;8462  background: rgba(245, 240, 234, 0.04);8463}84648465.peach-recovery-words-label {8466  font-family: "IBM Plex Mono", monospace;8467  font-size: 0.5rem;8468  letter-spacing: 0.08em;8469  color: var(--peach-t2);8470  text-transform: uppercase;8471  margin-bottom: 10px;8472}84738474.peach-recovery-word-list {8475  list-style: none;8476  margin: 0;8477  padding: 0;8478  display: grid;8479  grid-template-columns: repeat(2, 1fr);8480  gap: 6px 16px;8481}84828483.peach-recovery-word-item {8484  display: flex;8485  align-items: baseline;8486  gap: 5px;8487}84888489.peach-recovery-word-num {8490  font-family: "IBM Plex Mono", monospace;8491  font-size: 0.5rem;8492  color: var(--peach-t2);8493  width: 14px;8494  flex: 0 0 14px;8495  text-align: right;8496  letter-spacing: 0.04em;8497  font-variant-numeric: tabular-nums;8498}84998500.peach-recovery-download-btn {8501  display: block;8502  margin: 10px auto 0;8503  padding: 4px 10px;8504  background: transparent;8505  border: 1px solid var(--peach-border);8506  border-radius: 6px;8507  color: var(--peach-t2);8508  font-family: "IBM Plex Mono", monospace;8509  font-size: 0.5625rem;8510  letter-spacing: 0.06em;8511  text-transform: lowercase;8512  cursor: pointer;8513  transition: border-color 0.15s, color 0.15s;8514}85158516.peach-recovery-download-btn:hover {8517  border-color: var(--peach-accent);8518  color: var(--peach-t0);8519}85208521.peach-recovery-word-text {8522  font-family: "IBM Plex Mono", monospace;8523  font-size: 0.6875rem;8524  letter-spacing: 0.06em;8525  color: var(--peach-t0);8526  text-transform: lowercase;8527}85288529.peach-hint--warning {8530  color: var(--peach-accent);8531  font-style: italic;8532}8533.peach-hint--success {8534  color: var(--peach-t2);8535  font-family: "IBM Plex Mono", monospace;8536  font-size: 0.625rem;8537  letter-spacing: 0.06em;8538}85398540/* Confirmation step */8541.peach-recovery-confirm {8542  width: 100%;8543  flex: 1;8544  display: flex;8545  flex-direction: column;8546}8547.peach-recovery-confirm-label {8548  font-family: "IBM Plex Mono", monospace;8549  font-size: 0.5625rem;8550  letter-spacing: 0.04em;8551  color: var(--peach-t2);8552  text-align: center;8553  margin: 0 0 12px;8554}8555.peach-recovery-confirm-fields {8556  display: flex;8557  flex-direction: column;8558  gap: 14px;8559  margin-bottom: 10px;8560}8561.peach-recovery-confirm-field {8562  display: flex;8563  align-items: center;8564  gap: 8px;8565}8566.peach-recovery-confirm-num {8567  font-family: "IBM Plex Mono", monospace;8568  font-size: 0.5rem;8569  color: var(--peach-t2);8570  min-width: 44px;8571  letter-spacing: 0.04em;8572}8573.peach-recovery-confirm-input {8574  flex: 1;8575  background: transparent;8576  border: none;8577  border-bottom: 1px solid var(--peach-t3);8578  color: var(--peach-t0);8579  font-family: "IBM Plex Mono", monospace;8580  font-size: 0.6875rem;8581  letter-spacing: 0.06em;8582  padding: 4px 2px 3px;8583  outline: none;8584  text-transform: lowercase;8585  transition: border-color 120ms ease;8586}8587.peach-recovery-confirm-input:focus {8588  border-bottom-color: var(--peach-accent);8589}8590.peach-recovery-confirm-input:disabled {8591  opacity: 0.4;8592  cursor: not-allowed;8593}8594.peach-recovery-confirm-btn {8595  width: 100%;8596  margin-top: auto;8597}85988599/* ============================================================8600   Sync info sheet8601   ============================================================ */86028603.peach-sync-info-backdrop {8604  position: fixed;8605  inset: 0;8606  z-index: 200;8607  background: rgba(0, 0, 0, 0.55);8608  display: flex;8609  align-items: flex-end;8610  animation: peach-fade-in 200ms ease forwards;8611}86128613@keyframes peach-fade-in {8614  from { opacity: 0; }8615  to   { opacity: 1; }8616}86178618.peach-sync-info-sheet {8619  width: 100%;8620  background: var(--peach-bg-card, var(--peach-bg));8621  border-top-left-radius: 20px;8622  border-top-right-radius: 20px;8623  padding: 12px 24px 32px;8624  display: flex;8625  flex-direction: column;8626  gap: 20px;8627  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;8628}86298630@keyframes peach-sheet-up {8631  from { transform: translateY(100%); }8632  to   { transform: translateY(0); }8633}86348635.peach-sync-info-handle {8636  width: 36px;8637  height: 4px;8638  border-radius: 2px;8639  background: var(--peach-border);8640  margin: 0 auto 4px;8641  flex-shrink: 0;8642}86438644.peach-sync-info-title {8645  font-family: 'Cormorant Garamond', serif;8646  font-style: italic;8647  font-size: 26px;8648  font-weight: 600;8649  color: var(--peach-t0);8650  margin: 0;8651  line-height: 1.2;8652}86538654.peach-sync-info-body {8655  display: flex;8656  flex-direction: column;8657  gap: 14px;8658}86598660.peach-sync-info-point {8661  display: flex;8662  gap: 12px;8663  align-items: flex-start;8664  font-size: 14px;8665  color: var(--peach-t2);8666  line-height: 1.6;8667  margin: 0;8668}86698670.peach-sync-info-icon {8671  color: var(--peach-accent);8672  font-size: 16px;8673  flex-shrink: 0;8674  margin-top: 1px;8675}86768677.peach-sync-info-actions {8678  display: flex;8679  flex-direction: column;8680  gap: 12px;8681  margin-top: 4px;8682}86838684.peach-sync-info-pro-link {8685  background: none;8686  border: none;8687  font-size: 13px;8688  color: var(--peach-t3);8689  cursor: pointer;8690  padding: 0;8691  font-family: inherit;8692  text-align: center;8693  transition: color 150ms ease;8694}86958696.peach-sync-info-pro-link:hover {8697  color: var(--peach-accent);8698}86998700.peach-btn--full {8701  width: 100%;8702}87038704/* ── Sync screen ── */87058706.peach-sync-coming-soon {8707  display: flex;8708  align-items: flex-start;8709  gap: 10px;8710  padding: 12px 14px;8711  background: var(--peach-s1);8712  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);8713  border-radius: 10px;8714}8715.peach-sync-coming-soon__icon {8716  flex-shrink: 0;8717  color: var(--peach-accent);8718  margin-top: 1px;8719  line-height: 0;8720}8721.peach-sync-coming-soon__title {8722  font-family: 'Cormorant Garamond', serif;8723  font-weight: 500;8724  font-size: 13px;8725  color: var(--peach-accent);8726  margin: 0 0 5px;8727  line-height: 1.3;8728}8729.peach-sync-coming-soon__body {8730  font-size: 12px;8731  color: var(--peach-t1);8732  line-height: 1.55;8733  margin: 0;8734}87358736.peach-sync-screen {8737  display: flex;8738  flex-direction: column;8739  height: 100%;8740}87418742.peach-sync-content {8743  flex: 1;8744  overflow-y: auto;8745  padding: 24px 20px 40px;8746  display: flex;8747  flex-direction: column;8748  gap: 24px;8749}87508751/* Intro (State A) */8752.peach-sync-headline {8753  font-family: 'Cormorant Garamond', serif;8754  font-style: italic;8755  font-size: 28px;8756  font-weight: 600;8757  color: var(--peach-t0);8758  margin: 0 0 10px;8759  line-height: 1.2;8760}87618762.peach-sync-intro-body {8763  font-size: 14px;8764  color: var(--peach-t1);8765  line-height: 1.6;8766  margin: 0;8767}87688769.peach-sync-pro-note {8770  display: flex;8771  flex-direction: column;8772  gap: 8px;8773  background: var(--peach-t3);8774  border-radius: 10px;8775  padding: 12px 14px;8776}87778778.peach-sync-pro-note-text {8779  font-size: 12px;8780  color: var(--peach-t2);8781  line-height: 1.5;8782  margin: 0;8783}87848785.peach-sync-pro-link {8786  background: none;8787  border: none;8788  font-size: 12px;8789  color: var(--peach-accent);8790  cursor: pointer;8791  padding: 0;8792  font-family: inherit;8793  text-align: left;8794}87958796/* Status (State C) */8797.peach-sync-status {8798  padding: 12px 0;8799  border-bottom: 1px solid var(--peach-border);8800}88018802.peach-sync-status-row {8803  display: flex;8804  align-items: center;8805  gap: 8px;8806}88078808.peach-sync-dot {8809  width: 7px;8810  height: 7px;8811  border-radius: 50%;8812  flex-shrink: 0;8813}88148815.peach-sync-dot--green { background: var(--peach-health-ok); }8816.peach-sync-dot--amber { background: var(--peach-accent); }88178818.peach-sync-status-text {8819  font-family: 'IBM Plex Mono', monospace;8820  font-size: 11px;8821  color: var(--peach-t2);8822}88238824/* Paired devices */8825.peach-sync-section {8826  display: flex;8827  flex-direction: column;8828  gap: 2px;8829}88308831.peach-sync-section-label {8832  font-family: 'IBM Plex Mono', monospace;8833  font-size: 10px;8834  letter-spacing: 0.1em;8835  color: var(--peach-t3);8836  margin: 0 0 10px;8837}88388839.peach-sync-device-row {8840  display: flex;8841  justify-content: space-between;8842  align-items: baseline;8843  padding: 10px 0;8844  border-bottom: 1px solid var(--peach-border);8845  gap: 12px;8846}88478848.peach-sync-device-name {8849  font-size: 14px;8850  color: var(--peach-t1);8851}88528853.peach-sync-device-meta {8854  font-family: 'IBM Plex Mono', monospace;8855  font-size: 11px;8856  color: var(--peach-t3);8857  white-space: nowrap;8858}88598860.peach-sync-hub-note {8861  padding: 14px 16px;8862  border: 1px solid var(--peach-border);8863  border-radius: 10px;8864  display: flex;8865  flex-direction: column;8866  gap: 6px;8867  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8868}88698870.peach-sync-hub-note-title {8871  font-size: 13px;8872  font-weight: 600;8873  color: var(--peach-t0);8874  margin: 0;8875}88768877.peach-sync-hub-note-body {8878  font-size: 12px;8879  color: var(--peach-t2);8880  line-height: 1.6;8881  margin: 0;8882}88838884/* Action buttons */8885.peach-sync-actions {8886  display: flex;8887  gap: 10px;8888  flex-wrap: wrap;8889}88908891/* Upgrade prompt (State B) */8892.peach-sync-upgrade {8893  display: flex;8894  flex-direction: column;8895  gap: 12px;8896  padding: 16px;8897  border: 1px solid var(--peach-border);8898  border-radius: 10px;8899}89008901.peach-sync-upgrade-text {8902  font-size: 13px;8903  color: var(--peach-t2);8904  line-height: 1.6;8905  margin: 0;8906}89078908/* Network note */8909.peach-sync-network-note {8910  font-size: 12px;8911  color: var(--peach-t3);8912  line-height: 1.6;8913  margin: 0;8914}89158916/* Advanced */8917.peach-sync-advanced {8918  margin-top: auto;8919  padding-top: 16px;8920  border-top: 1px solid var(--peach-border);8921}89228923.peach-sync-advanced-toggle {8924  display: flex;8925  align-items: center;8926  gap: 8px;8927  background: none;8928  border: none;8929  font-family: 'IBM Plex Mono', monospace;8930  font-size: 11px;8931  letter-spacing: 0.08em;8932  color: var(--peach-t3);8933  cursor: pointer;8934  padding: 0;8935  text-transform: uppercase;8936}89378938.peach-sync-advanced-chevron {8939  display: inline-block;8940  transition: transform 200ms ease;8941  font-size: 10px;8942}89438944.peach-sync-advanced-chevron.is-open {8945  transform: rotate(90deg);8946}89478948.peach-sync-advanced-content {8949  margin-top: 14px;8950}89518952.peach-sync-advanced-row {8953  display: flex;8954  justify-content: space-between;8955  align-items: center;8956  gap: 16px;8957}89588959.peach-sync-advanced-title {8960  font-size: 14px;8961  color: var(--peach-t1);8962  margin: 0 0 2px;8963}89648965.peach-sync-advanced-subtitle {8966  font-size: 12px;8967  color: var(--peach-t3);8968  margin: 0;8969  line-height: 1.5;8970}89718972/* ── Notes Mode ── */89738974/* Overlay that crossfades over the vault */8975.peach-notes-overlay {8976  position: fixed;8977  inset: 0;8978  z-index: 90;8979  opacity: 0;8980  pointer-events: none;8981  animation: peach-mode-in 220ms ease-in forwards;8982}89838984.peach-notes-overlay.is-visible {8985  opacity: 1;8986  pointer-events: auto;8987}89888989@keyframes peach-mode-in {8990  from { opacity: 0; }8991  to   { opacity: 1; }8992}89938994/* Top-level notes surface */8995.peach-notes-mode {8996  position: absolute;8997  inset: 0;8998  background: var(--peach-bg);8999  display: flex;9000  flex-direction: column;9001}90029003/* Rune canvas positioned behind content */9004.peach-note-rune-canvas {9005  position: absolute;9006  inset: 0;9007  width: 100%;9008  height: 100%;9009  pointer-events: none;9010  z-index: 0;9011}90129013/* TOC wrapper */9014.peach-notes-toc-wrapper {9015  position: absolute;9016  inset: 0;9017  z-index: 1;9018  opacity: 1;9019  pointer-events: auto;9020  transition: opacity 200ms ease;9021}90229023.peach-notes-toc-wrapper.is-hidden {9024  opacity: 0;9025  pointer-events: none;9026}90279028/* Editor wrapper */9029.peach-notes-editor-wrapper {9030  position: absolute;9031  inset: 0;9032  z-index: 2;9033  opacity: 0;9034  pointer-events: none;9035  transition: opacity 200ms ease;9036}90379038.peach-notes-editor-wrapper.is-visible {9039  opacity: 1;9040  pointer-events: auto;9041}90429043/* TOC inner */9044.peach-notes-toc {9045  position: relative;9046  display: flex;9047  flex-direction: column;9048  height: 100%;9049  padding-top: env(safe-area-inset-top, 0px);9050  padding-bottom: env(safe-area-inset-bottom, 0px);9051}90529053/* Shared header */9054.peach-notes-header {9055  display: flex;9056  align-items: center;9057  padding: 12px 16px;9058  gap: 12px;9059  flex-shrink: 0;9060  min-height: 52px;9061  position: relative;9062  z-index: 2;9063}90649065.peach-notes-back {9066  font-size: 22px;9067  color: var(--peach-t2);9068  background: none;9069  border: none;9070  padding: 4px;9071  cursor: pointer;9072  line-height: 1;9073  flex-shrink: 0;9074  transition: color 150ms ease;9075  -webkit-tap-highlight-color: transparent;9076}90779078.peach-notes-back:active { color: var(--peach-t0); }90799080.peach-notes-header-title {9081  flex: 1;9082  font-family: 'Cormorant Garamond', serif;9083  font-style: italic;9084  font-size: 22px;9085  color: var(--peach-t0);9086  text-align: center;9087}90889089.peach-notes-header-title.is-breadcrumb {9090  font-family: 'IBM Plex Mono', monospace;9091  font-style: normal;9092  font-size: 11px;9093  color: var(--peach-t3);9094  letter-spacing: 0.08em;9095  text-transform: uppercase;9096  cursor: pointer;9097}90989099.peach-notes-header-actions {9100  display: flex;9101  gap: 8px;9102  flex-shrink: 0;9103}91049105.peach-notes-header-btn {9106  width: 36px;9107  height: 36px;9108  display: flex;9109  align-items: center;9110  justify-content: center;9111  background: none;9112  border: none;9113  color: var(--peach-t2);9114  cursor: pointer;9115  border-radius: 8px;9116  font-size: 16px;9117  transition: color 150ms ease, background 150ms ease;9118  -webkit-tap-highlight-color: transparent;9119}91209121.peach-notes-header-btn:active {9122  background: rgba(255,255,255,0.06);9123  color: var(--peach-t0);9124}91259126/* The header + glyph is larger than the search svg so the two right-side9127 * buttons feel visually balanced. The base .peach-notes-header-btn caps font9128 * at 16px which would render the + too small. */9129.peach-notes-new-btn-icon {9130  font-size: 22px;9131  font-weight: 300;9132  line-height: 1;9133}91349135/* Inline search bar */9136.peach-notes-search-input {9137  flex: 1;9138  background: none;9139  border: none;9140  outline: none;9141  font-family: 'IBM Plex Mono', monospace;9142  font-size: 13px;9143  color: var(--peach-t0);9144  padding: 4px 0;9145  letter-spacing: 0.02em;9146}91479148.peach-notes-search-input::placeholder {9149  color: var(--peach-t3);9150}91519152/* TOC list */9153.peach-notes-list-container {9154  flex: 1;9155  overflow-y: auto;9156  overflow-x: hidden;9157  scrollbar-width: none;9158  -webkit-overflow-scrolling: touch;9159  overscroll-behavior: contain;9160  position: relative;9161  z-index: 1;9162}91639164.peach-notes-list-container::-webkit-scrollbar { display: none; }91659166/* Note row */9167.peach-note-row {9168  position: relative;9169  display: grid;9170  grid-template-columns: 44px 8px 1fr 8px auto;9171  align-items: center;9172  min-height: 72px;9173  padding: 16px 20px;9174  border-bottom: 0.5px solid var(--peach-border);9175  cursor: pointer;9176  overflow: hidden;9177  touch-action: pan-y;9178  user-select: none;9179  -webkit-user-select: none;9180  -webkit-tap-highlight-color: transparent;9181}91829183.peach-note-row:first-child {9184  border-top: 0.5px solid var(--peach-border);9185}91869187.peach-note-row:active {9188  background: rgba(255,255,255,0.02);9189}91909191.peach-note-numeral {9192  font-family: 'Cormorant Garamond', serif;9193  font-style: italic;9194  font-size: 15px;9195  color: var(--peach-accent);9196  text-align: right;9197  line-height: 1;9198  flex-shrink: 0;9199}92009201.peach-note-title-gap { /* grid spacer */ }92029203.peach-note-title {9204  font-family: 'Cormorant Garamond', serif;9205  font-style: italic;9206  font-size: 18px;9207  color: var(--peach-t0);9208  line-height: 1.3;9209  min-width: 0;9210  overflow-wrap: break-word;9211}92129213.peach-note-title-match {9214  color: var(--peach-accent);9215}92169217.peach-note-date {9218  font-family: 'IBM Plex Mono', monospace;9219  font-size: 11px;9220  color: var(--peach-t2);9221  white-space: nowrap;9222  text-align: right;9223  flex-shrink: 0;9224  grid-column: 5;9225}92269227/* Swipe underlays */9228.peach-note-row-underlay {9229  position: absolute;9230  inset: 0;9231  display: flex;9232  align-items: center;9233  padding: 0 24px;9234  font-family: 'IBM Plex Mono', monospace;9235  font-size: 11px;9236  letter-spacing: 0.1em;9237  pointer-events: none;9238  z-index: 0;9239}92409241.peach-note-row-underlay--delete {9242  background: #8B2020;9243  color: rgba(255,255,255,0.9);9244  justify-content: flex-end;9245}92469247.peach-note-row-underlay--archive {9248  background: var(--peach-accent);9249  color: #0C0A06;9250  justify-content: flex-start;9251}92529253/* Delete confirm strip */9254.peach-note-delete-confirm {9255  position: absolute;9256  inset: 0;9257  background: var(--peach-bg);9258  display: flex;9259  align-items: center;9260  gap: 12px;9261  padding: 0 20px;9262  font-family: 'IBM Plex Mono', monospace;9263  font-size: 11px;9264  color: var(--peach-t1);9265  letter-spacing: 0.04em;9266  animation: peach-delete-confirm-in 150ms ease both;9267  z-index: 10;9268}92699270@keyframes peach-delete-confirm-in {9271  from { opacity: 0; }9272  to   { opacity: 1; }9273}92749275.peach-note-delete-confirm-btn {9276  background: #8B2020;9277  color: rgba(255,255,255,0.9);9278  border: none;9279  border-radius: 6px;9280  padding: 4px 10px;9281  font-family: 'IBM Plex Mono', monospace;9282  font-size: 10px;9283  cursor: pointer;9284  letter-spacing: 0.06em;9285}92869287.peach-note-delete-cancel-btn {9288  background: none;9289  border: none;9290  color: var(--peach-t3);9291  font-family: 'IBM Plex Mono', monospace;9292  font-size: 10px;9293  cursor: pointer;9294  letter-spacing: 0.06em;9295  padding: 4px 6px;9296}92979298/* + New note button */9299.peach-notes-new-btn {9300  font-family: 'IBM Plex Mono', monospace;9301  font-size: 12px;9302  color: var(--peach-t3);9303  text-align: center;9304  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));9305  background: none;9306  border: none;9307  width: 100%;9308  cursor: pointer;9309  letter-spacing: 0.04em;9310  transition: color 150ms ease;9311  -webkit-tap-highlight-color: transparent;9312}93139314.peach-notes-new-btn:active { color: var(--peach-accent); }93159316/* Empty state */9317.peach-notes-empty {9318  display: flex;9319  flex-direction: column;9320  align-items: center;9321  justify-content: center;9322  flex: 1;9323  padding: 48px 32px;9324  gap: 16px;9325}93269327.peach-notes-empty-text {9328  font-family: 'Cormorant Garamond', serif;9329  font-style: italic;9330  font-size: 20px;9331  color: var(--peach-t3);9332  text-align: center;9333  margin: 0;9334  line-height: 1.4;9335  white-space: pre-line;9336}93379338/* ── Editor surface ── */93399340.peach-note-editor-surface {9341  position: absolute;9342  inset: 0;9343  background: var(--peach-bg);9344  display: flex;9345  flex-direction: column;9346  padding-top: env(safe-area-inset-top, 0px);9347}93489349.peach-note-editor-scroll {9350  flex: 1;9351  overflow-y: auto;9352  overflow-x: hidden;9353  scrollbar-width: none;9354  -webkit-overflow-scrolling: touch;9355  padding: 0 24px 120px;9356  position: relative;9357  z-index: 1;9358}93599360.peach-note-editor-scroll::-webkit-scrollbar { display: none; }93619362/* Desktop toolbar (always visible above body) */9363.peach-note-toolbar-desktop-inline {9364  display: flex;9365  align-items: center;9366  gap: 2px;9367  padding: 6px 0 12px;9368  margin-bottom: 4px;9369  border-bottom: 0.5px solid var(--peach-border);9370}93719372/* Title field */9373.peach-note-title-field {9374  font-family: 'Cormorant Garamond', serif;9375  font-style: italic;9376  font-size: 32px;9377  font-weight: 600;9378  color: var(--peach-t0);9379  line-height: 1.2;9380  padding: 8px 0 0;9381  outline: none;9382  min-height: 44px;9383  word-break: break-word;9384  position: relative;9385  z-index: 1;9386}93879388.peach-note-title-field:empty::before {9389  content: attr(data-placeholder);9390  color: var(--peach-t3);9391  pointer-events: none;9392}93939394/* Hairline separator */9395.peach-note-hairline {9396  height: 0.5px;9397  background: var(--peach-border);9398  margin: 12px 0 20px;9399  position: relative;9400  z-index: 1;9401}94029403/* Body field */9404.peach-note-body-field {9405  font-family: 'DM Sans', sans-serif;9406  font-size: 16px;9407  color: var(--peach-t0);9408  line-height: 1.85;9409  padding: 0;9410  outline: none;9411  min-height: 240px;9412  word-break: break-word;9413  position: relative;9414  z-index: 1;9415}94169417.peach-note-body-field:empty::before {9418  content: attr(data-placeholder);9419  color: var(--peach-t3);9420  font-style: italic;9421  pointer-events: none;9422}94239424.peach-note-body-field h2 {9425  font-family: 'Cormorant Garamond', serif;9426  font-style: italic;9427  font-size: 22px;9428  font-weight: 600;9429  color: var(--peach-t0);9430  margin: 20px 0 8px;9431}94329433.peach-note-body-field blockquote {9434  border-left: 2px solid var(--peach-accent);9435  margin: 12px 0;9436  padding-left: 16px;9437  color: var(--peach-t1);9438  font-style: italic;9439}94409441.peach-note-body-field ul,9442.peach-note-body-field ol {9443  padding-left: 20px;9444  margin: 8px 0;9445}94469447.peach-note-body-field li {9448  margin: 4px 0;9449}94509451.peach-note-body-field hr {9452  border: none;9453  border-top: 0.5px solid var(--peach-border);9454  margin: 16px 0;9455}94569457/* Saved indicator */9458.peach-note-saved-indicator {9459  font-family: 'IBM Plex Mono', monospace;9460  font-size: 11px;9461  color: var(--peach-t3);9462  letter-spacing: 0.04em;9463  text-align: right;9464  padding: 6px 24px;9465  flex-shrink: 0;9466  transition: opacity 300ms ease;9467  pointer-events: none;9468  position: relative;9469  z-index: 1;9470}94719472/* Mobile keyboard toolbar */9473.peach-note-toolbar-mobile {9474  display: flex;9475  align-items: center;9476  padding: 8px 16px;9477  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));9478  background: var(--peach-bg);9479  border-top: 0.5px solid var(--peach-border);9480  gap: 4px;9481  flex-shrink: 0;9482  position: relative;9483  z-index: 10;9484}94859486.peach-note-toolbar-btn {9487  min-width: 36px;9488  height: 36px;9489  display: flex;9490  align-items: center;9491  justify-content: center;9492  background: none;9493  border: none;9494  border-radius: 8px;9495  cursor: pointer;9496  font-size: 14px;9497  color: var(--peach-t1);9498  font-family: 'DM Sans', sans-serif;9499  font-weight: 600;9500  transition: background 100ms ease, color 100ms ease;9501  -webkit-tap-highlight-color: transparent;9502}95039504.peach-note-toolbar-btn--italic { font-style: italic; }9505.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }9506.peach-note-toolbar-btn:active { background: rgba(255,255,255,0.08); }95079508.peach-note-toolbar-divider {9509  width: 0.5px;9510  height: 20px;9511  background: var(--peach-border);9512  margin: 0 4px;9513  flex-shrink: 0;9514}95159516.peach-note-toolbar-spacer { flex: 1; }95179518/* Desktop: larger headline in TOC */9519@media (min-width: 400px) {9520  .peach-notes-header-title:not(.is-breadcrumb) {9521    font-size: 32px;9522  }95239524  .peach-note-row {9525    min-height: 64px;9526    padding: 14px 16px;9527  }9528}95299530/* Flying title — shared element during expansion/collapse */95319532/* ─── Light theme overrides ───────────────────────────────────────────────9533   Tokens that cannot be expressed as variable substitutions — hardcoded9534   context-specific values that need separate light-mode rules. */95359536/* Settings section headers: use text-label (#79766F) per restoration brief —9537   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY9538   presence without fighting the light parchment background. */9539.light .peach-settings-sub-label,9540[data-theme="light"] .peach-settings-sub-label,9541.light .peach-settings-nav-label,9542[data-theme="light"] .peach-settings-nav-label {9543  color: #79766F;9544}95459546/* Secondary action buttons (ghost / subtle): filled with input-well surface9547   so they read as recessed against the parchment card background. */9548.light .peach-btn--ghost:not(.peach-icon-btn),9549[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {9550  background: #EEE7DD;9551  border-color: #DDD5CB;9552  color: #1A1208;9553}9554.light .peach-icon-btn,9555[data-theme="light"] .peach-icon-btn {9556  background: transparent;9557  border-color: transparent;9558}9559.light .peach-btn--subtle,9560[data-theme="light"] .peach-btn--subtle {9561  background: #EEE7DD;9562  border-color: #DDD5CB;9563}95649565/* Wide secondary action button on the lock screen — override the9566   hardcoded dark-mode rgba values with warm parchment equivalents. */9567.light .peach-lock-secondary,9568[data-theme="light"] .peach-lock-secondary {9569  background: #EEE7DD;9570  border-color: #DDD5CB;9571  color: #1A1208;9572}9573.light .peach-lock-secondary:hover,9574[data-theme="light"] .peach-lock-secondary:hover {9575  background: #F0E9DF;9576}95779578/* Entry row hover: bg-row lifts the row above the card surface. */9579.light .peach-entry-row:hover,9580[data-theme="light"] .peach-entry-row:hover {9581  background: #F2EBE1;9582}9583.light .peach-entry-row.is-active,9584[data-theme="light"] .peach-entry-row.is-active {9585  background: #F2EBE1;9586}9587.light .peach-entry-row.is-selected,9588[data-theme="light"] .peach-entry-row.is-selected {9589  background: #F5EDE2;9590}95919592/* ──────────────────────────────────────────────────────────────────────────9593   Pair-device flow — bird-stage animation (Phase 1)9594   See src/popup/components/PairingBirds.tsx and the brief §6.2.9595   Three-act animation gated on the [data-phase] attribute of9596   .peach-pair-pair; child layers (birds, sound arcs, flight wave, dot)9597   each react via either pose class or visibility flag.9598   Tokens: accent surfaces use var(--peach-accent); bird illustration9599   colours are baked into the SVG per the brand-peach exception in §3.1.9600   ────────────────────────────────────────────────────────────────────── */96019602.peach-pair-pair {9603  position: absolute;9604  inset: 0;9605  z-index: 3;9606  display: flex;9607  flex-direction: column;9608  padding: 14px 12px 12px;9609  width: 100%;9610  box-sizing: border-box;9611  gap: 0;9612  background:9613    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9614    var(--peach-bg);9615  color: var(--peach-t0);9616  overflow-y: auto;9617  overflow-x: hidden;9618  scrollbar-width: none;9619  isolation: isolate;9620  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9621}9622@keyframes peach-pair-overlay-in {9623  from { opacity: 0; transform: translateY(8px); }9624  to   { opacity: 1; transform: translateY(0); }9625}9626.peach-pair-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }9627.peach-pair-pair::before {9628  content: '';9629  position: absolute;9630  inset: 0;9631  border-radius: inherit;9632  pointer-events: none;9633  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9634  z-index: 0;9635}9636.peach-pair-pair > * { position: relative; z-index: 1; }96379638/* Header --------------------------------------------------------------- */9639.peach-pair-head {9640  display: flex; align-items: center; gap: 10px;9641}9642.peach-pair-back {9643  width: 32px; height: 32px;9644  display: inline-flex; align-items: center; justify-content: center;9645  background: transparent;9646  border: none;9647  border-radius: 8px;9648  color: var(--peach-t1);9649  cursor: pointer;9650  transition: color 0.15s ease, box-shadow 0.15s ease;9651}9652.peach-pair-back:hover {9653  color: var(--peach-accent);9654  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);9655}9656.peach-pair-title {9657  font-family: var(--font-display, Georgia, serif);9658  font-style: italic;9659  font-size: 24px;9660  font-weight: 500;9661  letter-spacing: 0.005em;9662  color: var(--peach-t0);9663  line-height: 1;9664}9665.peach-pair-head-spacer { flex: 1; }96669667/* Chip row ------------------------------------------------------------- */9668.peach-pair-chip-row {9669  display: flex;9670  align-items: center;9671  justify-content: flex-start;9672  margin-top: 12px;9673}9674.peach-pair-chip {9675  display: inline-flex; align-items: center; gap: 8px;9676  padding: 5px 10px 5px 8px;9677  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);9678  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);9679  border-radius: 999px;9680  font-family: var(--peach-mono, ui-monospace, monospace);9681  font-size: 11px;9682  letter-spacing: 0.04em;9683  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));9684}9685.peach-pair-chip-dot {9686  width: 6px; height: 6px; border-radius: 50%;9687  background: var(--peach-accent);9688  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);9689}9690.peach-pair-chip[data-phase="paired"] {9691  background: color-mix(in srgb, #4f9eda 12%, transparent);9692  border-color: color-mix(in srgb, #4f9eda 28%, transparent);9693  color: #76b6e8;9694}9695.peach-pair-chip[data-phase="paired"] .peach-pair-chip-dot {9696  background: #76b6e8;9697  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);9698}9699.peach-pair-chip[data-phase="timeout"],9700.peach-pair-chip[data-phase="mic_denied"],9701.peach-pair-chip[data-phase="version_mismatch"],9702.peach-pair-chip[data-phase="handshake_failed"] {9703  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);9704  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);9705  color: var(--peach-warn, #d29257);9706}9707.peach-pair-chip[data-phase="timeout"] .peach-pair-chip-dot,9708.peach-pair-chip[data-phase="mic_denied"] .peach-pair-chip-dot,9709.peach-pair-chip[data-phase="version_mismatch"] .peach-pair-chip-dot,9710.peach-pair-chip[data-phase="handshake_failed"] .peach-pair-chip-dot {9711  background: var(--peach-warn, #d29257);9712  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);9713}971497159716/* Bird stage ----------------------------------------------------------- */9717.peach-pair-stage {9718  position: relative;9719  height: 180px;9720  margin: 8px auto 18px;9721  width: 300px;9722  display: flex;9723  align-items: flex-end;9724  justify-content: center;9725}9726.peach-pair-bird-slot {9727  position: absolute;9728  bottom: 0;9729  width: 108px;9730  height: 108px;9731  transform-origin: 50% 95%;9732}9733.peach-pair-bird-slot-desktop { left: 12px; }9734.peach-pair-bird-slot-mobile { right: 12px; }9735.peach-pair-stage.act-handshake .peach-pair-bird-slot-desktop,9736.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop {9737  transform: translateX(6px);9738  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9739}9740.peach-pair-stage.act-paired .peach-pair-bird-slot-desktop { --bb-x: 6px; }9741.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { --bb-x: -6px; }9742.peach-pair-stage.act-paired .peach-pair-bird-slot {9743  animation: peach-pair-happy-bob 1.2s ease-in-out infinite;9744}9745.peach-pair-stage.act-paired .peach-pair-bird-slot-mobile { animation-delay: 0.2s; }9746@keyframes peach-pair-happy-bob {9747  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9748  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9749}97509751/* Bird internal -------------------------------------------------------- */9752.peach-pair-bird {9753  width: 108px;9754  height: 108px;9755  transform-origin: 50% 95%;9756}9757.peach-pair-bird svg { width: 100%; height: 100%; overflow: visible; }97589759.peach-pair-bird-body {9760  transform-origin: 50% 80%;9761  animation: peach-pair-bird-bob 2.4s ease-in-out infinite;9762}9763.peach-pair-bird-pose-chirping .peach-pair-bird-body { animation-duration: 1.4s; }9764.peach-pair-bird-pose-happy .peach-pair-bird-body   { animation: peach-pair-bird-celebrate 0.9s ease-in-out infinite; }9765.peach-pair-bird-pose-attentive .peach-pair-bird-body { animation-duration: 2.0s; }97669767@keyframes peach-pair-bird-bob {9768  0%, 100% { transform: translateY(0) rotate(0deg); }9769  50%      { transform: translateY(-2px) rotate(-1deg); }9770}9771@keyframes peach-pair-bird-celebrate {9772  0%, 100% { transform: translateY(0) rotate(0deg); }9773  25%      { transform: translateY(-4px) rotate(-2deg); }9774  75%      { transform: translateY(-4px) rotate(2deg); }9775}97769777.peach-pair-bird-wing {9778  transform-origin: 50% 50%;9779  animation: peach-pair-bird-flap 0.9s ease-in-out infinite;9780}9781.peach-pair-bird-pose-happy .peach-pair-bird-wing { animation-duration: 0.35s; }9782.peach-pair-bird-pose-attentive .peach-pair-bird-wing { animation-duration: 1.4s; }9783@keyframes peach-pair-bird-flap {9784  0%, 100% { transform: scaleY(1); }9785  50%      { transform: scaleY(0.85); }9786}97879788.peach-pair-bird-head-group {9789  transform-origin: 95px 52px;9790  animation: peach-pair-bird-bob-head 2.6s ease-in-out infinite;9791}9792.peach-pair-bird-pose-chirping .peach-pair-bird-head-group { animation-duration: 0.45s; }9793.peach-pair-bird-pose-attentive .peach-pair-bird-head-group { animation: none; }9794@keyframes peach-pair-bird-bob-head {9795  0%, 100% { transform: rotate(0deg); }9796  50%      { transform: rotate(3deg); }9797}97989799.peach-pair-bird-eye-group { transform-origin: center; }9800.peach-pair-bird-blink { animation: peach-pair-bird-blink 4s ease-in-out infinite; }9801@keyframes peach-pair-bird-blink {9802  0%, 92%, 100% { transform: scaleY(1); }9803  95%           { transform: scaleY(0.1); }9804}98059806.peach-pair-bird-aura {9807  animation: peach-pair-bird-aura 2.6s ease-in-out infinite;9808}9809.peach-pair-bird-pose-happy .peach-pair-bird-aura { animation-duration: 1.4s; }9810@keyframes peach-pair-bird-aura {9811  0%, 100% { opacity: 0; }9812  50%      { opacity: 0.18; }9813}98149815.peach-pair-bird-tail {9816  transform-origin: 50% 100%;9817  animation: peach-pair-bird-tail-wag 3s ease-in-out infinite;9818}9819@keyframes peach-pair-bird-tail-wag {9820  0%, 100% { transform: rotate(0deg); }9821  50%      { transform: rotate(2deg); }9822}98239824.peach-pair-bird-pose-happy .peach-pair-bird-shadow { animation: peach-pair-bird-shadow-pulse 0.9s ease-in-out infinite; }9825@keyframes peach-pair-bird-shadow-pulse {9826  0%, 100% { transform: scaleX(1); opacity: 0.45; }9827  50%      { transform: scaleX(0.92); opacity: 0.3; }9828}98299830/* Per-pose variants --------------------------------------------------- */9831.peach-pair-bird-pose-sad .peach-pair-bird-head-group { transform: translateY(4px) rotate(8deg); }9832.peach-pair-bird-pose-sad .peach-pair-bird-tuft { transform: rotate(15deg) translateY(2px); }9833.peach-pair-bird-pose-sad .peach-pair-bird-tail { transform: rotate(8deg) translateY(2px); }9834.peach-pair-bird-pose-hidden { opacity: 0; }98359836/* Rest state — bird stage at idle pose, primary CTA + paired list */9837.peach-pair-pair[data-phase="idle"] .peach-pair-stage {9838  height: 160px;9839}98409841/* Sound arcs ----------------------------------------------------------- */9842.peach-pair-arcs {9843  position: absolute;9844  top: 18px;9845  width: 96px;9846  height: 70px;9847  pointer-events: none;9848}9849.peach-pair-arcs-right { right: -60px; }9850.peach-pair-arcs-left  { left: -60px; transform: scaleX(-1); }9851.peach-pair-arc {9852  position: absolute;9853  top: 50%;9854  left: 0;9855  width: 40px;9856  height: 40px;9857  margin-top: -20px;9858  border: 1.2px solid #f4d5a8;9859  border-color: transparent #f4d5a8 transparent transparent;9860  border-radius: 50%;9861  opacity: 0;9862  animation: peach-pair-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9863}9864@keyframes peach-pair-arc-expand {9865  0%   { transform: scale(0.4); opacity: 0; }9866  20%  { opacity: 0.9; }9867  100% { transform: scale(1.6); opacity: 0; }9868}98699870/* Flight wave ---------------------------------------------------------- */9871.peach-pair-flight-track {9872  position: absolute;9873  inset: 32px 36px 38px 36px;9874  pointer-events: none;9875}9876.peach-pair-flight-wave {9877  position: absolute;9878  top: 8px;9879  left: 76px;9880  right: 76px;9881  height: 60px;9882  width: auto;9883  opacity: 0;9884  transition: opacity 0.15s ease;9885  stroke: #f4d5a8;9886  fill: none;9887}9888.peach-pair-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9889.peach-pair-flight-wave.is-visible { opacity: 1; }9890.peach-pair-flight-path,9891.peach-pair-flight-path-2 {9892  stroke-dasharray: 240;9893  stroke-dashoffset: 240;9894  stroke-linecap: round;9895  fill: none;9896}9897.peach-pair-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9898.peach-pair-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9899.peach-pair-flight-wave.is-visible .peach-pair-flight-path {9900  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9901}9902.peach-pair-flight-wave.is-visible .peach-pair-flight-path-2 {9903  animation: peach-pair-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9904}9905@keyframes peach-pair-fly {9906  0%   { stroke-dashoffset: 240; opacity: 0; }9907  20%  { opacity: 1; }9908  100% { stroke-dashoffset: -120; opacity: 0; }9909}99109911/* Connection dot ------------------------------------------------------- */9912.peach-pair-dot {9913  position: absolute;9914  top: 50%; left: 50%;9915  transform: translate(-50%, -50%);9916  width: 40px; height: 40px;9917  opacity: 0;9918  pointer-events: none;9919  transition: opacity 0.3s ease;9920  color: var(--peach-accent);9921}9922.peach-pair-dot.is-visible { opacity: 1; }9923.peach-pair-dot-glow {9924  position: absolute; top: 50%; left: 50%;9925  transform: translate(-50%, -50%);9926  width: 38px; height: 38px;9927  border-radius: 50%;9928  filter: blur(10px);9929  opacity: 0.55;9930  background: var(--peach-accent);9931  animation: peach-pair-dot-bloom 1.4s ease-out;9932}9933.peach-pair-dot-core {9934  position: absolute; top: 50%; left: 50%;9935  transform: translate(-50%, -50%);9936  width: 8px; height: 8px;9937  border-radius: 50%;9938  background: var(--peach-accent);9939  box-shadow: 0 0 12px currentColor;9940  animation: peach-pair-dot-core 1.4s ease-out;9941}9942.peach-pair-dot-ring {9943  position: absolute; top: 50%; left: 50%;9944  width: 60px; height: 60px;9945  transform: translate(-50%, -50%);9946  animation: peach-pair-dot-ring 1.4s linear;9947  stroke: var(--peach-accent);9948}9949@keyframes peach-pair-dot-bloom {9950  0%   { width: 4px; height: 4px; opacity: 0; }9951  35%  { width: 60px; height: 60px; opacity: 0.7; }9952  100% { width: 38px; height: 38px; opacity: 0.55; }9953}9954@keyframes peach-pair-dot-core {9955  0%   { width: 0; height: 0; }9956  35%  { width: 12px; height: 12px; }9957  100% { width: 8px; height: 8px; }9958}9959@keyframes peach-pair-dot-ring {9960  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }9961  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }9962  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }9963}99649965/* Motes — drift upward across the stage */9966.peach-pair-motes {9967  position: absolute;9968  inset: 0;9969  pointer-events: none;9970}9971.peach-pair-mote {9972  position: absolute;9973  width: 2px; height: 2px;9974  background: color-mix(in srgb, var(--peach-text) 35%, transparent);9975  border-radius: 50%;9976  bottom: 32px;9977  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);9978  opacity: 0;9979  animation: peach-pair-mote-drift 6s linear infinite;9980  animation-delay: calc(var(--mote-i, 0) * 0.7s);9981}9982@keyframes peach-pair-mote-drift {9983  0%   { transform: translateY(0); opacity: 0; }9984  10%  { opacity: 0.6; }9985  90%  { opacity: 0.1; }9986  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }9987}99889989/* Status copy ---------------------------------------------------------- */9990.peach-pair-copy-host {9991  margin: 4px 4px 10px;9992  text-align: center;9993  min-height: 50px;9994}9995.peach-pair-copy {9996  animation: peach-pair-copy-in 0.35s ease both;9997}9998@keyframes peach-pair-copy-in {9999  from { opacity: 0; transform: translateY(4px); }10000  to   { opacity: 1; transform: translateY(0); }10001}10002.peach-pair-headline {10003  font-family: var(--font-display, Georgia, serif);10004  font-style: italic;10005  font-size: 20px;10006  font-weight: 500;10007  line-height: 1.2;10008  letter-spacing: 0.005em;10009  color: var(--peach-t0);10010  margin-bottom: 6px;10011}10012.peach-pair-copy-listening .peach-pair-headline,10013.peach-pair-copy-chirping .peach-pair-headline,10014.peach-pair-copy-idle .peach-pair-headline {10015  font-family: inherit;10016  font-style: normal;10017  font-weight: 500;10018  font-size: 15px;10019  color: var(--peach-t0);10020  letter-spacing: 0;10021}10022.peach-pair-copy-paired .peach-pair-headline {10023  color: var(--peach-t0);10024  font-weight: 600;10025}10026.peach-pair-sub {10027  font-size: 12.5px;10028  line-height: 1.45;10029  color: var(--peach-t1);10030  max-width: 280px;10031  margin: 0 auto;10032  text-wrap: pretty;10033}1003410035/* Status action -------------------------------------------------------- */10036.peach-pair-action {10037  margin: 2px 4px 10px;10038  margin-top: auto;10039  display: flex;10040  flex-direction: column;10041  gap: 8px;10042}10043.peach-pair-action-waiting {10044  display: flex;10045  align-items: center;10046  justify-content: space-between;10047  gap: 12px;10048}10049.peach-pair-cancel {10050  min-width: 96px;10051}10052.peach-pair-listening {10053  display: inline-flex; align-items: center; gap: 4px;10054  font-family: var(--peach-mono, ui-monospace, monospace);10055  font-size: 9.5px;10056  text-transform: uppercase;10057  letter-spacing: 0.12em;10058  color: var(--peach-t1);10059  padding: 8px 10px;10060}10061.peach-pair-listen-dot {10062  width: 4px; height: 4px;10063  border-radius: 50%;10064  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);10065  animation: peach-pair-listen-pulse 1.2s ease-in-out infinite;10066}10067.peach-pair-listen-dot:nth-child(2) { animation-delay: 0.2s; }10068.peach-pair-listen-dot:nth-child(3) { animation-delay: 0.4s; }10069.peach-pair-listen-label { margin-left: 6px; }10070@keyframes peach-pair-listen-pulse {10071  0%, 100% { opacity: 0.25; transform: scale(0.9); }10072  50%      { opacity: 1;     transform: scale(1.15); }10073}1007410075.peach-pair-action-handshake {10076  display: flex;10077  flex-direction: column;10078  align-items: center;10079  gap: 8px;10080  padding: 8px 4px;10081}10082.peach-pair-meter {10083  width: 100%;10084  max-width: 280px;10085  height: 2px;10086  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);10087  border-radius: 2px;10088  position: relative;10089  overflow: hidden;10090}10091.peach-pair-meter-bar {10092  position: absolute;10093  top: 0; bottom: 0;10094  width: 30%;10095  left: -30%;10096  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);10097  animation: peach-pair-meter-sweep 1.4s ease-in-out infinite;10098}10099@keyframes peach-pair-meter-sweep {10100  0%   { left: -30%; }10101  100% { left: 100%; }10102}10103.peach-pair-meter-label {10104  font-family: var(--peach-mono, ui-monospace, monospace);10105  font-size: 9.5px;10106  text-transform: uppercase;10107  letter-spacing: 0.14em;10108  color: var(--peach-t1);10109}1011010111.peach-pair-action-paired {10112  display: flex;10113  align-items: center;10114  gap: 10px;10115}10116.peach-pair-device-confirm {10117  flex: 1;10118  display: inline-flex;10119  align-items: center;10120  gap: 8px;10121  padding: 9px 10px 9px 12px;10122  border-radius: 10px;10123  background: color-mix(in srgb, #76b6e8 12%, transparent);10124  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);10125  font-size: 12.5px;10126  color: var(--peach-t0);10127  min-width: 0;10128}10129.peach-pair-device-confirm-glyph {10130  display: inline-flex;10131  color: #76b6e8;10132}10133.peach-pair-device-confirm-name {10134  flex: 1;10135  overflow: hidden;10136  text-overflow: ellipsis;10137  white-space: nowrap;10138}10139.peach-pair-device-confirm-trust {10140  font-family: var(--peach-mono, ui-monospace, monospace);10141  font-size: 9.5px;10142  text-transform: uppercase;10143  letter-spacing: 0.1em;10144  color: #76b6e8;10145  padding: 2px 6px;10146  border-radius: 4px;10147  background: color-mix(in srgb, #76b6e8 14%, transparent);10148}10149.peach-pair-done {10150  min-width: 80px;10151}10152.peach-pair-retry {10153  align-self: center;10154  display: block;10155  margin: 6px auto 0;10156  min-width: 120px;10157}10158.peach-pair-mic-help {10159  font-size: 12px;10160  color: var(--peach-t1);10161  text-align: center;10162  max-width: 320px;10163  margin: 0 auto;10164}1016510166/* Rest state — bird stage at idle pose, primary CTA + paired list */10167.peach-pair-pair[data-phase="idle"] .peach-pair-stage {10168  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */10169  height: 160px;10170}10171.peach-pair-pair-start {10172  width: 100%;10173  display: inline-flex;10174  align-items: center;10175  justify-content: center;10176  gap: 8px;10177  padding: 11px 14px;10178  border-radius: 10px;10179  background: var(--peach-accent);10180  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);10181  color: #1a0905;10182  font-family: inherit;10183  font-size: 13px;10184  font-weight: 600;10185  letter-spacing: 0.01em;10186  cursor: pointer;10187  transition: filter 0.15s ease, transform 0.1s ease;10188}10189.peach-pair-pair-start:hover { filter: brightness(1.08); }10190.peach-pair-pair-start:active { transform: translateY(1px); }1019110192.peach-pair-paired-section {10193  margin-top: 14px;10194  display: flex;10195  flex-direction: column;10196  gap: 8px;10197}10198.peach-pair-paired-heading {10199  margin: 0;10200  font-family: var(--peach-mono, ui-monospace, monospace);10201  font-size: 10px;10202  font-weight: 500;10203  letter-spacing: 0.14em;10204  text-transform: uppercase;10205  color: var(--peach-t1);10206}1020710208/* Footer --------------------------------------------------------------- */10209.peach-pair-foot {10210  margin: 10px -4px -2px;10211  margin-top: auto;10212}10213.peach-pair-foot-divider {10214  height: 1px;10215  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);10216  margin-bottom: 10px;10217}10218.peach-pair-foot-text {10219  font-size: 11px;10220  line-height: 1.5;10221  color: var(--peach-t1);10222  text-align: center;10223  padding: 0 4px;10224  text-wrap: pretty;10225}1022610227/* Screen-reader-only live region. Kept off the visual flow but read by10228   assistive tech as the pairing phase advances. */10229.peach-sr-only {10230  position: absolute;10231  width: 1px; height: 1px;10232  padding: 0; margin: -1px;10233  overflow: hidden;10234  clip: rect(0, 0, 0, 0);10235  white-space: nowrap;10236  border: 0;10237}1023810239/* Reduced motion — stage simplifies to opacity transitions only */10240@media (prefers-reduced-motion: reduce) {10241  .peach-pair-bird-body,10242  .peach-pair-bird-head-group,10243  .peach-pair-bird-beak,10244  .peach-pair-bird-wing,10245  .peach-pair-bird-tuft,10246  .peach-pair-bird-tail,10247  .peach-pair-bird-eye-group,10248  .peach-pair-bird-aura,10249  .peach-pair-arc,10250  .peach-pair-flight-path,10251  .peach-pair-flight-path-2,10252  .peach-pair-dot-glow,10253  .peach-pair-dot-core,10254  .peach-pair-dot-ring,10255  .peach-pair-mote,10256  .peach-pair-meter-bar,10257  .peach-pair-listen-dot,10258  .peach-pair-bird-slot,10259  .peach-pair-bird-slot-mobile {10260    animation: none !important;10261    transition: opacity 0.2s linear !important;10262  }10263}1026410265/* ─────────────────────────────────────────────────────────────────10266   Settings → Sync surface. Wraps the same bird10267   animation used by the pairing flow with a paired-devices list and10268   the "Pair a device" CTA.10269   ───────────────────────────────────────────────────────────────── */10270.peach-pair-settings {10271  position: absolute;10272  inset: 0;10273  z-index: 3;10274  display: flex;10275  flex-direction: column;10276  gap: 18px;10277  padding: 14px 12px 12px;10278  width: 100%;10279  box-sizing: border-box;10280  overflow-y: auto;10281  overflow-x: hidden;10282  /* Same warm surface as the pairing screen — unifies the two views. */10283  background:10284    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),10285    var(--peach-bg);10286  color: var(--peach-t0);10287  isolation: isolate;10288  /* Hide native scrollbar — content fits 99% of the time and a chunky10289     gutter ruins the surface. */10290  scrollbar-width: none;10291  animation: peach-pair-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;10292}10293.peach-pair-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }10294.peach-pair-settings::before {10295  content: '';10296  position: absolute;10297  inset: 0;10298  pointer-events: none;10299  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);10300  z-index: 0;10301}10302.peach-pair-settings > * { position: relative; z-index: 1; }1030310304.peach-pair-settings--pairing {10305  padding: 0;10306  align-items: stretch;10307  justify-content: stretch;10308  background: none;10309  isolation: auto;10310}10311.peach-pair-settings--pairing::before { display: none; }1031210313.peach-pair-settings-header {10314  display: flex;10315  align-items: center;10316  gap: 10px;10317}10318.peach-pair-settings-title {10319  margin: 0;10320  font-family: var(--font-display, Georgia, serif);10321  font-style: italic;10322  font-size: 24px;10323  font-weight: 500;10324  line-height: 1;10325  color: var(--peach-t0);10326  letter-spacing: 0.005em;10327}10328.peach-pair-settings-section {10329  margin: 6px 0 -4px;10330  font-size: 11px;10331  font-weight: 600;10332  letter-spacing: 0.08em;10333  text-transform: uppercase;10334  color: var(--peach-text-muted);10335}10336.peach-pair-settings-error {10337  font-size: 12px;10338  padding: 8px 10px;10339  border-radius: 8px;10340  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);10341  color: var(--peach-text);10342}10343.peach-pair-settings-footer {10344  margin-top: auto;10345  padding-top: 18px;10346  font-size: 11.5px;10347  line-height: 1.5;10348  color: var(--peach-text-muted);10349  text-align: center;10350}1035110352/* Hero card shown when no devices are paired yet. */10353.peach-pair-hero {10354  display: flex;10355  flex-direction: column;10356  align-items: center;10357  gap: 12px;10358  padding: 20px 12px 8px;10359  text-align: center;10360}10361.peach-pair-hero-svg {10362  display: block;10363  max-width: 100%;10364  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));10365}10366.peach-pair-hero-headline {10367  margin: 0;10368  font-family: var(--font-display, Georgia, serif);10369  font-style: italic;10370  font-size: 20px;10371  font-weight: 500;10372  line-height: 1.2;10373  letter-spacing: 0.005em;10374  color: var(--peach-t0);10375}10376.peach-pair-hero-sub {10377  margin: 0;10378  font-size: 13px;10379  line-height: 1.5;10380  color: var(--peach-t1);10381  max-width: 320px;10382  text-wrap: pretty;10383}1038410385.peach-pair-pair-cta {10386  display: flex;10387  justify-content: center;10388  padding: 4px 0 6px;10389}10390.peach-pair-pair-button {10391  display: inline-flex;10392  align-items: center;10393  gap: 8px;10394  min-width: 220px;10395  justify-content: center;10396}10397.peach-pair-pair-button-icon {10398  flex: 0 0 auto;10399}1040010401/* Paired devices list. Roomy rows that look at home next to the rest10402   of Settings; stale rows get a soft warm-warning border tint. */10403.peach-pair-device-list {10404  list-style: none;10405  margin: 0;10406  padding: 0;10407  display: flex;10408  flex-direction: column;10409  gap: 8px;10410}10411.peach-pair-device-row {10412  display: flex;10413  align-items: center;10414  gap: 12px;10415  padding: 12px;10416  border-radius: 10px;10417  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10418  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);10419}10420.peach-pair-device-row[data-stale="true"] {10421  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);10422}10423.peach-pair-device-icon {10424  width: 32px;10425  height: 32px;10426  display: flex;10427  align-items: center;10428  justify-content: center;10429  border-radius: 8px;10430  color: var(--peach-text);10431  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);10432}10433.peach-pair-device-info {10434  flex: 1;10435  display: flex;10436  flex-direction: column;10437  gap: 2px;10438  min-width: 0;10439}10440.peach-pair-device-name {10441  font-size: 14px;10442  font-weight: 600;10443  color: var(--peach-text);10444  overflow: hidden;10445  text-overflow: ellipsis;10446  white-space: nowrap;10447}10448.peach-pair-device-meta {10449  font-size: 11.5px;10450  color: var(--peach-text-muted);10451  display: flex;10452  flex-wrap: wrap;10453  align-items: center;10454  gap: 8px;10455}10456.peach-pair-device-badge {10457  font-size: 10.5px;10458  font-weight: 500;10459  letter-spacing: 0.02em;10460  padding: 2px 6px;10461  border-radius: 999px;10462  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);10463  color: var(--peach-text);10464}10465.peach-pair-device-stale {10466  font-size: 10.5px;10467  font-weight: 500;10468  color: var(--peach-warn, #d29257);10469}10470.peach-pair-device-remove {10471  flex: 0 0 auto;10472  color: var(--peach-text-muted);10473}10474.peach-pair-device-remove:hover {10475  color: var(--peach-danger, #c25b4a);10476}10477.peach-pair-unpair-confirm {10478  display: flex;10479  gap: 6px;10480  align-items: center;10481}1048210483/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */10484.peach-pair-pro-card {10485  position: relative;10486  margin: 18px 12px;10487  padding: 18px 20px 22px;10488  border-radius: 22px;10489  background:10490    radial-gradient(140% 90% at 50% 0%,10491      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,10492      transparent 60%),10493    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);10494  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);10495  box-shadow:10496    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,10497    0 18px 40px -24px rgba(0, 0, 0, 0.45);10498  display: flex;10499  flex-direction: column;10500  align-items: center;10501  gap: 10px;10502  text-align: center;10503  overflow: hidden;10504}10505.peach-pair-pro-stage {10506  position: relative;10507  width: 220px;10508  height: 140px;10509  display: flex;10510  align-items: flex-end;10511  justify-content: center;10512  margin-bottom: 2px;10513}10514.peach-pair-pro-bird-slot {10515  width: 140px;10516  height: 132px;10517  display: flex;10518  align-items: flex-end;10519  justify-content: center;10520  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));10521}10522.peach-pair-pro-bird-slot .peach-pair-bird {10523  width: 100%;10524  height: 100%;10525}10526.peach-pair-pro-bird-slot .peach-pair-bird svg {10527  width: 100%;10528  height: 100%;10529  overflow: visible;10530}10531.peach-pair-pro-headline {10532  margin: 4px 0 0;10533  font-family: var(--font-display, "Cormorant Garamond", serif);10534  font-style: italic;10535  font-size: 19px;10536  font-weight: 500;10537  letter-spacing: 0.01em;10538  color: var(--peach-t0);10539  max-width: 280px;10540  line-height: 1.25;10541}10542.peach-pair-pro-body {10543  margin: 0;10544  font-size: 13px;10545  line-height: 1.55;10546  color: var(--peach-t1);10547  max-width: 300px;10548}10549.peach-pair-pro-cta {10550  margin-top: 4px;10551}10552.peach-pair-pro-foot {10553  margin: 2px 0 0;10554  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;10555  font-size: 0.625rem;10556  letter-spacing: 0.08em;10557  text-transform: uppercase;10558  color: var(--peach-t2);10559  opacity: 0.75;10560}1056110562/* Shell border and shadow in light mode: match dark mode's near-invisible10563   border weight so the popup frame looks the same in both themes. */10564.light .peach-shell,10565.light .peach-screen {10566  border-color: rgba(26, 18, 8, 0.07);10567  box-shadow:10568    0 2px 8px rgba(80, 56, 32, 0.08),10569    0 14px 48px rgba(80, 56, 32, 0.10),10570    0 0 0 1px rgba(26, 18, 8, 0.04);10571}1057210573/* HOLE 4: the revoke confirmation carries its own disclosure, so it needs the10574   full row width rather than sitting inline beside the device name. */10575.peach-settings-row:has(> .peach-unpair-confirm) { flex-wrap: wrap; }10576.peach-unpair-confirm {10577  display: flex;10578  flex-direction: column;10579  gap: 8px;10580  width: 100%;10581}10582.peach-unpair-confirm-note {10583  margin: 0;10584  font-size: 0.6875rem;10585  line-height: 1.5;10586  color: var(--peach-t2);10587}1058810589/* Sync mode selector — three named choices (public / private / off). Replaces10590   the old binary "local network only" toggle; see docs/sync-lan-retirement.md. */10591.peach-sync-mode {10592  display: flex;10593  align-items: flex-start;10594  gap: 10px;10595  width: 100%;10596  text-align: left;10597  padding: 10px 12px;10598  margin-top: 8px;10599  border-radius: 10px;10600  border: 1px solid var(--peach-border);10601  background: color-mix(in srgb, var(--peach-t0) 3%, transparent);10602  color: var(--peach-t1);10603  cursor: pointer;10604  transition: border-color var(--peach-dur-80) var(--peach-curve-arrival),10605              background-color var(--peach-dur-80) var(--peach-curve-arrival);10606}10607.peach-sync-mode:hover:not(:disabled) {10608  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);10609}10610.peach-sync-mode.is-active {10611  border-color: var(--peach-accent);10612  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);10613}10614.peach-sync-mode:disabled { opacity: 0.6; cursor: default; }10615.peach-sync-mode-main { display: flex; flex-direction: column; gap: 3px; flex: 1; }10616.peach-sync-mode-title { font-size: 12px; }10617.peach-sync-mode-sub {10618  font-size: 11px;10619  line-height: 1.5;10620  color: var(--peach-t2);10621}10622.peach-sync-mode-pip {10623  flex: none;10624  margin-top: 3px;10625  width: 12px; height: 12px;10626  border-radius: 50%;10627  border: 1px solid var(--peach-t3);10628}10629.peach-sync-mode.is-active .peach-sync-mode-pip {10630  border-color: var(--peach-accent);10631  background:10632    radial-gradient(circle at 50% 50%, var(--peach-accent) 0 42%, transparent 44%);10633}10634.peach-sync-mode-disclosure {10635  margin: 10px 2px 0;10636  font-size: 11px;10637  line-height: 1.5;10638  color: var(--peach-t2);10639}10640.peach-sync-mode-warn { color: var(--peach-breach); }1064110642/* Compact form, used mid-pairing: a quiet line, not a decision to make. */10643.peach-sync-mode-summary {10644  margin: 8px 2px 0;10645  font-size: 11px;10646  color: var(--peach-t2);10647  text-align: center;10648}10649.peach-sync-mode-change {10650  background: none;10651  border: none;10652  padding: 0;10653  font: inherit;10654  color: var(--peach-accent);10655  text-decoration: underline;10656  cursor: pointer;10657}