popup.css

229.9 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 0.625rem;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: var(--font-display);168  font-size: 0.9375rem;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208/* Chirp-sync owns its own surface and header — fully collapse the global209   chrome row so the warm gradient reaches the popup edge. */210.peach-chrome.is-collapsed,211.peach-search-wrap.is-collapsed {212  display: none;213}214.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }215.peach-status-pip {216  width: 5px;217  height: 5px;218  border-radius: 50%;219  background: var(--peach-t3);220  display: inline-flex;221  flex-shrink: 0;222  transition: background 400ms ease, box-shadow 400ms ease;223}224.peach-chrome-actions { display: flex; gap: 6px; }225226/* Shell body */227.peach-shell-body {228  position: relative;229  display: grid;230  grid-template-rows: 1fr auto;231  min-height: 0;232  min-width: 0;233  width: 100%;234  overflow: hidden;235  height: 100%;236}237.peach-shell-veil {238  position: absolute; inset: 0;239  background: #000; opacity: 0;240  pointer-events: none; z-index: 1;241}242.peach-shell[data-motion-phase="enter"] .peach-shell-body {243  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;244}245.peach-shell[data-motion-phase="exit"] .peach-shell-veil {246  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;247}248249/* Content frame */250.peach-content-frame {251  display: grid;252  grid-template-rows: 1fr auto;253  grid-template-columns: minmax(0, 1fr);254  align-content: start;255  min-height: 0;256  min-width: 0;257  overflow: hidden;258  transition: opacity 80ms ease, transform 80ms ease;259}260.peach-content-frame.navigating {261  opacity: 0.93;262  transform: translateX(2px);263}264.peach-content-frame[data-content-phase="enter"] {265  animation: peach-content-enter 135ms ease-out both;266}267.peach-content-frame[data-content-phase="exit"] {268  animation: peach-content-exit 95ms ease-in forwards;269}270.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }271272/* Stage */273.peach-stage {274  padding: 10px 20px 12px;275  display: grid;276  gap: 12px;277  align-content: start;278  min-width: 0;279  min-height: 0;280  max-width: 100%;281  overflow-y: auto;282  overflow-x: hidden;283  scrollbar-width: none;284  -ms-overflow-style: none;285  overscroll-behavior: contain;286}287.peach-stage::-webkit-scrollbar { display: none; }288289/* Entry name */290.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }291.peach-entry-header {292  position: relative;293  z-index: 1;294  display: flex;295  align-items: flex-start;296  gap: 6px;297  min-width: 0;298}299.peach-entry-header-name {300  flex: 1;301  min-width: 0;302}303.peach-entry-name {304  margin: 0;305  padding-bottom: 0.12em;306  font-family: var(--font-display);307  font-style: italic; font-weight: 400;308  font-size: 44px; line-height: 0.95;309  color: var(--peach-t0);310  display: -webkit-box;311  -webkit-line-clamp: 2;312  -webkit-box-orient: vertical;313  overflow: hidden;314  text-wrap: balance;315}316.peach-entry-name--lg { font-size: 40px; }317.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }318.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }319.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }320321/* Trash icon in entry header */322.peach-entry-trash-btn {323  flex-shrink: 0;324  padding: 4px;325  margin-top: 4px;326  background: transparent;327  border: none;328  cursor: pointer;329  color: var(--peach-t2);330  border-radius: 4px;331  transition: color 140ms ease, background 140ms ease;332  display: flex;333  align-items: center;334  justify-content: center;335}336.peach-entry-trash-btn:hover {337  color: var(--peach-t1);338  background: var(--peach-t3);339}340.peach-entry-trash-confirm {341  display: flex;342  align-items: center;343  gap: 6px;344  flex-shrink: 0;345  margin-top: 6px;346  flex-wrap: nowrap;347}348.peach-entry-trash-confirm-label {349  font-family: var(--font-mono);350  font-size: 0.5625rem;351  letter-spacing: 0.1em;352  color: var(--peach-t2);353  white-space: nowrap;354}355.peach-entry-name-button {356  padding: 0;357  background: transparent;358  text-align: left;359  cursor: pointer;360  max-width: 100%;361  overflow: hidden;362  display: block;363}364.peach-entry-name-char {365  display: inline-block;366  white-space: pre;367  opacity: 0;368  transform: translateY(0.22em);369  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;370  animation-delay: calc(var(--char-index, 0) * 20ms);371}372373/* Domain */374.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }375.peach-domain-row {376  width: 100%; border: 0; background: transparent; color: inherit;377  padding: 0; display: flex; justify-content: space-between; align-items: baseline;378  cursor: default;379}380.peach-domain-value {381  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;382  font-size: 0.625rem; font-style: italic;383  letter-spacing: 0.12em; color: var(--peach-t1);384}385386/* Fields */387.peach-fields { display: grid; gap: 10px; }388.peach-field-card { display: grid; gap: 7px; }389.peach-label {390  font-family: Inter, system-ui, sans-serif;391  text-transform: uppercase; letter-spacing: 0.2em;392  font-size: 0.5rem; color: var(--peach-t2);393}394.peach-add-field-btn {395  align-self: flex-start;396  background: none; border: none; padding: 2px 0;397  font-family: Inter, system-ui, sans-serif;398  font-size: 0.6875rem; color: var(--peach-accent);399  cursor: pointer; opacity: 0.75;400  letter-spacing: 0.02em;401}402.peach-add-field-btn:hover { opacity: 1; }403.peach-field-value-row {404  display: flex; justify-content: space-between;405  align-items: center; gap: 8px;406  min-width: 0;407}408.peach-field-value {409  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;410  font-size: 0.8125rem; color: var(--peach-t1);411  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;412  flex: 1;413  min-width: 0;414}415.peach-password-value {416  display: inline-flex;417  align-items: center;418  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;419  font-size: 1rem; letter-spacing: 0.3em; color: var(--peach-t0);420  overflow: hidden;421  text-overflow: ellipsis;422  white-space: nowrap;423  flex: 1;424  min-width: 0;425  max-width: 100%;426}427.peach-password-value.is-revealed {428  font-size: 0.875rem;429  letter-spacing: 0.08em;430}431.peach-password-text,432.peach-password-mask {433  display: block;434  width: 100%;435  overflow: hidden;436  white-space: nowrap;437  /* Render as uniform mid-line bullets, not baseline periods */438  font-family: Inter, system-ui, sans-serif;439  font-size: 0.625rem;440  letter-spacing: 3px;441  user-select: none;442}443.peach-field-actions { display: flex; gap: 4px; align-items: center; }444.peach-password-strength { display: flex; align-items: center; gap: 8px; }445.peach-strength-bar { display: flex; gap: 3px; }446.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }447.peach-strength-label {448  font-family: "IBM Plex Mono", monospace;449  font-style: italic;450  font-size: 0.5625rem;451  font-weight: 300;452  min-width: 36px;453  text-align: right;454  color: var(--peach-t2);455  letter-spacing: 0.06em;456}457458.peach-strength-hairline {459  display: flex;460  align-items: center;461  gap: 10px;462  margin-top: -2px;463}464465.peach-strength-hairline-track {466  flex: 1;467  height: 3px;468  border-radius: 2px;469  background: var(--peach-s2);470  overflow: hidden;471}472473.peach-strength-hairline-fill {474  height: 100%;475  border-radius: 2px;476  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),477    background 400ms ease;478}479480/* Note content (display) */481.peach-note-content {482  border-top: 1px solid var(--peach-t3);483  padding-top: 10px;484  font-family: var(--font-display);485  font-size: 0.9375rem;486  line-height: 1.75;487  color: var(--peach-t1);488}489490/* ── Inline editing ─────────────────────────────────────────────────── */491492/* Clickable display values */493.peach-inline-clickable {494  cursor: text;495  border-radius: 3px;496  transition: background 150ms ease;497}498.peach-inline-clickable:hover {499  background: rgba(240, 232, 216, 0.05);500}501502/* Subtle "edit" hint that appears on hover */503.peach-inline-edit-hint {504  font-family: Inter, system-ui, sans-serif;505  font-size: 0.5625rem;506  text-transform: uppercase;507  letter-spacing: 0.14em;508  color: var(--peach-t2);509  opacity: 0;510  transition: opacity 120ms ease;511  pointer-events: none;512  margin-left: 6px;513  flex-shrink: 0;514}515.peach-domain-row:hover .peach-inline-edit-hint {516  opacity: 1;517}518519/* Title editing */520.peach-inline-title-wrap {521  display: flex;522  flex-direction: column;523  gap: 6px;524}525.peach-inline-title-input {526  font-family: var(--font-display);527  font-style: italic;528  font-weight: 400;529  font-size: 40px;530  line-height: 0.95;531  color: var(--peach-t0);532  background: transparent;533  border: none;534  border-bottom: 1px solid var(--peach-accent);535  outline: none;536  width: 100%;537  padding: 2px 0;538}539540/* Generic inline field */541.peach-inline-field-wrap {542  display: flex;543  flex-direction: column;544  gap: 6px;545}546.peach-inline-input {547  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;548  font-size: 0.8125rem;549  color: var(--peach-t0);550  background: transparent;551  border: none;552  border-bottom: 1px solid var(--peach-accent);553  outline: none;554  width: 100%;555  padding: 3px 0;556}557.peach-inline-textarea {558  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;559  font-size: 0.6875rem;560  line-height: 1.7;561  color: var(--peach-t0);562  background: rgba(240, 232, 216, 0.04);563  border: 1px solid var(--peach-accent);564  border-radius: 4px;565  outline: none;566  width: 100%;567  padding: 8px;568  resize: vertical;569  min-height: 80px;570}571572/* Save / cancel row */573.peach-inline-actions {574  display: flex;575  gap: 6px;576  align-items: center;577}578.peach-inline-save-btn,579.peach-inline-cancel-btn {580  display: inline-flex;581  align-items: center;582  justify-content: center;583  width: 26px;584  height: 26px;585  border-radius: 4px;586  border: none;587  cursor: pointer;588  transition: background 140ms ease, opacity 140ms ease;589  flex-shrink: 0;590}591.peach-inline-save-btn {592  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);593  color: var(--peach-accent);594}595.peach-inline-save-btn:hover:not(:disabled) {596  background: color-mix(in srgb, var(--peach-accent) 30%, transparent);597}598.peach-inline-cancel-btn {599  background: rgba(240, 232, 216, 0.06);600  color: var(--peach-t2);601}602.peach-inline-cancel-btn:hover:not(:disabled) {603  background: rgba(240, 232, 216, 0.12);604  color: var(--peach-t1);605}606.peach-inline-save-btn:disabled,607.peach-inline-cancel-btn:disabled {608  opacity: 0.4;609  cursor: not-allowed;610}611612/* Inline password generator wrapper */613.peach-inline-generator-wrap {614  margin-top: 10px;615  padding-top: 10px;616  border-top: 1px solid var(--peach-t3);617  display: flex;618  flex-direction: column;619  gap: 8px;620}621.peach-inline-generator-cancel {622  align-self: flex-start;623  font-size: 0.6875rem;624  color: var(--peach-t2);625}626627/* "is-editing" card state */628.peach-field-card.is-editing {629  background: rgba(240, 232, 216, 0.02);630  border-radius: 6px;631  padding: 8px;632  margin: -8px;633}634635/* Inline tag editor on Entry detail view */636.peach-inline-tag-editor {637  display: flex;638  flex-direction: column;639  gap: 6px;640}641642/* Quiet inline "+ add X" link in the entry detail body */643.peach-entry-add-link {644  justify-self: start;645  margin-top: 8px;646}647648/* Additional URLs editor revealed by clicking the URL field */649.peach-additional-urls {650  display: flex;651  flex-direction: column;652  gap: 6px;653  margin-top: 8px;654}655.peach-additional-urls-label {656  font-size: 0.5625rem;657  letter-spacing: 0.1em;658  text-transform: uppercase;659  color: var(--peach-t2);660  margin-bottom: 2px;661}662.peach-additional-url-row {663  display: flex;664  align-items: center;665  gap: 6px;666}667.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }668.peach-additional-url-remove {669  background: transparent;670  border: 1px solid var(--peach-t3);671  color: var(--peach-t2);672  width: 22px;673  height: 22px;674  border-radius: 4px;675  cursor: pointer;676  font-size: 0.875rem;677  line-height: 1;678  display: inline-flex;679  align-items: center;680  justify-content: center;681  flex-shrink: 0;682  transition: color 120ms ease, border-color 120ms ease;683}684.peach-additional-url-remove:hover:not(:disabled) {685  color: var(--peach-accent);686  border-color: var(--peach-border-accent);687}688.peach-additional-urls-add { align-self: flex-start; }689690/* Delete row */691.peach-entry-delete-row {692  display: flex;693  align-items: center;694  gap: 8px;695  padding-top: 18px;696  margin-top: 8px;697  border-top: 1px solid var(--peach-t3);698}699.peach-delete-btn {700  font-size: 0.6875rem;701  color: var(--peach-t2);702  padding: 4px 0;703}704.peach-delete-confirm-text {705  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;706  font-size: 0.6875rem;707  font-style: italic;708  color: var(--peach-t2);709  flex-shrink: 0;710}711712/* TOTP band */713.peach-totp-band {714  border-top: 1px solid var(--peach-t3);715  padding: 12px 20px 14px;716  position: relative;717  display: grid;718  grid-template-columns: 1fr auto;719  gap: 10px;720}721.peach-totp-main {722  min-width: 0;723  cursor: pointer;724  user-select: none;725}726.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }727.peach-totp-code-row {728  display: flex;729  align-items: flex-end;730  gap: 10px;731  min-width: 0;732}733.peach-totp-code {734  margin: 2px 0 0;735  font-family: var(--font-display);736  font-style: italic;737  font-weight: 300;738  font-size: 38px; color: var(--peach-accent);739  line-height: 0.95; min-height: 1em;740  min-width: 0;741}742.peach-totp-code-text {743  display: inline-flex;744  overflow: hidden;745  text-overflow: ellipsis;746  white-space: nowrap;747}748.peach-totp-copy-btn {749  margin-bottom: 2px;750  flex-shrink: 0;751  border-color: transparent;752}753.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }754.peach-totp-countdown {755  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;756  font-size: 22px; color: var(--peach-t1);757}758.peach-totp-ring { transform: rotate(-90deg); }759.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }760.peach-totp-ring-progress {761  fill: none; stroke: var(--peach-accent); stroke-width: 2;762  stroke-linecap: round;763  transition: stroke-dashoffset 1s linear, stroke 500ms ease;764}765/* Search bar */766.peach-search-wrap {767  border-top: 1px solid var(--peach-t3);768  background: var(--peach-s1);769  min-height: 54px; position: relative;770  box-shadow: inset 0 6px 18px transparent;771  transition: box-shadow 700ms ease;772}773.peach-search-wrap::before {774  content: "";775  position: absolute;776  left: 0;777  top: 0;778  height: 2px;779  width: var(--peach-totp-progress, 0%);780  background: var(--peach-accent);781  opacity: 0;782  transition: width 1s linear, opacity 180ms ease;783  pointer-events: none;784}785.peach-shell[data-totp-active="true"] .peach-search-wrap::before {786  opacity: 0.9;787}788.peach-shell[data-totp-active="true"] .peach-search-wrap {789  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);790}791792@keyframes peach-totp-code-flare {793  0%   { filter: brightness(1); }794  25%  { filter: brightness(1.3); }795  100% { filter: brightness(1); }796}797.peach-totp-code.is-hot {798  animation: peach-totp-code-flare 3000ms ease-in-out both;799}800.peach-search-bar {801  min-height: 54px;802  display: grid;803  grid-template-columns: auto minmax(0, 1fr) auto;804  align-items: center;805  gap: 8px; padding: 0 9px 0 12px;806}807.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }808.peach-search-input {809  border: 0; background: transparent; color: var(--peach-t0);810  font-family: var(--font-display);811  font-style: italic; font-size: 18px;812  outline: none; width: 100%; min-width: 0; padding: 0;813  caret-color: var(--peach-accent);814}815.peach-search-input::placeholder { color: var(--peach-t2); }816.peach-search-meta {817  display: grid;818  grid-auto-flow: column;819  align-items: center;820  justify-content: end;821  gap: 6px;822  min-width: max-content;823}824.peach-search-counter {825  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;826  font-size: 0.625rem; color: var(--peach-t2);827  display: inline-flex;828  align-items: center;829  line-height: 1;830}831.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }832833/* Buttons */834.peach-btn {835  border: 1px solid transparent; border-radius: 12px;836  background: transparent; color: var(--peach-t0);837  font-family: Inter, system-ui, sans-serif;838  font-size: 0.75rem; letter-spacing: 0.02em; padding: 8px 12px;839  cursor: pointer;840  transition:841    background-color var(--peach-dur-80) var(--peach-curve-arrival),842    color var(--peach-dur-80) var(--peach-curve-arrival),843    border-color var(--peach-dur-150) var(--peach-curve-arrival);844}845.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }846.peach-btn:disabled {847  opacity: 0.45;848  cursor: not-allowed;849}850.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 0.6875rem; }851.peach-btn--md { min-height: 38px; }852.peach-btn--accent {853  background: var(--peach-accent);854  color: rgba(0,0,0,0.92);855  font-weight: 500;856  box-shadow:857    0 1px 0 rgba(255,255,255,0.08) inset,858    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),859    0 3px 16px var(--peach-glow),860    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);861}862.peach-btn--accent:hover:not(:disabled) {863  background: var(--peach-accent);864  filter: brightness(1.10) saturate(1.05);865  box-shadow:866    0 1px 0 rgba(255,255,255,0.10) inset,867    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),868    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),869    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);870}871.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }872.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }873.peach-icon-btn {874  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;875  display: inline-flex; align-items: center; justify-content: center;876}877878.peach-btn:focus-visible {879  outline: none;880  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);881}882883/* Lock button */884.peach-lock-icon { transform-origin: center; }885.peach-lock-btn.is-locking { color: var(--peach-accent); }886.peach-lock-btn.is-locking .peach-lock-icon {887  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);888}889890/* Biometric unlock button */891.peach-biometric-btn {892  display: flex;893  align-items: center;894  justify-content: center;895  gap: 6px;896  margin-top: 8px;897  width: 100%;898}899900/* Copy button */901.peach-copy-btn {902  position: relative; overflow: hidden;903  color: var(--peach-t2); border-color: var(--peach-t3);904}905.peach-copy-icon {906  display: inline-flex; align-items: center; justify-content: center;907  position: relative; z-index: 1;908}909.peach-copy-icon-svg { display: block; }910.peach-copy-sheen {911  position: absolute; inset: 0;912  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%);913  opacity: 0; transform: scaleX(0.15); transform-origin: left center;914}915.peach-copy-btn.is-copied {916  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;917  box-shadow:918    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),919    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),920    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);921}922.peach-copy-btn.is-copied .peach-copy-icon {923  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;924}925.peach-copy-btn.is-copied .peach-copy-sheen {926  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;927}928.peach-copy-btn.is-retreat {929  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;930}931.peach-copy-btn.is-retreat .peach-copy-sheen {932  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;933}934.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }935.peach-copy-drain-bar {936  display: block; width: 100%; height: 100%;937  background: var(--peach-accent); opacity: 0.7;938  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;939}940941/* Unlock screen elements */942.peach-unlock-headline {943  margin: 2px 0 0;944  font-family: var(--font-display);945  font-size: 52px; line-height: 0.95;946  font-style: italic; font-weight: 400;947}948.peach-subline {949  margin: 0;950  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;951  font-size: 0.625rem; color: var(--peach-t2); font-style: italic;952}953.peach-subline--lock {954  max-width: 248px;955  line-height: 1.5;956}957.peach-underline-input {958  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);959  padding: 6px 0; background: transparent; color: var(--peach-t0);960  outline: none;961  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;962  font-size: 0.8125rem;963  caret-color: var(--peach-accent);964}965.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }966.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }967.peach-hint {968  margin: 0;969  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;970  font-size: 0.625rem; color: var(--peach-t2);971}972.peach-unlock-footer {973  margin-top: 4px; display: flex; align-items: center; gap: 7px;974  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;975  font-size: 0.625rem; color: var(--peach-t2);976}977.peach-unlock-footer--lock {978  padding-top: 2px;979}980981/* Breach badge */982.peach-breach-badge {983  display: flex;984  position: relative;985  z-index: 1;986  align-items: center;987  gap: 7px;988  font-size: 0.5625rem;989  color: var(--peach-breach);990  padding: 5px 10px;991  margin-bottom: 4px;992  border-radius: 8px;993  background: rgba(220, 80, 60, 0.07);994  border: 1px solid rgba(220, 80, 60, 0.18);995  letter-spacing: 0.04em;996}997998.peach-breach-action {999  margin-left: auto;1000  font-size: 0.625rem;1001  padding: 3px 8px;1002}10031004.peach-password-value.is-breached {1005  color: rgba(220, 80, 60, 0.75);1006  border-bottom: 1px solid rgba(220, 80, 60, 0.22);1007}10081009/* ── Overlay views ─────────────────────────────────────────────────── */1010.peach-overlay-view {1011  position: absolute;1012  inset: 0;1013  display: flex;1014  flex-direction: column;1015  background:1016    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1017    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1018    var(--peach-bg);1019  z-index: 2;1020  overflow: hidden;1021  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1022}1023@keyframes overlay-in {1024  from { opacity: 0; transform: translateY(8px); }1025  to   { opacity: 1; transform: translateY(0); }1026}1027.peach-overlay-view.ov-enter-up {1028  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1029}1030.peach-overlay-view.ov-exit-up {1031  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1032}1033.peach-overlay-view.ov-enter-right {1034  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1035}1036.peach-overlay-view.ov-exit-right {1037  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1038}10391040@keyframes ov-enter-up {1041  from { opacity: 0; transform: translateY(18px); }1042  to   { opacity: 1; transform: translateY(0); }1043}1044@keyframes ov-exit-up {1045  from { opacity: 1; transform: translateY(0); }1046  to   { opacity: 0; transform: translateY(-12px); }1047}1048@keyframes ov-enter-right {1049  from { opacity: 0; transform: translateX(20px); }1050  to   { opacity: 1; transform: translateX(0); }1051}1052@keyframes ov-exit-right {1053  from { opacity: 1; transform: translateX(0); }1054  to   { opacity: 0; transform: translateX(20px); }1055}10561057/* Overlay shared header */1058.peach-overlay-header {1059  padding: 10px 12px;1060  display: flex;1061  align-items: center;1062  gap: 8px;1063  border-bottom: 1px solid var(--peach-t3);1064  flex-shrink: 0;1065}1066.peach-overlay-title {1067  font-family: "IBM Plex Mono", monospace;1068  font-size: 0.5625rem;1069  text-transform: uppercase;1070  letter-spacing: 0.18em;1071  color: var(--peach-t2);1072  flex: 1;1073  text-align: center;1074}10751076.peach-overlay-card {1077  background: var(--peach-s1);1078  border: 1px solid var(--peach-t3);1079  border-radius: 12px;1080  overflow: hidden;1081  width: 100%;1082}10831084.peach-onboarding-alt-actions {1085  display: flex;1086  flex-direction: column;1087  gap: 4px;1088  padding: 0;1089}10901091.peach-settings-copy {1092  margin: 0 0 10px;1093  font-size: 0.6875rem;1094  line-height: 1.5;1095  color: var(--peach-t2);1096}10971098.peach-settings-copy strong {1099  color: var(--peach-t0);1100}11011102.peach-settings-copy--spacious {1103  margin-bottom: 12px;1104}11051106.peach-settings-copy--result {1107  color: var(--peach-accent);1108  font-size: 0.8125rem;1109  text-align: center;1110  padding: 8px 0;1111}11121113.peach-settings-copy--danger {1114  color: var(--peach-breach);1115}11161117.peach-settings-copy--success {1118  color: var(--peach-accent);1119}11201121.peach-inline-feedback {1122  font-size: 0.6875rem;1123  margin: 10px 0 0;1124}11251126.peach-inline-feedback--ok {1127  color: var(--peach-accent);1128}11291130.peach-inline-feedback--error {1131  color: var(--peach-breach);1132}11331134.peach-inline-feedback--muted {1135  color: var(--peach-t2);1136  font-size: 0.625rem;1137  margin: 4px 0;1138}11391140.peach-inline-feedback--spaced {1141  margin-top: 12px;1142}11431144.peach-settings-actions--row {1145  display: flex;1146  gap: 6px;1147}11481149.peach-settings-actions--end {1150  margin-top: 14px;1151  justify-content: flex-end;1152}11531154.peach-settings-stack {1155  display: flex;1156  flex-direction: column;1157  gap: 6px;1158}11591160.peach-settings-stack--tight {1161  gap: 4px;1162}11631164.peach-settings-stack--spacious {1165  gap: 8px;1166}11671168.peach-settings-input {1169  width: 100%;1170  box-sizing: border-box;1171  padding: 8px 10px;1172  background: rgba(0, 0, 0, 0.22);1173  border: 1px solid transparent;1174  border-radius: 6px;1175  color: var(--peach-t0);1176  font-family: var(--font-ui);1177  font-size: 0.75rem;1178  outline: none;1179  transition: border-color 120ms ease, background 120ms ease;1180}11811182.peach-settings-input:focus {1183  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1184  background: rgba(0, 0, 0, 0.28);1185}11861187.peach-settings-input[type="password"] {1188  font-family: var(--font-mono);1189  letter-spacing: 0.04em;1190}11911192.peach-hidden-file-input {1193  display: none;1194}11951196.peach-checkbox-note {1197  display: flex;1198  align-items: flex-start;1199  gap: 8px;1200  font-size: 0.6875rem;1201  color: var(--peach-t1);1202  cursor: pointer;1203  margin: 12px 0;1204}12051206.peach-checkbox-note input {1207  margin-top: 1px;1208}12091210.peach-danger-notice {1211  background: rgba(220, 80, 60, 0.08);1212  border: 1px solid rgba(220, 80, 60, 0.2);1213  border-radius: 6px;1214  padding: 9px 11px;1215  font-size: 0.6875rem;1216  color: var(--peach-t1);1217  line-height: 1.5;1218}12191220.peach-info-notice {1221  font-size: 0.6875rem;1222  color: var(--peach-t1);1223  line-height: 1.5;1224  background: var(--surface-card);1225  border: 1px solid var(--peach-t3);1226  border-radius: 6px;1227  padding: 8px 10px;1228}12291230.peach-info-notice--warn {1231  border-color: rgba(220, 38, 38, 0.4);1232  background: rgba(220, 38, 38, 0.06);1233  color: rgba(220, 38, 38, 0.92);1234  margin-bottom: 8px;1235}12361237.peach-strength-row {1238  display: flex;1239  align-items: center;1240  gap: 8px;1241  margin-bottom: 10px;1242}12431244.peach-strength-track {1245  flex: 1;1246  height: 4px;1247  background: var(--peach-s2);1248  border-radius: 2px;1249  overflow: hidden;1250}12511252.peach-strength-fill {1253  height: 100%;1254  border-radius: 2px;1255  transition: width 120ms ease, background 120ms ease;1256}12571258/* ── Type selector tabs ── */1259.peach-type-tabs {1260  display: flex;1261  gap: 0;1262  background: var(--peach-t4);1263  border-radius: 8px;1264  padding: 3px;1265}12661267.peach-type-tab {1268  flex: 1;1269  display: flex;1270  align-items: center;1271  justify-content: center;1272  gap: 6px;1273  padding: 6px 10px;1274  border-radius: 6px;1275  border: none;1276  background: transparent;1277  cursor: pointer;1278  font-family: Inter, system-ui, sans-serif;1279  font-size: 0.6875rem;1280  font-weight: 400;1281  letter-spacing: 0.04em;1282  color: var(--peach-t1);1283  transition: background 150ms ease, color 150ms ease;1284}12851286.peach-type-tab.is-active {1287  background: var(--peach-s2);1288  color: var(--peach-t0);1289  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1290}12911292.peach-type-tab:not(.is-active):hover {1293  color: var(--peach-t0);1294}12951296.peach-type-tab svg {1297  opacity: 0.7;1298  flex-shrink: 0;1299}13001301.peach-type-tab.is-active svg {1302  opacity: 1;1303}13041305/* ── List view ───────────────────────────────────────────────────────── */1306.peach-list-top {1307  padding: 0 10px;1308  min-height: 46px;1309  display: flex;1310  align-items: center;1311  gap: 6px;1312  border-bottom: 1px solid var(--peach-t3);1313  flex-shrink: 0;1314  background: var(--peach-s1);1315}13161317.peach-vault-list {1318  flex: 1;1319  overflow-y: auto;1320  scrollbar-width: none;1321}1322.peach-vault-list::-webkit-scrollbar { display: none; }13231324/* Scrollbar — vault list */1325.peach-vault-list {1326  scrollbar-width: thin;1327  scrollbar-color: var(--peach-t3) transparent;1328}13291330.peach-vault-list::-webkit-scrollbar {1331  width: 3px;1332}13331334.peach-vault-list::-webkit-scrollbar-thumb {1335  background: var(--peach-t3);1336  border-radius: 2px;1337}13381339.peach-entry-row {1340  width: 100%;1341  display: flex;1342  align-items: center;1343  gap: 10px;1344  padding: 9px 16px;1345  background: transparent;1346  border: none;1347  border-bottom: 1px solid var(--peach-t3);1348  cursor: pointer;1349  color: inherit;1350  text-align: left;1351  transition: background 80ms ease;1352}1353.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1354.peach-entry-row:last-child { border-bottom: none; }1355.peach-entry-row.is-active {1356  box-shadow: inset 2px 0 0 var(--peach-accent);1357  background: rgba(240,232,216,0.03);1358}1359.peach-entry-row:focus-visible {1360  outline: none;1361  box-shadow: 0 0 0 1px var(--peach-border-accent);1362  background: rgba(240,232,216,0.03);1363}1364.peach-entry-row-icon {1365  width: 26px; height: 26px;1366  border-radius: 7px;1367  border: 1px solid var(--peach-t3);1368  display: flex; align-items: center; justify-content: center;1369  color: var(--peach-t2);1370  flex-shrink: 0;1371}1372.peach-entry-row-icon.is-breach {1373  border-color: rgba(220,80,60,0.3);1374  color: rgba(220,80,60,0.7);1375}13761377/* Title-initials chip used as the favicon fallback for login entries whose1378 * real favicon hasn't been cached by the browser yet (freshly-imported,1379 * never-visited domains). Background colour is hashed from the title so1380 * the same entry always shows the same chip. The chip fits the same1381 * 26×26 row icon slot the favicon would take. */1382.peach-favicon-initials {1383  display: inline-flex;1384  align-items: center;1385  justify-content: center;1386  width: 100%;1387  height: 100%;1388  border-radius: 4px;1389  font-family: "IBM Plex Mono", monospace;1390  font-size: 0.5625rem;1391  font-weight: 600;1392  letter-spacing: 0.04em;1393  color: rgba(240, 232, 216, 0.92);1394  text-transform: uppercase;1395  user-select: none;1396}1397.peach-entry-row-info { flex: 1; min-width: 0; }1398.peach-entry-row-name {1399  display: block;1400  font-family: var(--font-display);1401  font-size: 1.0625rem;1402  font-style: italic;1403  font-weight: 400;1404  color: var(--peach-t0);1405  line-height: 1.2;1406  white-space: nowrap;1407  overflow: hidden;1408  text-overflow: ellipsis;1409}1410.peach-entry-row-meta {1411  display: block;1412  font-family: "IBM Plex Mono", monospace;1413  font-size: 0.5625rem;1414  color: var(--peach-t2);1415  margin-top: 1px;1416  letter-spacing: 0.05em;1417}1418.peach-entry-row-dot {1419  width: 5px; height: 5px;1420  border-radius: 50%;1421  background: rgba(220,80,60,0.7);1422  flex-shrink: 0;1423}1424.peach-new-entry-row {1425  display: flex;1426  align-items: center;1427  justify-content: center;1428  gap: 6px;1429  width: 100%;1430  padding: 11px;1431  background: transparent;1432  border: none;1433  border-top: 1px solid var(--peach-t3);1434  color: var(--peach-t2);1435  font-family: "IBM Plex Mono", monospace;1436  font-size: 0.5625rem;1437  text-transform: uppercase;1438  letter-spacing: 0.14em;1439  cursor: pointer;1440  flex-shrink: 0;1441  transition: color 120ms ease, background 120ms ease;1442}1443.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14441445/* ── Multi-select mode ─────────────────────────────────────────────── */14461447/* Select-mode trigger button in sort bar — same shape as trash btn */1448.peach-sort-select-btn {1449  display: flex;1450  align-items: center;1451  justify-content: center;1452  padding: 3px 5px;1453  background: transparent;1454  border: none;1455  cursor: pointer;1456  color: var(--peach-t2);1457  border-radius: 4px;1458  transition: color 140ms ease, background 140ms ease;1459}1460.peach-sort-select-btn:hover {1461  color: var(--peach-t1);1462  background: var(--peach-t3);1463}14641465/* Sort bar in select mode */1466.peach-select-cancel-btn {1467  background: transparent;1468  border: none;1469  padding: 0 4px;1470  cursor: pointer;1471  font-family: "IBM Plex Mono", monospace;1472  font-size: 0.5625rem;1473  letter-spacing: 0.12em;1474  text-transform: uppercase;1475  color: var(--peach-t2);1476  transition: color 140ms ease;1477  flex-shrink: 0;1478}1479.peach-select-cancel-btn:hover { color: var(--peach-t0); }14801481.peach-select-count-label {1482  flex: 1;1483  text-align: center;1484  font-family: "IBM Plex Mono", monospace;1485  font-size: 0.5625rem;1486  letter-spacing: 0.14em;1487  text-transform: uppercase;1488  color: var(--peach-t1);1489}14901491.peach-select-all-btn {1492  background: transparent;1493  border: none;1494  padding: 0 4px;1495  cursor: pointer;1496  font-family: "IBM Plex Mono", monospace;1497  font-size: 0.5625rem;1498  letter-spacing: 0.12em;1499  text-transform: uppercase;1500  color: var(--peach-t2);1501  transition: color 140ms ease;1502  flex-shrink: 0;1503}1504.peach-select-all-btn:hover { color: var(--peach-accent); }15051506/* List in select mode */1507.peach-vault-list.is-selecting .peach-entry-row {1508  cursor: default;1509}1510.peach-vault-list.is-selecting .peach-entry-row:hover {1511  background: rgba(240,232,216,0.02);1512}1513.peach-vault-list.is-selecting .peach-entry-row.is-selected {1514  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1515}1516.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1517  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1518}15191520/* Select indicator circles in icon slot */1521.peach-entry-row-icon.is-select-icon {1522  color: var(--peach-t2);1523}1524.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1525  color: var(--peach-accent);1526}15271528/* Delete action bar at bottom (replaces new-entry row) */1529.peach-select-action-bar {1530  display: flex;1531  align-items: center;1532  justify-content: center;1533  gap: 7px;1534  width: 100%;1535  padding: 11px;1536  background: transparent;1537  border: none;1538  border-top: 1px solid var(--peach-t3);1539  color: var(--peach-t1);1540  font-family: "IBM Plex Mono", monospace;1541  font-size: 0.5625rem;1542  text-transform: uppercase;1543  letter-spacing: 0.14em;1544  cursor: pointer;1545  flex-shrink: 0;1546  transition: color 120ms ease, background 120ms ease;1547}1548.peach-select-action-bar:not(:disabled):hover {1549  color: var(--peach-t0);1550  background: rgba(220,80,60,0.06);1551}1552.peach-select-action-bar:not(:disabled):hover svg {1553  stroke: rgba(220,80,60,0.8);1554}1555.peach-select-action-bar:disabled,1556.peach-select-action-bar.is-empty {1557  color: var(--peach-t2);1558  cursor: default;1559  opacity: 0.5;1560}1561.peach-search-counter-list {1562  white-space: nowrap;1563  flex-shrink: 0;1564}1565.peach-list-empty {1566  min-height: 180px;1567  display: grid;1568  place-items: center;1569  color: var(--peach-t2);1570  font-family: "IBM Plex Mono", monospace;1571  font-size: 0.6875rem;1572}15731574/* ── Settings view ───────────────────────────────────────────────────── */1575.peach-settings-body {1576  flex: 1;1577  overflow-y: auto;1578  min-height: 0;1579  display: flex;1580  flex-direction: column;1581  padding: 2px 0 10px;1582}1583.peach-settings-group {1584  margin: 4px 10px;1585  padding: 9px 14px 11px;1586  border-radius: 12px;1587  border: 1px solid rgba(255, 255, 255, 0.07);1588  background: rgba(26, 20, 16, 0.60);1589  backdrop-filter: blur(10px) saturate(1.3);1590  -webkit-backdrop-filter: blur(10px) saturate(1.3);1591}15921593.peach-settings-group + .peach-settings-group {1594  margin-top: 6px;1595}15961597@supports not (backdrop-filter: blur(1px)) {1598  .peach-settings-group {1599    background: rgba(26, 20, 16, 0.90);1600    border-color: rgba(255, 255, 255, 0.09);1601    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1602  }1603}16041605.light .peach-settings-group,1606[data-theme="light"] .peach-settings-group {1607  background: rgba(245, 237, 226, 0.70);1608  border-color: rgba(26, 18, 8, 0.08);1609  backdrop-filter: blur(10px) saturate(1.2);1610  -webkit-backdrop-filter: blur(10px) saturate(1.2);1611}16121613@supports not (backdrop-filter: blur(1px)) {1614  .light .peach-settings-group,1615  [data-theme="light"] .peach-settings-group {1616    background: rgba(245, 237, 226, 0.97);1617    border-color: rgba(26, 18, 8, 0.10);1618  }1619}1620.peach-export-intro {1621  padding-bottom: 8px;1622}1623.peach-export-card {1624  display: grid;1625  gap: 10px;1626}1627.peach-rune-canvas {1628  border-radius: 8px;1629  background: rgba(0, 0, 0, 0.22);1630  flex: 1;1631  align-self: center;1632}1633.peach-script-input {1634  font-family: "PeachScript", monospace;1635  font-size: 0.6875rem;1636  line-height: 1.9;1637  letter-spacing: 0.06em;1638  color: var(--peach-t0);1639  background: rgba(0, 0, 0, 0.22);1640  border: none;1641  border-radius: 6px;1642  padding: 12px;1643  width: 100%;1644  min-height: 96px;1645  resize: vertical;1646  word-break: break-all;1647  scrollbar-width: none;1648  -ms-overflow-style: none;1649}16501651.peach-script-input::-webkit-scrollbar { display: none; }1652.peach-csv-warning {1653  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1654  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1655  color: var(--peach-t0);1656  border-radius: 6px;1657  padding: 10px 12px;1658  margin-bottom: 8px;1659  font-size: 0.75rem;1660  line-height: 1.45;1661}1662.peach-export-card--primary {1663  background:1664    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1665}16661667/* Export menu — distribute the three format cards across the popup. */1668.peach-export-menu {1669  display: flex;1670  flex-direction: column;1671  flex: 1;1672  min-height: 0;1673}1674.peach-export-menu .peach-settings-group {1675  flex: 1;1676  display: flex;1677  flex-direction: column;1678  justify-content: center;1679  gap: 10px;1680}16811682/* Result view — the script-string fills the remaining vertical surface. */1683.peach-export-result-group {1684  flex: 1;1685  display: flex;1686  flex-direction: column;1687  min-height: 0;1688  border-bottom: none;1689}1690.peach-export-result-group .peach-export-card {1691  flex: 1;1692  min-height: 0;1693  display: flex;1694  flex-direction: column;1695  gap: 10px;1696}1697.peach-export-result-group .peach-export-card-copy {1698  flex-shrink: 0;1699}1700.peach-export-result-group .peach-settings-label {1701  flex-shrink: 0;1702}1703.peach-export-result-group button {1704  flex-shrink: 0;1705}1706.peach-export-card-head {1707  display: flex;1708  align-items: center;1709  justify-content: space-between;1710  gap: 10px;1711}1712.peach-export-card-copy {1713  margin: 0;1714  font-size: 0.75rem;1715  line-height: 1.55;1716  color: var(--peach-t1);1717}1718.peach-export-note {1719  margin: 0;1720  font-size: 0.625rem;1721  line-height: 1.5;1722  color: var(--peach-t2);1723}1724.peach-export-strength-track {1725  height: 3px;1726  background: var(--peach-border);1727  border-radius: 2px;1728  margin: 4px 0 2px;1729  overflow: hidden;1730}1731.peach-export-strength-fill {1732  height: 100%;1733  border-radius: 2px;1734  transition: width 250ms ease, background 250ms ease;1735}1736.peach-export-strength-warn {1737  margin: 0;1738  font-size: 0.625rem;1739  line-height: 1.5;1740  color: #e84040;1741  font-family: "IBM Plex Mono", monospace;1742}1743.peach-export-strength-hint {1744  margin: 0;1745  font-size: 0.625rem;1746  line-height: 1.5;1747  color: var(--peach-t2);1748  font-family: "IBM Plex Mono", monospace;1749}1750.peach-export-pill {1751  display: inline-flex;1752  align-items: center;1753  padding: 4px 8px;1754  border-radius: 999px;1755  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1756  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1757  color: var(--peach-accent);1758  font-family: "IBM Plex Mono", monospace;1759  font-size: 0.5rem;1760  letter-spacing: 0.12em;1761  text-transform: uppercase;1762  white-space: nowrap;1763}1764.peach-export-pill--danger {1765  border-color: rgba(220,80,60,0.22);1766  background: rgba(220,80,60,0.08);1767  color: var(--peach-breach);1768}1769.peach-settings-label {1770  margin: 0 0 6px;1771  font-family: "IBM Plex Mono", monospace;1772  font-size: 0.5rem;1773  text-transform: uppercase;1774  letter-spacing: 0.18em;1775  color: var(--peach-t2);1776}1777.peach-settings-row {1778  display: flex;1779  align-items: center;1780  justify-content: space-between;1781  gap: 12px;1782  min-height: 34px;1783  padding: 6px 0;1784  font-size: 0.8125rem;1785  color: var(--peach-t1);1786}1787.peach-settings-row--meta { color: var(--peach-t2); font-size: 0.75rem; }1788.peach-settings-value {1789  font-family: "IBM Plex Mono", monospace;1790  font-size: 0.625rem;1791  color: var(--peach-t2);1792}17931794.peach-settings-value--status {1795  display: flex;1796  align-items: center;1797  gap: 6px;1798}17991800.peach-settings-link {1801  font-family: "IBM Plex Mono", monospace;1802  font-size: 0.625rem;1803  color: var(--peach-accent);1804  text-decoration: none;1805  cursor: pointer;1806}1807.peach-settings-link:hover {1808  text-decoration: underline;1809}18101811.peach-settings-row--stack {1812  flex-direction: column;1813  align-items: stretch;1814  gap: 6px;1815}18161817.peach-settings-row--top {1818  align-items: flex-start;1819}18201821.peach-settings-row-main {1822  display: flex;1823  flex-direction: column;1824  gap: 4px;1825  flex: 1;1826}1827.peach-toggle {1828  width: 28px; height: 16px;1829  border-radius: 999px;1830  background: var(--peach-t3);1831  border: 1px solid var(--peach-t3);1832  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1833  flex-shrink: 0;1834  transition: background 200ms ease, border-color 200ms ease;1835  cursor: pointer;1836}1837.peach-toggle.is-on {1838  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1839  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1840}1841.peach-toggle-knob {1842  width: 10px; height: 10px;1843  border-radius: 50%;1844  background: var(--peach-t2);1845  flex-shrink: 0;1846  transform: translateX(0px);1847  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1848}1849.peach-toggle.is-on .peach-toggle-knob {1850  background: var(--peach-accent);1851  transform: translateX(12px);1852}1853.peach-settings-footer {1854  display: flex;1855  align-items: center;1856  gap: 8px;1857  margin-top: auto;1858  padding: 14px 16px 8px;1859  font-family: "IBM Plex Mono", monospace;1860  font-size: 0.5625rem;1861  color: var(--peach-t2);1862}18631864/* ── Settings home navigation ──────────────────────────────────────────── */1865.peach-settings-nav-label {1866  margin: 0 0 2px;1867  padding: 12px 16px 4px;1868  font-family: "IBM Plex Mono", monospace;1869  font-size: 0.5rem;1870  text-transform: uppercase;1871  letter-spacing: 0.18em;1872  color: var(--peach-t2);1873}18741875.peach-settings-cat-row {1876  display: flex;1877  align-items: center;1878  gap: 10px;1879  width: 100%;1880  padding: 9px 16px;1881  background: none;1882  border: none;1883  border-bottom: 1px solid var(--peach-t3);1884  cursor: pointer;1885  text-align: left;1886  color: inherit;1887  transition: background var(--peach-dur-80) ease;1888}1889.peach-settings-cat-row:hover {1890  background: var(--peach-t3);1891}1892.peach-settings-cat-row:last-child {1893  border-bottom: none;1894}18951896.peach-settings-cat-icon {1897  width: 28px;1898  height: 28px;1899  border-radius: 7px;1900  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1901  color: var(--peach-accent);1902  display: flex;1903  align-items: center;1904  justify-content: center;1905  flex-shrink: 0;1906}1907/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1908   Darken the icon stroke to ink and bump the bg tint so the icon reads1909   sharply while the cell still feels accent-tinted. */1910.light .peach-settings-cat-icon {1911  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1912  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1913}19141915.peach-settings-cat-content {1916  flex: 1;1917  display: flex;1918  flex-direction: column;1919  gap: 2px;1920  min-width: 0;1921}19221923.peach-settings-cat-name {1924  font-size: 0.8125rem;1925  font-weight: 450;1926  color: var(--peach-t0);1927  line-height: 1.2;1928}19291930.peach-settings-cat-desc {1931  font-size: 0.625rem;1932  color: var(--peach-t2);1933  line-height: 1.3;1934  white-space: nowrap;1935  overflow: hidden;1936  text-overflow: ellipsis;1937}19381939.peach-settings-cat-chevron {1940  color: var(--peach-t2);1941  flex-shrink: 0;1942  opacity: 0.5;1943}19441945/* ── Settings sub-view section labels ──────────────────────────────────── */1946.peach-settings-sub-label {1947  margin: 12px 0 4px;1948  font-family: "IBM Plex Mono", monospace;1949  font-size: 0.5rem;1950  text-transform: uppercase;1951  letter-spacing: 0.18em;1952  color: var(--peach-t2);1953}1954.peach-settings-sub-label:first-child {1955  margin-top: 4px;1956}19571958/* ── Settings: collapsible Advanced section ─────────────────────────────── */1959.peach-settings-advanced-toggle {1960  display: flex;1961  align-items: center;1962  justify-content: space-between;1963  width: 100%;1964  background: none;1965  border: none;1966  cursor: pointer;1967  padding: 12px 0 4px;1968  margin: 0;1969  color: inherit;1970}1971.peach-settings-advanced-toggle:hover .peach-settings-advanced-chevron {1972  color: var(--peach-t1);1973}1974.peach-settings-advanced-chevron {1975  font-size: 0.5625rem;1976  color: var(--peach-t3);1977  letter-spacing: 0;1978  transition: color 120ms ease;1979}19801981/* ── Feedback form ──────────────────────────────────────────────────────── */1982.peach-feedback-group {1983  flex: 1;1984  display: flex;1985  flex-direction: column;1986  border-bottom: none;1987}19881989.peach-feedback-intro {1990  margin: 4px 0 14px;1991  font-size: 0.75rem;1992  line-height: 1.55;1993  color: var(--peach-t1);1994}19951996.peach-feedback-chips {1997  display: flex;1998  flex-wrap: wrap;1999  gap: 6px;2000  margin-bottom: 14px;2001}20022003.peach-feedback-chip {2004  padding: 4px 10px;2005  border-radius: 999px;2006  border: 1px solid var(--peach-t3);2007  background: none;2008  color: var(--peach-t2);2009  font-size: 0.6875rem;2010  font-family: var(--font-ui);2011  cursor: pointer;2012  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,2013    background var(--peach-dur-80) ease;2014}2015.peach-feedback-chip:hover {2016  border-color: var(--peach-t2);2017  color: var(--peach-t1);2018}2019.peach-feedback-chip.is-active {2020  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2021  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2022  color: var(--peach-accent);2023}20242025.peach-feedback-textarea {2026  flex: 1;2027  width: 100%;2028  min-height: 120px;2029  box-sizing: border-box;2030  background: rgba(0, 0, 0, 0.22);2031  border: 1px solid transparent;2032  border-radius: 6px;2033  color: var(--peach-t0);2034  font-size: 0.75rem;2035  font-family: var(--font-ui);2036  line-height: 1.5;2037  padding: 8px 10px;2038  resize: none;2039  outline: none;2040  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;2041}2042.peach-feedback-textarea:focus {2043  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);2044  background: rgba(0, 0, 0, 0.28);2045}2046.peach-feedback-textarea:focus {2047  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2048}2049.peach-feedback-textarea::placeholder {2050  color: var(--peach-t2);2051}20522053.peach-feedback-meta {2054  margin: 6px 0 0;2055  font-size: 0.625rem;2056  color: var(--peach-t2);2057  font-family: "IBM Plex Mono", monospace;2058}20592060.peach-feedback-result {2061  margin: 8px 0 0;2062  font-size: 0.6875rem;2063  font-family: "IBM Plex Mono", monospace;2064}2065.peach-feedback-result--ok { color: var(--peach-sync-ok); }2066.peach-feedback-result--err { color: var(--peach-breach); }20672068.peach-feedback-submit {2069  width: 100%;2070  margin-top: 12px;2071  justify-content: center;2072}20732074.peach-feedback-anon {2075  margin: 8px 0 0;2076  font-size: 0.625rem;2077  color: var(--peach-t2);2078  text-align: center;2079}20802081.peach-passkey-badge {2082  margin-left: 8px;2083  font-size: 0.625rem;2084  letter-spacing: 0.06em;2085  text-transform: uppercase;2086  color: var(--peach-t2);2087  font-family: var(--font-ui);2088  vertical-align: middle;2089}20902091.peach-passkey-delete-btn {2092  color: var(--peach-breach);2093  border-color: rgba(229, 85, 85, 0.25);2094}20952096.peach-passkey-delete-confirm {2097  display: flex;2098  align-items: center;2099  gap: 8px;2100  padding: 8px 10px;2101  background: rgba(229, 85, 85, 0.06);2102  border: 1px solid rgba(229, 85, 85, 0.2);2103  border-radius: 6px;2104}21052106.peach-passkey-delete-confirm-copy {2107  flex: 1;2108  font-size: 0.6875rem;2109  color: var(--peach-t1);2110}21112112.peach-passkey-delete-btn--confirm {2113  color: var(--peach-breach);2114  border-color: rgba(229, 85, 85, 0.4);2115}21162117.peach-passkey-activity {2118  flex-direction: column;2119  align-items: flex-start;2120  gap: 4px;2121}21222123.peach-passkey-meta {2124  font-size: 0.6875rem;2125  color: var(--peach-t2);2126}21272128.peach-passkey-actions {2129  position: relative;2130  z-index: 1;2131  margin-top: 14px;2132  display: flex;2133  flex-direction: column;2134  gap: 8px;2135}21362137.peach-passkey-approval {2138  display: flex;2139  flex-direction: column;2140  align-items: center;2141  padding: 16px 20px 14px;2142  gap: 8px;2143  text-align: center;2144}21452146.peach-passkey-approval-icon {2147  width: 36px;2148  height: 36px;2149  border-radius: 10px;2150  background: var(--peach-s2);2151  border: 1px solid var(--peach-t3);2152  display: flex;2153  align-items: center;2154  justify-content: center;2155  flex-shrink: 0;2156  color: var(--peach-accent);2157}21582159.peach-passkey-approval-icon img,2160.peach-passkey-approval-icon svg {2161  width: 22px;2162  height: 22px;2163  border-radius: 5px;2164}21652166.peach-passkey-approval-rp {2167  font-family: var(--font-ui);2168  font-size: 0.75rem;2169  color: var(--peach-t2);2170  letter-spacing: 0.03em;2171}21722173.peach-passkey-approval-action {2174  font-family: var(--font-display);2175  font-style: italic;2176  font-weight: 300;2177  font-size: 18px;2178  color: var(--peach-t0);2179  line-height: 1.1;2180  margin: 1px 0;2181}21822183.peach-passkey-approval-user {2184  font-family: var(--font-mono);2185  font-size: 0.6875rem;2186  color: var(--peach-t1);2187  background: var(--peach-s2);2188  border: 1px solid var(--peach-t3);2189  border-radius: 4px;2190  padding: 3px 8px;2191}21922193.peach-passkey-approval-notice {2194  font-size: 0.625rem;2195  color: var(--peach-t2);2196  line-height: 1.5;2197  max-width: 220px;2198}21992200.peach-passkey-approval-actions {2201  display: flex;2202  gap: 8px;2203  width: 100%;2204  margin-top: 6px;2205}22062207.peach-passkey-approval-actions .peach-btn {2208  flex: 1;2209}22102211/* ── Inline generator drawer ── */2212.peach-generator-drawer {2213  display: grid;2214  grid-template-rows: 0fr;2215  transition: grid-template-rows 320ms var(--peach-curve-arrival);2216  overflow: hidden;2217}2218.peach-generator-drawer.is-open {2219  grid-template-rows: 1fr;2220}2221.peach-generator-drawer-inner {2222  min-height: 0;2223  overflow: hidden;2224}2225.peach-generator-drawer-content {2226  border-top: 1px solid var(--peach-t3);2227  padding: 8px 0 4px;2228  display: flex;2229  flex-direction: column;2230  gap: 8px;2231}22322233/* ── Compact generator (inside entry edit) ── */2234.peach-generator-drawer-content--compact {2235  border-top: 1px solid var(--peach-t3);2236  padding: 8px 0 2px;2237  gap: 7px;2238}2239.peach-pwgen-compact-display-row {2240  display: flex;2241  align-items: center;2242  gap: 6px;2243}2244.peach-pwgen-compact-output {2245  flex: 1;2246  min-width: 0;2247  font-family: "IBM Plex Mono", monospace;2248  font-size: 0.6875rem;2249  font-weight: 400;2250  letter-spacing: 0.04em;2251  color: var(--peach-t0);2252  background: rgba(240, 232, 216, 0.04);2253  border: 1px solid var(--peach-t3);2254  border-radius: 5px;2255  padding: 5px 8px;2256  line-height: 1.5;2257  outline: none;2258  transition: border-color 120ms ease;2259}22602261.peach-pwgen-compact-output:focus {2262  border-color: var(--peach-t1);2263}2264.peach-pwgen-compact-controls {2265  display: flex;2266  align-items: center;2267  gap: 6px;2268}2269.peach-pwgen-compact-slider {2270  flex: 1;2271  min-width: 0;2272  height: 2px !important;2273}2274.peach-pwgen-compact-controls .peach-pwgen-len-num {2275  flex-shrink: 0;2276  min-width: 18px;2277  text-align: right;2278}2279.peach-pwgen-compact-pills {2280  display: flex;2281  gap: 3px;2282  flex-shrink: 0;2283}2284.peach-pwgen-compact-pills .peach-pwgen-pill {2285  padding: 2px 7px;2286  font-size: 0.5rem;2287}2288.peach-pwgen-compact-use {2289  flex-shrink: 0;2290  font-size: 0.625rem !important;2291  padding: 3px 9px !important;2292  min-height: 22px !important;2293  border-radius: 5px !important;2294}22952296/* ── Password edit row (input + eye toggle side-by-side) ── */2297.peach-password-edit-row {2298  display: flex;2299  align-items: center;2300  gap: 6px;2301}2302.peach-password-edit-row .peach-inline-input {2303  flex: 1;2304  min-width: 0;2305}23062307/* ── Generate toggle link ── */2308.peach-generate-toggle-link {2309  display: inline-flex;2310  align-items: center;2311  gap: 5px;2312  background: none;2313  border: none;2314  padding: 0;2315  cursor: pointer;2316  font-family: "IBM Plex Mono", monospace;2317  font-size: 0.625rem;2318  color: var(--peach-t2);2319  letter-spacing: 0.04em;2320  transition: color 120ms ease;2321  align-self: flex-start;2322}2323.peach-generate-toggle-link:hover {2324  color: var(--peach-accent);2325}23262327/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2328.peach-entry-body {2329  flex: 1;2330  overflow-y: auto;2331  overflow-x: hidden;2332  scrollbar-width: none;2333  -ms-overflow-style: none;2334  overscroll-behavior: contain;2335  display: grid;2336  gap: 10px;2337  align-content: start;2338  padding: 10px 20px 14px;2339  min-width: 0;2340  min-height: 0;2341}2342.peach-entry-body::-webkit-scrollbar { display: none; }23432344/* Type-toggle pills + inline note toolbar */2345.peach-new-type-row {2346  display: flex;2347  align-items: center;2348  gap: 6px;2349  margin-bottom: 2px;2350}2351.peach-new-type-btn {2352  background: transparent;2353  border: 1px solid var(--peach-t3);2354  border-radius: 12px;2355  padding: 3px 10px;2356  font-family: "IBM Plex Mono", monospace;2357  font-size: 0.5625rem;2358  letter-spacing: 0.12em;2359  text-transform: uppercase;2360  color: var(--peach-t2);2361  cursor: pointer;2362  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2363}2364.peach-new-type-btn.is-active {2365  color: var(--peach-t0);2366  border-color: var(--peach-accent);2367  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2368}2369.peach-new-type-btn:not(.is-active):hover {2370  color: var(--peach-t1);2371  border-color: var(--peach-t2);2372}23732374/* Editable title */2375.peach-new-title-wrap { margin: 0 0 2px; }2376.peach-new-title-input {2377  background: transparent;2378  border: none;2379  outline: none;2380  width: 100%;2381  color: var(--peach-t0);2382  font-family: var(--font-display);2383  font-style: italic;2384  font-weight: 400;2385  font-size: 40px;2386  line-height: 0.95;2387  caret-color: var(--peach-accent);2388}2389.peach-new-title-input::placeholder { color: var(--peach-t2); }23902391/* Editable domain field */2392.peach-domain-edit-row {2393  display: flex;2394  align-items: center;2395  gap: 6px;2396}23972398.peach-domain-edit-row .peach-domain-value--edit {2399  flex: 1;2400  width: 0;2401}24022403.peach-domain-url-btn {2404  flex-shrink: 0;2405  background: transparent;2406  border: none;2407  cursor: pointer;2408  color: var(--peach-t3);2409  padding: 2px 3px;2410  display: flex;2411  align-items: center;2412  line-height: 0;2413  border-radius: 3px;2414  transition: color 120ms ease;2415}24162417.peach-domain-url-btn:hover {2418  color: var(--peach-accent);2419}24202421.peach-domain-value--edit {2422  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2423  font-size: 0.625rem;2424  font-style: italic;2425  letter-spacing: 0.12em;2426  color: var(--peach-t1);2427  background: transparent;2428  border: none;2429  border-bottom: 1px solid var(--peach-t3);2430  outline: none;2431  width: 100%;2432  padding: 2px 0;2433  caret-color: var(--peach-accent);2434  transition: border-color 140ms ease, color 140ms ease;2435}2436.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2437.peach-domain-value--edit:focus {2438  border-bottom-color: rgba(240, 232, 216, 0.28);2439  color: var(--peach-t0);2440}24412442/* Editable field values (username, password, totp) */2443.peach-field-value--edit {2444  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2445  font-size: 0.8125rem;2446  color: var(--peach-t0);2447  background: transparent;2448  border: none;2449  border-bottom: 1px solid var(--peach-t3);2450  outline: none;2451  flex: 1;2452  min-width: 0;2453  padding: 3px 0;2454  caret-color: var(--peach-accent);2455  transition: border-color 140ms ease, color 140ms ease;2456}2457.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2458.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2459.peach-field-value--edit:focus {2460  border-bottom-color: rgba(240, 232, 216, 0.28);2461  color: var(--peach-t0);2462}24632464/* "+ add optional field" links */2465.peach-entry-add-links {2466  display: flex;2467  gap: 12px;2468  flex-wrap: wrap;2469  margin-top: -2px;2470}2471.peach-add-field-link {2472  background: transparent;2473  border: none;2474  padding: 0;2475  cursor: pointer;2476  font-family: "IBM Plex Mono", monospace;2477  font-size: 0.5625rem;2478  letter-spacing: 0.1em;2479  text-transform: uppercase;2480  color: var(--peach-t2);2481  transition: color 140ms ease;2482}2483.peach-add-field-link:hover { color: var(--peach-accent); }24842485/* ── New entry form (legacy classes) ────────────────────────────────── */2486.peach-new-body {2487  flex: 1;2488  overflow-y: auto;2489  padding: 10px 20px 14px;2490}2491.peach-new-name-input {2492  background: transparent;2493  border: none;2494  outline: none;2495  width: 100%;2496  color: var(--peach-t0);2497  font-family: var(--font-display);2498  font-style: italic;2499  font-weight: 400;2500  font-size: 40px;2501  line-height: 0.95;2502  caret-color: var(--peach-accent);2503}2504.peach-new-name-input::placeholder { color: var(--peach-t2); }2505.peach-new-field-input {2506  background: transparent;2507  border: none;2508  outline: none;2509  flex: 1;2510  min-width: 0;2511  caret-color: var(--peach-accent);2512}2513.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }25142515/* ── Canary card ── */2516.peach-canary-card {2517  border: 1px solid rgba(217, 160, 48, 0.2);2518  background: rgba(217, 160, 48, 0.03);2519  border-radius: 8px;2520  padding: 12px;2521}25222523.peach-canary-settings-header {2524  display: flex;2525  align-items: center;2526  justify-content: space-between;2527  cursor: pointer;2528  user-select: none;2529}25302531.peach-canary-card .peach-label {2532  color: rgba(217, 160, 48, 0.85);2533}25342535.peach-canary-card .peach-new-field-input {2536  border-color: rgba(217, 160, 48, 0.25);2537}25382539.peach-canary-card .peach-new-field-input:focus {2540  border-color: rgba(217, 160, 48, 0.5);2541}25422543.peach-canary-body {2544  margin-top: 12px;2545  display: flex;2546  flex-direction: column;2547  gap: 10px;2548}25492550.peach-canary-explainer {2551  display: flex;2552  gap: 10px;2553  padding: 10px 12px;2554  border-radius: 10px;2555  background: rgba(217, 160, 48, 0.06);2556  border: 1px solid rgba(217, 160, 48, 0.22);2557  margin-bottom: 4px;2558}25592560.peach-canary-explainer-icon {2561  font-size: 1rem;2562  flex-shrink: 0;2563  line-height: 1.2;2564}25652566.peach-canary-explainer-title {2567  font-family: var(--font-ui);2568  font-size: 0.6875rem;2569  font-weight: 500;2570  color: rgba(217, 160, 48, 0.9);2571  margin: 0 0 3px;2572}25732574.peach-canary-explainer-copy {2575  font-family: var(--font-ui);2576  font-size: 0.625rem;2577  color: var(--peach-t2);2578  line-height: 1.55;2579  margin: 0;2580}25812582.peach-canary-hint {2583  font-size: 0.625rem;2584  color: var(--peach-t2);2585  font-family: Inter, system-ui, sans-serif;2586  line-height: 1.5;2587  margin-top: 4px;2588}25892590.peach-canary-actions-row {2591  display: flex;2592  align-items: center;2593  gap: 8px;2594}25952596.peach-canary-test-btn {2597  border-color: rgba(217, 160, 48, 0.3);2598  color: rgba(217, 160, 48, 0.85);2599}26002601.peach-canary-test-result {2602  font-size: 0.625rem;2603  font-family: Inter, system-ui, sans-serif;2604}26052606.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2607.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }26082609.peach-canary-badge {2610  display: flex;2611  position: relative;2612  z-index: 1;2613  align-items: center;2614  gap: 5px;2615  padding: 4px 10px;2616  background: rgba(217, 160, 48, 0.12);2617  border: 1px solid rgba(217, 160, 48, 0.35);2618  border-radius: 6px;2619  margin-bottom: 6px;2620  width: fit-content;2621}26222623.peach-canary-badge-label {2624  font-size: 0.625rem;2625  letter-spacing: 0.06em;2626  color: rgba(217, 160, 48, 0.9);2627  font-family: var(--font-ui);2628  text-transform: uppercase;2629}26302631.peach-canary-badge-icon {2632  font-size: 0.6875rem;2633}26342635.peach-canary-suppress-row {2636  display: flex;2637  align-items: center;2638  gap: 8px;2639  padding: 6px 10px;2640  background: rgba(217, 160, 48, 0.08);2641  border-radius: 6px;2642  margin-bottom: 8px;2643}26442645.peach-canary-suppress-label {2646  font-size: 0.6875rem;2647  color: rgba(217, 160, 48, 0.85);2648  cursor: pointer;2649  font-family: var(--font-ui);2650  letter-spacing: 0.04em;2651}26522653.peach-regen-panel {2654  position: relative;2655  z-index: 1;2656  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2657  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2658  border-radius: 8px;2659  padding: 12px;2660  margin-bottom: 8px;2661}26622663.peach-regen-panel-header {2664  display: flex;2665  align-items: center;2666  justify-content: space-between;2667  margin-bottom: 10px;2668}26692670.peach-regen-panel-title {2671  font-size: 0.6875rem;2672  font-weight: 600;2673  letter-spacing: 0.06em;2674  text-transform: uppercase;2675  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2676}26772678.peach-regen-output {2679  background: rgba(0, 0, 0, 0.2);2680  border-radius: 6px;2681  padding: 10px;2682  margin-bottom: 10px;2683  font-family: var(--font-mono);2684  font-size: 0.8125rem;2685  word-break: break-all;2686  color: var(--peach-t1);2687}26882689.peach-regen-actions {2690  display: flex;2691  gap: 6px;2692}26932694.peach-regen-actions--spaced {2695  margin-bottom: 8px;2696}26972698.peach-regen-action-grow {2699  flex: 1;2700}27012702.peach-regen-copy-btn {2703  padding: 0 8px;2704}27052706.peach-regen-success {2707  position: relative;2708  z-index: 1;2709  background: rgba(40, 180, 80, 0.1);2710  border: 1px solid rgba(40, 180, 80, 0.3);2711  border-radius: 8px;2712  padding: 10px 12px;2713  margin-bottom: 8px;2714  display: flex;2715  align-items: center;2716  gap: 8px;2717  font-size: 0.6875rem;2718  color: rgba(40, 180, 80, 0.9);2719}27202721/* ── Note editor overlay ── */2722.peach-note-editor {2723  position: absolute;2724  inset: 0;2725  z-index: 200;2726  display: flex;2727  flex-direction: column;2728  background:2729    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2730    var(--peach-bg);2731  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2732}27332734.peach-note-editor-header {2735  display: flex;2736  align-items: center;2737  gap: 10px;2738  padding: 14px 16px 10px;2739  border-bottom: 1px solid var(--peach-t3);2740  flex-shrink: 0;2741}27422743.peach-note-editor-back {2744  background: transparent;2745  border: none;2746  cursor: pointer;2747  color: var(--peach-t2);2748  padding: 4px 6px;2749  border-radius: 6px;2750  display: flex;2751  align-items: center;2752  transition: color 120ms ease, background 120ms ease;2753  flex-shrink: 0;2754}2755.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }27562757.peach-note-editor-label {2758  flex: 1;2759  font-family: var(--font-display);2760  font-style: italic;2761  font-size: 0.9375rem;2762  color: var(--peach-t1);2763  letter-spacing: 0.02em;2764}27652766.peach-note-editor-save-btn {2767  background: transparent;2768  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2769  border-radius: 8px;2770  color: var(--peach-accent);2771  font-family: "IBM Plex Mono", monospace;2772  font-size: 0.625rem;2773  letter-spacing: 0.06em;2774  text-transform: uppercase;2775  padding: 3px 10px;2776  cursor: pointer;2777  transition: background 120ms ease, border-color 120ms ease;2778}2779.peach-note-editor-save-btn:hover:not(:disabled) {2780  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2781  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2782}2783.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }27842785.peach-note-toolbar {2786  display: flex;2787  align-items: center;2788  gap: 3px;2789  padding: 6px 14px 5px;2790  border-bottom: 1px solid var(--peach-t3);2791  flex-shrink: 0;2792}27932794.peach-note-tool-btn {2795  background: transparent;2796  border: 1px solid transparent;2797  border-radius: 5px;2798  color: var(--peach-t2);2799  font-family: "IBM Plex Mono", monospace;2800  font-size: 0.625rem;2801  letter-spacing: 0.04em;2802  padding: 2px 8px;2803  cursor: pointer;2804  line-height: 1.6;2805  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2806}2807.peach-note-tool-btn:hover {2808  background: var(--peach-t4);2809  color: var(--peach-t0);2810  border-color: var(--peach-t3);2811}28122813.peach-note-tool-icon {2814  padding: 3px 7px;2815  display: inline-flex;2816  align-items: center;2817  justify-content: center;2818}28192820.peach-note-tool-divider {2821  width: 1px;2822  height: 14px;2823  background: var(--peach-t3);2824  margin: 0 4px;2825  flex-shrink: 0;2826}28272828.peach-note-editor-body {2829  flex: 1;2830  overflow-y: auto;2831  padding: 16px 20px 20px;2832  outline: none;2833  font-family: var(--font-display);2834  font-size: 1rem;2835  line-height: 1.75;2836  color: var(--peach-t0);2837  scrollbar-width: none;2838  word-break: break-word;2839}2840.peach-note-editor-body:empty::before {2841  content: "write your note…";2842  color: var(--peach-t3);2843  font-style: italic;2844  pointer-events: none;2845}28462847/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2848.peach-note-editor-inline {2849  display: flex;2850  flex-direction: column;2851  flex: 1;2852  min-height: 0;2853}2854.peach-note-editor-body--inline {2855  flex: 1;2856  min-height: 0;2857  font-size: 0.9375rem;2858  padding: 10px 20px 14px;2859}28602861/* Full-width toolbar row inside the body (Add.tsx note type).2862   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2863.peach-note-toolbar-body {2864  display: flex;2865  align-items: center;2866  gap: 3px;2867  padding: 5px 20px 4px;2868  margin: 2px -20px 0;2869  border-bottom: 1px solid var(--peach-t3);2870  flex-shrink: 0;2871}28722873/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2874   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2875   and .peach-note-tool-divider button-level styles. */2876.peach-note-toolbar-inline {2877  display: flex;2878  align-items: center;2879  gap: 3px;2880  margin-left: auto;2881  padding-left: 10px;2882  border-left: 1px solid var(--peach-t3);2883  min-height: 22px;2884}28852886/* Entry.tsx toolbar row (no tabs, toolbar only) */2887.peach-entry-note-toolbar-row {2888  display: flex;2889  align-items: center;2890  margin: 4px 0 6px;2891  position: relative;2892  z-index: 1;2893}2894.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2895  border-left: none;2896  padding-left: 0;2897  margin-left: 0;2898}28992900/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2901.peach-note-body {2902  display: flex;2903  flex-direction: column;2904  flex: 1;2905  min-height: 0;2906  margin: 4px 0 0;2907}2908.peach-entry-body--new .peach-note-body {2909  margin: 8px -20px 0;2910}29112912/* Add.tsx body is a grid by default; swap to a flex column when a note is2913   active so the note body can stretch and pin the tags row to the bottom. */2914.peach-entry-body--new:has(.peach-note-body) {2915  display: flex;2916  flex-direction: column;2917}29182919/* Rich content element styles (editor + display) */2920.peach-note-editor-body h2,2921.peach-note-content h2 {2922  font-family: var(--font-display);2923  font-size: 20px;2924  font-weight: 600;2925  font-style: italic;2926  color: var(--peach-t0);2927  margin: 6px 0 2px;2928  line-height: 1.3;2929}2930.peach-note-editor-body ul,2931.peach-note-content ul {2932  padding-left: 18px;2933  margin: 3px 0;2934  list-style: disc;2935}2936.peach-note-editor-body ol,2937.peach-note-content ol {2938  padding-left: 18px;2939  margin: 3px 0;2940  list-style: decimal;2941}2942.peach-note-editor-body li,2943.peach-note-content li { margin: 2px 0; }2944.peach-note-editor-body hr,2945.peach-note-content hr {2946  border: none;2947  border-top: 1px solid var(--peach-t3);2948  margin: 10px 0;2949}29502951/* font size elements from execCommand */2952.peach-note-editor-body font[size="1"],2953.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }2954.peach-note-editor-body font[size="2"],2955.peach-note-content font[size="2"] { font-size: 0.8125rem; }2956.peach-note-editor-body font[size="3"],2957.peach-note-content font[size="3"] { font-size: 1rem; }2958.peach-note-editor-body font[size="4"],2959.peach-note-content font[size="4"] { font-size: 20px; }2960.peach-note-editor-body font[size="5"],2961.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }29622963/* bold / italic inside the editor and note display */2964.peach-note-editor-body b, .peach-note-editor-body strong,2965.peach-note-content b, .peach-note-content strong { font-weight: 700; }2966.peach-note-editor-body em, .peach-note-editor-body i,2967.peach-note-content em, .peach-note-content i { font-style: italic; }29682969/* note display — rendered HTML, no pre-wrap */2970.peach-note-content {2971  overflow: auto;2972  max-height: 340px;2973  word-break: break-word;2974}29752976/* ── Note textarea ── */2977.peach-note-textarea {2978  width: 100%;2979  min-height: 180px;2980  max-height: 280px;2981  resize: vertical;2982  background: var(--peach-t4);2983  border: 1px solid var(--peach-t3);2984  border-radius: 8px;2985  padding: 10px 12px;2986  font-family: "IBM Plex Mono", monospace;2987  font-size: 0.75rem;2988  line-height: 1.7;2989  color: var(--peach-t1);2990  outline: none;2991  transition: border-color 150ms ease;2992}29932994.peach-note-textarea:focus {2995  border-color: var(--peach-t2);2996}29972998.peach-note-char-count {2999  font-family: "IBM Plex Mono", monospace;3000  font-size: 0.5625rem;3001  color: var(--peach-t3);3002  text-align: right;3003  margin-top: 4px;3004  letter-spacing: 0.1em;3005}30063007/* ── Field input baseline ── */3008.peach-new-field-input {3009  width: 100%;3010  background: transparent;3011  border: none;3012  border-bottom: 1px solid var(--peach-t3);3013  padding: 4px 0;3014  color: var(--peach-t1);3015  font-family: "IBM Plex Mono", monospace;3016  font-size: 0.8125rem;3017  outline: none;3018  transition: border-color 150ms ease;3019}30203021.peach-new-field-input:focus {3022  border-bottom-color: var(--peach-t0);3023  color: var(--peach-t0);3024}30253026.peach-new-name-input {3027  width: 100%;3028  background: transparent;3029  border: none;3030  border-bottom: 1px solid var(--peach-t3);3031  padding: 6px 0;3032  font-family: var(--font-display);3033  font-style: italic;3034  font-size: 28px;3035  color: var(--peach-t0);3036  outline: none;3037  transition: border-color 150ms ease;3038}30393040.peach-new-name-input:focus {3041  border-bottom-color: var(--peach-t1);3042}30433044.peach-new-name-input::placeholder {3045  color: var(--peach-t2);3046  font-style: italic;3047}30483049.peach-new-field-input::placeholder {3050  color: var(--peach-t3);3051}30523053/* ── Demo entrance animation ── */3054#hd-shell {3055  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3056}3057@keyframes hd-shell-enter {3058  from { opacity: 0; transform: scale(0.96) translateY(16px); }3059  to   { opacity: 1; transform: scale(1) translateY(0); }3060}30613062/* ── Keyframes ── */3063@keyframes peach-char-enter {3064  from { opacity: 0; transform: translateY(0.22em); }3065  to   { opacity: 1; transform: translateY(0); }3066}3067@keyframes peach-content-enter {3068  from { opacity: 0.96; transform: translateY(4px); }3069  to   { opacity: 1; transform: translateY(0); }3070}3071@keyframes peach-content-exit {3072  from { opacity: 1; transform: translateY(0); }3073  to   { opacity: 0.92; transform: translateY(-3px); }3074}3075@keyframes peach-screen-enter {3076  from { opacity: 0; transform: translateY(14px); }3077  to   { opacity: 1; transform: translateY(0); }3078}3079@keyframes peach-shell-fade-in {3080  from { opacity: 0; }3081  to   { opacity: 1; }3082}3083@keyframes peach-veil-in {3084  from { opacity: 0; }3085  to   { opacity: 1; }3086}3087@keyframes peach-lock-settle {3088  0%   { transform: scale(0.9); }3089  65%  { transform: scale(1.08); }3090  100% { transform: scale(1); }3091}3092@keyframes peach-copy-confirm {3093  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3094  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); }3095}3096@keyframes peach-copy-retreat {3097  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); }3098  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3099}3100@keyframes peach-copy-flood {3101  from { opacity: 0; transform: scaleX(0.15); }3102  to   { opacity: 1; transform: scaleX(1); }3103}3104@keyframes peach-copy-icon-settle {3105  from  { transform: scale(0.84); }3106  70%   { transform: scale(1.08); }3107  to    { transform: scale(1); }3108}3109@keyframes peach-copy-sheen-retreat {3110  from { opacity: 1; transform: scaleX(1); }3111  to   { opacity: 0; transform: scaleX(0.15); }3112}3113@keyframes peach-copy-drain {3114  from { width: 100%; }3115  to   { width: 0; }3116}3117@keyframes peach-shake {3118  0%, 100% { transform: translateX(0); }3119  20%      { transform: translateX(-6px); }3120  40%      { transform: translateX(6px); }3121  60%      { transform: translateX(-4px); }3122  80%      { transform: translateX(4px); }3123}31243125@keyframes pip-pulse {3126  0% { transform: scale(1); }3127  40% { transform: scale(2.2); }3128  100% { transform: scale(1); }3129}313031313132/* ── Password generator ── */3133.peach-pwgen-body {3134  flex: 1; overflow-y: auto;3135  display: flex; flex-direction: column;3136}3137.peach-policy-badge {3138  display: flex; align-items: center;3139  padding: 6px 20px 0;3140  font-size: 0.625rem; font-family: Inter, sans-serif;3141  color: var(--peach-t2); letter-spacing: 0.04em;3142}3143.peach-pwgen-display {3144  padding: 14px 20px 12px;3145  border-bottom: 1px solid var(--peach-t3);3146  display: flex; align-items: flex-start; gap: 10px;3147}3148.peach-pwgen-display-row {3149  display: flex;3150  align-items: flex-start;3151  gap: 8px;3152  padding-bottom: 8px;3153  border-bottom: 1px solid var(--peach-t3);3154}3155.peach-pwgen-output {3156  flex: 1; min-width: 0; margin: 0;3157  font-family: "IBM Plex Mono", monospace;3158  font-size: 0.8125rem; color: var(--peach-t0);3159  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3160  white-space: normal;3161  padding: 10px 12px;3162  background: var(--peach-t4);3163  border-radius: 6px;3164  min-height: 36px;3165}3166.peach-pwgen-output-display {3167  flex: 1;3168  min-width: 0;3169  margin: 0;3170  font-family: var(--font-display);3171  font-style: italic;3172  font-weight: 300;3173  font-size: 32px;3174  line-height: 1.05;3175  color: var(--peach-t0);3176  word-break: break-all;3177  overflow-wrap: break-word;3178  white-space: normal;3179  letter-spacing: 0.02em;3180}3181.peach-pwgen-display-actions {3182  display: flex;3183  flex-direction: column;3184  gap: 4px;3185  flex-shrink: 0;3186  margin-top: 2px;3187}3188.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3189.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3190.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3191.peach-pwgen-len-num {3192  font-family: "IBM Plex Mono", monospace;3193  font-size: 0.75rem; color: var(--peach-accent);3194}3195.peach-pwgen-len-num--edit {3196  cursor: text;3197  border-bottom: 1px dotted color-mix(in srgb, var(--peach-accent) 50%, transparent);3198}3199.peach-pwgen-len-input {3200  font-family: "IBM Plex Mono", monospace;3201  font-size: 0.75rem;3202  color: var(--peach-accent);3203  background: transparent;3204  border: none;3205  border-bottom: 1px solid var(--peach-accent);3206  outline: none;3207  width: 32px;3208  text-align: right;3209  padding: 0;3210}3211.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3212.peach-pwgen-toggles { display: flex; flex-direction: column; }3213.peach-pwgen-charset-pills {3214  display: flex;3215  gap: 6px;3216  flex-wrap: wrap;3217}3218.peach-pwgen-pill {3219  padding: 4px 11px;3220  border-radius: 999px;3221  border: 1px solid var(--peach-t3);3222  background: transparent;3223  color: var(--peach-t2);3224  font-family: "IBM Plex Mono", monospace;3225  font-size: 0.5625rem;3226  letter-spacing: 0.08em;3227  cursor: pointer;3228  transition: all 150ms ease;3229}3230.peach-pwgen-pill.is-on {3231  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3232  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3233  color: var(--peach-accent);3234}3235.peach-pwgen-pill:not(.is-on):hover {3236  color: var(--peach-t1);3237  border-color: var(--peach-t2);3238}3239.peach-pwgen-use-btn {3240  width: 100%;3241  min-height: 34px;3242  border-radius: 8px;3243  margin-top: 2px;3244}3245.peach-generator-constraint-note {3246  font-family: 'IBM Plex Mono', monospace;3247  font-size: 10px;3248  color: var(--peach-t3);3249  letter-spacing: 0.04em;3250  margin: 0;3251  transition: opacity 200ms ease;3252}3253.peach-pwgen-toggle-row {3254  display: flex; align-items: center; justify-content: space-between;3255  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3256}3257.peach-pwgen-toggle-row:last-child { border-bottom: none; }3258.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }32593260.peach-screen-prelock {3261  z-index: 10;3262}32633264.prelock-form {3265  display: grid;3266  gap: 12px;3267}32683269/* Peach popup should not expose native scrollbars on internal panels. */3270.peach-settings-body,3271.peach-new-body,3272.peach-pwgen-body,3273.lock-screen,3274.peach-import-preview {3275  scrollbar-width: none;3276  -ms-overflow-style: none;3277  overscroll-behavior: contain;3278}3279.peach-settings-body::-webkit-scrollbar,3280.peach-new-body::-webkit-scrollbar,3281.peach-pwgen-body::-webkit-scrollbar,3282.lock-screen::-webkit-scrollbar,3283.peach-import-preview::-webkit-scrollbar {3284  width: 0;3285  height: 0;3286  display: none;3287}32883289.lock-screen {3290  height: 100%;3291  min-height: 100%;3292  overflow-y: auto;3293  padding: 18px 18px 16px;3294  gap: 14px;3295  grid-template-rows: auto auto auto 1fr auto;3296  align-content: stretch;3297  position: relative;3298  isolation: isolate;3299}3300.peach-screen.lock-screen--vault-stage {3301  display: flex;3302  flex-direction: column;3303  justify-content: flex-start;3304  gap: 18px;3305  padding: 20px 18px 18px;3306  overflow: hidden;3307}3308.peach-screen.lock-screen--vault-stage .peach-lock-panel {3309  margin-top: 0;3310}3311.lock-screen--onboarding {3312  display: flex;3313  flex-direction: column;3314  gap: 12px;3315  justify-content: flex-start;3316}33173318.lock-screen::before {3319  content: "";3320  position: absolute;3321  inset: 12px 18px auto auto;3322  width: 160px;3323  height: 160px;3324  border-radius: 999px;3325  background:3326    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%);3327  filter: blur(6px);3328  opacity: 0.7;3329  pointer-events: none;3330  z-index: 0;3331}33323333.peach-lock-rune-string {3334  flex: 1;3335  display: flex;3336  align-items: center;3337  justify-content: center;3338  gap: 6px;3339  font-family: PeachScript, monospace;3340  font-size: 0.8125rem;3341  letter-spacing: 0.05em;3342  pointer-events: none;3343  user-select: none;3344  position: relative;3345  z-index: 1;3346}33473348.peach-lock-rune-string span {3349  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3350  text-shadow:3351    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3352    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3353  transition: color 0.9s ease, text-shadow 0.9s ease;3354}33553356.peach-lock-rune-string span.is-glowing {3357  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3358  text-shadow:3359    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3360    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3361}33623363.lock-screen-header {3364  display: flex;3365  align-items: center;3366  justify-content: space-between;3367  position: relative;3368  z-index: 1;3369}33703371.lock-password-input.shake {3372  animation: peach-shake 300ms ease-in-out;3373}33743375.peach-hint-error {3376  color: rgba(220, 80, 60, 0.92);3377}33783379.peach-onboarding-headline {3380  margin: 0;3381  font-family: var(--font-display);3382  font-size: 35px;3383  line-height: 0.88;3384  font-style: italic;3385  font-weight: 400;3386  max-width: 252px;3387}33883389.peach-lock-copy {3390  display: grid;3391  gap: 8px;3392  position: relative;3393  z-index: 1;3394}33953396.peach-lock-copy--onboarding {3397  gap: 10px;3398}33993400.peach-lock-hero {3401  position: relative;3402  z-index: 1;3403  display: grid;3404  gap: 8px;3405  min-height: 0;3406  padding: 4px 2px 0;3407  border: none;3408  border-radius: 0;3409  background: transparent;3410  box-shadow: none;3411}3412.peach-lock-hero-art {3413  position: absolute;3414  right: -8px;3415  top: -6px;3416  width: 120px;3417  height: 120px;3418  display: flex;3419  align-items: center;3420  justify-content: center;3421  pointer-events: none;3422  opacity: 0.12;3423  filter: saturate(0.9);3424}3425.peach-lock-hero-mark {3426  width: 100%;3427  height: 100%;3428}3429/* Peach body stays brand-peach across every accent — we don't want a3430   green or blue peach when sage/sky is selected. Leaf + vein keep the3431   sage tint because a real peach has a sage leaf. In the new brand-kit3432   mark the leaf is path 1 and the vein stroke is path 2; the body and3433   back-lobe (paths 3 + 4) must stay untouched. */3434.peach-lock-hero-mark path:nth-child(1) {3435  fill: rgba(123, 144, 96, 0.88);3436}3437.peach-lock-hero-mark path:nth-child(2) {3438  stroke: rgba(94, 122, 66, 0.95);3439}3440.peach-lock-hero > *:not(.peach-lock-hero-art) {3441  position: relative;3442  z-index: 1;3443}34443445.peach-lock-eyebrow {3446  display: inline-flex;3447  align-items: center;3448  width: fit-content;3449  padding: 4px 9px;3450  border-radius: 999px;3451  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3452  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3453  color: var(--peach-t0);3454  font-family: "IBM Plex Mono", monospace;3455  font-size: 0.5rem;3456  letter-spacing: 0.18em;3457  text-transform: uppercase;3458}34593460.peach-lock-label-row {3461  display: flex;3462  align-items: center;3463  justify-content: space-between;3464  margin-bottom: 0;3465}34663467.peach-lock-reveal-btn {3468  display: inline-flex;3469  align-items: center;3470  gap: 4px;3471  background: none;3472  border: none;3473  cursor: pointer;3474  font-family: "IBM Plex Mono", monospace;3475  font-size: 0.5625rem;3476  letter-spacing: 0.06em;3477  color: var(--peach-t2);3478  padding: 2px 0;3479  transition: color 150ms ease;3480}34813482.peach-lock-reveal-btn:hover {3483  color: var(--peach-t1);3484}34853486.peach-lock-warning {3487  color: rgba(220, 80, 60, 0.85) !important;3488  line-height: 1.5;3489}34903491.peach-onboarding-cards {3492  display: grid;3493  gap: 8px;3494  position: relative;3495  z-index: 1;3496}34973498.peach-lock-panel {3499  position: relative;3500  z-index: 1;3501  display: grid;3502  gap: 9px;3503  padding: 14px 16px 15px;3504  border-radius: 18px;3505  border: 1px solid var(--peach-t3);3506  background:3507    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3508  box-shadow:3509    inset 0 1px 0 rgba(240, 232, 216, 0.04),3510    0 12px 28px rgba(0, 0, 0, 0.12);3511}35123513/* Glass surface — lock panel and settings groups */3514.peach-glass {3515  background: rgba(26, 20, 16, 0.65);3516  border: 1px solid rgba(255, 255, 255, 0.08);3517  border-radius: 12px;3518  backdrop-filter: blur(12px) saturate(1.4);3519  -webkit-backdrop-filter: blur(12px) saturate(1.4);3520}35213522@supports not (backdrop-filter: blur(1px)) {3523  .peach-glass {3524    background: rgba(26, 20, 16, 0.92);3525    border: 1px solid rgba(255, 255, 255, 0.10);3526    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3527  }3528}35293530.light .peach-glass,3531[data-theme="light"] .peach-glass {3532  background: rgba(240, 233, 223, 0.72);3533  border: 1px solid rgba(26, 18, 8, 0.08);3534  backdrop-filter: blur(12px) saturate(1.2);3535  -webkit-backdrop-filter: blur(12px) saturate(1.2);3536}35373538@supports not (backdrop-filter: blur(1px)) {3539  .light .peach-glass,3540  [data-theme="light"] .peach-glass {3541    background: rgba(240, 233, 223, 0.97);3542    border: 1px solid rgba(26, 18, 8, 0.10);3543  }3544}35453546/* Lock panel keeps its own border-radius over the generic glass token */3547.peach-lock-panel.peach-glass {3548  border-radius: 18px;3549  background: rgba(26, 20, 16, 0.65);3550  border: 1px solid rgba(255, 255, 255, 0.08);3551  box-shadow:3552    inset 0 1px 0 rgba(255, 255, 255, 0.05),3553    0 12px 28px rgba(0, 0, 0, 0.3);3554}35553556.light .peach-lock-panel.peach-glass,3557[data-theme="light"] .peach-lock-panel.peach-glass {3558  background: rgba(240, 233, 223, 0.82);3559  border: 1px solid rgba(26, 18, 8, 0.08);3560  box-shadow:3561    inset 0 1px 0 rgba(255, 255, 255, 0.4),3562    0 8px 24px rgba(80, 56, 32, 0.15);3563}35643565@supports not (backdrop-filter: blur(1px)) {3566  .peach-lock-panel.peach-glass {3567    background: rgba(26, 20, 16, 0.92);3568    box-shadow:3569      inset 0 1px 0 rgba(255, 255, 255, 0.05),3570      0 12px 28px rgba(0, 0, 0, 0.4);3571  }3572  .light .peach-lock-panel.peach-glass,3573  [data-theme="light"] .peach-lock-panel.peach-glass {3574    background: rgba(240, 233, 223, 0.98);3575  }3576}35773578.peach-lock-panel--secondary {3579  gap: 12px;3580}35813582.peach-lock-panel-header {3583  display: flex;3584  align-items: baseline;3585  justify-content: space-between;3586  gap: 12px;3587}35883589.peach-lock-option-grid {3590  display: grid;3591  gap: 10px;3592}35933594.peach-lock-option {3595  width: 100%;3596  display: grid;3597  gap: 6px;3598  padding: 14px 15px;3599  border-radius: 16px;3600  border: 1px solid rgba(240, 232, 216, 0.08);3601  background: rgba(240, 232, 216, 0.02);3602  color: var(--peach-t0);3603  text-align: left;3604  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3605}36063607.peach-lock-option:hover {3608  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3609  background: rgba(240, 232, 216, 0.04);3610  transform: translateY(-1px);3611}36123613.peach-lock-option-title {3614  font-size: 0.75rem;3615  color: var(--peach-t0);3616}36173618.peach-lock-option-copy {3619  font-size: 0.6875rem;3620  line-height: 1.55;3621  color: var(--peach-t1);3622}36233624.peach-onboarding-stack {3625  margin-top: 2px;3626}3627.peach-lock-panel-footer {3628  display: grid;3629  gap: 6px;3630  margin-top: 2px;3631  padding-top: 10px;3632  border-top: 1px solid rgba(240, 232, 216, 0.06);3633}36343635/* ── Restore tab view ─────────────────────────────────────────────────────3636   Tab-based restore screen replacing the old three-card picker. */36373638.peach-restore-tabview {3639  overflow: hidden;3640}36413642.peach-restore-tabcard {3643  flex: 1;3644  display: flex;3645  flex-direction: column;3646  gap: 0;3647  padding: 0;3648  overflow: hidden;3649  cursor: default;3650  user-select: none;3651  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3652}36533654/* ── Tab selector ─────────────────────────────────────────────────────── */36553656.peach-restore-tabs {3657  display: flex;3658  justify-content: space-around;3659  padding: 14px 10px 10px;3660  border-bottom: 1px solid var(--peach-t3);3661  gap: 2px;3662  overflow: hidden;3663  scrollbar-width: none;3664}3665.peach-restore-tabs::-webkit-scrollbar { display: none; }36663667.peach-restore-tab {3668  background: none;3669  border: none;3670  cursor: pointer;3671  padding: 3px 2px;3672  font-family: 'Cormorant Garamond', Georgia, serif;3673  font-style: italic;3674  font-size: 11px;3675  color: var(--peach-t2);3676  transition: color 150ms ease, text-shadow 150ms ease;3677  flex: 1;3678  min-width: 0;3679  text-align: center;3680  white-space: nowrap;3681  overflow: hidden;3682  text-overflow: ellipsis;3683}3684.peach-restore-tab:hover {3685  color: var(--peach-accent);3686  text-shadow:3687    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3688    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3689}3690.peach-restore-tab.is-active {3691  color: var(--peach-accent);3692  text-shadow:3693    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),3694    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);3695}36963697/* ── Content area ─────────────────────────────────────────────────────── */36983699.peach-restore-content {3700  padding: 16px 16px 14px;3701  display: flex;3702  flex-direction: column;3703  gap: 8px;3704  overflow: hidden;3705  scrollbar-width: none;3706  flex: 1;3707}3708.peach-restore-content::-webkit-scrollbar { display: none; }3709.peach-restore-content > * {3710  overflow: hidden;3711  scrollbar-width: none;3712}3713.peach-restore-content > *::-webkit-scrollbar { display: none; }37143715/* ── Shared tab inner layout ──────────────────────────────────────────── */37163717.peach-rt-symbols,3718.peach-rt-csv,3719.peach-rt-phone {3720  display: flex;3721  flex-direction: column;3722  gap: 8px;3723  overflow: hidden;3724}37253726.peach-rt-submit {3727  width: 100%;3728}37293730.peach-rt-error {3731  margin: 0;3732  font-size: 0.6875rem;3733  color: var(--peach-breach);3734  line-height: 1.4;3735}37363737/* ── PeachScript tab ──────────────────────────────────────────────────── */37383739.peach-restore-symbols-textarea {3740  font-family: 'PeachScript', monospace;3741  font-size: 13px;3742  line-height: 1.9;3743  letter-spacing: 0.1em;3744  word-break: break-all;3745  resize: none;3746  width: 100%;3747  min-height: 56px;3748  max-height: 72px;3749  overflow: hidden;3750  scrollbar-width: none;3751  -ms-overflow-style: none;3752  box-sizing: border-box;3753  padding: 6px 8px;3754  border-radius: 8px;3755  border: 1px solid var(--peach-t3);3756  background: rgba(240, 232, 216, 0.03);3757  color: var(--peach-t0);3758}3759.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }3760.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }37613762.peach-restore-symbols-pass {3763  width: 100%;3764  box-sizing: border-box;3765  padding: 7px 10px;3766  border-radius: 8px;3767  border: 1px solid var(--peach-t3);3768  background: rgba(240, 232, 216, 0.03);3769  color: var(--peach-t0);3770  font-size: 0.8125rem;3771}3772.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }3773.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }37743775.peach-rt-divider {3776  text-align: center;3777  font-size: 0.6875rem;3778  color: var(--peach-t2);3779  font-style: italic;3780}37813782.peach-rt-file-label {3783  width: 100%;3784  justify-content: center;3785}37863787.peach-rt-anim-canvas {3788  width: 100%;3789  height: 180px;3790  border-radius: 10px;3791  overflow: hidden;3792  display: block;3793}37943795/* ── CSV tab ──────────────────────────────────────────────────────────── */37963797.peach-rt-csv-sources {3798  margin: 0;3799  font-size: 0.6875rem;3800  color: var(--peach-t2);3801  line-height: 1.5;3802  text-align: center;3803}38043805.peach-rt-csv-warning {3806  margin: 0;3807  font-family: "IBM Plex Mono", monospace;3808  font-size: 0.5625rem;3809  letter-spacing: 0.12em;3810  color: var(--peach-breach);3811  text-align: center;3812}38133814/* ── From Phone tab ───────────────────────────────────────────────────── */38153816.peach-rt-phone-code {3817  margin: 0;3818  text-align: center;3819  font-family: "IBM Plex Mono", monospace;3820  font-size: 22px;3821  letter-spacing: 0.18em;3822  color: var(--peach-t0);3823}38243825.peach-rt-phone-qr {3826  display: block;3827  width: 96px;3828  height: 96px;3829  margin: 0 auto;3830  border-radius: 6px;3831  image-rendering: pixelated;3832  overflow: hidden;3833}38343835.peach-rt-phone-hint {3836  margin: 0;3837  font-size: 0.6875rem;3838  color: var(--peach-t2);3839  line-height: 1.55;3840  text-align: center;3841}38423843/* ── Intro popup ──────────────────────────────────────────────────────── */38443845.peach-restore-intro-overlay {3846  position: absolute;3847  inset: 0;3848  z-index: 100;3849  display: flex;3850  align-items: center;3851  justify-content: center;3852  padding: 20px;3853  background: rgba(12, 10, 6, 0.7);3854  backdrop-filter: blur(4px);3855  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3856}38573858.peach-restore-intro-card {3859  width: 100%;3860  display: flex;3861  flex-direction: column;3862  gap: 12px;3863  padding: 22px 20px 20px;3864  border-radius: 16px;3865  border: 1px solid var(--peach-t3);3866  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));3867  backdrop-filter: blur(4px);3868  -webkit-backdrop-filter: blur(4px);3869  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);3870}38713872.peach-restore-intro-headline {3873  margin: 0;3874  font-family: var(--font-display);3875  font-style: italic;3876  font-size: 20px;3877  font-weight: 400;3878  color: var(--peach-t0);3879}38803881.peach-restore-intro-body {3882  display: flex;3883  flex-direction: column;3884  gap: 8px;3885}3886.peach-restore-intro-body p {3887  margin: 0;3888  font-size: 0.75rem;3889  color: var(--peach-t1);3890  line-height: 1.5;3891}38923893.peach-restore-intro-btn {3894  width: 100%;3895  margin-top: 4px;3896}38973898/* Snapshot restore panel */3899.peach-snapshot-panel {3900  gap: 10px;3901  overflow-y: auto;3902  max-height: 340px;3903}3904.peach-snapshot-list {3905  display: flex;3906  flex-direction: column;3907  gap: 4px;3908}3909.peach-snapshot-row {3910  display: flex;3911  align-items: center;3912  justify-content: space-between;3913  width: 100%;3914  padding: 8px 10px;3915  border-radius: 8px;3916  border: 1px solid rgba(240, 232, 216, 0.07);3917  background: transparent;3918  cursor: pointer;3919  transition: border-color 120ms, background 120ms;3920  text-align: left;3921  gap: 8px;3922}3923.peach-snapshot-row:hover {3924  border-color: rgba(240, 232, 216, 0.14);3925  background: rgba(240, 232, 216, 0.03);3926}3927.peach-snapshot-row.is-selected {3928  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3929  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3930}3931.peach-snapshot-time {3932  font-size: 11.5px;3933  color: var(--peach-t0);3934  flex: 1;3935}3936.peach-snapshot-count {3937  font-family: "IBM Plex Mono", monospace;3938  font-size: 0.625rem;3939  color: var(--peach-t2);3940  flex-shrink: 0;3941}3942.peach-snapshot-confirm {3943  display: flex;3944  flex-direction: column;3945  gap: 8px;3946  padding-top: 10px;3947  border-top: 1px solid rgba(240, 232, 216, 0.06);3948}3949.peach-snapshot-warning {3950  display: flex;3951  align-items: flex-start;3952  gap: 6px;3953  font-size: 10.5px;3954  color: rgba(220, 80, 60, 0.85);3955  line-height: 1.55;3956}3957.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3958.peach-snapshot-confirm-row {3959  display: flex;3960  gap: 6px;3961  align-items: center;3962}3963.peach-snapshot-restore-btn {3964  width: 100%;3965}3966.peach-lock-hero--unlock .peach-lock-hero-art {3967  width: 112px;3968  height: 112px;3969  right: 0;3970  top: 2px;3971  opacity: 0.1;3972}39733974.peach-card {3975  border: 1px solid var(--peach-t3);3976  border-radius: 18px;3977  background:3978    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3979  box-shadow:3980    inset 0 0 0 1px var(--peach-border-accent),3981    inset 0 1px 0 rgba(240, 232, 216, 0.04),3982    0 12px 32px rgba(0, 0, 0, 0.14);3983  overflow: hidden;3984}39853986.peach-card-active {3987  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3988  box-shadow:3989    inset 0 1px 0 rgba(240, 232, 216, 0.05),3990    0 16px 38px rgba(0, 0, 0, 0.18),3991    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3992}39933994.peach-card-disabled {3995  opacity: 0.72;3996}39973998.peach-card-header {3999  width: 100%;4000  padding: 13px 16px 11px;4001  background: transparent;4002  color: var(--peach-t0);4003  display: flex;4004  justify-content: space-between;4005  align-items: center;4006  text-align: left;4007  font-size: 0.75rem;4008}40094010.peach-card-body {4011  padding: 0 16px 16px;4012  display: grid;4013  gap: 9px;4014}40154016.peach-card-tag {4017  color: var(--peach-t2);4018  font-family: "IBM Plex Mono", monospace;4019  font-size: 0.5625rem;4020  letter-spacing: 0.12em;4021  text-transform: uppercase;4022}40234024.peach-empty-copy {4025  display: grid;4026  gap: 6px;4027  color: var(--peach-t1);4028  font-size: 0.8125rem;4029}40304031.peach-lock-submit {4032  width: 100%;4033  box-shadow:4034    0 1px 0 rgba(255,255,255,0.10) inset,4035    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4036    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4037    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4038}40394040.peach-lock-secondary {4041  width: 100%;4042  border-color: var(--peach-t3);4043  background: rgba(240, 232, 216, 0.02);4044}40454046.peach-lock-secondary:hover {4047  background: rgba(240, 232, 216, 0.04);4048}40494050.peach-lock-note {4051  max-width: none;4052  line-height: 1.55;4053  margin: 0;4054}40554056.peach-overlay-action {4057  font-size: 0.625rem;4058  padding: 4px 8px;4059  letter-spacing: 0.06em;4060  min-width: 44px;4061  text-align: center;4062}40634064.peach-overlay-spacer {4065  width: 32px;4066}40674068.peach-inline-action {4069  flex-shrink: 0;4070  font-size: 0.5625rem;4071  letter-spacing: 0.1em;4072  text-transform: uppercase;4073  padding: 4px 7px;4074}4075.peach-password-toggle-btn {4076  display: inline-flex;4077  align-items: center;4078  justify-content: center;4079  min-width: 30px;4080  min-height: 26px;4081  padding: 0 7px;4082  border: 1px solid var(--peach-t3);4083  border-radius: 999px;4084  background: rgba(240, 232, 216, 0.04);4085  color: var(--peach-t2);4086  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4087}4088.peach-password-toggle-btn:hover {4089  border-color: var(--peach-t2);4090  color: var(--peach-t0);4091  background: rgba(240, 232, 216, 0.06);4092}40934094.peach-new-textarea {4095  width: 100%;4096  min-height: 88px;4097  resize: vertical;4098  border: 0;4099  outline: none;4100  background: transparent;4101  color: var(--peach-t1);4102  font-family: "IBM Plex Mono", monospace;4103  font-size: 0.75rem;4104  line-height: 1.65;4105  caret-color: var(--peach-accent);4106}41074108.peach-new-textarea::placeholder {4109  color: var(--peach-t2);4110  opacity: 0.7;4111}41124113.peach-settings-actions {4114  display: grid;4115  gap: 8px;4116}41174118.peach-sync-section-label {4119  font-size: 0.6875rem;4120  color: var(--peach-t2);4121  text-transform: uppercase;4122  letter-spacing: 0.05em;4123}41244125.peach-sync-network-note {4126  margin: 0 0 6px;4127  font-size: 0.75rem;4128  color: var(--peach-t2);4129  line-height: 1.4;4130}41314132.peach-settings-row--tappable {4133  background: none;4134  border: none;4135  width: 100%;4136  text-align: left;4137  cursor: pointer;4138  color: var(--peach-t1);4139  font-size: 0.8125rem;4140}4141.peach-settings-row--tappable:hover {4142  color: var(--peach-t0);4143}41444145.peach-sync-pro-hint {4146  display: flex;4147  flex-direction: column;4148  align-items: flex-start;4149  gap: 8px;4150  padding: 12px 0 4px;4151}41524153.peach-sync-device-row {4154  display: flex;4155  justify-content: space-between;4156  align-items: center;4157  padding: 6px 0;4158  border-bottom: 1px solid var(--peach-t3);4159}41604161.peach-sync-device-info {4162  display: flex;4163  flex-direction: column;4164  gap: 2px;4165}41664167.peach-sync-device-name {4168  font-size: 0.8125rem;4169  color: var(--peach-t0);4170}41714172.peach-sync-device-meta {4173  font-size: 0.6875rem;4174  color: var(--peach-t2);4175}41764177.peach-sync-status-dot {4178  display: inline-block;4179  width: 8px;4180  height: 8px;4181  border-radius: 50%;4182  vertical-align: middle;4183}41844185.peach-sync-remove-btn {4186  color: var(--peach-breach);4187}41884189.peach-sync-advanced-row {4190  display: flex;4191  justify-content: space-between;4192  align-items: center;4193  padding: 6px 0;4194  gap: 12px;4195}41964197.peach-sync-advanced-info {4198  display: flex;4199  flex-direction: column;4200  gap: 2px;4201  flex: 1;4202}42034204.peach-sync-advanced-name {4205  font-size: 0.8125rem;4206  color: var(--peach-t0);4207}42084209.peach-sync-reset-confirm {4210  display: flex;4211  flex-direction: column;4212  gap: 8px;4213  padding: 10px;4214  border: 1px solid var(--peach-breach);4215  border-radius: 10px;4216  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4217}42184219.peach-sync-reset-confirm-headline {4220  font-size: 0.8125rem;4221  font-weight: 600;4222  color: var(--peach-t0);4223  margin: 0;4224}42254226.peach-sync-reset-confirm-body {4227  font-size: 0.75rem;4228  color: var(--peach-t1);4229  margin: 0;4230  line-height: 1.4;4231}42324233.peach-btn--danger {4234  background: var(--peach-breach);4235  color: #fff;4236  border-color: var(--peach-breach);4237}4238.peach-btn--danger:hover:not(:disabled) {4239  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4240}4241.peach-btn--danger:disabled {4242  opacity: 0.55;4243  cursor: not-allowed;4244}42454246.peach-sync-hero-icon {4247  color: var(--peach-t1);4248  opacity: 0.85;4249}42504251.peach-import-preview {4252  margin-bottom: 12px;4253  max-height: 152px;4254  overflow-y: auto;4255  border: 1px solid var(--peach-t3);4256  border-radius: 10px;4257  padding: 8px 10px;4258  display: grid;4259  gap: 8px;4260  background: rgba(240, 232, 216, 0.02);4261}42624263.peach-import-preview-row {4264  display: flex;4265  justify-content: space-between;4266  gap: 10px;4267  font-size: 0.6875rem;4268  color: var(--peach-t1);4269}42704271.peach-import-preview-title {4272  color: var(--peach-t0);4273  flex: 1;4274  min-width: 0;4275  overflow: hidden;4276  text-overflow: ellipsis;4277  white-space: nowrap;4278}42794280.peach-import-preview-meta {4281  color: var(--peach-t2);4282  flex-shrink: 0;4283  max-width: 42%;4284  overflow: hidden;4285  text-overflow: ellipsis;4286  white-space: nowrap;4287}42884289.peach-import-preview-more {4290  color: var(--peach-t2);4291  font-size: 0.625rem;4292}42934294.peach-restore-copy {4295  margin: 0;4296  color: var(--peach-t1);4297  font-size: 0.6875rem;4298  line-height: 1.6;4299}43004301.peach-restore-warning {4302  padding: 10px 12px;4303  border-radius: 12px;4304  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4305  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4306  color: var(--peach-t0);4307  font-size: 0.6875rem;4308  line-height: 1.55;4309}43104311.peach-provider-chips {4312  display: flex;4313  flex-wrap: wrap;4314  gap: 6px;4315}43164317.peach-provider-chip {4318  display: inline-flex;4319  align-items: center;4320  padding: 5px 8px;4321  border-radius: 999px;4322  border: 1px solid var(--peach-t3);4323  background: rgba(240, 232, 216, 0.02);4324  color: var(--peach-t1);4325  font-family: "IBM Plex Mono", monospace;4326  font-size: 0.5rem;4327  letter-spacing: 0.08em;4328  text-transform: uppercase;4329}43304331.peach-restore-file,4332.peach-restore-input {4333  width: 100%;4334  border-radius: 10px;4335  border: 1px solid var(--peach-t3);4336  background: var(--peach-s2);4337  color: var(--peach-t0);4338  font-size: 0.75rem;4339}43404341.peach-restore-file {4342  padding: 9px 10px;4343}43444345.peach-restore-file::file-selector-button {4346  margin-right: 10px;4347  padding: 7px 10px;4348  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4349  border-radius: 999px;4350  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4351  color: var(--peach-t0);4352  font-size: 0.625rem;4353  letter-spacing: 0.08em;4354  text-transform: uppercase;4355  cursor: pointer;4356}43574358.peach-restore-input {4359  padding: 10px 12px;4360}43614362.peach-auth-grid {4363  display: grid;4364  gap: 10px;4365}43664367.peach-import-summary {4368  color: var(--peach-t1);4369  font-size: 0.75rem;4370  line-height: 1.6;4371  margin-bottom: 12px;4372}43734374.peach-restore-error {4375  color: rgba(220, 80, 60, 0.95);4376  font-size: 0.75rem;4377  line-height: 1.55;4378}43794380.peach-passkey-card {4381  max-width: 400px;4382  margin: auto 16px;4383  align-self: center;4384  width: calc(100% - 32px);4385}43864387/* Center the approval card vertically inside the overlay-view (which sets4388 * flex-direction: column without justify-content). Without this, the card4389 * sits at the top with a tall empty band below — looks unfinished on the4390 * 320px popup. */4391.peach-overlay-view:has(.peach-passkey-card) {4392  justify-content: center;4393}43944395.peach-pro-badge {4396  padding: 2px 6px;4397  border-radius: 999px;4398  font-family: var(--font-ui);4399  font-size: 0.625rem;4400  letter-spacing: 0.08em;4401  text-transform: uppercase;4402  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4403  color: var(--peach-accent);4404}44054406/* ── Shortcuts rebind table ─────────────────────────────────── */4407.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4408.peach-shortcut-row {4409  display: flex;4410  align-items: center;4411  gap: 10px;4412  padding: 6px 0;4413}4414.peach-shortcut-row-label {4415  flex: 1;4416  font-size: 0.75rem;4417  color: var(--peach-t0);4418}4419.peach-shortcut-chip {4420  min-width: 64px;4421  padding: 4px 10px;4422  border-radius: 6px;4423  border: 1px solid var(--peach-t3);4424  background: var(--peach-input-bg, var(--surface-card));4425  color: var(--peach-t0);4426  font-family: var(--font-mono);4427  font-size: 0.6875rem;4428  letter-spacing: 0.04em;4429  cursor: pointer;4430  text-align: center;4431  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4432}4433.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4434.peach-shortcut-chip.is-custom {4435  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4436  color: var(--peach-accent);4437}4438.peach-shortcut-chip.is-capturing {4439  border-color: var(--peach-accent);4440  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4441  color: var(--peach-accent);4442  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4443}4444@keyframes peach-shortcut-capture-pulse {4445  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4446  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4447}4448.peach-shortcut-reset {4449  background: transparent;4450  border: none;4451  cursor: pointer;4452  color: var(--peach-t2);4453  padding: 4px 6px;4454  border-radius: 5px;4455  font-size: 0.875rem;4456  line-height: 1;4457  transition: color 120ms ease, background 120ms ease;4458}4459.peach-shortcut-reset:hover {4460  color: var(--peach-t0);4461  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4462}4463.peach-shortcuts-conflict {4464  margin: 4px 0 0;4465  padding: 8px 10px;4466  border-radius: 7px;4467  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4468  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4469  font-family: var(--font-mono);4470  font-size: 0.6875rem;4471  color: var(--peach-t0);4472}44734474/* ── Help dialog overlay (? to open) ────────────────────────── */4475.peach-shortcuts-help-backdrop {4476  position: fixed;4477  inset: 0;4478  background: rgba(0, 0, 0, 0.55);4479  backdrop-filter: blur(2px);4480  display: flex;4481  align-items: center;4482  justify-content: center;4483  z-index: 1000;4484  animation: peach-help-fade-in 140ms ease forwards;4485}4486@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4487.peach-shortcuts-help-card {4488  width: min(320px, 92vw);4489  max-height: 80vh;4490  overflow-y: auto;4491  border-radius: 14px;4492  border: 1px solid var(--peach-t3);4493  background: var(--peach-bg);4494  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4495  padding: 16px 18px 18px;4496  display: flex;4497  flex-direction: column;4498  gap: 12px;4499}4500.peach-shortcuts-help-head {4501  display: flex; align-items: center; justify-content: space-between;4502}4503.peach-shortcuts-help-head h3 {4504  margin: 0;4505  font-family: var(--font-display);4506  font-style: italic;4507  font-weight: 400;4508  font-size: 22px;4509  color: var(--peach-t0);4510}4511.peach-shortcuts-help-close {4512  background: transparent;4513  border: none;4514  color: var(--peach-t2);4515  cursor: pointer;4516  font-size: 0.875rem;4517  padding: 4px 8px;4518  border-radius: 5px;4519}4520.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4521.peach-shortcuts-help-body ul {4522  list-style: none; padding: 0; margin: 4px 0 12px;4523  display: grid; gap: 8px;4524}4525.peach-shortcuts-help-body li {4526  display: flex; align-items: center; justify-content: space-between; gap: 12px;4527  font-size: 0.75rem; color: var(--peach-t0);4528}4529.peach-shortcuts-help-body kbd {4530  font-family: var(--font-mono);4531  font-size: 0.6875rem;4532  padding: 3px 8px;4533  border-radius: 6px;4534  background: var(--surface-card);4535  border: 1px solid var(--peach-t3);4536  color: var(--peach-accent);4537  letter-spacing: 0.04em;4538}45394540/* ── Pro promo on Account screen ────────────────────────────── */4541.peach-pro-promo {4542  position: relative;4543  border-radius: 14px;4544  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4545  background:4546    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4547    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4548    var(--surface-card);4549  overflow: hidden;4550  margin-bottom: 14px;4551}4552.peach-pro-promo-glow {4553  position: absolute;4554  inset: -40% -20% auto auto;4555  width: 220px; height: 220px;4556  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4557  pointer-events: none;4558  filter: blur(8px);4559}4560.peach-pro-promo-inner {4561  position: relative;4562  padding: 18px 18px 16px;4563}4564.peach-pro-promo-title {4565  font-family: var(--font-display);4566  font-style: italic;4567  font-weight: 400;4568  font-size: 28px;4569  line-height: 1;4570  letter-spacing: -0.005em;4571  color: var(--peach-t0);4572  margin: 0 0 4px;4573}4574.peach-pro-promo-tagline {4575  font-family: var(--font-mono);4576  font-size: 0.625rem;4577  letter-spacing: 0.06em;4578  color: var(--peach-t2);4579  margin: 0 0 14px;4580}4581.peach-pro-promo-list {4582  list-style: none;4583  margin: 0 0 16px;4584  padding: 0;4585  display: grid;4586  gap: 9px;4587}4588.peach-pro-promo-list li {4589  display: flex;4590  align-items: flex-start;4591  gap: 9px;4592  font-size: 0.75rem;4593  color: var(--peach-t1);4594  line-height: 1.4;4595}4596.peach-pro-promo-list svg {4597  width: 14px;4598  height: 14px;4599  flex-shrink: 0;4600  color: var(--peach-accent);4601  margin-top: 2px;4602}4603.peach-pro-promo-list span {4604  color: var(--peach-t0);4605}4606.peach-pro-promo-cta {4607  width: 100%;4608  background: var(--peach-accent);4609  color: #fff;4610  border: none;4611  padding: 9px 12px;4612  border-radius: 9px;4613  font-size: 0.75rem;4614  font-weight: 500;4615  font-family: var(--font-ui);4616  letter-spacing: 0.02em;4617  text-decoration: none;4618  display: inline-flex;4619  align-items: center;4620  justify-content: center;4621  cursor: pointer;4622  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4623  box-shadow: 0 2px 16px var(--peach-glow);4624}4625.peach-pro-promo-cta:hover {4626  filter: brightness(1.07);4627  box-shadow: 0 4px 24px var(--peach-glow);4628  transform: translateY(-1px);4629}4630.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }46314632.peach-pro-or-divider {4633  display: flex;4634  align-items: center;4635  gap: 10px;4636  margin: 4px 0 12px;4637  font-family: var(--font-mono);4638  font-size: 0.625rem;4639  letter-spacing: 0.06em;4640  color: var(--peach-t2);4641  text-transform: uppercase;4642}4643.peach-pro-or-divider::before,4644.peach-pro-or-divider::after {4645  content: "";4646  flex: 1;4647  height: 1px;4648  background: var(--peach-t3);4649}46504651.peach-loading {4652  position: absolute;4653  inset: 0;4654  display: flex;4655  align-items: center;4656  justify-content: center;4657  background: var(--bg);4658  animation: peach-loading-pulse 1.2s ease-in-out infinite;4659}46604661@keyframes peach-loading-pulse {4662  0%, 100% { opacity: 0.6; }4663  50% { opacity: 1; }4664}46654666/* ── Health Dashboard ─────────────────────────────────────────────────── */4667.peach-health-body {4668  flex: 1;4669  overflow-y: auto;4670  display: flex;4671  flex-direction: column;4672  /* Hide the platform scrollbar — every other scrollable surface in the4673   * popup hides it; the Health view was the one outlier and it ruined the4674   * polish. Behavior unchanged, just no rail rendered. */4675  scrollbar-width: none;4676  -ms-overflow-style: none;4677}4678.peach-health-body::-webkit-scrollbar { display: none; }46794680/* Loading screen for the Vault Health view. The advanced report computation4681 * can run for a few seconds on a large vault — without a clear loading4682 * screen the surface looked broken (the entry view bleeds through the4683 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4684.peach-health-loading-screen {4685  flex: 1;4686  display: flex;4687  flex-direction: column;4688  align-items: center;4689  justify-content: center;4690  gap: 14px;4691  padding: 32px 28px;4692  text-align: center;4693}46944695.peach-health-loading-glyph {4696  width: 48px;4697  height: 48px;4698  display: flex;4699  align-items: center;4700  justify-content: center;4701  border-radius: 14px;4702  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4703  color: var(--peach-accent);4704}47054706.peach-health-loading-title {4707  margin: 0;4708  font-family: var(--font-display);4709  font-style: italic;4710  font-weight: 300;4711  font-size: 19px;4712  line-height: 1.2;4713  color: var(--peach-t0);4714}47154716.peach-health-loading-copy {4717  margin: 0;4718  max-width: 240px;4719  font-size: 0.75rem;4720  line-height: 1.55;4721  color: var(--peach-t2);4722}47234724.peach-health-loading-track {4725  width: 200px;4726  height: 3px;4727  margin-top: 6px;4728  border-radius: 999px;4729  background: rgba(240, 232, 216, 0.06);4730  overflow: hidden;4731}47324733.peach-health-loading-fill {4734  width: 40%;4735  height: 100%;4736  border-radius: inherit;4737  background: linear-gradient(4738    90deg,4739    transparent 0%,4740    var(--peach-accent) 50%,4741    transparent 100%4742  );4743  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;4744}47454746@keyframes peach-health-loading-sweep {4747  0%   { transform: translateX(-100%); }4748  100% { transform: translateX(350%); }4749}47504751[data-motion="reduce"] .peach-health-loading-fill,4752[data-motion="reduce"] .peach-health-loading-glyph svg path {4753  animation: none;4754}47554756.peach-health-summary {4757  padding: 10px 16px 6px;4758  font-family: "IBM Plex Mono", monospace;4759  font-size: 0.6875rem;4760}4761.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4762.peach-health-summary-ok { color: var(--peach-t2); }47634764.peach-health-check-row {4765  padding: 0 16px 10px;4766}4767.peach-health-check-btn {4768  width: 100%;4769  display: flex;4770  align-items: center;4771  justify-content: center;4772}47734774.peach-health-sections {4775  flex: 1;4776  display: flex;4777  flex-direction: column;4778}47794780.peach-health-section {4781  border-bottom: 1px solid var(--peach-t3);4782}47834784.peach-health-section-header {4785  width: 100%;4786  display: flex;4787  align-items: center;4788  justify-content: space-between;4789  padding: 9px 16px;4790  background: transparent;4791  cursor: pointer;4792  color: var(--peach-t0);4793}47944795.peach-health-section-title-row {4796  display: flex;4797  align-items: center;4798  gap: 8px;4799}48004801.peach-health-count-badge {4802  display: inline-flex;4803  align-items: center;4804  justify-content: center;4805  min-width: 20px;4806  height: 18px;4807  padding: 0 5px;4808  border-radius: 999px;4809  background: rgba(220,80,60,0.15);4810  border: 1px solid rgba(220,80,60,0.25);4811  font-family: "IBM Plex Mono", monospace;4812  font-size: 0.5625rem;4813  color: rgba(220,80,60,0.9);4814}48154816.peach-health-section-title {4817  font-family: "IBM Plex Mono", monospace;4818  font-size: 0.6875rem;4819  text-transform: uppercase;4820  letter-spacing: 0.1em;4821  color: var(--peach-t1);4822}48234824.peach-health-chevron {4825  color: var(--peach-t2);4826  transition: transform 200ms ease;4827  flex-shrink: 0;4828}4829.peach-health-chevron.is-expanded {4830  transform: rotate(180deg);4831}48324833.peach-health-section-body {4834  padding: 0 16px 10px;4835  display: flex;4836  flex-direction: column;4837  gap: 4px;4838}48394840.peach-health-row {4841  display: flex;4842  align-items: flex-start;4843  justify-content: space-between;4844  gap: 8px;4845  padding: 6px 8px;4846  border-radius: 8px;4847  background: rgba(240,232,216,0.02);4848}48494850.peach-health-row-info {4851  flex: 1;4852  min-width: 0;4853  display: flex;4854  flex-direction: column;4855  gap: 2px;4856}48574858.peach-health-row-name {4859  font-family: var(--font-display);4860  font-size: 0.9375rem;4861  font-style: italic;4862  font-weight: 400;4863  color: var(--peach-t0);4864  white-space: nowrap;4865  overflow: hidden;4866  text-overflow: ellipsis;4867}48684869.peach-health-row-meta {4870  font-family: "IBM Plex Mono", monospace;4871  font-size: 0.5625rem;4872  color: var(--peach-t2);4873  letter-spacing: 0.05em;4874}48754876.peach-health-fix-btn {4877  font-size: 0.5625rem;4878  letter-spacing: 0.08em;4879  text-transform: uppercase;4880  padding: 4px 7px;4881  flex-shrink: 0;4882  display: flex;4883  align-items: center;4884}48854886.peach-health-empty {4887  font-family: "IBM Plex Mono", monospace;4888  font-size: 0.625rem;4889  color: var(--peach-t2);4890  padding: 6px 0;4891}48924893.peach-health-loading {4894  font-family: "IBM Plex Mono", monospace;4895  font-size: 0.625rem;4896  color: var(--peach-t2);4897  padding: 6px 0;4898  display: flex;4899  align-items: center;4900  gap: 6px;4901}49024903.peach-health-loading::before {4904  content: "";4905  width: 10px;4906  height: 10px;4907  border: 1.5px solid var(--peach-t3);4908  border-top-color: var(--peach-accent);4909  border-radius: 50%;4910  animation: peach-spin 600ms linear infinite;4911}49124913@keyframes peach-spin {4914  to { transform: rotate(360deg); }4915}49164917.peach-spinner {4918  width: 32px;4919  height: 32px;4920  border: 2px solid var(--peach-s2);4921  border-top-color: var(--peach-accent);4922  border-radius: 50%;4923  margin: 0 auto 16px;4924  animation: peach-spin 0.8s linear infinite;4925}49264927.peach-progress-screen {4928  text-align: center;4929  padding: 32px 16px;4930}49314932.peach-progress-screen-title {4933  font-size: 0.8125rem;4934  color: var(--peach-t0);4935  margin-bottom: 16px;4936}49374938.peach-progress-screen-stage {4939  font-size: 0.6875rem;4940  color: var(--peach-t2);4941  min-height: 14px;4942}49434944.peach-progress-screen-note {4945  font-size: 0.625rem;4946  color: var(--peach-t2);4947  margin-top: 8px;4948}49494950.peach-pairing-body {4951  flex: 1;4952  overflow-y: auto;4953  display: flex;4954  flex-direction: column;4955}49564957.peach-pairing-content {4958  flex: 1;4959  display: flex;4960  flex-direction: column;4961  align-items: center;4962  justify-content: center;4963  gap: 14px;4964  padding: 28px 20px;4965  text-align: center;4966}49674968.peach-pairing-code-screen {4969  gap: 18px;4970}49714972.peach-pairing-headline {4973  font-family: var(--font-display);4974  font-style: italic;4975  font-weight: 300;4976  font-size: 28px;4977  color: var(--peach-t0);4978  margin: 0;4979  line-height: 1;4980}49814982.peach-pairing-subline {4983  font-size: 0.75rem;4984  color: var(--peach-t2);4985  max-width: 220px;4986  line-height: 1.5;4987  margin: 0;4988}49894990.peach-pairing-subline--center {4991  text-align: center;4992}49934994/* 6-digit pairing code — both display (.peach-pairing-code) and entry4995   (.peach-pairing-code-input) share IBM Plex Mono / 36px / wide tracking4996   so the two modes feel like the same surface. */4997.peach-pairing-code {4998  font-family: "IBM Plex Mono", monospace;4999  font-size: 36px;5000  letter-spacing: 0.25em;5001  color: var(--peach-t0);5002  text-align: center;5003  padding: 24px 0;5004  text-shadow:5005    0 0 24px color-mix(in srgb, var(--peach-accent) 22%, transparent),5006    0 0 48px color-mix(in srgb, var(--peach-accent) 12%, transparent);5007  background: transparent;5008  border: 0;5009  cursor: default;5010  user-select: text;5011}50125013.peach-pairing-code--loading,5014.peach-pairing-code--expired {5015  font-size: 18px;5016  letter-spacing: 0.04em;5017  color: var(--peach-t2);5018  cursor: pointer;5019  text-shadow: none;5020}50215022.peach-pairing-qr-container {5023  display: flex;5024  flex-direction: column;5025  align-items: center;5026  gap: 10px;5027}50285029.peach-pairing-qr {5030  width: 240px;5031  height: 240px;5032  display: block;5033}50345035.peach-pairing-instruction {5036  font-size: 0.75rem;5037  color: var(--peach-t2);5038  text-align: center;5039  line-height: 1.5;5040  margin: 0;5041  max-width: 220px;5042}50435044.peach-pairing-expiry {5045  font-family: "IBM Plex Mono", monospace;5046  font-size: 13px;5047  letter-spacing: 0.06em;5048  color: var(--peach-t2);5049  margin: 0;5050}50515052.peach-pairing-regen {5053  font-size: 0.75rem;5054  color: var(--peach-accent);5055  background: transparent;5056  border: 0;5057  cursor: pointer;5058  padding: 4px 0;5059  text-decoration: underline;5060  text-underline-offset: 2px;5061}50625063.peach-pairing-code-input {5064  font-family: "IBM Plex Mono", monospace;5065  font-size: 36px;5066  letter-spacing: 0.25em;5067  color: var(--peach-t0);5068  background: transparent;5069  border: 0;5070  border-bottom: 1px solid var(--peach-t3);5071  outline: none;5072  text-align: center;5073  padding: 18px 0;5074  width: 220px;5075  caret-color: var(--peach-accent);5076  transition: border-color 160ms ease;5077}50785079.peach-pairing-code-input::placeholder {5080  color: var(--peach-t3);5081}50825083.peach-pairing-code-input:focus {5084  border-bottom-color: var(--peach-accent);5085}50865087.peach-pairing-toggle {5088  background: transparent;5089  border: 0;5090  color: var(--peach-t2);5091  font-size: 0.75rem;5092  padding: 8px 4px;5093  cursor: pointer;5094  transition: color 120ms ease;5095}50965097.peach-pairing-toggle:hover:not(:disabled) {5098  color: var(--peach-t1);5099}51005101.peach-pairing-toggle:disabled {5102  opacity: 0.5;5103  cursor: default;5104}51055106.peach-pairing-hint {5107  font-size: 0.6875rem;5108  color: var(--peach-t2);5109  margin: 0;5110  text-align: center;5111}51125113.peach-pairing-status {5114  display: flex;5115  align-items: center;5116  gap: 8px;5117  margin: 0;5118  font-size: 0.75rem;5119  color: var(--peach-t1);5120}51215122.peach-pairing-error {5123  margin: 0;5124  font-size: 0.6875rem;5125  color: var(--peach-breach);5126}51275128.peach-pairing-error--muted {5129  color: var(--peach-t2);5130}51315132.peach-pairing-spinner {5133  width: 12px;5134  height: 12px;5135  border: 1.5px solid var(--peach-t3);5136  border-top-color: var(--peach-accent);5137  border-radius: 50%;5138  animation: peach-spin 0.8s linear infinite;5139}51405141.peach-pairing-success-icon,5142.peach-pairing-error-icon,5143.peach-pairing-hero {5144  display: inline-flex;5145  align-items: center;5146  justify-content: center;5147}51485149/* Tag chips */5150.peach-tag-chip {5151  display: inline-flex;5152  align-items: center;5153  gap: 4px;5154  padding: 3px 8px;5155  border-radius: 999px;5156  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5157  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5158  color: var(--peach-t0);5159  font-family: "IBM Plex Mono", monospace;5160  font-size: 0.625rem;5161  letter-spacing: 0.04em;5162}51635164.peach-tag-chip-remove {5165  background: transparent;5166  border: none;5167  color: inherit;5168  opacity: 0.6;5169  cursor: pointer;5170  padding: 0;5171  font-size: 0.75rem;5172  line-height: 1;5173}51745175.peach-tag-chip-remove:hover {5176  opacity: 1;5177}51785179/* Tag input */5180.peach-tag-input-wrap {5181  border-bottom: 1px solid var(--peach-t3);5182}51835184.peach-tag-suggestions {5185  display: flex;5186  flex-wrap: wrap;5187  gap: 4px;5188  padding: 6px 0;5189}51905191.peach-tag-suggestion {5192  padding: 2px 8px;5193  border-radius: 999px;5194  border: 1px solid var(--peach-t3);5195  background: var(--peach-s2);5196  color: var(--peach-t1);5197  font-family: "IBM Plex Mono", monospace;5198  font-size: 0.625rem;5199  cursor: pointer;5200  transition: border-color 80ms ease, background 80ms ease;5201}52025203.peach-tag-suggestion:hover {5204  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5205  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5206}52075208/* Identity suggestions — shown below username/email inputs in new-entry form */5209@keyframes peach-suggest-in {5210  from { opacity: 0; transform: translateY(-4px); }5211  to   { opacity: 1; transform: none; }5212}52135214.peach-identity-suggestions {5215  display: flex;5216  flex-direction: column;5217  gap: 1px;5218  margin-top: 4px;5219  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5220}52215222.peach-identity-filter-row {5223  display: flex;5224  align-items: center;5225  gap: 4px;5226  padding: 2px 0 5px;5227}52285229.peach-identity-collapse-btn {5230  margin-left: auto;5231  background: transparent;5232  border: none;5233  cursor: pointer;5234  color: var(--peach-t3);5235  padding: 2px 4px;5236  display: flex;5237  align-items: center;5238  line-height: 0;5239  border-radius: 3px;5240  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5241}52425243.peach-identity-collapse-btn:hover {5244  color: var(--peach-t1);5245}52465247.peach-identity-collapse-btn.is-collapsed {5248  transform: rotate(-90deg);5249}52505251.peach-identity-rows {5252  display: grid;5253  grid-template-rows: 1fr;5254  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5255}52565257.peach-identity-rows.is-collapsed {5258  grid-template-rows: 0fr;5259}52605261.peach-identity-rows-inner {5262  overflow-y: auto;5263  min-height: 0;5264  max-height: 148px;5265  scrollbar-width: thin;5266  scrollbar-color: var(--peach-t3) transparent;5267  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5268  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5269}52705271.peach-identity-rows-inner::-webkit-scrollbar {5272  width: 4px;5273}52745275.peach-identity-rows-inner::-webkit-scrollbar-track {5276  background: transparent;5277}52785279.peach-identity-rows-inner::-webkit-scrollbar-thumb {5280  background: var(--peach-t3);5281  border-radius: 2px;5282}52835284.peach-identity-filter-pill {5285  padding: 2px 7px;5286  border-radius: 999px;5287  border: 1px solid var(--peach-t3);5288  background: transparent;5289  color: var(--peach-t2);5290  font-family: "IBM Plex Mono", monospace;5291  font-size: 0.6rem;5292  cursor: pointer;5293  transition: border-color 80ms, background 80ms, color 80ms;5294}52955296.peach-identity-filter-pill.is-on {5297  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5298  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5299  color: var(--peach-accent);5300}53015302.peach-identity-suggestion {5303  display: flex;5304  align-items: center;5305  gap: 6px;5306  width: 100%;5307  padding: 4px 6px;5308  border-radius: 5px;5309  border: none;5310  background: transparent;5311  cursor: pointer;5312  text-align: left;5313  transition: background 80ms ease;5314}53155316.peach-identity-suggestion:hover,5317.peach-identity-suggestion:focus {5318  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5319  outline: none;5320}53215322.peach-identity-suggestion-value {5323  font-family: "IBM Plex Mono", monospace;5324  font-size: 0.7rem;5325  color: var(--peach-t1);5326  overflow: hidden;5327  text-overflow: ellipsis;5328  white-space: nowrap;5329  flex: 1;5330  min-width: 0;5331}53325333.peach-identity-suggestion-type {5334  font-family: "IBM Plex Mono", monospace;5335  font-size: 0.55rem;5336  font-weight: 600;5337  flex-shrink: 0;5338  padding: 1px 4px;5339  border-radius: 3px;5340}53415342.peach-identity-suggestion-type--email {5343  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5344  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5345}53465347.peach-identity-suggestion-type--username {5348  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5349  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5350}53515352.peach-identity-suggestion-meta {5353  font-family: "IBM Plex Mono", monospace;5354  font-size: 0.6rem;5355  color: var(--peach-t3);5356  flex-shrink: 0;5357}53585359/* Tag filter strip */5360.peach-tag-filter-strip {5361  border-bottom: 1px solid var(--peach-t3);5362  flex-shrink: 0;5363}53645365.peach-tag-filter-chip {5366  display: inline-flex;5367  align-items: center;5368  padding: 4px 10px;5369  border-radius: 999px;5370  border: 1px solid var(--peach-t3);5371  background: transparent;5372  color: var(--peach-t2);5373  font-family: "IBM Plex Mono", monospace;5374  font-size: 0.5625rem;5375  letter-spacing: 0.06em;5376  text-transform: uppercase;5377  cursor: pointer;5378  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5379  white-space: nowrap;5380}53815382.peach-tag-filter-chip:hover {5383  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5384  color: var(--peach-t1);5385}53865387.peach-tag-filter-chip.is-selected {5388  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5389  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5390  color: var(--peach-t0);5391}53925393/* ─────────────────────────────────────────────────────────────────────────5394   v1.4.12 additions5395   ─────────────────────────────────────────────────────────────────────── */53965397/* Sort bar */5398.peach-sort-bar {5399  display: flex;5400  align-items: center;5401  gap: 4px;5402  padding: 5px 12px;5403  border-bottom: 1px solid var(--peach-t3);5404  flex-shrink: 0;5405  overflow-x: auto;5406  scrollbar-width: none;5407}54085409.peach-sort-btn {5410  padding: 2px 9px;5411  border-radius: 999px;5412  border: 1px solid transparent;5413  background: transparent;5414  color: var(--peach-t2);5415  font-family: "IBM Plex Mono", monospace;5416  font-size: 0.5625rem;5417  letter-spacing: 0.07em;5418  text-transform: uppercase;5419  cursor: pointer;5420  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5421  white-space: nowrap;5422}54235424.peach-sort-btn:hover {5425  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5426  color: var(--peach-t1);5427}54285429.peach-sort-btn.is-active {5430  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5431  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5432  color: var(--peach-t0);5433}54345435.peach-sort-domain-hint {5436  margin-left: auto;5437  font-family: "IBM Plex Mono", monospace;5438  font-size: 0.5625rem;5439  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5440  white-space: nowrap;5441  overflow: hidden;5442  text-overflow: ellipsis;5443  max-width: 110px;5444}54455446/* Tab-match badge on entry rows */5447.peach-tab-match-badge {5448  display: inline-block;5449  width: 6px;5450  height: 6px;5451  border-radius: 50%;5452  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5453  margin-left: 5px;5454  vertical-align: middle;5455  flex-shrink: 0;5456  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5457}54585459.peach-entry-row.is-tab-match {5460  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5461  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5462}54635464.peach-entry-row.is-tab-match:hover {5465  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5466}54675468/* Entry list stagger entrance */5469@keyframes peach-entry-fadein {5470  from { opacity: 0; transform: translateY(4px); }5471  to   { opacity: 1; transform: translateY(0); }5472}54735474.peach-vault-list .peach-entry-row {5475  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5476}54775478/* Button press micro-interaction */5479.peach-btn:active {5480  transform: scale(0.95);5481  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5482}54835484.peach-sort-btn:active,5485.peach-tag-filter-chip:active {5486  transform: scale(0.93);5487  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5488}54895490/* Password strength bar (Lock view + shared) */5491.peach-password-strength {5492  display: flex;5493  align-items: center;5494  gap: 8px;5495  margin-top: 6px;5496}54975498.peach-strength-bar {5499  flex: 1;5500  height: 3px;5501  border-radius: 2px;5502  background: var(--peach-t3);5503  overflow: hidden;5504}55055506.peach-strength-fill {5507  height: 100%;5508  border-radius: 2px;5509  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5510              background 300ms ease;5511}55125513.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5514.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5515.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5516.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }55175518.peach-strength-label {5519  font-family: "IBM Plex Mono", monospace;5520  font-style: italic;5521  font-size: 0.5625rem;5522  font-weight: 300;5523  letter-spacing: 0.06em;5524  color: var(--peach-t2);5525  min-width: 36px;5526  text-align: right;5527}55285529.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5530.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5531.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5532.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }55335534/* Duress form */5535.peach-duress-status {5536  padding: 2px 8px;5537  border-radius: 999px;5538  border: 1px solid var(--peach-t3);5539  font-family: "IBM Plex Mono", monospace;5540  font-size: 0.5625rem;5541  letter-spacing: 0.07em;5542  text-transform: uppercase;5543  color: var(--peach-t2);5544  flex-shrink: 0;5545}55465547.peach-duress-status.is-active {5548  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5549  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5550  color: var(--peach-t0);5551}55525553.peach-duress-form {5554  padding: 8px 0 4px;5555  display: flex;5556  flex-direction: column;5557  gap: 6px;5558}55595560.peach-duress-form .peach-label {5561  margin-top: 4px;5562}55635564.peach-duress-actions {5565  display: flex;5566  gap: 6px;5567  align-items: center;5568  margin-top: 4px;5569}55705571.peach-duress-actions .peach-btn:first-child {5572  margin-right: auto;5573}55745575/* Improved overlay spring entrance */5576.peach-overlay-view.ov-enter-up {5577  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5578}55795580@keyframes ov-enter-up-spring {5581  from { opacity: 0; transform: translateY(16px) scale(0.98); }5582  to   { opacity: 1; transform: translateY(0) scale(1); }5583}55845585.peach-overlay-view.ov-enter-right {5586  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5587}55885589@keyframes ov-enter-right-spring {5590  from { opacity: 0; transform: translateX(18px) scale(0.98); }5591  to   { opacity: 1; transform: translateX(0) scale(1); }5592}55935594/* ── Onboarding-mode restore screens (file import) ── */5595/* Used when MainImportView renders during onboarding (no vault yet).5596   Animates like a lock-screen transition. */5597.peach-lock-view {5598  position: absolute;5599  inset: 0;5600  display: flex;5601  flex-direction: column;5602  background:5603    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5604    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5605    var(--peach-bg);5606  z-index: 2;5607  overflow: hidden;5608  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5609}56105611.peach-lock-view-header {5612  display: flex;5613  align-items: center;5614  justify-content: space-between;5615  padding: 16px 18px 12px;5616  flex-shrink: 0;5617}56185619/* ───────── Settings: auto-lock select ───────── */5620.peach-settings-select {5621  font-family: "IBM Plex Mono", monospace;5622  font-size: 0.6875rem;5623  background: transparent;5624  border: 1px solid var(--peach-t3);5625  border-radius: 4px;5626  color: var(--peach-t1);5627  padding: 3px 6px;5628  cursor: pointer;5629  outline: none;5630}5631.peach-settings-select:focus {5632  border-color: var(--peach-accent);5633}56345635/* ───────── Duress status pill (new polished) ───────── */5636.peach-duress-status-pill {5637  font-family: "IBM Plex Mono", monospace;5638  font-size: 0.5625rem;5639  text-transform: uppercase;5640  letter-spacing: 0.12em;5641  padding: 2px 8px;5642  border-radius: 12px;5643  background: var(--peach-t3);5644  color: var(--peach-t2);5645  flex-shrink: 0;5646}5647.peach-duress-status-pill.is-active {5648  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5649  color: var(--peach-accent);5650}56515652/* ───────── Entry advanced disclosure (canary) ───────── */5653.peach-entry-advanced {5654  margin-top: 12px;5655  border-top: 1px solid var(--peach-t3);5656  padding-top: 10px;5657  position: relative;5658  z-index: 1;5659}5660.peach-entry-advanced-toggle {5661  display: flex;5662  align-items: center;5663  justify-content: space-between;5664  width: 100%;5665  background: transparent;5666  border: none;5667  cursor: pointer;5668  padding: 0;5669  color: var(--peach-t2);5670}5671.peach-canary-section {5672  margin-top: 10px;5673  display: grid;5674  gap: 6px;5675}56765677/* ───────── Import: merge/replace radio choices ───────── */5678.peach-import-choice {5679  display: flex;5680  align-items: flex-start;5681  gap: 10px;5682  padding: 8px 10px;5683  border: 1px solid var(--peach-t3);5684  border-radius: 10px;5685  cursor: pointer;5686  margin-bottom: 6px;5687  transition: border-color 120ms ease, background 120ms ease;5688}5689.peach-import-choice:hover {5690  border-color: var(--peach-accent);5691}5692.peach-import-choice input[type="radio"] {5693  margin-top: 3px;5694  accent-color: var(--peach-accent);5695  flex-shrink: 0;5696}5697.peach-import-choice-main {5698  display: flex;5699  flex-direction: column;5700  gap: 2px;5701  min-width: 0;5702}5703.peach-import-choice-label {5704  font-size: 0.75rem;5705  color: var(--peach-t0);5706}5707.peach-import-choice-sub {5708  font-size: 0.6875rem;5709  color: var(--peach-t2);5710  line-height: 1.5;5711}57125713/* ───────── Export: success confirmation strip ───────── */5714.peach-export-success {5715  display: flex;5716  align-items: flex-start;5717  gap: 10px;5718  padding: 12px;5719  border-radius: 12px;5720  border: 1px solid rgba(150, 175, 110, 0.3);5721  background: rgba(150, 175, 110, 0.08);5722  color: var(--peach-t0);5723  font-size: 0.75rem;5724  line-height: 1.55;5725}5726.peach-export-success-check {5727  color: rgba(150, 175, 110, 0.9);5728  font-size: 0.875rem;5729  flex-shrink: 0;5730}57315732/* ── Trash view ──────────────────────────────────────────────────────── */5733.peach-trash-entry-row {5734  display: flex;5735  align-items: center;5736  justify-content: space-between;5737  gap: 8px;5738  padding: 8px 0;5739  border-bottom: 1px solid var(--peach-border);5740}5741.peach-trash-entry-info {5742  flex: 1;5743  min-width: 0;5744  display: flex;5745  flex-direction: column;5746  gap: 2px;5747}5748.peach-trash-entry-title {5749  font-size: 0.8125rem;5750  color: var(--peach-t0);5751  overflow: hidden;5752  text-overflow: ellipsis;5753  white-space: nowrap;5754}5755.peach-trash-entry-meta {5756  font-family: var(--font-mono);5757  font-size: 0.5625rem;5758  color: var(--peach-t2);5759  letter-spacing: 0.04em;5760}5761.peach-trash-entry-actions {5762  display: flex;5763  align-items: center;5764  gap: 4px;5765  flex-shrink: 0;5766}5767.peach-trash-delete-btn {5768  background: transparent;5769  border: 0;5770  color: var(--peach-t3);5771  font-size: 1rem;5772  line-height: 1;5773  cursor: pointer;5774  padding: 2px 5px;5775  transition: color 0.15s;5776}5777.peach-trash-delete-btn:hover { color: var(--peach-breach); }5778.peach-trash-list {5779  overflow-y: auto;5780}5781.peach-trash-footer {5782  display: flex;5783  align-items: center;5784  gap: 8px;5785  padding: 8px 0 0;5786  border-top: 1px solid var(--peach-border);5787  margin-top: 4px;5788}5789.peach-trash-purge-all {5790  background: transparent;5791  border: 0;5792  color: var(--peach-t3);5793  font-size: 0.625rem;5794  cursor: pointer;5795  padding: 4px 0;5796  letter-spacing: 0.03em;5797  transition: color 0.2s;5798}5799.peach-trash-purge-all:hover { color: var(--peach-breach); }5800.peach-trash-purge-confirm-label {5801  font-size: 0.625rem;5802  color: var(--peach-t1);5803  flex: 1;5804}58055806/* ── Settings shortcuts grid ─────────────────────────────────────────── */5807.peach-shortcuts-grid {5808  display: grid;5809  grid-template-columns: auto 1fr;5810  gap: 6px 12px;5811  align-items: center;5812  padding: 4px 0;5813}5814.peach-shortcut-key {5815  font-family: var(--font-mono);5816  font-size: 0.625rem;5817  color: var(--peach-t0);5818  background: var(--peach-t3);5819  border-radius: 4px;5820  padding: 2px 6px;5821  white-space: nowrap;5822  text-align: center;5823}5824.peach-shortcut-desc {5825  font-size: 0.6875rem;5826  color: var(--peach-t1);5827}58285829/* ── Sort bar trash button ───────────────────────────────────────────── */5830.peach-sort-trash-btn {5831  display: flex;5832  align-items: center;5833  justify-content: center;5834  padding: 3px 5px;5835  background: transparent;5836  border: none;5837  cursor: pointer;5838  color: var(--peach-t2);5839  border-radius: 4px;5840  transition: color 140ms ease, background 140ms ease;5841}5842.peach-sort-trash-btn:hover {5843  color: var(--peach-t1);5844  background: var(--peach-t3);5845}5846.peach-sort-trash-btn.is-active {5847  color: var(--peach-accent);5848}58495850/* Accent color picker */5851.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5852.peach-accent-picker {5853  display: flex;5854  flex-wrap: wrap;5855  gap: 7px;5856  padding: 2px 0;5857}5858.peach-accent-swatch {5859  width: 22px;5860  height: 22px;5861  border-radius: 50%;5862  border: 2px solid transparent;5863  cursor: pointer;5864  padding: 0;5865  transition: transform 100ms;5866  outline-offset: 2px;5867}5868.peach-accent-swatch:hover { transform: scale(1.15); }5869.peach-accent-swatch.is-active {5870  border-color: var(--peach-t0);5871  transform: scale(1.1);5872}58735874.peach-pill-group {5875  display: flex;5876  gap: 6px;5877}5878.peach-pill-group .peach-btn.is-active {5879  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5880  border-color: var(--peach-accent);5881  color: var(--peach-t0);5882}58835884/* ── Card entry styles ───────────────────────────────────────── */5885.peach-card-number {5886  font-family: var(--peach-mono);5887  letter-spacing: 0.08em;5888}58895890.peach-card-network-badge {5891  font-size: 0.625rem;5892  padding: 1px 5px;5893  border-radius: 4px;5894  border: 0.5px solid var(--peach-border);5895  color: var(--peach-text-dim);5896  margin-left: 6px;5897  vertical-align: middle;5898}58995900.peach-card-expiry-row {5901  display: flex;5902  align-items: center;5903  gap: 8px;5904}59055906.peach-card-expiry-sep {5907  color: var(--peach-text-dim);5908}59095910/* ── Pro tier — upgrade screen ──────────────────────────────── */5911.peach-pro-mark {5912  font-size: 0.5625rem;5913  color: var(--peach-accent);5914  margin-left: 6px;5915  vertical-align: super;5916  opacity: 0.7;5917}59185919.peach-pro-mini-badge {5920  display: block;5921  font-size: 0.625rem;5922  font-style: italic;5923  color: var(--peach-accent);5924  letter-spacing: 0.04em;5925  margin-top: -2px;5926  padding-left: 2px;5927  opacity: 0.85;5928  text-align: center;5929}59305931.peach-wordmark-stack {5932  display: inline-flex;5933  flex-direction: column;5934  align-items: center;5935}59365937/* ── Pro tier — upgrade page ─────────────────────────────────── */5938.peach-pro-upgrade {5939  display: flex;5940  flex-direction: column;5941  align-items: stretch;5942  gap: 10px;5943  padding: 0 4px 8px;5944}59455946.peach-pro-upgrade-hero {5947  display: flex;5948  flex-direction: column;5949  align-items: center;5950  gap: 4px;5951  padding: 10px 0 6px;5952}59535954.peach-pro-upgrade-mark-wrap {5955  display: flex;5956  align-items: center;5957  justify-content: center;5958  margin-bottom: 2px;5959}59605961.peach-pro-upgrade-mark {5962  width: 38px;5963  height: 38px;5964  opacity: 0.9;5965}59665967.peach-pro-upgrade-title {5968  font-family: var(--font-display, var(--font-ui));5969  font-size: 22px;5970  margin: 0;5971  color: var(--peach-t0);5972  letter-spacing: 0.01em;5973}59745975.peach-pro-upgrade-tagline {5976  margin: 0;5977  font-style: italic;5978  color: var(--peach-t2);5979  font-size: 0.6875rem;5980}59815982.peach-pro-features {5983  display: flex;5984  flex-direction: column;5985  gap: 8px;5986  border-top: 1px solid var(--peach-border);5987  border-bottom: 1px solid var(--peach-border);5988  padding: 10px 4px;5989}59905991.peach-pro-feature {5992  display: flex;5993  gap: 9px;5994  align-items: baseline;5995}59965997.peach-pro-feature-mark {5998  color: var(--peach-accent);5999  font-size: 0.6875rem;6000  flex-shrink: 0;6001  display: inline-block;6002  transform-origin: center;6003  opacity: 0.8;6004}60056006.peach-pro-feature-text {6007  display: flex;6008  flex-direction: column;6009  gap: 1px;6010}60116012.peach-pro-feature-name {6013  font-size: 0.75rem;6014  color: var(--peach-t0);6015}60166017.peach-pro-feature-desc {6018  font-size: 0.625rem;6019  color: var(--peach-t2);6020}60216022.peach-pro-feature.is-highlighted .peach-pro-feature-mark {6023  animation: peach-pulse-accent 600ms ease-out forwards;6024}60256026@keyframes peach-pulse-accent {6027  0%   { opacity: 1; transform: scale(1.4); }6028  100% { opacity: 0.7; transform: scale(1); }6029}60306031.peach-pro-upgrade-actions {6032  display: flex;6033  flex-direction: column;6034  align-items: center;6035  gap: 8px;6036  padding-top: 2px;6037}60386039.peach-pro-pricing {6040  margin: 0;6041  text-align: center;6042  font-size: 0.6875rem;6043  color: var(--peach-t2);6044  letter-spacing: 0.04em;6045}60466047.peach-pro-upgrade-cta {6048  align-self: center;6049  text-align: center;6050  text-decoration: none;6051  display: block;6052  padding: 9px 32px;6053  font-size: 0.8125rem;6054  min-width: 180px;6055}60566057.peach-pro-key-divider {6058  display: flex;6059  align-items: center;6060  gap: 8px;6061  width: 100%;6062  color: var(--peach-t3);6063  font-size: 0.625rem;6064  letter-spacing: 0.08em;6065}60666067.peach-pro-key-divider::before,6068.peach-pro-key-divider::after {6069  content: "";6070  flex: 1;6071  height: 1px;6072  background: var(--peach-border);6073}60746075.peach-pro-key-link {6076  background: transparent;6077  border: 1px solid var(--peach-border);6078  border-radius: 8px;6079  color: var(--peach-t1);6080  font-size: 0.75rem;6081  cursor: pointer;6082  align-self: stretch;6083  padding: 8px 12px;6084  text-align: center;6085  transition: border-color 0.2s, color 0.2s;6086}60876088.peach-pro-key-link:hover {6089  border-color: var(--peach-accent);6090  color: var(--peach-accent);6091}60926093/* ── Pro tier — key ceremony ─────────────────────────────────── */6094.peach-pro-key-ceremony {6095  display: flex;6096  flex-direction: column;6097  align-items: center;6098  gap: 12px;6099  padding: 20px 4px 16px;6100}61016102.peach-pro-key-ceremony .peach-lock-rune-string {6103  font-size: 1rem;6104  gap: 12px;6105  flex: 0;6106  justify-content: center;6107}61086109.peach-pro-key-ceremony-label {6110  margin: 0;6111  font-size: 0.6875rem;6112  color: var(--peach-t2);6113  font-style: italic;6114  letter-spacing: 0.04em;6115}61166117.peach-pro-key-input {6118  font-family: var(--font-mono, monospace);6119  letter-spacing: 0.06em;6120  text-align: center;6121  width: 100%;6122  box-sizing: border-box;6123}61246125.peach-pro-key-error {6126  margin: 0;6127  font-size: 0.75rem;6128  text-align: center;6129  color: var(--peach-breach, #e55);6130  padding: 0;6131}61326133.peach-pro-key-activate {6134  width: 100%;6135  text-align: center;6136  box-sizing: border-box;6137  padding: 10px 20px;6138  font-size: 0.8125rem;6139}61406141.peach-pro-key-cancel {6142  background: transparent;6143  border: 0;6144  color: var(--peach-t2);6145  font-size: 0.6875rem;6146  cursor: pointer;6147  padding: 2px 8px;6148  transition: color 0.2s;6149}61506151.peach-pro-key-cancel:hover { color: var(--peach-accent); }61526153/* ── Pro tier — active state ─────────────────────────────────── */6154.peach-pro-active {6155  display: flex;6156  flex-direction: column;6157  align-items: center;6158  gap: 0;6159  padding: 8px 4px 16px;6160  min-height: 280px;6161}61626163.peach-pro-active-hero {6164  display: flex;6165  flex-direction: column;6166  align-items: center;6167  gap: 6px;6168  padding: 20px 0 22px;6169}61706171.peach-pro-active-mark-wrap {6172  display: flex;6173  align-items: center;6174  justify-content: center;6175  margin-bottom: 4px;6176}61776178.peach-pro-active-mark {6179  width: 60px;6180  height: 60px;6181  filter:6182    drop-shadow(0 0 10px color-mix(in srgb, var(--peach-accent) 55%, transparent))6183    drop-shadow(0 0 26px color-mix(in srgb, var(--peach-accent) 22%, transparent));6184}61856186.peach-pro-active-title {6187  font-family: var(--font-display, var(--font-ui));6188  font-size: 26px;6189  margin: 0;6190  color: var(--peach-t0);6191  letter-spacing: 0.01em;6192}61936194.peach-pro-active-since {6195  margin: 0;6196  font-size: 0.6875rem;6197  color: var(--peach-t2);6198  font-style: italic;6199}62006201.peach-pro-active-features {6202  display: flex;6203  flex-direction: column;6204  gap: 8px;6205  width: 100%;6206  padding: 14px 8px 0;6207  border-top: 1px solid var(--peach-border);6208  flex: 1;6209}62106211.peach-pro-active-feature {6212  display: flex;6213  align-items: center;6214  gap: 9px;6215}62166217.peach-pro-active-feature-mark {6218  color: var(--peach-accent);6219  font-size: 0.625rem;6220  opacity: 0.65;6221  flex-shrink: 0;6222}62236224.peach-pro-active-feature-name {6225  font-size: 0.75rem;6226  color: var(--peach-t1);6227}62286229.peach-pro-deactivate {6230  align-self: center;6231  background: transparent;6232  border: 0;6233  color: var(--peach-t3);6234  font-size: 0.625rem;6235  cursor: pointer;6236  padding: 8px 0 0;6237  margin-top: 16px;6238  letter-spacing: 0.03em;6239  transition: color 0.2s;6240}62416242.peach-pro-deactivate:hover { color: var(--peach-t2); }62436244.peach-pro-deactivate:disabled {6245  opacity: 0.5;6246  cursor: default;6247}62486249/* ── Pro advanced health remediation queue ──────────────────── */6250.peach-health-pro-queue {6251  display: flex;6252  flex-direction: column;6253  gap: 10px;6254  padding: 12px;6255  margin: 0 0 12px;6256  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6257  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6258  border-radius: 10px;6259}62606261.peach-health-pro-queue-head {6262  display: flex;6263  justify-content: space-between;6264  align-items: baseline;6265}62666267.peach-health-pro-queue-title {6268  font-size: 0.75rem;6269  font-weight: 500;6270  letter-spacing: 0.04em;6271  text-transform: uppercase;6272  color: var(--peach-accent);6273}62746275.peach-health-pro-queue-score {6276  font-size: 0.6875rem;6277  color: var(--peach-t2);6278}62796280.peach-health-pro-row {6281  display: flex;6282  gap: 10px;6283  align-items: center;6284  padding: 8px 0;6285  border-top: 1px solid var(--peach-border);6286}62876288.peach-health-pro-row-info {6289  flex: 1;6290  display: flex;6291  flex-direction: column;6292  gap: 4px;6293  min-width: 0;6294}62956296.peach-health-pro-row-name {6297  font-size: 0.8125rem;6298  color: var(--peach-t0);6299  overflow: hidden;6300  text-overflow: ellipsis;6301  white-space: nowrap;6302}63036304.peach-health-pro-row-meta {6305  font-size: 0.6875rem;6306  color: var(--peach-t2);6307}63086309.peach-health-pro-bar {6310  height: 2px;6311  background: var(--peach-border);6312  border-radius: 2px;6313  overflow: hidden;6314  margin-top: 2px;6315}63166317.peach-health-pro-bar-fill {6318  height: 100%;6319  background: var(--peach-accent);6320  transition: width 200ms ease-out;6321}63226323/* ── Pro activation celebration ── */6324@keyframes peach-pro-bloom {6325  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6326  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6327                 drop-shadow(0 0 48px var(--peach-glow)); }6328  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6329}63306331@keyframes peach-pro-wordmark-in {6332  from { opacity: 0; transform: translateY(4px); }6333  to   { opacity: 1; transform: translateY(0); }6334}63356336@keyframes peach-pro-fade-out {6337  from { opacity: 1; }6338  to   { opacity: 0; }6339}63406341.peach-pro-celebration {6342  background:6343    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6344    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6345    var(--peach-bg);6346  border: 1px solid var(--peach-t3);6347  box-shadow:6348    0 2px 8px rgba(0,0,0,0.55),6349    0 14px 48px rgba(0,0,0,0.7),6350    0 0 0 1px rgba(240,232,216,0.04);6351  overflow: hidden;6352  width: 320px;6353  height: 520px;6354  display: flex;6355  flex-direction: column;6356  align-items: center;6357  justify-content: center;6358  gap: 8px;6359  padding: 32px 24px;6360  text-align: center;6361}63626363.peach-pro-celebration.is-leaving {6364  animation: peach-pro-fade-out 400ms ease forwards;6365}63666367.peach-pro-bloom-target {6368  display: flex;6369  align-items: center;6370  justify-content: center;6371  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6372  margin-bottom: 12px;6373}63746375.peach-pro-bloom-icon {6376  width: 48px;6377  height: 48px;6378}63796380.peach-pro-wordmark {6381  font-family: var(--font-display);6382  font-size: 22px;6383  font-style: italic;6384  font-weight: 400;6385  color: var(--peach-accent);6386  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6387}63886389.peach-pro-thankyou {6390  font-size: 0.75rem;6391  font-style: italic;6392  color: var(--peach-t2);6393  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6394}639563966397/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6398.peach-pro-notice-banner {6399  display: flex;6400  align-items: center;6401  gap: 8px;6402  padding: 7px 12px;6403  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6404  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6405  font-size: 0.6875rem;6406  color: var(--peach-t2);6407  font-family: "IBM Plex Mono", monospace;6408  flex-shrink: 0;6409}64106411.peach-pro-notice-link {6412  background: none;6413  border: none;6414  padding: 0;6415  cursor: pointer;6416  font-size: 0.6875rem;6417  color: var(--peach-accent);6418  font-family: "IBM Plex Mono", monospace;6419  margin-left: auto;6420  white-space: nowrap;6421}64226423.peach-pro-notice-close {6424  background: none;6425  border: none;6426  padding: 0 0 0 4px;6427  cursor: pointer;6428  font-size: 0.625rem;6429  color: var(--peach-t3);6430  line-height: 1;6431}64326433/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6434   Renders over whatever view is showing. 60-second expiry; the popup ticks6435   the countdown each second and clears the banner when it hits zero. */6436.peach-pair-request-banner {6437  display: flex;6438  flex-direction: column;6439  gap: 8px;6440  padding: 10px 12px;6441  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6442  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6443  font-family: "IBM Plex Mono", monospace;6444  flex-shrink: 0;6445}64466447.peach-pair-toast {6448  padding: 8px 12px;6449  font-family: "IBM Plex Mono", monospace;6450  font-size: 0.75rem;6451  color: var(--peach-t1);6452  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6453  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6454  flex-shrink: 0;6455  text-align: center;6456}64576458.peach-pair-toast strong {6459  color: var(--peach-t0);6460  font-weight: 500;6461}64626463.peach-pair-request-header {6464  display: flex;6465  align-items: center;6466  gap: 8px;6467  font-size: 0.75rem;6468  color: var(--peach-t1);6469}64706471.peach-pair-request-mark {6472  font-size: 0.875rem;6473  display: inline-flex;6474  align-items: center;6475}64766477.peach-pair-request-icon {6478  width: 1em;6479  height: 1em;6480}64816482.peach-pair-request-title {6483  font-weight: 600;6484  color: var(--peach-t0);6485}64866487.peach-pair-request-countdown {6488  margin-left: auto;6489  font-variant-numeric: tabular-nums;6490  color: var(--peach-t2);6491  font-size: 0.6875rem;6492}64936494.peach-pair-request-body {6495  margin: 0;6496  font-size: 0.75rem;6497  color: var(--peach-t1);6498  line-height: 1.4;6499}65006501.peach-pair-request-body strong {6502  color: var(--peach-t0);6503  font-weight: 600;6504}65056506.peach-pair-request-actions {6507  display: flex;6508  gap: 8px;6509  justify-content: flex-end;6510}65116512/* ─── First-run onboarding ──────────────────────────────────────────────6513   Three-card welcome shown once before vault creation. The PeachScript6514   rune background drifts behind everything at very low opacity — it's6515   atmosphere, not focus. The cards themselves use the same panel6516   language as the rest of the popup so the transition into NewVault is6517   continuous, not a jarring switch of visual register. */65186519.peach-onboarding {6520  position: relative;6521  display: flex;6522  flex-direction: column;6523  width: 100%;6524  height: 100%;6525  padding: 16px 16px 18px;6526  box-sizing: border-box;6527  overflow: hidden;6528  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6529}65306531.peach-onboarding.is-completing {6532  animation: peach-onboard-exit 200ms ease-out forwards;6533}65346535.peach-rune-background {6536  position: absolute;6537  inset: 0;6538  width: 100%;6539  height: 100%;6540  pointer-events: none;6541  z-index: 0;6542  transition: opacity 500ms ease-out;6543}65446545.peach-onboarding.is-completing .peach-rune-background {6546  opacity: 0;6547}65486549.peach-onboarding-header {6550  position: relative;6551  z-index: 1;6552  display: flex;6553  align-items: center;6554  margin-bottom: 14px;6555}65566557.peach-onboarding-card {6558  position: relative;6559  z-index: 1;6560  flex: 1;6561  display: flex;6562  flex-direction: column;6563  gap: 10px;6564  padding: 22px 20px;6565  border-radius: 16px;6566  border: 1px solid var(--peach-t3);6567  background:6568    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6569  backdrop-filter: blur(3px);6570  -webkit-backdrop-filter: blur(3px);6571  box-shadow:6572    inset 0 1px 0 rgba(240, 232, 216, 0.04),6573    0 12px 28px rgba(0, 0, 0, 0.12);6574  cursor: pointer;6575  user-select: none;6576  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6577}65786579.peach-onboarding-card.is-exiting {6580  animation: peach-card-out 120ms ease-in forwards;6581  pointer-events: none;6582}65836584.peach-onboarding-card-headline {6585  margin: 0;6586  font-family: var(--font-display);6587  font-style: italic;6588  font-weight: 400;6589  font-size: 22px;6590  line-height: 1.05;6591  color: var(--peach-t0);6592  white-space: pre-line;6593}65946595.peach-onboarding-divider {6596  margin: 4px 0 6px;6597  border: 0;6598  border-top: 1px solid var(--peach-t3);6599  width: 100%;6600}66016602.peach-onboarding-body {6603  margin: 0;6604  font-size: 0.8125rem;6605  line-height: 1.6;6606  color: var(--peach-t1);6607}66086609.peach-onboarding-warning {6610  display: flex;6611  align-items: flex-start;6612  gap: 8px;6613  margin: 6px 0 0;6614  padding-top: 8px;6615  border-top: 1px dashed var(--peach-t3);6616  font-size: 0.8125rem;6617  line-height: 1.5;6618  color: var(--peach-t1);6619}66206621.peach-onboarding-warning-icon {6622  color: var(--peach-accent);6623  font-size: 0.8125rem;6624  line-height: 1.5;6625  flex: 0 0 auto;6626}66276628.peach-onboarding-nav {6629  position: relative;6630  z-index: 1;6631  display: flex;6632  align-items: center;6633  justify-content: space-between;6634  margin-top: 12px;6635  padding: 0 4px;6636}66376638.peach-onboarding-dots {6639  display: flex;6640  align-items: center;6641  gap: 6px;6642}66436644.peach-onboarding-dot {6645  width: 6px;6646  height: 6px;6647  border-radius: 50%;6648  background: var(--peach-t2);6649  transition: width 200ms ease, height 200ms ease, background 200ms ease;6650}66516652.peach-onboarding-dot.is-active {6653  width: 8px;6654  height: 8px;6655  background: var(--peach-accent);6656}66576658.peach-onboarding-next {6659  background: none;6660  border: none;6661  padding: 4px 0;6662  cursor: pointer;6663  font-family: "IBM Plex Mono", monospace;6664  font-size: 0.6875rem;6665  letter-spacing: 0.04em;6666  color: var(--peach-t1);6667  transition: color 150ms ease;6668}66696670.peach-onboarding-next:hover {6671  color: var(--peach-t0);6672}66736674.peach-onboarding-next:disabled {6675  opacity: 0.5;6676  cursor: default;6677}66786679.peach-onboarding-back {6680  background: none;6681  border: none;6682  padding: 4px 0;6683  cursor: pointer;6684  font-family: "IBM Plex Mono", monospace;6685  font-size: 0.6875rem;6686  letter-spacing: 0.04em;6687  color: var(--peach-t2);6688  transition: color 150ms ease;6689}66906691.peach-onboarding-back:hover {6692  color: var(--peach-t0);6693}66946695.peach-onboarding-back:disabled {6696  opacity: 0.5;6697  cursor: default;6698}66996700/* Reserve back-button width on the first card so the dots stay centred */6701.peach-onboarding-back-spacer {6702  width: 44px;6703}67046705.peach-onboarding-mobile-card-buttons {6706  display: flex;6707  flex-direction: column;6708  gap: 8px;6709  margin-top: 16px;6710}67116712@keyframes peach-onboard-enter {6713  from { opacity: 0; transform: translateY(20px); }6714  to   { opacity: 1; transform: translateY(0); }6715}67166717@keyframes peach-onboard-exit {6718  from { opacity: 1; }6719  to   { opacity: 0; }6720}67216722@keyframes peach-card-in {6723  from { opacity: 0; transform: translateX(12px); }6724  to   { opacity: 1; transform: translateX(0); }6725}67266727@keyframes peach-card-out {6728  from { opacity: 1; transform: translateX(0); }6729  to   { opacity: 0; transform: translateX(-12px); }6730}67316732/* ─── New vault screen — matched to onboarding card language ─────────── */67336734.peach-newvault {6735  position: relative;6736  display: flex;6737  flex-direction: column;6738  gap: 12px;6739  padding: 16px 16px 18px;6740  overflow: hidden;6741}67426743/* Suppress the warm-blob ambient art inherited from .lock-screen — the6744   new vault card now carries the visual weight. */6745.peach-newvault::before {6746  content: none;6747}67486749.peach-newvault-header {6750  position: relative;6751  z-index: 2;6752  display: flex;6753  align-items: center;6754  gap: 10px;6755  margin-bottom: 2px;6756}67576758.peach-newvault-back {6759  display: inline-flex;6760  align-items: center;6761  gap: 4px;6762  background: transparent;6763  border: none;6764  color: var(--peach-t2);6765  font-family: "IBM Plex Mono", monospace;6766  font-size: 0.625rem;6767  letter-spacing: 0.06em;6768  cursor: pointer;6769  padding: 4px 6px;6770  border-radius: 6px;6771  transition: color 120ms ease, background 120ms ease;6772}67736774.peach-newvault-back:hover {6775  color: var(--peach-t0);6776  background: rgba(240, 232, 216, 0.04);6777}67786779.peach-newvault-mark {6780  position: absolute;6781  right: -12px;6782  top: 6px;6783  width: 110px;6784  height: 110px;6785  pointer-events: none;6786  opacity: 0.10;6787  filter: saturate(0.9);6788  z-index: 0;6789}6790.peach-newvault-mark-art {6791  width: 100%;6792  height: 100%;6793}6794.peach-newvault-mark-art path:nth-child(1) {6795  fill: rgba(123, 144, 96, 0.88);6796}6797.peach-newvault-mark-art path:nth-child(2) {6798  stroke: rgba(94, 122, 66, 0.95);6799}68006801.peach-newvault-card {6802  position: relative;6803  z-index: 1;6804  display: flex;6805  flex-direction: column;6806  gap: 12px;6807  padding: 22px 20px 18px;6808  border-radius: 16px;6809  border: 1px solid var(--peach-t3);6810  background:6811    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6812  backdrop-filter: blur(3px);6813  -webkit-backdrop-filter: blur(3px);6814  box-shadow:6815    inset 0 1px 0 rgba(240, 232, 216, 0.04),6816    0 12px 28px rgba(0, 0, 0, 0.12);6817  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;6818}68196820.peach-newvault-headline {6821  margin: 0;6822  font-family: var(--font-display);6823  font-style: italic;6824  font-weight: 400;6825  font-size: 24px;6826  line-height: 1.05;6827  color: var(--peach-t0);6828  white-space: pre-line;6829}68306831.peach-newvault-divider {6832  margin: 2px 0 4px;6833  border: 0;6834  border-top: 1px solid var(--peach-t3);6835  width: 100%;6836}68376838.peach-newvault-field {6839  display: flex;6840  flex-direction: column;6841  gap: 4px;6842}68436844.peach-newvault-label-row {6845  display: flex;6846  align-items: center;6847  justify-content: space-between;6848}68496850/* Monospace input scaled to the card. Replaces the 22px unlock-input6851   so the placeholder no longer overflows and the field reads as part6852   of the same surface as the body copy. */6853.peach-newvault-input {6854  font-size: 0.875rem;6855  letter-spacing: 0.18em;6856  padding: 8px 0;6857}6858.peach-newvault-input::placeholder {6859  letter-spacing: 0.18em;6860  color: var(--peach-t2);6861}68626863.peach-newvault-hint {6864  margin: 2px 0 0;6865  font-family: "IBM Plex Mono", monospace;6866  font-size: 0.625rem;6867  color: var(--peach-t2);6868  letter-spacing: 0.04em;6869}68706871.peach-newvault-submit {6872  margin-top: 4px;6873}68746875.peach-newvault-warning {6876  display: flex;6877  align-items: flex-start;6878  gap: 8px;6879  margin: 4px 0 0;6880  padding-top: 10px;6881  border-top: 1px dashed var(--peach-t3);6882  font-size: 0.75rem;6883  line-height: 1.5;6884  color: var(--peach-t1);6885}68866887.peach-newvault-warning-icon {6888  color: var(--peach-accent);6889  font-size: 0.8125rem;6890  line-height: 1.4;6891  flex: 0 0 auto;6892}68936894.peach-newvault-footer {6895  position: relative;6896  z-index: 1;6897  display: flex;6898  flex-direction: column;6899  gap: 4px;6900  padding: 4px 4px 0;6901}69026903/* Settings body — warm accent gradient gives the glass something to blur against */6904.peach-settings-body {6905  background:6906    radial-gradient(6907      ellipse at 30% 20%,6908      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,6909      transparent 60%6910    );6911}69126913/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */6914/* ── Danger cards (Replace + Destroy) ────────────────────────────────────6915 * Two severity levels: "warn" for actions that are dangerous-but-recoverable6916 * (replacing the vault from a backup file) and "hazard" for actions that6917 * are absolutely irreversible (Panic). Both use the same card scaffold so6918 * they read as a pair, but the colour family signals the severity at a6919 * glance — yellow for caution, red for don't.6920 */6921.peach-danger-card {6922  --danger-tint: 235, 158, 52; /* amber */6923  display: flex;6924  flex-direction: column;6925  gap: 8px;6926  padding: 14px;6927  margin-top: 10px;6928  border-radius: 12px;6929  border: 1px solid rgba(var(--danger-tint), 0.32);6930  background:6931    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),6932    rgba(var(--danger-tint), 0.04);6933  box-shadow:6934    inset 0 1px 0 rgba(var(--danger-tint), 0.08),6935    0 0 24px rgba(var(--danger-tint), 0.04);6936  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;6937}69386939.peach-danger-card:hover {6940  border-color: rgba(var(--danger-tint), 0.55);6941  box-shadow:6942    inset 0 1px 0 rgba(var(--danger-tint), 0.12),6943    0 0 36px rgba(var(--danger-tint), 0.10);6944}69456946.peach-danger-card--hazard {6947  --danger-tint: 220, 38, 38; /* red */6948}69496950.peach-danger-card-head {6951  display: flex;6952  align-items: center;6953  gap: 10px;6954}69556956.peach-danger-card-glyph {6957  width: 28px;6958  height: 28px;6959  flex-shrink: 0;6960  display: flex;6961  align-items: center;6962  justify-content: center;6963  border-radius: 8px;6964  background: rgba(var(--danger-tint), 0.12);6965  color: rgba(var(--danger-tint), 0.95);6966  font-size: 1rem;6967  line-height: 1;6968}69696970.peach-danger-card-title {6971  margin: 0;6972  font-size: 0.8125rem;6973  font-weight: 600;6974  color: rgba(var(--danger-tint), 0.92);6975  letter-spacing: 0.01em;6976}69776978.peach-danger-card-copy {6979  margin: 0;6980  font-size: 0.6875rem;6981  line-height: 1.5;6982  color: var(--peach-t2);6983}69846985.peach-danger-card-button {6986  width: 100%;6987  padding: 9px;6988  margin-top: 4px;6989  background: transparent;6990  border: 1px solid rgba(var(--danger-tint), 0.45);6991  border-radius: 8px;6992  color: rgba(var(--danger-tint), 0.9);6993  font-size: 0.75rem;6994  font-weight: 500;6995  letter-spacing: 0.02em;6996  cursor: pointer;6997  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6998}69997000.peach-danger-card-button:hover {7001  background: rgba(var(--danger-tint), 0.10);7002  border-color: rgba(var(--danger-tint), 0.75);7003  color: rgb(var(--danger-tint));7004}70057006/* ── Panic flow (three-step destruction) ───────────────────────────────── */7007.peach-panic {7008  display: flex;7009  flex-direction: column;7010  flex: 1;7011  min-height: 0;7012  padding: 28px 20px 20px;7013  gap: 18px;7014  overflow-y: auto;7015  scrollbar-width: none;7016  -ms-overflow-style: none;7017}70187019.peach-panic::-webkit-scrollbar { display: none; }70207021.peach-panic-step2 {7022  background: rgba(220, 38, 38, 0.04);7023}70247025.peach-panic-step3 {7026  position: relative;7027  background: #0f0505;7028  color: #ffffff;7029  overflow: hidden;7030}70317032.peach-panic-rune-bg {7033  position: absolute;7034  inset: 0;7035  opacity: 0.22;7036  pointer-events: none;7037  overflow: hidden;7038}70397040.peach-panic-rune-bg canvas {7041  width: 100% !important;7042  height: 100% !important;7043}70447045.peach-panic-icon {7046  font-size: 32px;7047  color: rgb(220, 38, 38);7048  line-height: 1;7049}70507051.peach-panic-title {7052  margin: 0;7053  font-size: 18px;7054  font-weight: 500;7055  color: var(--peach-t1);7056}70577058.peach-panic-title--severe {7059  font-size: 20px;7060  font-weight: 700;7061  color: rgb(220, 38, 38);7062}70637064.peach-panic-body {7065  margin: 0;7066  font-size: 0.8125rem;7067  line-height: 1.55;7068  color: var(--peach-t2);7069}70707071.peach-panic-body--severe {7072  color: rgba(220, 38, 38, 0.85);7073}70747075.peach-panic-body--final {7076  font-size: 1rem;7077  font-weight: 700;7078  color: rgb(255, 80, 80);7079  line-height: 1.4;7080}70817082.peach-panic-body--final-intro {7083  font-size: 1rem;7084  color: #ffffff;7085  font-weight: 400;7086}70877088.peach-panic-divider {7089  height: 1px;7090  background: rgba(255, 255, 255, 0.08);7091  margin: 4px 0;7092}70937094.peach-panic-confirm-input {7095  width: 100%;7096  padding: 10px 12px;7097  background: rgba(255, 255, 255, 0.02);7098  border: 1px solid rgba(220, 38, 38, 0.4);7099  border-radius: 8px;7100  color: var(--peach-t1);7101  font-family: "IBM Plex Mono", monospace;7102  font-size: 0.875rem;7103  letter-spacing: 0.12em;7104  text-transform: uppercase;7105}71067107.peach-panic-confirm-input:focus {7108  outline: none;7109  border-color: rgb(220, 38, 38);7110}71117112.peach-panic-confirm-input--match {7113  border-color: rgb(220, 38, 38);7114  color: rgb(220, 38, 38);7115}71167117.peach-panic-confirm-label {7118  font-size: 0.6875rem;7119  color: var(--peach-t2);7120  margin: 0 0 -8px;7121  letter-spacing: 0.06em;7122}71237124.peach-panic-actions {7125  display: flex;7126  flex-direction: column;7127  gap: 10px;7128  margin-top: auto;7129}71307131.peach-panic-button {7132  width: 100%;7133  padding: 12px;7134  border-radius: 8px;7135  font-size: 0.8125rem;7136  cursor: pointer;7137  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7138}71397140.peach-panic-button--primary {7141  background: var(--peach-accent);7142  border: 1px solid var(--peach-accent);7143  color: #ffffff;7144  font-weight: 600;7145}71467147.peach-panic-button--primary:hover {7148  background: color-mix(in srgb, var(--peach-accent) 88%, white);7149}71507151.peach-panic-button--danger {7152  background: rgb(220, 38, 38);7153  border: 1px solid rgb(220, 38, 38);7154  color: #ffffff;7155  font-weight: 600;7156}71577158.peach-panic-button--danger:disabled {7159  opacity: 0.35;7160  cursor: not-allowed;7161}71627163.peach-panic-button--ghost {7164  background: transparent;7165  border: 1px solid rgba(255, 255, 255, 0.18);7166  color: var(--peach-t2);7167}71687169.peach-panic-button--ghost:hover {7170  border-color: rgba(255, 255, 255, 0.32);7171  color: var(--peach-t1);7172}71737174.peach-panic-link {7175  background: transparent;7176  border: none;7177  padding: 4px 0;7178  color: rgba(220, 38, 38, 0.65);7179  font-size: 0.75rem;7180  cursor: pointer;7181  text-align: left;7182  text-decoration: underline;7183  text-underline-offset: 3px;7184}71857186.peach-panic-link:hover {7187  color: rgb(220, 38, 38);7188}71897190.peach-panic-bar {7191  background: rgb(220, 38, 38);7192  padding: 16px 20px;7193  margin: -28px -20px 0;7194  text-align: center;7195  font-size: 0.8125rem;7196  font-weight: 700;7197  letter-spacing: 0.12em;7198  color: #ffffff;7199}72007201.peach-panic-final-button {7202  width: 100%;7203  padding: 14px;7204  background: rgb(220, 38, 38);7205  border: none;7206  border-radius: 8px;7207  color: #ffffff;7208  font-size: 0.875rem;7209  font-weight: 700;7210  letter-spacing: 0.08em;7211  text-transform: uppercase;7212  cursor: pointer;7213  animation: peach-panic-pulse 2s ease-in-out infinite;7214}72157216.peach-settings-license {7217  margin-top: 10px;7218  padding-top: 10px;7219  border-top: 1px solid var(--peach-t3);7220}72217222.peach-settings-label {7223  font-size: 0.625rem;7224  letter-spacing: 0.08em;7225  color: var(--peach-t3);7226  display: block;7227  margin-bottom: 6px;7228}72297230.peach-settings-license-row {7231  display: flex;7232  align-items: center;7233  justify-content: space-between;7234  gap: 8px;7235}72367237.peach-settings-license-key {7238  font-family: 'IBM Plex Mono', monospace;7239  font-size: 0.75rem;7240  color: var(--peach-t0);7241  letter-spacing: 0.04em;7242  word-break: break-all;7243  flex: 1;7244  min-width: 0;7245}72467247.peach-settings-license-key--masked {7248  font-family: 'IBM Plex Mono', monospace;7249  font-size: 0.6rem;7250  color: var(--peach-t1);7251  letter-spacing: 0.18em;7252  user-select: none;7253}72547255.peach-settings-license-actions {7256  display: flex;7257  align-items: center;7258  gap: 2px;7259  flex-shrink: 0;7260}72617262.peach-settings-license-copy {7263  font-size: 0.6875rem;7264  color: var(--peach-accent);7265  background: transparent;7266  border: none;7267  cursor: pointer;7268  padding: 4px 8px;7269  border-radius: 4px;7270  flex-shrink: 0;7271  transition: opacity 150ms ease;7272}72737274.peach-settings-license-copy:hover {7275  opacity: 0.75;7276}72777278.peach-settings-license-toggle {7279  display: flex;7280  align-items: center;7281  justify-content: center;7282  background: transparent;7283  border: none;7284  cursor: pointer;7285  padding: 4px 6px;7286  border-radius: 4px;7287  color: var(--peach-t2);7288  transition: color 150ms ease;7289}72907291.peach-settings-license-toggle:hover {7292  color: var(--peach-t1);7293}72947295@keyframes peach-panic-pulse {7296  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }7297  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }7298}72997300[data-motion="reduce"] .peach-panic-final-button {7301  animation: none;7302}73037304/* Vault History — Settings → Vault sub-view */73057306.peach-history-list {7307  border: 1px solid var(--peach-border);7308  border-radius: 8px;7309  overflow: hidden;7310  margin: 8px 0 4px;7311}73127313.peach-history-row {7314  display: flex;7315  align-items: center;7316  justify-content: space-between;7317  padding: 9px 12px;7318  gap: 10px;7319  border-bottom: 1px solid var(--peach-border);7320}73217322.peach-history-row:last-child {7323  border-bottom: none;7324}73257326.peach-history-meta {7327  display: flex;7328  flex-direction: column;7329  gap: 2px;7330  min-width: 0;7331  flex: 1;7332}73337334.peach-history-time {7335  font-size: 0.75rem;7336  font-family: 'IBM Plex Mono', ui-monospace, monospace;7337  color: var(--peach-t0);7338  white-space: nowrap;7339  overflow: hidden;7340  text-overflow: ellipsis;7341}73427343.peach-history-sub {7344  font-size: 0.625rem;7345  color: var(--peach-t2);7346  letter-spacing: 0.06em;7347  text-transform: uppercase;7348  white-space: nowrap;7349  overflow: hidden;7350  text-overflow: ellipsis;7351}73527353.peach-history-btn {7354  flex-shrink: 0;7355  white-space: nowrap;7356  min-width: 56px;7357  text-align: center;7358}73597360.peach-history-btn.is-busy {7361  opacity: 0.65;7362}73637364.peach-history-footer {7365  font-size: 0.625rem;7366  color: var(--peach-t3);7367  letter-spacing: 0.05em;7368  text-align: right;7369  margin: 0;7370  padding: 2px 0 0;7371}73727373/* ── Context menu + swipe-copy flash ─────────────────────── */7374.peach-context-menu-backdrop {7375  position: fixed;7376  inset: 0;7377  background: rgba(0, 0, 0, 0.45);7378  z-index: 100;7379  display: flex;7380  align-items: flex-end;7381  justify-content: center;7382  animation: peach-ctx-fade 140ms ease both;7383}7384.peach-context-menu {7385  width: min(360px, calc(100vw - 24px));7386  margin-bottom: max(env(safe-area-inset-bottom), 12px);7387  background: var(--peach-bg);7388  border: 1px solid var(--peach-t3);7389  border-radius: 14px;7390  padding: 6px;7391  display: flex;7392  flex-direction: column;7393  gap: 2px;7394  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);7395  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;7396}7397@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }7398@keyframes peach-ctx-rise {7399  from { transform: translateY(16px); opacity: 0; }7400  to   { transform: translateY(0);    opacity: 1; }7401}7402.peach-context-menu-item {7403  background: transparent;7404  color: var(--peach-t0);7405  border: 0;7406  border-radius: 10px;7407  padding: 12px 14px;7408  text-align: left;7409  font: inherit;7410  cursor: pointer;7411}7412.peach-context-menu-item:hover,7413.peach-context-menu-item:focus-visible {7414  background: var(--peach-t3);7415}7416.peach-context-menu-item--danger {7417  color: var(--peach-health-bad, #d96868);7418}7419.peach-context-menu-item--cancel {7420  color: var(--peach-t2);7421  margin-top: 4px;7422  border-top: 1px solid var(--peach-t3);7423  border-radius: 0 0 10px 10px;7424}74257426/* Swipe-to-copy flash */7427.peach-entry-row.is-copy-flash {7428  animation: peach-copy-flash 600ms ease both;7429}7430@keyframes peach-copy-flash {7431  0%   { background: transparent; }7432  20%  { background: rgba(217, 153, 51, 0.32); }7433  100% { background: transparent; }7434}74357436html { font-size: 16px; }74377438/* ── Recovery word entry ─────────────────────────────────────────── */7439.peach-lock-recover-link {7440  display: block;7441  width: 100%;7442  margin-top: 12px;7443  background: none;7444  border: none;7445  font-family: "IBM Plex Mono", monospace;7446  font-size: 0.625rem;7447  letter-spacing: 0.06em;7448  color: var(--peach-t2);7449  cursor: pointer;7450  text-align: center;7451  padding: 4px;7452  transition: color 120ms ease;7453}7454.peach-lock-recover-link:hover {7455  color: var(--peach-t0);7456}74577458.lock-screen--recovery {7459  display: flex;7460  flex-direction: column;7461  align-items: stretch;7462  padding: 12px 20px 24px;7463  overflow: hidden;7464}74657466.peach-recovery-nav {7467  display: flex;7468  align-items: center;7469  position: relative;7470  z-index: 1;7471  margin-bottom: 4px;7472}74737474/* Mask runes to the top decorative band only — keep inputs and the7475   bottom CTA button clear. The bottom of the popup is reserved for7476   submit buttons; rendering runes there overlaps the button glyph. */7477.peach-rune-background--recovery {7478  -webkit-mask-image: linear-gradient(7479    to bottom,7480    black 0px, black 85px,7481    transparent 110px,7482    transparent 100%7483  );7484  mask-image: linear-gradient(7485    to bottom,7486    black 0px, black 85px,7487    transparent 110px,7488    transparent 100%7489  );7490}74917492.peach-recovery-header {7493  text-align: center;7494  margin-bottom: 16px;7495  margin-top: 4px;7496}7497.peach-recovery-header .peach-onboarding-headline {7498  font-size: 1.25rem;7499  font-weight: 300;7500  letter-spacing: 0.02em;7501  margin: 0 0 4px;7502}7503.peach-recovery-header .peach-hint {7504  font-family: "IBM Plex Mono", monospace;7505  font-size: 0.625rem;7506  color: var(--peach-t2);7507  letter-spacing: 0.04em;7508  margin: 0;7509}75107511/* 12-word grid: 2 columns × 6 rows */7512.peach-recovery-grid {7513  display: grid;7514  grid-template-columns: repeat(2, 1fr);7515  gap: 12px 20px;7516  width: 100%;7517  margin-bottom: 0;7518}75197520.peach-recovery-word-slot {7521  display: flex;7522  align-items: center;7523  gap: 6px;7524  min-width: 0;7525}75267527.peach-recovery-word-index {7528  font-family: "IBM Plex Mono", monospace;7529  font-size: 0.5rem;7530  color: rgba(255, 255, 255, 0.35);7531  min-width: 14px;7532  flex-shrink: 0;7533  text-align: right;7534  letter-spacing: 0.04em;7535}75367537.peach-recovery-word-input {7538  flex: 1;7539  min-width: 0;7540  background: transparent;7541  border: none;7542  border-bottom: 1px solid rgba(255, 255, 255, 0.22);7543  color: var(--peach-t0);7544  font-family: "IBM Plex Mono", monospace;7545  font-size: 0.6875rem;7546  letter-spacing: 0.06em;7547  padding: 5px 2px 4px;7548  outline: none;7549  text-transform: lowercase;7550  transition: border-color 120ms ease;7551}7552.peach-recovery-word-input::placeholder {7553  color: rgba(255, 255, 255, 0.18);7554}7555.peach-recovery-word-input:focus {7556  border-bottom-color: var(--peach-accent);7557}75587559.peach-recovery-submit {7560  width: 100%;7561  margin-top: auto;7562}75637564.peach-recovery-new-password-form {7565  width: 100%;7566  display: flex;7567  flex-direction: column;7568  gap: 16px;7569  margin-bottom: 8px;7570}7571.peach-recovery-new-password-form .peach-newvault-field {7572  display: flex;7573  flex-direction: column;7574  gap: 4px;7575}75767577/* ── Recovery words display (post-create) ────────────────────────── */7578.lock-screen--recovery-display {7579  display: flex;7580  flex-direction: column;7581  align-items: stretch;7582  padding: 0 20px 20px;7583  min-height: 0;7584  overflow-y: auto;7585}75867587.peach-recovery-words-display {7588  width: 100%;7589  margin-bottom: 16px;7590  border: 1px solid var(--peach-t3);7591  border-radius: 8px;7592  padding: 12px 14px;7593  background: rgba(245, 240, 234, 0.04);7594}75957596.peach-recovery-words-label {7597  font-family: "IBM Plex Mono", monospace;7598  font-size: 0.5rem;7599  letter-spacing: 0.08em;7600  color: var(--peach-t2);7601  text-transform: uppercase;7602  margin-bottom: 10px;7603}76047605.peach-recovery-word-list {7606  list-style: none;7607  margin: 0;7608  padding: 0;7609  display: grid;7610  grid-template-columns: repeat(2, 1fr);7611  gap: 6px 16px;7612}76137614.peach-recovery-word-item {7615  display: flex;7616  align-items: baseline;7617  gap: 5px;7618}76197620.peach-recovery-word-num {7621  font-family: "IBM Plex Mono", monospace;7622  font-size: 0.5rem;7623  color: var(--peach-t2);7624  width: 14px;7625  flex: 0 0 14px;7626  text-align: right;7627  letter-spacing: 0.04em;7628  font-variant-numeric: tabular-nums;7629}76307631.peach-recovery-download-btn {7632  display: block;7633  margin: 10px auto 0;7634  padding: 4px 10px;7635  background: transparent;7636  border: 1px solid var(--peach-border);7637  border-radius: 6px;7638  color: var(--peach-t2);7639  font-family: "IBM Plex Mono", monospace;7640  font-size: 0.5625rem;7641  letter-spacing: 0.06em;7642  text-transform: lowercase;7643  cursor: pointer;7644  transition: border-color 0.15s, color 0.15s;7645}76467647.peach-recovery-download-btn:hover {7648  border-color: var(--peach-accent);7649  color: var(--peach-t0);7650}76517652.peach-recovery-word-text {7653  font-family: "IBM Plex Mono", monospace;7654  font-size: 0.6875rem;7655  letter-spacing: 0.06em;7656  color: var(--peach-t0);7657  text-transform: lowercase;7658}76597660.peach-hint--warning {7661  color: var(--peach-accent);7662  font-style: italic;7663}7664.peach-hint--success {7665  color: var(--peach-t2);7666  font-family: "IBM Plex Mono", monospace;7667  font-size: 0.625rem;7668  letter-spacing: 0.06em;7669}76707671/* Confirmation step */7672.peach-recovery-confirm {7673  width: 100%;7674  flex: 1;7675  display: flex;7676  flex-direction: column;7677}7678.peach-recovery-confirm-label {7679  font-family: "IBM Plex Mono", monospace;7680  font-size: 0.5625rem;7681  letter-spacing: 0.04em;7682  color: var(--peach-t2);7683  text-align: center;7684  margin: 0 0 12px;7685}7686.peach-recovery-confirm-fields {7687  display: flex;7688  flex-direction: column;7689  gap: 14px;7690  margin-bottom: 10px;7691}7692.peach-recovery-confirm-field {7693  display: flex;7694  align-items: center;7695  gap: 8px;7696}7697.peach-recovery-confirm-num {7698  font-family: "IBM Plex Mono", monospace;7699  font-size: 0.5rem;7700  color: var(--peach-t2);7701  min-width: 44px;7702  letter-spacing: 0.04em;7703}7704.peach-recovery-confirm-input {7705  flex: 1;7706  background: transparent;7707  border: none;7708  border-bottom: 1px solid var(--peach-t3);7709  color: var(--peach-t0);7710  font-family: "IBM Plex Mono", monospace;7711  font-size: 0.6875rem;7712  letter-spacing: 0.06em;7713  padding: 4px 2px 3px;7714  outline: none;7715  text-transform: lowercase;7716  transition: border-color 120ms ease;7717}7718.peach-recovery-confirm-input:focus {7719  border-bottom-color: var(--peach-accent);7720}7721.peach-recovery-confirm-input:disabled {7722  opacity: 0.4;7723  cursor: not-allowed;7724}7725.peach-recovery-confirm-btn {7726  width: 100%;7727  margin-top: auto;7728}77297730/* ============================================================7731   Sync info sheet7732   ============================================================ */77337734.peach-sync-info-backdrop {7735  position: fixed;7736  inset: 0;7737  z-index: 200;7738  background: rgba(0, 0, 0, 0.55);7739  display: flex;7740  align-items: flex-end;7741  animation: peach-fade-in 200ms ease forwards;7742}77437744@keyframes peach-fade-in {7745  from { opacity: 0; }7746  to   { opacity: 1; }7747}77487749.peach-sync-info-sheet {7750  width: 100%;7751  background: var(--peach-bg-card, var(--peach-bg));7752  border-top-left-radius: 20px;7753  border-top-right-radius: 20px;7754  padding: 12px 24px 32px;7755  display: flex;7756  flex-direction: column;7757  gap: 20px;7758  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;7759}77607761@keyframes peach-sheet-up {7762  from { transform: translateY(100%); }7763  to   { transform: translateY(0); }7764}77657766.peach-sync-info-handle {7767  width: 36px;7768  height: 4px;7769  border-radius: 2px;7770  background: var(--peach-border);7771  margin: 0 auto 4px;7772  flex-shrink: 0;7773}77747775.peach-sync-info-title {7776  font-family: 'Cormorant Garamond', serif;7777  font-style: italic;7778  font-size: 26px;7779  font-weight: 600;7780  color: var(--peach-t0);7781  margin: 0;7782  line-height: 1.2;7783}77847785.peach-sync-info-body {7786  display: flex;7787  flex-direction: column;7788  gap: 14px;7789}77907791.peach-sync-info-point {7792  display: flex;7793  gap: 12px;7794  align-items: flex-start;7795  font-size: 14px;7796  color: var(--peach-t2);7797  line-height: 1.6;7798  margin: 0;7799}78007801.peach-sync-info-icon {7802  color: var(--peach-accent);7803  font-size: 16px;7804  flex-shrink: 0;7805  margin-top: 1px;7806}78077808.peach-sync-info-actions {7809  display: flex;7810  flex-direction: column;7811  gap: 12px;7812  margin-top: 4px;7813}78147815.peach-sync-info-pro-link {7816  background: none;7817  border: none;7818  font-size: 13px;7819  color: var(--peach-t3);7820  cursor: pointer;7821  padding: 0;7822  font-family: inherit;7823  text-align: center;7824  transition: color 150ms ease;7825}78267827.peach-sync-info-pro-link:hover {7828  color: var(--peach-accent);7829}78307831.peach-btn--full {7832  width: 100%;7833}78347835/* ── Sync screen ── */78367837.peach-sync-coming-soon {7838  display: flex;7839  align-items: flex-start;7840  gap: 10px;7841  padding: 12px 14px;7842  background: var(--peach-s1);7843  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);7844  border-radius: 10px;7845}7846.peach-sync-coming-soon__icon {7847  flex-shrink: 0;7848  color: var(--peach-accent);7849  margin-top: 1px;7850  line-height: 0;7851}7852.peach-sync-coming-soon__title {7853  font-family: 'Cormorant Garamond', serif;7854  font-weight: 500;7855  font-size: 13px;7856  color: var(--peach-accent);7857  margin: 0 0 5px;7858  line-height: 1.3;7859}7860.peach-sync-coming-soon__body {7861  font-size: 12px;7862  color: var(--peach-t1);7863  line-height: 1.55;7864  margin: 0;7865}78667867.peach-sync-screen {7868  display: flex;7869  flex-direction: column;7870  height: 100%;7871}78727873.peach-sync-content {7874  flex: 1;7875  overflow-y: auto;7876  padding: 24px 20px 40px;7877  display: flex;7878  flex-direction: column;7879  gap: 24px;7880}78817882/* Intro (State A) */7883.peach-sync-headline {7884  font-family: 'Cormorant Garamond', serif;7885  font-style: italic;7886  font-size: 28px;7887  font-weight: 600;7888  color: var(--peach-t0);7889  margin: 0 0 10px;7890  line-height: 1.2;7891}78927893.peach-sync-intro-body {7894  font-size: 14px;7895  color: var(--peach-t1);7896  line-height: 1.6;7897  margin: 0;7898}78997900.peach-sync-pro-note {7901  display: flex;7902  flex-direction: column;7903  gap: 8px;7904  background: var(--peach-t3);7905  border-radius: 10px;7906  padding: 12px 14px;7907}79087909.peach-sync-pro-note-text {7910  font-size: 12px;7911  color: var(--peach-t2);7912  line-height: 1.5;7913  margin: 0;7914}79157916.peach-sync-pro-link {7917  background: none;7918  border: none;7919  font-size: 12px;7920  color: var(--peach-accent);7921  cursor: pointer;7922  padding: 0;7923  font-family: inherit;7924  text-align: left;7925}79267927/* Status (State C) */7928.peach-sync-status {7929  padding: 12px 0;7930  border-bottom: 1px solid var(--peach-border);7931}79327933.peach-sync-status-row {7934  display: flex;7935  align-items: center;7936  gap: 8px;7937}79387939.peach-sync-dot {7940  width: 7px;7941  height: 7px;7942  border-radius: 50%;7943  flex-shrink: 0;7944}79457946.peach-sync-dot--green { background: var(--peach-health-ok); }7947.peach-sync-dot--amber { background: var(--peach-accent); }79487949.peach-sync-status-text {7950  font-family: 'IBM Plex Mono', monospace;7951  font-size: 11px;7952  color: var(--peach-t2);7953}79547955/* Paired devices */7956.peach-sync-section {7957  display: flex;7958  flex-direction: column;7959  gap: 2px;7960}79617962.peach-sync-section-label {7963  font-family: 'IBM Plex Mono', monospace;7964  font-size: 10px;7965  letter-spacing: 0.1em;7966  color: var(--peach-t3);7967  margin: 0 0 10px;7968}79697970.peach-sync-device-row {7971  display: flex;7972  justify-content: space-between;7973  align-items: baseline;7974  padding: 10px 0;7975  border-bottom: 1px solid var(--peach-border);7976  gap: 12px;7977}79787979.peach-sync-device-name {7980  font-size: 14px;7981  color: var(--peach-t1);7982}79837984.peach-sync-device-meta {7985  font-family: 'IBM Plex Mono', monospace;7986  font-size: 11px;7987  color: var(--peach-t3);7988  white-space: nowrap;7989}79907991.peach-sync-hub-note {7992  padding: 14px 16px;7993  border: 1px solid var(--peach-border);7994  border-radius: 10px;7995  display: flex;7996  flex-direction: column;7997  gap: 6px;7998  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);7999}80008001.peach-sync-hub-note-title {8002  font-size: 13px;8003  font-weight: 600;8004  color: var(--peach-t0);8005  margin: 0;8006}80078008.peach-sync-hub-note-body {8009  font-size: 12px;8010  color: var(--peach-t2);8011  line-height: 1.6;8012  margin: 0;8013}80148015/* Action buttons */8016.peach-sync-actions {8017  display: flex;8018  gap: 10px;8019  flex-wrap: wrap;8020}80218022/* Upgrade prompt (State B) */8023.peach-sync-upgrade {8024  display: flex;8025  flex-direction: column;8026  gap: 12px;8027  padding: 16px;8028  border: 1px solid var(--peach-border);8029  border-radius: 10px;8030}80318032.peach-sync-upgrade-text {8033  font-size: 13px;8034  color: var(--peach-t2);8035  line-height: 1.6;8036  margin: 0;8037}80388039/* Network note */8040.peach-sync-network-note {8041  font-size: 12px;8042  color: var(--peach-t3);8043  line-height: 1.6;8044  margin: 0;8045}80468047/* Advanced */8048.peach-sync-advanced {8049  margin-top: auto;8050  padding-top: 16px;8051  border-top: 1px solid var(--peach-border);8052}80538054.peach-sync-advanced-toggle {8055  display: flex;8056  align-items: center;8057  gap: 8px;8058  background: none;8059  border: none;8060  font-family: 'IBM Plex Mono', monospace;8061  font-size: 11px;8062  letter-spacing: 0.08em;8063  color: var(--peach-t3);8064  cursor: pointer;8065  padding: 0;8066  text-transform: uppercase;8067}80688069.peach-sync-advanced-chevron {8070  display: inline-block;8071  transition: transform 200ms ease;8072  font-size: 10px;8073}80748075.peach-sync-advanced-chevron.is-open {8076  transform: rotate(90deg);8077}80788079.peach-sync-advanced-content {8080  margin-top: 14px;8081}80828083.peach-sync-advanced-row {8084  display: flex;8085  justify-content: space-between;8086  align-items: center;8087  gap: 16px;8088}80898090.peach-sync-advanced-title {8091  font-size: 14px;8092  color: var(--peach-t1);8093  margin: 0 0 2px;8094}80958096.peach-sync-advanced-subtitle {8097  font-size: 12px;8098  color: var(--peach-t3);8099  margin: 0;8100  line-height: 1.5;8101}81028103/* ── Add Device — Android scan tabs ─────────────────────────────────────── */81048105.peach-pairing-tabs {8106  display: flex;8107  border: 1px solid var(--peach-border);8108  border-radius: 8px;8109  overflow: hidden;8110  margin-bottom: 4px;8111}81128113.peach-pairing-tab {8114  flex: 1;8115  padding: 10px 0;8116  background: none;8117  border: none;8118  font-family: 'IBM Plex Mono', monospace;8119  font-size: 11px;8120  letter-spacing: 0.06em;8121  color: var(--peach-t2);8122  cursor: pointer;8123  transition: background 150ms, color 150ms;8124}81258126.peach-pairing-tab.is-active {8127  background: var(--peach-accent);8128  color: #fff;8129  font-weight: 600;8130}81318132.peach-pairing-tab:not(.is-active):active {8133  background: var(--peach-border);8134}81358136/* Camera view */8137.peach-pairing-camera-container {8138  position: relative;8139  width: 100%;8140  aspect-ratio: 1;8141  border-radius: 12px;8142  overflow: hidden;8143  background: #000;8144  flex-shrink: 0;8145}81468147.peach-pairing-video {8148  width: 100%;8149  height: 100%;8150  object-fit: cover;8151}81528153.peach-pairing-scan-frame {8154  position: absolute;8155  top: 50%;8156  left: 50%;8157  transform: translate(-50%, -50%);8158  width: 60%;8159  aspect-ratio: 1;8160  border: 2px solid var(--peach-accent);8161  border-radius: 8px;8162  pointer-events: none;8163}81648165/* ── Notes Mode ── */81668167/* Overlay that crossfades over the vault */8168.peach-notes-overlay {8169  position: fixed;8170  inset: 0;8171  z-index: 90;8172  opacity: 0;8173  pointer-events: none;8174  animation: peach-mode-in 220ms ease-in forwards;8175}81768177.peach-notes-overlay.is-visible {8178  opacity: 1;8179  pointer-events: auto;8180}81818182@keyframes peach-mode-in {8183  from { opacity: 0; }8184  to   { opacity: 1; }8185}81868187/* Top-level notes surface */8188.peach-notes-mode {8189  position: absolute;8190  inset: 0;8191  background: var(--peach-bg);8192  display: flex;8193  flex-direction: column;8194}81958196/* Rune canvas positioned behind content */8197.peach-note-rune-canvas {8198  position: absolute;8199  inset: 0;8200  width: 100%;8201  height: 100%;8202  pointer-events: none;8203  z-index: 0;8204}82058206/* TOC wrapper */8207.peach-notes-toc-wrapper {8208  position: absolute;8209  inset: 0;8210  z-index: 1;8211  opacity: 1;8212  pointer-events: auto;8213  transition: opacity 200ms ease;8214}82158216.peach-notes-toc-wrapper.is-hidden {8217  opacity: 0;8218  pointer-events: none;8219}82208221/* Editor wrapper */8222.peach-notes-editor-wrapper {8223  position: absolute;8224  inset: 0;8225  z-index: 2;8226  opacity: 0;8227  pointer-events: none;8228  transition: opacity 200ms ease;8229}82308231.peach-notes-editor-wrapper.is-visible {8232  opacity: 1;8233  pointer-events: auto;8234}82358236/* TOC inner */8237.peach-notes-toc {8238  position: relative;8239  display: flex;8240  flex-direction: column;8241  height: 100%;8242  padding-top: env(safe-area-inset-top, 0px);8243  padding-bottom: env(safe-area-inset-bottom, 0px);8244}82458246/* Shared header */8247.peach-notes-header {8248  display: flex;8249  align-items: center;8250  padding: 12px 16px;8251  gap: 12px;8252  flex-shrink: 0;8253  min-height: 52px;8254  position: relative;8255  z-index: 2;8256}82578258.peach-notes-back {8259  font-size: 22px;8260  color: var(--peach-t2);8261  background: none;8262  border: none;8263  padding: 4px;8264  cursor: pointer;8265  line-height: 1;8266  flex-shrink: 0;8267  transition: color 150ms ease;8268  -webkit-tap-highlight-color: transparent;8269}82708271.peach-notes-back:active { color: var(--peach-t0); }82728273.peach-notes-header-title {8274  flex: 1;8275  font-family: 'Cormorant Garamond', serif;8276  font-style: italic;8277  font-size: 22px;8278  color: var(--peach-t0);8279  text-align: center;8280}82818282.peach-notes-header-title.is-breadcrumb {8283  font-family: 'IBM Plex Mono', monospace;8284  font-style: normal;8285  font-size: 11px;8286  color: var(--peach-t3);8287  letter-spacing: 0.08em;8288  text-transform: uppercase;8289  cursor: pointer;8290}82918292.peach-notes-header-actions {8293  display: flex;8294  gap: 8px;8295  flex-shrink: 0;8296}82978298.peach-notes-header-btn {8299  width: 36px;8300  height: 36px;8301  display: flex;8302  align-items: center;8303  justify-content: center;8304  background: none;8305  border: none;8306  color: var(--peach-t2);8307  cursor: pointer;8308  border-radius: 8px;8309  font-size: 16px;8310  transition: color 150ms ease, background 150ms ease;8311  -webkit-tap-highlight-color: transparent;8312}83138314.peach-notes-header-btn:active {8315  background: rgba(255,255,255,0.06);8316  color: var(--peach-t0);8317}83188319/* Inline search bar */8320.peach-notes-search-input {8321  flex: 1;8322  background: none;8323  border: none;8324  outline: none;8325  font-family: 'IBM Plex Mono', monospace;8326  font-size: 13px;8327  color: var(--peach-t0);8328  padding: 4px 0;8329  letter-spacing: 0.02em;8330}83318332.peach-notes-search-input::placeholder {8333  color: var(--peach-t3);8334}83358336/* TOC list */8337.peach-notes-list-container {8338  flex: 1;8339  overflow-y: auto;8340  overflow-x: hidden;8341  scrollbar-width: none;8342  -webkit-overflow-scrolling: touch;8343  overscroll-behavior: contain;8344  position: relative;8345  z-index: 1;8346}83478348.peach-notes-list-container::-webkit-scrollbar { display: none; }83498350/* Note row */8351.peach-note-row {8352  position: relative;8353  display: grid;8354  grid-template-columns: 44px 8px 1fr 8px auto;8355  align-items: center;8356  min-height: 72px;8357  padding: 16px 20px;8358  border-bottom: 0.5px solid var(--peach-border);8359  cursor: pointer;8360  overflow: hidden;8361  touch-action: pan-y;8362  user-select: none;8363  -webkit-user-select: none;8364  -webkit-tap-highlight-color: transparent;8365}83668367.peach-note-row:first-child {8368  border-top: 0.5px solid var(--peach-border);8369}83708371.peach-note-row:active {8372  background: rgba(255,255,255,0.02);8373}83748375.peach-note-numeral {8376  font-family: 'Cormorant Garamond', serif;8377  font-style: italic;8378  font-size: 15px;8379  color: var(--peach-accent);8380  text-align: right;8381  line-height: 1;8382  flex-shrink: 0;8383}83848385.peach-note-title-gap { /* grid spacer */ }83868387.peach-note-title {8388  font-family: 'Cormorant Garamond', serif;8389  font-style: italic;8390  font-size: 18px;8391  color: var(--peach-t0);8392  line-height: 1.3;8393  min-width: 0;8394  overflow-wrap: break-word;8395}83968397.peach-note-title-match {8398  color: var(--peach-accent);8399}84008401.peach-note-date {8402  font-family: 'IBM Plex Mono', monospace;8403  font-size: 11px;8404  color: var(--peach-t2);8405  white-space: nowrap;8406  text-align: right;8407  flex-shrink: 0;8408  grid-column: 5;8409}84108411/* Swipe underlays */8412.peach-note-row-underlay {8413  position: absolute;8414  inset: 0;8415  display: flex;8416  align-items: center;8417  padding: 0 24px;8418  font-family: 'IBM Plex Mono', monospace;8419  font-size: 11px;8420  letter-spacing: 0.1em;8421  pointer-events: none;8422  z-index: 0;8423}84248425.peach-note-row-underlay--delete {8426  background: #8B2020;8427  color: rgba(255,255,255,0.9);8428  justify-content: flex-end;8429}84308431.peach-note-row-underlay--archive {8432  background: var(--peach-accent);8433  color: #0C0A06;8434  justify-content: flex-start;8435}84368437/* Delete confirm strip */8438.peach-note-delete-confirm {8439  position: absolute;8440  inset: 0;8441  background: var(--peach-bg);8442  display: flex;8443  align-items: center;8444  gap: 12px;8445  padding: 0 20px;8446  font-family: 'IBM Plex Mono', monospace;8447  font-size: 11px;8448  color: var(--peach-t1);8449  letter-spacing: 0.04em;8450  animation: peach-delete-confirm-in 150ms ease both;8451  z-index: 10;8452}84538454@keyframes peach-delete-confirm-in {8455  from { opacity: 0; }8456  to   { opacity: 1; }8457}84588459.peach-note-delete-confirm-btn {8460  background: #8B2020;8461  color: rgba(255,255,255,0.9);8462  border: none;8463  border-radius: 6px;8464  padding: 4px 10px;8465  font-family: 'IBM Plex Mono', monospace;8466  font-size: 10px;8467  cursor: pointer;8468  letter-spacing: 0.06em;8469}84708471.peach-note-delete-cancel-btn {8472  background: none;8473  border: none;8474  color: var(--peach-t3);8475  font-family: 'IBM Plex Mono', monospace;8476  font-size: 10px;8477  cursor: pointer;8478  letter-spacing: 0.06em;8479  padding: 4px 6px;8480}84818482/* + New note button */8483.peach-notes-new-btn {8484  font-family: 'IBM Plex Mono', monospace;8485  font-size: 12px;8486  color: var(--peach-t3);8487  text-align: center;8488  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));8489  background: none;8490  border: none;8491  width: 100%;8492  cursor: pointer;8493  letter-spacing: 0.04em;8494  transition: color 150ms ease;8495  -webkit-tap-highlight-color: transparent;8496}84978498.peach-notes-new-btn:active { color: var(--peach-accent); }84998500/* Empty state */8501.peach-notes-empty {8502  display: flex;8503  flex-direction: column;8504  align-items: center;8505  justify-content: center;8506  flex: 1;8507  padding: 48px 32px;8508  gap: 16px;8509}85108511.peach-notes-empty-text {8512  font-family: 'Cormorant Garamond', serif;8513  font-style: italic;8514  font-size: 20px;8515  color: var(--peach-t3);8516  text-align: center;8517  margin: 0;8518  line-height: 1.4;8519  white-space: pre-line;8520}85218522/* ── Editor surface ── */85238524.peach-note-editor-surface {8525  position: absolute;8526  inset: 0;8527  background: var(--peach-bg);8528  display: flex;8529  flex-direction: column;8530  padding-top: env(safe-area-inset-top, 0px);8531}85328533.peach-note-editor-scroll {8534  flex: 1;8535  overflow-y: auto;8536  overflow-x: hidden;8537  scrollbar-width: none;8538  -webkit-overflow-scrolling: touch;8539  padding: 0 24px 120px;8540  position: relative;8541  z-index: 1;8542}85438544.peach-note-editor-scroll::-webkit-scrollbar { display: none; }85458546/* Desktop toolbar (always visible above body) */8547.peach-note-toolbar-desktop-inline {8548  display: flex;8549  align-items: center;8550  gap: 2px;8551  padding: 6px 0 12px;8552  margin-bottom: 4px;8553  border-bottom: 0.5px solid var(--peach-border);8554}85558556/* Title field */8557.peach-note-title-field {8558  font-family: 'Cormorant Garamond', serif;8559  font-style: italic;8560  font-size: 32px;8561  font-weight: 600;8562  color: var(--peach-t0);8563  line-height: 1.2;8564  padding: 8px 0 0;8565  outline: none;8566  min-height: 44px;8567  word-break: break-word;8568  position: relative;8569  z-index: 1;8570}85718572.peach-note-title-field:empty::before {8573  content: attr(data-placeholder);8574  color: var(--peach-t3);8575  pointer-events: none;8576}85778578/* Hairline separator */8579.peach-note-hairline {8580  height: 0.5px;8581  background: var(--peach-border);8582  margin: 12px 0 20px;8583  position: relative;8584  z-index: 1;8585}85868587/* Body field */8588.peach-note-body-field {8589  font-family: 'DM Sans', sans-serif;8590  font-size: 16px;8591  color: var(--peach-t0);8592  line-height: 1.85;8593  padding: 0;8594  outline: none;8595  min-height: 240px;8596  word-break: break-word;8597  position: relative;8598  z-index: 1;8599}86008601.peach-note-body-field:empty::before {8602  content: attr(data-placeholder);8603  color: var(--peach-t3);8604  font-style: italic;8605  pointer-events: none;8606}86078608.peach-note-body-field h2 {8609  font-family: 'Cormorant Garamond', serif;8610  font-style: italic;8611  font-size: 22px;8612  font-weight: 600;8613  color: var(--peach-t0);8614  margin: 20px 0 8px;8615}86168617.peach-note-body-field blockquote {8618  border-left: 2px solid var(--peach-accent);8619  margin: 12px 0;8620  padding-left: 16px;8621  color: var(--peach-t1);8622  font-style: italic;8623}86248625.peach-note-body-field ul,8626.peach-note-body-field ol {8627  padding-left: 20px;8628  margin: 8px 0;8629}86308631.peach-note-body-field li {8632  margin: 4px 0;8633}86348635.peach-note-body-field hr {8636  border: none;8637  border-top: 0.5px solid var(--peach-border);8638  margin: 16px 0;8639}86408641/* Saved indicator */8642.peach-note-saved-indicator {8643  font-family: 'IBM Plex Mono', monospace;8644  font-size: 11px;8645  color: var(--peach-t3);8646  letter-spacing: 0.04em;8647  text-align: right;8648  padding: 6px 24px;8649  flex-shrink: 0;8650  transition: opacity 300ms ease;8651  pointer-events: none;8652  position: relative;8653  z-index: 1;8654}86558656/* Mobile keyboard toolbar */8657.peach-note-toolbar-mobile {8658  display: flex;8659  align-items: center;8660  padding: 8px 16px;8661  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));8662  background: var(--peach-bg);8663  border-top: 0.5px solid var(--peach-border);8664  gap: 4px;8665  flex-shrink: 0;8666  position: relative;8667  z-index: 10;8668}86698670.peach-note-toolbar-btn {8671  min-width: 36px;8672  height: 36px;8673  display: flex;8674  align-items: center;8675  justify-content: center;8676  background: none;8677  border: none;8678  border-radius: 8px;8679  cursor: pointer;8680  font-size: 14px;8681  color: var(--peach-t1);8682  font-family: 'DM Sans', sans-serif;8683  font-weight: 600;8684  transition: background 100ms ease, color 100ms ease;8685  -webkit-tap-highlight-color: transparent;8686}86878688.peach-note-toolbar-btn--italic { font-style: italic; }8689.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }8690.peach-note-toolbar-btn:active { background: rgba(255,255,255,0.08); }86918692.peach-note-toolbar-divider {8693  width: 0.5px;8694  height: 20px;8695  background: var(--peach-border);8696  margin: 0 4px;8697  flex-shrink: 0;8698}86998700.peach-note-toolbar-spacer { flex: 1; }87018702/* Desktop: larger headline in TOC */8703@media (min-width: 400px) {8704  .peach-notes-header-title:not(.is-breadcrumb) {8705    font-size: 32px;8706  }87078708  .peach-note-row {8709    min-height: 64px;8710    padding: 14px 16px;8711  }8712}87138714/* Flying title — shared element during expansion/collapse */87158716/* ─── Light theme overrides ───────────────────────────────────────────────8717   Tokens that cannot be expressed as variable substitutions — hardcoded8718   context-specific values that need separate light-mode rules. */87198720/* Settings section headers: use text-label (#79766F) per restoration brief —8721   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY8722   presence without fighting the light parchment background. */8723.light .peach-settings-sub-label,8724[data-theme="light"] .peach-settings-sub-label,8725.light .peach-settings-nav-label,8726[data-theme="light"] .peach-settings-nav-label {8727  color: #79766F;8728}87298730/* Secondary action buttons (ghost / subtle): filled with input-well surface8731   so they read as recessed against the parchment card background. */8732.light .peach-btn--ghost,8733[data-theme="light"] .peach-btn--ghost {8734  background: #EEE7DD;8735  border-color: #DDD5CB;8736  color: #1A1208;8737}8738.light .peach-btn--subtle,8739[data-theme="light"] .peach-btn--subtle {8740  background: #EEE7DD;8741  border-color: #DDD5CB;8742}87438744/* Wide secondary action button on the lock screen — override the8745   hardcoded dark-mode rgba values with warm parchment equivalents. */8746.light .peach-lock-secondary,8747[data-theme="light"] .peach-lock-secondary {8748  background: #EEE7DD;8749  border-color: #DDD5CB;8750  color: #1A1208;8751}8752.light .peach-lock-secondary:hover,8753[data-theme="light"] .peach-lock-secondary:hover {8754  background: #F0E9DF;8755}87568757/* Entry row hover: bg-row lifts the row above the card surface. */8758.light .peach-entry-row:hover,8759[data-theme="light"] .peach-entry-row:hover {8760  background: #F2EBE1;8761}8762.light .peach-entry-row.is-active,8763[data-theme="light"] .peach-entry-row.is-active {8764  background: #F2EBE1;8765}8766.light .peach-entry-row.is-selected,8767[data-theme="light"] .peach-entry-row.is-selected {8768  background: #F5EDE2;8769}87708771/* ──────────────────────────────────────────────────────────────────────────8772   Chirp pairing flow — bird-stage animation (Phase 1)8773   See src/popup/components/ChirpPairingFlow.tsx and the brief §6.2.8774   Three-act animation gated on the [data-phase] attribute of8775   .peach-chirp-pair; child layers (birds, chirp arcs, flight wave, dot)8776   each react via either pose class or visibility flag.8777   Tokens: accent surfaces use var(--peach-accent); bird illustration8778   colours are baked into the SVG per the brand-peach exception in §3.1.8779   ────────────────────────────────────────────────────────────────────── */87808781.peach-chirp-pair {8782  position: absolute;8783  inset: 0;8784  z-index: 3;8785  display: flex;8786  flex-direction: column;8787  padding: 14px 12px 12px;8788  width: 100%;8789  box-sizing: border-box;8790  gap: 0;8791  background:8792    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),8793    var(--peach-bg);8794  color: var(--peach-t0);8795  overflow-y: auto;8796  overflow-x: hidden;8797  scrollbar-width: none;8798  isolation: isolate;8799  animation: peach-chirp-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;8800}8801@keyframes peach-chirp-overlay-in {8802  from { opacity: 0; transform: translateY(8px); }8803  to   { opacity: 1; transform: translateY(0); }8804}8805.peach-chirp-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }8806.peach-chirp-pair::before {8807  content: '';8808  position: absolute;8809  inset: 0;8810  border-radius: inherit;8811  pointer-events: none;8812  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);8813  z-index: 0;8814}8815.peach-chirp-pair > * { position: relative; z-index: 1; }88168817/* Header --------------------------------------------------------------- */8818.peach-chirp-head {8819  display: flex; align-items: center; gap: 10px;8820}8821.peach-chirp-back {8822  width: 32px; height: 32px;8823  display: inline-flex; align-items: center; justify-content: center;8824  background: color-mix(in srgb, var(--peach-t0) 6%, transparent);8825  border: 1px solid color-mix(in srgb, var(--peach-t0) 12%, transparent);8826  border-radius: 8px;8827  color: var(--peach-t1);8828  cursor: pointer;8829  transition: background 0.15s ease, color 0.15s ease;8830}8831.peach-chirp-back:hover {8832  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);8833  color: var(--peach-t0);8834}8835.peach-chirp-title {8836  font-family: var(--font-display, Georgia, serif);8837  font-style: italic;8838  font-size: 24px;8839  font-weight: 500;8840  letter-spacing: 0.005em;8841  color: var(--peach-t0);8842  line-height: 1;8843}8844.peach-chirp-head-spacer { flex: 1; }88458846/* Chip row ------------------------------------------------------------- */8847.peach-chirp-chip-row {8848  display: flex;8849  align-items: center;8850  justify-content: flex-start;8851  margin-top: 12px;8852}8853.peach-chirp-chip {8854  display: inline-flex; align-items: center; gap: 8px;8855  padding: 5px 10px 5px 8px;8856  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);8857  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);8858  border-radius: 999px;8859  font-family: var(--peach-mono, ui-monospace, monospace);8860  font-size: 11px;8861  letter-spacing: 0.04em;8862  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));8863}8864.peach-chirp-chip-dot {8865  width: 6px; height: 6px; border-radius: 50%;8866  background: var(--peach-accent);8867  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);8868}8869.peach-chirp-chip[data-phase="paired"] {8870  background: color-mix(in srgb, #4f9eda 12%, transparent);8871  border-color: color-mix(in srgb, #4f9eda 28%, transparent);8872  color: #76b6e8;8873}8874.peach-chirp-chip[data-phase="paired"] .peach-chirp-chip-dot {8875  background: #76b6e8;8876  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);8877}8878.peach-chirp-chip[data-phase="timeout"],8879.peach-chirp-chip[data-phase="mic_denied"],8880.peach-chirp-chip[data-phase="version_mismatch"],8881.peach-chirp-chip[data-phase="handshake_failed"] {8882  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);8883  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);8884  color: var(--peach-warn, #d29257);8885}8886.peach-chirp-chip[data-phase="timeout"] .peach-chirp-chip-dot,8887.peach-chirp-chip[data-phase="mic_denied"] .peach-chirp-chip-dot,8888.peach-chirp-chip[data-phase="version_mismatch"] .peach-chirp-chip-dot,8889.peach-chirp-chip[data-phase="handshake_failed"] .peach-chirp-chip-dot {8890  background: var(--peach-warn, #d29257);8891  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);8892}88938894/* Bird stage ----------------------------------------------------------- */8895.peach-chirp-stage {8896  position: relative;8897  margin: 14px 0 8px;8898  height: 180px;8899  border-radius: 12px;8900  background:8901    radial-gradient(ellipse 70% 60% at 50% 30%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),8902    radial-gradient(ellipse 90% 100% at 50% 100%, color-mix(in srgb, #d8748a 14%, transparent), transparent 70%),8903    color-mix(in srgb, var(--peach-bg) 92%, #000);8904  border: 1px solid color-mix(in srgb, var(--peach-t0) 8%, transparent);8905  overflow: hidden;8906  isolation: isolate;8907}8908.peach-chirp-stage::after {8909  content: '';8910  position: absolute;8911  left: 12%; right: 12%;8912  bottom: 36px;8913  height: 1px;8914  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 14%, transparent), transparent);8915}89168917.peach-chirp-bird-slot {8918  position: absolute;8919  bottom: 8px;8920  width: 100px;8921  height: 110px;8922  display: flex;8923  align-items: flex-end;8924  justify-content: center;8925}8926.peach-chirp-bird-slot-desktop { left: 28px; }8927.peach-chirp-bird-slot-mobile { right: 28px; }89288929/* Mobile bird hops in from the right when handshake begins */8930.peach-chirp-bird-slot-mobile {8931  opacity: 1;8932  transform: translateX(-6px);8933  transition: opacity 0.4s ease, transform 0.65s cubic-bezier(.5, 1.7, .4, 1);8934}8935.peach-chirp-stage.act-listening .peach-chirp-bird-slot-mobile,8936.peach-chirp-stage.act-chirping .peach-chirp-bird-slot-mobile,8937.peach-chirp-stage.act-idle .peach-chirp-bird-slot-mobile {8938  opacity: 0;8939  transform: translateX(60px) rotate(8deg);8940}8941.peach-chirp-stage.act-handshake .peach-chirp-bird-slot-desktop,8942.peach-chirp-stage.act-paired .peach-chirp-bird-slot-desktop {8943  transform: translateX(6px);8944  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);8945}89468947/* Paired: both birds bob together */8948.peach-chirp-stage.act-paired .peach-chirp-bird-slot {8949  animation: peach-chirp-happy-bob 1.2s ease-in-out infinite;8950}8951.peach-chirp-stage.act-paired .peach-chirp-bird-slot-mobile { animation-delay: 0.2s; }8952.peach-chirp-stage.act-paired .peach-chirp-bird-slot-desktop { --bb-x: 6px; }8953.peach-chirp-stage.act-paired .peach-chirp-bird-slot-mobile { --bb-x: -6px; }8954@keyframes peach-chirp-happy-bob {8955  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }8956  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }8957}89588959/* Bird internal -------------------------------------------------------- */8960.peach-chirp-bird {8961  width: 108px;8962  height: 108px;8963  transform-origin: 50% 95%;8964}8965.peach-chirp-bird svg { width: 100%; height: 100%; overflow: visible; }89668967.peach-chirp-bird-body {8968  transform-origin: 50% 80%;8969  animation: peach-chirp-bird-bob 2.4s ease-in-out infinite;8970}8971@keyframes peach-chirp-bird-bob {8972  0%, 100% { transform: translateY(0) scale(1, 1); }8973  50%      { transform: translateY(-1.5px) scale(1.01, 0.99); }8974}89758976.peach-chirp-bird-eye-group {8977  animation: peach-chirp-blink 5.2s steps(1, end) infinite;8978  transform-origin: center;8979  transform-box: fill-box;8980}8981@keyframes peach-chirp-blink {8982  0%, 92%, 96%, 100% { transform: scaleY(1); }8983  94%                { transform: scaleY(0.05); }8984}89858986/* Pose: chirping — beak opens, head bobs, aura blooms */8987.peach-chirp-bird-pose-chirping .peach-chirp-bird-body {8988  animation:8989    peach-chirp-bird-bob 2.4s ease-in-out infinite,8990    peach-chirp-squeeze 1.7s ease-in-out infinite;8991}8992@keyframes peach-chirp-squeeze {8993  0%, 70%, 100% { transform-origin: 50% 85%; }8994  78%           { transform: scale(1.04, 0.96) translateY(1px); }8995  86%           { transform: scale(0.98, 1.02); }8996}8997.peach-chirp-bird-pose-chirping .peach-chirp-bird-head-group {8998  animation: peach-chirp-head-bob 1.7s ease-in-out infinite;8999}9000@keyframes peach-chirp-head-bob {9001  0%, 70%, 100% { transform: translateY(0) rotate(0); }9002  78%           { transform: translateY(-3px) rotate(-4deg); }9003  86%           { transform: translateY(-1px) rotate(-2deg); }9004}9005.peach-chirp-bird-pose-chirping .peach-chirp-bird-beak {9006  animation: peach-chirp-beak-open 1.7s ease-in-out infinite;9007}9008@keyframes peach-chirp-beak-open {9009  0%, 70%, 100% { transform: rotate(0) scaleX(1); }9010  78%           { transform: rotate(-14deg) scaleX(1.05) translateY(-1px); }9011  86%           { transform: rotate(-6deg); }9012}9013.peach-chirp-bird-pose-chirping .peach-chirp-bird-aura {9014  animation: peach-chirp-aura 1.7s ease-in-out infinite;9015}9016@keyframes peach-chirp-aura {9017  0%, 100% { opacity: 0; }9018  50%      { opacity: 0.8; }9019}9020.peach-chirp-bird-pose-chirping .peach-chirp-bird-tail {9021  animation: peach-chirp-tail-twitch 1.7s ease-in-out infinite;9022  transform-origin: 100% 50%;9023}9024@keyframes peach-chirp-tail-twitch {9025  0%, 75%, 100% { transform: rotate(0); }9026  82%           { transform: rotate(-3deg) translateX(-1px); }9027}90289029/* Pose: attentive — head tilts toward partner */9030.peach-chirp-bird-pose-attentive .peach-chirp-bird-head-group {9031  animation: peach-chirp-head-tilt 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9032}9033@keyframes peach-chirp-head-tilt {9034  0%   { transform: rotate(0) translateY(0); }9035  60%  { transform: rotate(-10deg) translateY(-1px) translateX(2px); }9036  100% { transform: rotate(-6deg); }9037}9038.peach-chirp-bird-pose-attentive .peach-chirp-bird-tail {9039  animation: peach-chirp-tail-cock 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9040  transform-origin: 100% 50%;9041}9042@keyframes peach-chirp-tail-cock {9043  0%   { transform: rotate(0); }9044  100% { transform: rotate(-4deg); }9045}90469047/* Pose: happy — wing flutter, tuft perk, tail wag */9048.peach-chirp-bird-pose-happy .peach-chirp-bird-wing {9049  transform-origin: 80% 60%;9050  animation: peach-chirp-wing-flutter 0.32s ease-in-out 5;9051}9052@keyframes peach-chirp-wing-flutter {9053  0%, 100% { transform: rotate(0) translateY(0); }9054  50%      { transform: rotate(-16deg) translateY(-2px); }9055}9056.peach-chirp-bird-pose-happy .peach-chirp-bird-tuft {9057  transform-origin: 0% 100%;9058  animation: peach-chirp-tuft-perk 0.4s ease-in-out 3;9059}9060@keyframes peach-chirp-tuft-perk {9061  0%, 100% { transform: rotate(0); }9062  50%      { transform: rotate(-15deg) translateY(-1px); }9063}9064.peach-chirp-bird-pose-happy .peach-chirp-bird-tail {9065  transform-origin: 100% 50%;9066  animation: peach-chirp-tail-wag 0.5s ease-in-out 4;9067}9068@keyframes peach-chirp-tail-wag {9069  0%, 100% { transform: rotate(0); }9070  25%      { transform: rotate(6deg); }9071  75%      { transform: rotate(-6deg); }9072}9073.peach-chirp-bird-pose-happy .peach-chirp-bird-head-group {9074  animation: peach-chirp-head-perk 0.5s ease-out;9075}9076@keyframes peach-chirp-head-perk {9077  0%   { transform: translateY(0); }9078  40%  { transform: translateY(-3px) rotate(2deg); }9079  100% { transform: translateY(0); }9080}90819082/* Pose: sad — body droops forward */9083.peach-chirp-bird-pose-sad .peach-chirp-bird-body {9084  transform: translateY(5px) rotate(-2deg);9085  animation: none;9086}9087.peach-chirp-bird-pose-sad .peach-chirp-bird-head-group {9088  transform: translateY(4px) rotate(8deg);9089}9090.peach-chirp-bird-pose-sad .peach-chirp-bird-tuft { transform: rotate(15deg) translateY(2px); }9091.peach-chirp-bird-pose-sad .peach-chirp-bird-tail { transform: rotate(8deg) translateY(2px); }90929093.peach-chirp-bird-pose-hidden { opacity: 0; }90949095/* Chirp arcs ----------------------------------------------------------- */9096.peach-chirp-arcs {9097  position: absolute;9098  top: 18px;9099  width: 96px;9100  height: 70px;9101  pointer-events: none;9102}9103.peach-chirp-arcs-right { right: -60px; }9104.peach-chirp-arcs-left  { left: -60px; transform: scaleX(-1); }9105.peach-chirp-arc {9106  position: absolute;9107  top: 50%;9108  left: 0;9109  width: 40px;9110  height: 40px;9111  margin-top: -20px;9112  border: 1.2px solid #f4d5a8;9113  border-color: transparent #f4d5a8 transparent transparent;9114  border-radius: 50%;9115  opacity: 0;9116  animation: peach-chirp-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9117}9118@keyframes peach-chirp-arc-expand {9119  0%   { transform: scale(0.4); opacity: 0; }9120  20%  { opacity: 0.9; }9121  100% { transform: scale(1.6); opacity: 0; }9122}91239124/* Flight wave ---------------------------------------------------------- */9125.peach-chirp-flight-track {9126  position: absolute;9127  inset: 32px 36px 38px 36px;9128  pointer-events: none;9129}9130.peach-chirp-flight-wave {9131  position: absolute;9132  top: 8px;9133  left: 76px;9134  right: 76px;9135  height: 60px;9136  width: auto;9137  opacity: 0;9138  transition: opacity 0.15s ease;9139  stroke: #f4d5a8;9140  fill: none;9141}9142.peach-chirp-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9143.peach-chirp-flight-wave.is-visible { opacity: 1; }9144.peach-chirp-flight-path,9145.peach-chirp-flight-path-2 {9146  stroke-dasharray: 240;9147  stroke-dashoffset: 240;9148  stroke-linecap: round;9149  fill: none;9150}9151.peach-chirp-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9152.peach-chirp-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9153.peach-chirp-flight-wave.is-visible .peach-chirp-flight-path {9154  animation: peach-chirp-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9155}9156.peach-chirp-flight-wave.is-visible .peach-chirp-flight-path-2 {9157  animation: peach-chirp-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9158}9159@keyframes peach-chirp-fly {9160  0%   { stroke-dashoffset: 240; opacity: 0; }9161  20%  { opacity: 1; }9162  100% { stroke-dashoffset: -120; opacity: 0; }9163}91649165/* Connection dot ------------------------------------------------------- */9166.peach-chirp-dot {9167  position: absolute;9168  top: 50%; left: 50%;9169  transform: translate(-50%, -50%);9170  width: 40px; height: 40px;9171  opacity: 0;9172  pointer-events: none;9173  transition: opacity 0.3s ease;9174  color: var(--peach-accent);9175}9176.peach-chirp-dot.is-visible { opacity: 1; }9177.peach-chirp-dot-glow {9178  position: absolute; top: 50%; left: 50%;9179  transform: translate(-50%, -50%);9180  width: 38px; height: 38px;9181  border-radius: 50%;9182  filter: blur(10px);9183  opacity: 0.55;9184  background: var(--peach-accent);9185  animation: peach-chirp-dot-bloom 1.4s ease-out;9186}9187.peach-chirp-dot-core {9188  position: absolute; top: 50%; left: 50%;9189  transform: translate(-50%, -50%);9190  width: 8px; height: 8px;9191  border-radius: 50%;9192  background: var(--peach-accent);9193  box-shadow: 0 0 12px currentColor;9194  animation: peach-chirp-dot-core 1.4s ease-out;9195}9196.peach-chirp-dot-ring {9197  position: absolute; top: 50%; left: 50%;9198  width: 60px; height: 60px;9199  transform: translate(-50%, -50%);9200  animation: peach-chirp-dot-ring 1.4s linear;9201  stroke: var(--peach-accent);9202}9203@keyframes peach-chirp-dot-bloom {9204  0%   { width: 4px; height: 4px; opacity: 0; }9205  35%  { width: 60px; height: 60px; opacity: 0.7; }9206  100% { width: 38px; height: 38px; opacity: 0.55; }9207}9208@keyframes peach-chirp-dot-core {9209  0%   { width: 0; height: 0; }9210  35%  { width: 12px; height: 12px; }9211  100% { width: 8px; height: 8px; }9212}9213@keyframes peach-chirp-dot-ring {9214  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }9215  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }9216  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }9217}92189219/* Motes — drift upward across the stage */9220.peach-chirp-motes {9221  position: absolute;9222  inset: 0;9223  pointer-events: none;9224}9225.peach-chirp-mote {9226  position: absolute;9227  width: 2px; height: 2px;9228  background: color-mix(in srgb, var(--peach-text) 35%, transparent);9229  border-radius: 50%;9230  bottom: 32px;9231  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);9232  opacity: 0;9233  animation: peach-chirp-mote-drift 6s linear infinite;9234  animation-delay: calc(var(--mote-i, 0) * 0.7s);9235}9236@keyframes peach-chirp-mote-drift {9237  0%   { transform: translateY(0); opacity: 0; }9238  10%  { opacity: 0.6; }9239  90%  { opacity: 0.1; }9240  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }9241}92429243/* Status copy ---------------------------------------------------------- */9244.peach-chirp-copy-host {9245  margin: 4px 4px 10px;9246  text-align: center;9247  min-height: 50px;9248}9249.peach-chirp-copy {9250  animation: peach-chirp-copy-in 0.35s ease both;9251}9252@keyframes peach-chirp-copy-in {9253  from { opacity: 0; transform: translateY(4px); }9254  to   { opacity: 1; transform: translateY(0); }9255}9256.peach-chirp-headline {9257  font-family: var(--font-display, Georgia, serif);9258  font-style: italic;9259  font-size: 20px;9260  font-weight: 500;9261  line-height: 1.2;9262  letter-spacing: 0.005em;9263  color: var(--peach-t0);9264  margin-bottom: 6px;9265}9266.peach-chirp-copy-listening .peach-chirp-headline,9267.peach-chirp-copy-chirping .peach-chirp-headline,9268.peach-chirp-copy-idle .peach-chirp-headline {9269  font-family: inherit;9270  font-style: normal;9271  font-weight: 500;9272  font-size: 15px;9273  color: var(--peach-t0);9274  letter-spacing: 0;9275}9276.peach-chirp-copy-paired .peach-chirp-headline {9277  color: var(--peach-t0);9278  font-weight: 600;9279}9280.peach-chirp-sub {9281  font-size: 12.5px;9282  line-height: 1.45;9283  color: var(--peach-t1);9284  max-width: 280px;9285  margin: 0 auto;9286  text-wrap: pretty;9287}92889289/* Status action -------------------------------------------------------- */9290.peach-chirp-action {9291  margin: 2px 4px 10px;9292  margin-top: auto;9293}9294.peach-chirp-action-waiting {9295  display: flex;9296  align-items: center;9297  justify-content: space-between;9298  gap: 12px;9299}9300.peach-chirp-cancel {9301  min-width: 96px;9302}9303.peach-chirp-listening {9304  display: inline-flex; align-items: center; gap: 4px;9305  font-family: var(--peach-mono, ui-monospace, monospace);9306  font-size: 9.5px;9307  text-transform: uppercase;9308  letter-spacing: 0.12em;9309  color: var(--peach-t1);9310  padding: 8px 10px;9311}9312.peach-chirp-listen-dot {9313  width: 4px; height: 4px;9314  border-radius: 50%;9315  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);9316  animation: peach-chirp-listen-pulse 1.2s ease-in-out infinite;9317}9318.peach-chirp-listen-dot:nth-child(2) { animation-delay: 0.2s; }9319.peach-chirp-listen-dot:nth-child(3) { animation-delay: 0.4s; }9320.peach-chirp-listen-label { margin-left: 6px; }9321@keyframes peach-chirp-listen-pulse {9322  0%, 100% { opacity: 0.25; transform: scale(0.9); }9323  50%      { opacity: 1;     transform: scale(1.15); }9324}93259326.peach-chirp-action-handshake {9327  display: flex;9328  flex-direction: column;9329  align-items: center;9330  gap: 8px;9331  padding: 8px 4px;9332}9333.peach-chirp-meter {9334  width: 100%;9335  max-width: 280px;9336  height: 2px;9337  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);9338  border-radius: 2px;9339  position: relative;9340  overflow: hidden;9341}9342.peach-chirp-meter-bar {9343  position: absolute;9344  top: 0; bottom: 0;9345  width: 30%;9346  left: -30%;9347  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);9348  animation: peach-chirp-meter-sweep 1.4s ease-in-out infinite;9349}9350@keyframes peach-chirp-meter-sweep {9351  0%   { left: -30%; }9352  100% { left: 100%; }9353}9354.peach-chirp-meter-label {9355  font-family: var(--peach-mono, ui-monospace, monospace);9356  font-size: 9.5px;9357  text-transform: uppercase;9358  letter-spacing: 0.14em;9359  color: var(--peach-t1);9360}93619362.peach-chirp-action-paired {9363  display: flex;9364  align-items: center;9365  gap: 10px;9366}9367.peach-chirp-device-confirm {9368  flex: 1;9369  display: inline-flex;9370  align-items: center;9371  gap: 8px;9372  padding: 9px 10px 9px 12px;9373  border-radius: 10px;9374  background: color-mix(in srgb, #76b6e8 12%, transparent);9375  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);9376  font-size: 12.5px;9377  color: var(--peach-t0);9378  min-width: 0;9379}9380.peach-chirp-device-confirm-glyph {9381  display: inline-flex;9382  color: #76b6e8;9383}9384.peach-chirp-device-confirm-name {9385  flex: 1;9386  overflow: hidden;9387  text-overflow: ellipsis;9388  white-space: nowrap;9389}9390.peach-chirp-device-confirm-trust {9391  font-family: var(--peach-mono, ui-monospace, monospace);9392  font-size: 9.5px;9393  text-transform: uppercase;9394  letter-spacing: 0.1em;9395  color: #76b6e8;9396  padding: 2px 6px;9397  border-radius: 4px;9398  background: color-mix(in srgb, #76b6e8 14%, transparent);9399}9400.peach-chirp-done {9401  min-width: 80px;9402}9403.peach-chirp-retry {9404  align-self: center;9405  display: block;9406  margin: 6px auto 0;9407  min-width: 120px;9408}9409.peach-chirp-mic-help {9410  font-size: 12px;9411  color: var(--peach-t1);9412  text-align: center;9413  max-width: 320px;9414  margin: 0 auto;9415}94169417/* Rest state — bird stage at idle pose, primary CTA + paired list */9418.peach-chirp-pair[data-phase="idle"] .peach-chirp-stage {9419  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */9420  height: 160px;9421}9422.peach-chirp-pair-start {9423  width: 100%;9424  display: inline-flex;9425  align-items: center;9426  justify-content: center;9427  gap: 8px;9428  padding: 11px 14px;9429  border-radius: 10px;9430  background: var(--peach-accent);9431  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);9432  color: #1a0905;9433  font-family: inherit;9434  font-size: 13px;9435  font-weight: 600;9436  letter-spacing: 0.01em;9437  cursor: pointer;9438  transition: filter 0.15s ease, transform 0.1s ease;9439}9440.peach-chirp-pair-start:hover { filter: brightness(1.08); }9441.peach-chirp-pair-start:active { transform: translateY(1px); }94429443.peach-chirp-paired-section {9444  margin-top: 14px;9445  display: flex;9446  flex-direction: column;9447  gap: 8px;9448}9449.peach-chirp-paired-heading {9450  margin: 0;9451  font-family: var(--peach-mono, ui-monospace, monospace);9452  font-size: 10px;9453  font-weight: 500;9454  letter-spacing: 0.14em;9455  text-transform: uppercase;9456  color: var(--peach-t1);9457}94589459/* Footer --------------------------------------------------------------- */9460.peach-chirp-foot {9461  margin: 10px -4px -2px;9462  margin-top: auto;9463}9464.peach-chirp-foot-divider {9465  height: 1px;9466  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);9467  margin-bottom: 10px;9468}9469.peach-chirp-foot-text {9470  font-size: 11px;9471  line-height: 1.5;9472  color: var(--peach-t1);9473  text-align: center;9474  padding: 0 4px;9475  text-wrap: pretty;9476}94779478/* Screen-reader-only live region. Kept off the visual flow but read by9479   assistive tech as the pairing phase advances. */9480.peach-sr-only {9481  position: absolute;9482  width: 1px; height: 1px;9483  padding: 0; margin: -1px;9484  overflow: hidden;9485  clip: rect(0, 0, 0, 0);9486  white-space: nowrap;9487  border: 0;9488}94899490/* Reduced motion — stage simplifies to opacity transitions only */9491@media (prefers-reduced-motion: reduce) {9492  .peach-chirp-bird-body,9493  .peach-chirp-bird-head-group,9494  .peach-chirp-bird-beak,9495  .peach-chirp-bird-wing,9496  .peach-chirp-bird-tuft,9497  .peach-chirp-bird-tail,9498  .peach-chirp-bird-eye-group,9499  .peach-chirp-bird-aura,9500  .peach-chirp-arc,9501  .peach-chirp-flight-path,9502  .peach-chirp-flight-path-2,9503  .peach-chirp-dot-glow,9504  .peach-chirp-dot-core,9505  .peach-chirp-dot-ring,9506  .peach-chirp-mote,9507  .peach-chirp-meter-bar,9508  .peach-chirp-listen-dot,9509  .peach-chirp-bird-slot,9510  .peach-chirp-bird-slot-mobile {9511    animation: none !important;9512    transition: opacity 0.2s linear !important;9513  }9514}95159516/* ─────────────────────────────────────────────────────────────────9517   Settings → Sync surface (v3 ChirpSync). Wraps the same bird9518   animation used by the pairing flow with a paired-devices list and9519   the "Pair a device" CTA.9520   ───────────────────────────────────────────────────────────────── */9521.peach-chirp-settings {9522  position: absolute;9523  inset: 0;9524  z-index: 3;9525  display: flex;9526  flex-direction: column;9527  gap: 18px;9528  padding: 14px 12px 12px;9529  width: 100%;9530  box-sizing: border-box;9531  overflow-y: auto;9532  overflow-x: hidden;9533  /* Same warm Chirp surface as the pairing screen — unifies the two views. */9534  background:9535    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9536    var(--peach-bg);9537  color: var(--peach-t0);9538  isolation: isolate;9539  /* Hide native scrollbar — content fits 99% of the time and a chunky9540     gutter ruins the surface. */9541  scrollbar-width: none;9542  animation: peach-chirp-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9543}9544.peach-chirp-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }9545.peach-chirp-settings::before {9546  content: '';9547  position: absolute;9548  inset: 0;9549  pointer-events: none;9550  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9551  z-index: 0;9552}9553.peach-chirp-settings > * { position: relative; z-index: 1; }95549555.peach-chirp-settings--pairing {9556  padding: 0;9557  align-items: stretch;9558  justify-content: stretch;9559  background: none;9560  isolation: auto;9561}9562.peach-chirp-settings--pairing::before { display: none; }95639564.peach-chirp-settings-header {9565  display: flex;9566  align-items: center;9567  gap: 10px;9568}9569.peach-chirp-settings-title {9570  margin: 0;9571  font-family: var(--font-display, Georgia, serif);9572  font-style: italic;9573  font-size: 24px;9574  font-weight: 500;9575  line-height: 1;9576  color: var(--peach-t0);9577  letter-spacing: 0.005em;9578}9579.peach-chirp-settings-section {9580  margin: 6px 0 -4px;9581  font-size: 11px;9582  font-weight: 600;9583  letter-spacing: 0.08em;9584  text-transform: uppercase;9585  color: var(--peach-text-muted);9586}9587.peach-chirp-settings-error {9588  font-size: 12px;9589  padding: 8px 10px;9590  border-radius: 8px;9591  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);9592  color: var(--peach-text);9593}9594.peach-chirp-settings-footer {9595  margin-top: auto;9596  padding-top: 18px;9597  font-size: 11.5px;9598  line-height: 1.5;9599  color: var(--peach-text-muted);9600  text-align: center;9601}96029603/* Hero card shown when no devices are paired yet. */9604.peach-chirp-hero {9605  display: flex;9606  flex-direction: column;9607  align-items: center;9608  gap: 12px;9609  padding: 20px 12px 8px;9610  text-align: center;9611}9612.peach-chirp-hero-svg {9613  display: block;9614  max-width: 100%;9615  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));9616}9617.peach-chirp-hero-headline {9618  margin: 0;9619  font-family: var(--font-display, Georgia, serif);9620  font-style: italic;9621  font-size: 20px;9622  font-weight: 500;9623  line-height: 1.2;9624  letter-spacing: 0.005em;9625  color: var(--peach-t0);9626}9627.peach-chirp-hero-sub {9628  margin: 0;9629  font-size: 13px;9630  line-height: 1.5;9631  color: var(--peach-t1);9632  max-width: 320px;9633  text-wrap: pretty;9634}96359636.peach-chirp-pair-cta {9637  display: flex;9638  justify-content: center;9639  padding: 4px 0 6px;9640}9641.peach-chirp-pair-button {9642  display: inline-flex;9643  align-items: center;9644  gap: 8px;9645  min-width: 220px;9646  justify-content: center;9647}9648.peach-chirp-pair-button-icon {9649  flex: 0 0 auto;9650}96519652/* Paired devices list. Roomy rows that look at home next to the rest9653   of Settings; stale rows get a soft warm-warning border tint. */9654.peach-chirp-device-list {9655  list-style: none;9656  margin: 0;9657  padding: 0;9658  display: flex;9659  flex-direction: column;9660  gap: 8px;9661}9662.peach-chirp-device-row {9663  display: flex;9664  align-items: center;9665  gap: 12px;9666  padding: 12px;9667  border-radius: 10px;9668  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);9669  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);9670}9671.peach-chirp-device-row[data-stale="true"] {9672  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);9673}9674.peach-chirp-device-icon {9675  width: 32px;9676  height: 32px;9677  display: flex;9678  align-items: center;9679  justify-content: center;9680  border-radius: 8px;9681  color: var(--peach-text);9682  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);9683}9684.peach-chirp-device-info {9685  flex: 1;9686  display: flex;9687  flex-direction: column;9688  gap: 2px;9689  min-width: 0;9690}9691.peach-chirp-device-name {9692  font-size: 14px;9693  font-weight: 600;9694  color: var(--peach-text);9695  overflow: hidden;9696  text-overflow: ellipsis;9697  white-space: nowrap;9698}9699.peach-chirp-device-meta {9700  font-size: 11.5px;9701  color: var(--peach-text-muted);9702  display: flex;9703  flex-wrap: wrap;9704  align-items: center;9705  gap: 8px;9706}9707.peach-chirp-device-badge {9708  font-size: 10.5px;9709  font-weight: 500;9710  letter-spacing: 0.02em;9711  padding: 2px 6px;9712  border-radius: 999px;9713  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);9714  color: var(--peach-text);9715}9716.peach-chirp-device-stale {9717  font-size: 10.5px;9718  font-weight: 500;9719  color: var(--peach-warn, #d29257);9720}9721.peach-chirp-device-remove {9722  flex: 0 0 auto;9723  color: var(--peach-text-muted);9724}9725.peach-chirp-device-remove:hover {9726  color: var(--peach-danger, #c25b4a);9727}9728.peach-chirp-unpair-confirm {9729  display: flex;9730  gap: 6px;9731  align-items: center;9732}97339734/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */9735.peach-chirp-pro-card {9736  position: relative;9737  margin: 18px 12px;9738  padding: 18px 20px 22px;9739  border-radius: 22px;9740  background:9741    radial-gradient(140% 90% at 50% 0%,9742      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,9743      transparent 60%),9744    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);9745  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);9746  box-shadow:9747    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,9748    0 18px 40px -24px rgba(0, 0, 0, 0.45);9749  display: flex;9750  flex-direction: column;9751  align-items: center;9752  gap: 10px;9753  text-align: center;9754  overflow: hidden;9755}9756.peach-chirp-pro-stage {9757  position: relative;9758  width: 220px;9759  height: 140px;9760  display: flex;9761  align-items: flex-end;9762  justify-content: center;9763  margin-bottom: 2px;9764}9765.peach-chirp-pro-bird-slot {9766  width: 140px;9767  height: 132px;9768  display: flex;9769  align-items: flex-end;9770  justify-content: center;9771  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));9772}9773.peach-chirp-pro-bird-slot .peach-chirp-bird {9774  width: 100%;9775  height: 100%;9776}9777.peach-chirp-pro-bird-slot .peach-chirp-bird svg {9778  width: 100%;9779  height: 100%;9780  overflow: visible;9781}9782.peach-chirp-pro-chirp {9783  position: absolute;9784  top: 14px;9785  right: 8px;9786  width: 96px;9787  height: 80px;9788  color: var(--peach-accent);9789  animation: peach-chirp-pulse 2.6s ease-in-out infinite;9790  transform-origin: 0% 50%;9791  pointer-events: none;9792}9793@keyframes peach-chirp-pulse {9794  0%, 100% { opacity: 0.35; transform: translateX(0) scale(0.92); }9795  45%      { opacity: 1;    transform: translateX(2px) scale(1); }9796  70%      { opacity: 0.6;  transform: translateX(4px) scale(1.04); }9797}9798@media (prefers-reduced-motion: reduce) {9799  .peach-chirp-pro-chirp { animation: none; opacity: 0.7; }9800}9801.peach-chirp-pro-headline {9802  margin: 4px 0 0;9803  font-family: var(--font-display, "Cormorant Garamond", serif);9804  font-style: italic;9805  font-size: 19px;9806  font-weight: 500;9807  letter-spacing: 0.01em;9808  color: var(--peach-text, var(--peach-t0));9809  max-width: 280px;9810  line-height: 1.25;9811}9812.peach-chirp-pro-body {9813  margin: 0;9814  font-size: 13px;9815  line-height: 1.55;9816  color: var(--peach-text-dim, var(--peach-t2));9817  max-width: 300px;9818}9819.peach-chirp-pro-cta {9820  margin-top: 4px;9821}9822.peach-chirp-pro-foot {9823  margin: 2px 0 0;9824  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;9825  font-size: 0.625rem;9826  letter-spacing: 0.08em;9827  text-transform: uppercase;9828  color: var(--peach-t2);9829  opacity: 0.75;9830}