popup.css

232.6 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:not(.peach-icon-btn) { border-color: var(--peach-t3); color: var(--peach-t1); }872.peach-btn--ghost.peach-icon-btn { color: var(--peach-t1); }873.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }874.peach-icon-btn {875  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;876  display: inline-flex; align-items: center; justify-content: center;877  border-color: transparent;878  transition:879    color var(--peach-dur-80) var(--peach-curve-arrival),880    box-shadow var(--peach-dur-150) var(--peach-curve-arrival),881    background-color var(--peach-dur-80) var(--peach-curve-arrival);882}883.peach-icon-btn:hover:not(:disabled) {884  background: transparent;885  color: var(--peach-accent);886  box-shadow: 0 0 12px color-mix(in srgb, var(--peach-accent) 28%, transparent),887              0 0 4px color-mix(in srgb, var(--peach-accent) 16%, transparent);888}889890.peach-btn:focus-visible {891  outline: none;892  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);893}894895/* Lock button */896.peach-lock-icon { transform-origin: center; }897.peach-lock-btn { color: var(--peach-accent); }898.peach-lock-btn.is-locking .peach-lock-icon {899  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);900}901902/* Biometric unlock button */903.peach-biometric-btn {904  display: flex;905  align-items: center;906  justify-content: center;907  gap: 6px;908  margin-top: 8px;909  width: 100%;910}911912/* Copy button */913.peach-copy-btn {914  position: relative; overflow: hidden;915  color: var(--peach-t2); border-color: var(--peach-t3);916}917.peach-copy-icon {918  display: inline-flex; align-items: center; justify-content: center;919  position: relative; z-index: 1;920}921.peach-copy-icon-svg { display: block; }922.peach-copy-sheen {923  position: absolute; inset: 0;924  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%);925  opacity: 0; transform: scaleX(0.15); transform-origin: left center;926}927.peach-copy-btn.is-copied {928  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;929  box-shadow:930    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),931    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),932    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);933}934.peach-copy-btn.is-copied .peach-copy-icon {935  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;936}937.peach-copy-btn.is-copied .peach-copy-sheen {938  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;939}940.peach-copy-btn.is-retreat {941  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;942}943.peach-copy-btn.is-retreat .peach-copy-sheen {944  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;945}946.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }947.peach-copy-drain-bar {948  display: block; width: 100%; height: 100%;949  background: var(--peach-accent); opacity: 0.7;950  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;951}952953/* Unlock screen elements */954.peach-unlock-headline {955  margin: 2px 0 0;956  font-family: var(--font-display);957  font-size: 52px; line-height: 0.95;958  font-style: italic; font-weight: 400;959}960.peach-subline {961  margin: 0;962  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;963  font-size: 0.625rem; color: var(--peach-t2); font-style: italic;964}965.peach-subline--lock {966  max-width: 248px;967  line-height: 1.5;968}969.peach-underline-input {970  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);971  padding: 6px 0; background: transparent; color: var(--peach-t0);972  outline: none;973  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;974  font-size: 0.8125rem;975  caret-color: var(--peach-accent);976}977.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }978.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }979.peach-hint {980  margin: 0;981  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;982  font-size: 0.625rem; color: var(--peach-t2);983}984.peach-unlock-footer {985  margin-top: 4px; display: flex; align-items: center; gap: 7px;986  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;987  font-size: 0.625rem; color: var(--peach-t2);988}989.peach-unlock-footer--lock {990  padding-top: 2px;991}992993/* Breach badge */994.peach-breach-badge {995  display: flex;996  position: relative;997  z-index: 1;998  align-items: center;999  gap: 7px;1000  font-size: 0.5625rem;1001  color: var(--peach-breach);1002  padding: 5px 10px;1003  margin-bottom: 4px;1004  border-radius: 8px;1005  background: rgba(220, 80, 60, 0.07);1006  border: 1px solid rgba(220, 80, 60, 0.18);1007  letter-spacing: 0.04em;1008}10091010.peach-breach-action {1011  margin-left: auto;1012  font-size: 0.625rem;1013  padding: 3px 8px;1014}10151016.peach-password-value.is-breached {1017  color: rgba(220, 80, 60, 0.75);1018  border-bottom: 1px solid rgba(220, 80, 60, 0.22);1019}10201021/* ── Overlay views ─────────────────────────────────────────────────── */1022.peach-overlay-view {1023  position: absolute;1024  inset: 0;1025  display: flex;1026  flex-direction: column;1027  background:1028    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1029    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1030    var(--peach-bg);1031  z-index: 2;1032  overflow: hidden;1033  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1034}1035@keyframes overlay-in {1036  from { opacity: 0; transform: translateY(8px); }1037  to   { opacity: 1; transform: translateY(0); }1038}1039.peach-overlay-view.ov-enter-up {1040  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1041}1042.peach-overlay-view.ov-exit-up {1043  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1044}1045.peach-overlay-view.ov-enter-right {1046  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1047}1048.peach-overlay-view.ov-exit-right {1049  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1050}10511052@keyframes ov-enter-up {1053  from { opacity: 0; transform: translateY(18px); }1054  to   { opacity: 1; transform: translateY(0); }1055}1056@keyframes ov-exit-up {1057  from { opacity: 1; transform: translateY(0); }1058  to   { opacity: 0; transform: translateY(-12px); }1059}1060@keyframes ov-enter-right {1061  from { opacity: 0; transform: translateX(20px); }1062  to   { opacity: 1; transform: translateX(0); }1063}1064@keyframes ov-exit-right {1065  from { opacity: 1; transform: translateX(0); }1066  to   { opacity: 0; transform: translateX(20px); }1067}10681069/* Overlay shared header */1070.peach-overlay-header {1071  padding: 10px 12px;1072  display: flex;1073  align-items: center;1074  gap: 8px;1075  border-bottom: 1px solid var(--peach-t3);1076  flex-shrink: 0;1077}1078.peach-overlay-title {1079  font-family: "IBM Plex Mono", monospace;1080  font-size: 0.5625rem;1081  text-transform: uppercase;1082  letter-spacing: 0.18em;1083  color: var(--peach-t2);1084  flex: 1;1085  text-align: center;1086}10871088.peach-overlay-card {1089  background: var(--peach-s1);1090  border: 1px solid var(--peach-t3);1091  border-radius: 12px;1092  overflow: hidden;1093  width: 100%;1094}10951096.peach-onboarding-alt-actions {1097  display: flex;1098  flex-direction: column;1099  gap: 4px;1100  padding: 0;1101}11021103.peach-settings-copy {1104  margin: 0 0 10px;1105  font-size: 0.6875rem;1106  line-height: 1.5;1107  color: var(--peach-t2);1108}11091110.peach-settings-copy strong {1111  color: var(--peach-t0);1112}11131114.peach-settings-copy--spacious {1115  margin-bottom: 12px;1116}11171118.peach-settings-copy--result {1119  color: var(--peach-accent);1120  font-size: 0.8125rem;1121  text-align: center;1122  padding: 8px 0;1123}11241125.peach-settings-copy--danger {1126  color: var(--peach-breach);1127}11281129.peach-settings-copy--success {1130  color: var(--peach-accent);1131}11321133.peach-inline-feedback {1134  font-size: 0.6875rem;1135  margin: 10px 0 0;1136}11371138.peach-inline-feedback--ok {1139  color: var(--peach-accent);1140}11411142.peach-inline-feedback--error {1143  color: var(--peach-breach);1144}11451146.peach-inline-feedback--muted {1147  color: var(--peach-t2);1148  font-size: 0.625rem;1149  margin: 4px 0;1150}11511152.peach-inline-feedback--spaced {1153  margin-top: 12px;1154}11551156.peach-settings-actions--row {1157  display: flex;1158  gap: 6px;1159}11601161.peach-settings-actions--end {1162  margin-top: 14px;1163  justify-content: flex-end;1164}11651166.peach-settings-stack {1167  display: flex;1168  flex-direction: column;1169  gap: 6px;1170}11711172.peach-settings-stack--tight {1173  gap: 4px;1174}11751176.peach-settings-stack--spacious {1177  gap: 8px;1178}11791180.peach-settings-input {1181  width: 100%;1182  box-sizing: border-box;1183  padding: 8px 10px;1184  background: rgba(0, 0, 0, 0.22);1185  border: 1px solid transparent;1186  border-radius: 6px;1187  color: var(--peach-t0);1188  font-family: var(--font-ui);1189  font-size: 0.75rem;1190  outline: none;1191  transition: border-color 120ms ease, background 120ms ease;1192}11931194.peach-settings-input:focus {1195  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1196  background: rgba(0, 0, 0, 0.28);1197}11981199.peach-settings-input[type="password"] {1200  font-family: var(--font-mono);1201  letter-spacing: 0.04em;1202}12031204.peach-hidden-file-input {1205  display: none;1206}12071208.peach-checkbox-note {1209  display: flex;1210  align-items: flex-start;1211  gap: 8px;1212  font-size: 0.6875rem;1213  color: var(--peach-t1);1214  cursor: pointer;1215  margin: 12px 0;1216}12171218.peach-checkbox-note input {1219  margin-top: 1px;1220}12211222.peach-danger-notice {1223  background: rgba(220, 80, 60, 0.08);1224  border: 1px solid rgba(220, 80, 60, 0.2);1225  border-radius: 6px;1226  padding: 9px 11px;1227  font-size: 0.6875rem;1228  color: var(--peach-t1);1229  line-height: 1.5;1230}12311232.peach-info-notice {1233  font-size: 0.6875rem;1234  color: var(--peach-t1);1235  line-height: 1.5;1236  background: var(--surface-card);1237  border: 1px solid var(--peach-t3);1238  border-radius: 6px;1239  padding: 8px 10px;1240}12411242.peach-info-notice--warn {1243  border-color: rgba(220, 38, 38, 0.4);1244  background: rgba(220, 38, 38, 0.06);1245  color: rgba(220, 38, 38, 0.92);1246  margin-bottom: 8px;1247}12481249.peach-strength-row {1250  display: flex;1251  align-items: center;1252  gap: 8px;1253  margin-bottom: 10px;1254}12551256.peach-strength-track {1257  flex: 1;1258  height: 4px;1259  background: var(--peach-s2);1260  border-radius: 2px;1261  overflow: hidden;1262}12631264.peach-strength-fill {1265  height: 100%;1266  border-radius: 2px;1267  transition: width 120ms ease, background 120ms ease;1268}12691270/* ── Type selector tabs ── */1271.peach-type-tabs {1272  display: flex;1273  gap: 0;1274  background: var(--peach-t4);1275  border-radius: 8px;1276  padding: 3px;1277}12781279.peach-type-tab {1280  flex: 1;1281  display: flex;1282  align-items: center;1283  justify-content: center;1284  gap: 6px;1285  padding: 6px 10px;1286  border-radius: 6px;1287  border: none;1288  background: transparent;1289  cursor: pointer;1290  font-family: Inter, system-ui, sans-serif;1291  font-size: 0.6875rem;1292  font-weight: 400;1293  letter-spacing: 0.04em;1294  color: var(--peach-t1);1295  transition: background 150ms ease, color 150ms ease;1296}12971298.peach-type-tab.is-active {1299  background: var(--peach-s2);1300  color: var(--peach-t0);1301  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1302}13031304.peach-type-tab:not(.is-active):hover {1305  color: var(--peach-t0);1306}13071308.peach-type-tab svg {1309  opacity: 0.7;1310  flex-shrink: 0;1311}13121313.peach-type-tab.is-active svg {1314  opacity: 1;1315}13161317/* ── List view ───────────────────────────────────────────────────────── */1318.peach-list-top {1319  padding: 0 10px;1320  min-height: 46px;1321  display: flex;1322  align-items: center;1323  gap: 6px;1324  border-bottom: 1px solid var(--peach-t3);1325  flex-shrink: 0;1326  background: var(--peach-s1);1327}13281329.peach-vault-list {1330  flex: 1;1331  overflow-y: auto;1332  scrollbar-width: none;1333}1334.peach-vault-list::-webkit-scrollbar { display: none; }13351336/* Scrollbar — vault list */1337.peach-vault-list {1338  scrollbar-width: thin;1339  scrollbar-color: var(--peach-t3) transparent;1340}13411342.peach-vault-list::-webkit-scrollbar {1343  width: 3px;1344}13451346.peach-vault-list::-webkit-scrollbar-thumb {1347  background: var(--peach-t3);1348  border-radius: 2px;1349}13501351.peach-entry-row {1352  width: 100%;1353  display: flex;1354  align-items: center;1355  gap: 10px;1356  padding: 9px 16px;1357  background: transparent;1358  border: none;1359  border-bottom: 1px solid var(--peach-t3);1360  cursor: pointer;1361  color: inherit;1362  text-align: left;1363  transition: background 80ms ease;1364}1365.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1366.peach-entry-row:last-child { border-bottom: none; }1367.peach-entry-row.is-active {1368  box-shadow: inset 2px 0 0 var(--peach-accent);1369  background: rgba(240,232,216,0.03);1370}1371.peach-entry-row:focus-visible {1372  outline: none;1373  box-shadow: 0 0 0 1px var(--peach-border-accent);1374  background: rgba(240,232,216,0.03);1375}1376.peach-entry-row-icon {1377  width: 26px; height: 26px;1378  border-radius: 7px;1379  border: 1px solid var(--peach-t3);1380  display: flex; align-items: center; justify-content: center;1381  color: var(--peach-t2);1382  flex-shrink: 0;1383}1384.peach-entry-row-icon.is-breach {1385  border-color: rgba(220,80,60,0.3);1386  color: rgba(220,80,60,0.7);1387}13881389/* Title-initials chip used as the favicon fallback for login entries whose1390 * real favicon hasn't been cached by the browser yet (freshly-imported,1391 * never-visited domains). Background colour is hashed from the title so1392 * the same entry always shows the same chip. The chip fits the same1393 * 26×26 row icon slot the favicon would take. */1394.peach-favicon-initials {1395  display: inline-flex;1396  align-items: center;1397  justify-content: center;1398  width: 100%;1399  height: 100%;1400  border-radius: 4px;1401  font-family: "IBM Plex Mono", monospace;1402  font-size: 0.5625rem;1403  font-weight: 600;1404  letter-spacing: 0.04em;1405  color: rgba(240, 232, 216, 0.92);1406  text-transform: uppercase;1407  user-select: none;1408}1409.peach-entry-row-info { flex: 1; min-width: 0; }1410.peach-entry-row-name {1411  display: block;1412  font-family: var(--font-display);1413  font-size: 1.0625rem;1414  font-style: italic;1415  font-weight: 400;1416  color: var(--peach-t0);1417  line-height: 1.2;1418  white-space: nowrap;1419  overflow: hidden;1420  text-overflow: ellipsis;1421}1422.peach-entry-row-meta {1423  display: block;1424  font-family: "IBM Plex Mono", monospace;1425  font-size: 0.5625rem;1426  color: var(--peach-t2);1427  margin-top: 1px;1428  letter-spacing: 0.05em;1429}1430.peach-entry-row-dot {1431  width: 5px; height: 5px;1432  border-radius: 50%;1433  background: rgba(220,80,60,0.7);1434  flex-shrink: 0;1435}1436.peach-new-entry-row {1437  display: flex;1438  align-items: center;1439  justify-content: center;1440  gap: 6px;1441  width: 100%;1442  padding: 11px;1443  background: transparent;1444  border: none;1445  border-top: 1px solid var(--peach-t3);1446  color: var(--peach-t2);1447  font-family: "IBM Plex Mono", monospace;1448  font-size: 0.5625rem;1449  text-transform: uppercase;1450  letter-spacing: 0.14em;1451  cursor: pointer;1452  flex-shrink: 0;1453  transition: color 120ms ease, background 120ms ease;1454}1455.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14561457/* ── Multi-select mode ─────────────────────────────────────────────── */14581459/* Select-mode trigger button in sort bar — same shape as trash btn */1460.peach-sort-select-btn {1461  display: flex;1462  align-items: center;1463  justify-content: center;1464  padding: 3px 5px;1465  background: transparent;1466  border: none;1467  cursor: pointer;1468  color: var(--peach-t2);1469  border-radius: 4px;1470  transition: color 140ms ease, background 140ms ease;1471}1472.peach-sort-select-btn:hover {1473  color: var(--peach-t1);1474  background: var(--peach-t3);1475}14761477/* Sort bar in select mode */1478.peach-select-cancel-btn {1479  background: transparent;1480  border: none;1481  padding: 0 4px;1482  cursor: pointer;1483  font-family: "IBM Plex Mono", monospace;1484  font-size: 0.5625rem;1485  letter-spacing: 0.12em;1486  text-transform: uppercase;1487  color: var(--peach-t2);1488  transition: color 140ms ease;1489  flex-shrink: 0;1490}1491.peach-select-cancel-btn:hover { color: var(--peach-t0); }14921493.peach-select-count-label {1494  flex: 1;1495  text-align: center;1496  font-family: "IBM Plex Mono", monospace;1497  font-size: 0.5625rem;1498  letter-spacing: 0.14em;1499  text-transform: uppercase;1500  color: var(--peach-t1);1501}15021503.peach-select-all-btn {1504  background: transparent;1505  border: none;1506  padding: 0 4px;1507  cursor: pointer;1508  font-family: "IBM Plex Mono", monospace;1509  font-size: 0.5625rem;1510  letter-spacing: 0.12em;1511  text-transform: uppercase;1512  color: var(--peach-t2);1513  transition: color 140ms ease;1514  flex-shrink: 0;1515}1516.peach-select-all-btn:hover { color: var(--peach-accent); }15171518/* List in select mode */1519.peach-vault-list.is-selecting .peach-entry-row {1520  cursor: default;1521}1522.peach-vault-list.is-selecting .peach-entry-row:hover {1523  background: rgba(240,232,216,0.02);1524}1525.peach-vault-list.is-selecting .peach-entry-row.is-selected {1526  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1527}1528.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1529  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1530}15311532/* Select indicator circles in icon slot */1533.peach-entry-row-icon.is-select-icon {1534  color: var(--peach-t2);1535}1536.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1537  color: var(--peach-accent);1538}15391540/* Delete action bar at bottom (replaces new-entry row) */1541.peach-select-action-bar {1542  display: flex;1543  align-items: center;1544  justify-content: center;1545  gap: 7px;1546  width: 100%;1547  padding: 11px;1548  background: transparent;1549  border: none;1550  border-top: 1px solid var(--peach-t3);1551  color: var(--peach-t1);1552  font-family: "IBM Plex Mono", monospace;1553  font-size: 0.5625rem;1554  text-transform: uppercase;1555  letter-spacing: 0.14em;1556  cursor: pointer;1557  flex-shrink: 0;1558  transition: color 120ms ease, background 120ms ease;1559}1560.peach-select-action-bar:not(:disabled):hover {1561  color: var(--peach-t0);1562  background: rgba(220,80,60,0.06);1563}1564.peach-select-action-bar:not(:disabled):hover svg {1565  stroke: rgba(220,80,60,0.8);1566}1567.peach-select-action-bar:disabled,1568.peach-select-action-bar.is-empty {1569  color: var(--peach-t2);1570  cursor: default;1571  opacity: 0.5;1572}1573.peach-search-counter-list {1574  white-space: nowrap;1575  flex-shrink: 0;1576}1577.peach-list-empty {1578  min-height: 180px;1579  display: grid;1580  place-items: center;1581  color: var(--peach-t2);1582  font-family: "IBM Plex Mono", monospace;1583  font-size: 0.6875rem;1584}15851586/* ── Settings view ───────────────────────────────────────────────────── */1587.peach-settings-body {1588  flex: 1;1589  overflow-y: auto;1590  min-height: 0;1591  display: flex;1592  flex-direction: column;1593  padding: 2px 0 10px;1594}1595.peach-settings-group {1596  margin: 4px 10px;1597  padding: 9px 14px 11px;1598  border-radius: 12px;1599  border: 1px solid rgba(255, 255, 255, 0.07);1600  background: rgba(26, 20, 16, 0.60);1601  backdrop-filter: blur(10px) saturate(1.3);1602  -webkit-backdrop-filter: blur(10px) saturate(1.3);1603}16041605.peach-settings-group + .peach-settings-group {1606  margin-top: 6px;1607}16081609@supports not (backdrop-filter: blur(1px)) {1610  .peach-settings-group {1611    background: rgba(26, 20, 16, 0.90);1612    border-color: rgba(255, 255, 255, 0.09);1613    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1614  }1615}16161617.light .peach-settings-group,1618[data-theme="light"] .peach-settings-group {1619  background: rgba(245, 237, 226, 0.70);1620  border-color: rgba(26, 18, 8, 0.08);1621  backdrop-filter: blur(10px) saturate(1.2);1622  -webkit-backdrop-filter: blur(10px) saturate(1.2);1623}16241625@supports not (backdrop-filter: blur(1px)) {1626  .light .peach-settings-group,1627  [data-theme="light"] .peach-settings-group {1628    background: rgba(245, 237, 226, 0.97);1629    border-color: rgba(26, 18, 8, 0.10);1630  }1631}1632.peach-export-intro {1633  padding-bottom: 8px;1634}1635.peach-export-card {1636  display: grid;1637  gap: 10px;1638}1639.peach-rune-canvas {1640  border-radius: 8px;1641  background: rgba(0, 0, 0, 0.22);1642  flex: 1;1643  align-self: center;1644}1645.peach-script-input {1646  font-family: "PeachScript", monospace;1647  font-size: 0.6875rem;1648  line-height: 1.9;1649  letter-spacing: 0.06em;1650  color: var(--peach-t0);1651  background: rgba(0, 0, 0, 0.22);1652  border: none;1653  border-radius: 6px;1654  padding: 12px;1655  width: 100%;1656  min-height: 96px;1657  resize: vertical;1658  word-break: break-all;1659  scrollbar-width: none;1660  -ms-overflow-style: none;1661}16621663.peach-script-input::-webkit-scrollbar { display: none; }1664.peach-csv-warning {1665  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1666  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1667  color: var(--peach-t0);1668  border-radius: 6px;1669  padding: 10px 12px;1670  margin-bottom: 8px;1671  font-size: 0.75rem;1672  line-height: 1.45;1673}1674.peach-export-card--primary {1675  background:1676    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1677}16781679/* Export menu — distribute the three format cards across the popup. */1680.peach-export-menu {1681  display: flex;1682  flex-direction: column;1683  flex: 1;1684  min-height: 0;1685}1686.peach-export-menu .peach-settings-group {1687  flex: 1;1688  display: flex;1689  flex-direction: column;1690  justify-content: center;1691  gap: 10px;1692}16931694/* Result view — the script-string fills the remaining vertical surface. */1695.peach-export-result-group {1696  flex: 1;1697  display: flex;1698  flex-direction: column;1699  min-height: 0;1700  border-bottom: none;1701}1702.peach-export-result-group .peach-export-card {1703  flex: 1;1704  min-height: 0;1705  display: flex;1706  flex-direction: column;1707  gap: 10px;1708}1709.peach-export-result-group .peach-export-card-copy {1710  flex-shrink: 0;1711}1712.peach-export-result-group .peach-settings-label {1713  flex-shrink: 0;1714}1715.peach-export-result-group button {1716  flex-shrink: 0;1717}1718.peach-export-card-head {1719  display: flex;1720  align-items: center;1721  justify-content: space-between;1722  gap: 10px;1723}1724.peach-export-card-copy {1725  margin: 0;1726  font-size: 0.75rem;1727  line-height: 1.55;1728  color: var(--peach-t1);1729}1730.peach-export-note {1731  margin: 0;1732  font-size: 0.625rem;1733  line-height: 1.5;1734  color: var(--peach-t2);1735}1736.peach-export-strength-track {1737  height: 3px;1738  background: var(--peach-border);1739  border-radius: 2px;1740  margin: 4px 0 2px;1741  overflow: hidden;1742}1743.peach-export-strength-fill {1744  height: 100%;1745  border-radius: 2px;1746  transition: width 250ms ease, background 250ms ease;1747}1748.peach-export-strength-warn {1749  margin: 0;1750  font-size: 0.625rem;1751  line-height: 1.5;1752  color: #e84040;1753  font-family: "IBM Plex Mono", monospace;1754}1755.peach-export-strength-hint {1756  margin: 0;1757  font-size: 0.625rem;1758  line-height: 1.5;1759  color: var(--peach-t2);1760  font-family: "IBM Plex Mono", monospace;1761}1762.peach-export-pill {1763  display: inline-flex;1764  align-items: center;1765  padding: 4px 8px;1766  border-radius: 999px;1767  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1768  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1769  color: var(--peach-accent);1770  font-family: "IBM Plex Mono", monospace;1771  font-size: 0.5rem;1772  letter-spacing: 0.12em;1773  text-transform: uppercase;1774  white-space: nowrap;1775}1776.peach-export-pill--danger {1777  border-color: rgba(220,80,60,0.22);1778  background: rgba(220,80,60,0.08);1779  color: var(--peach-breach);1780}1781.peach-settings-label {1782  margin: 0 0 6px;1783  font-family: "IBM Plex Mono", monospace;1784  font-size: 0.5rem;1785  text-transform: uppercase;1786  letter-spacing: 0.18em;1787  color: var(--peach-t2);1788}1789.peach-settings-row {1790  display: flex;1791  align-items: center;1792  justify-content: space-between;1793  gap: 12px;1794  min-height: 34px;1795  padding: 6px 0;1796  font-size: 0.8125rem;1797  color: var(--peach-t1);1798}1799.peach-settings-row--meta { color: var(--peach-t2); font-size: 0.75rem; }1800.peach-settings-value {1801  font-family: "IBM Plex Mono", monospace;1802  font-size: 0.625rem;1803  color: var(--peach-t2);1804}18051806.peach-settings-value--status {1807  display: flex;1808  align-items: center;1809  gap: 6px;1810}18111812.peach-settings-link {1813  font-family: "IBM Plex Mono", monospace;1814  font-size: 0.625rem;1815  color: var(--peach-accent);1816  text-decoration: none;1817  cursor: pointer;1818}1819.peach-settings-link:hover {1820  text-decoration: underline;1821}18221823.peach-settings-row--stack {1824  flex-direction: column;1825  align-items: stretch;1826  gap: 6px;1827}18281829.peach-settings-row--top {1830  align-items: flex-start;1831}18321833.peach-settings-row-main {1834  display: flex;1835  flex-direction: column;1836  gap: 4px;1837  flex: 1;1838}1839.peach-toggle {1840  width: 28px; height: 16px;1841  border-radius: 999px;1842  background: var(--peach-t3);1843  border: 1px solid var(--peach-t3);1844  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1845  flex-shrink: 0;1846  transition: background 200ms ease, border-color 200ms ease;1847  cursor: pointer;1848}1849.peach-toggle.is-on {1850  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1851  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1852}1853.peach-toggle-knob {1854  width: 10px; height: 10px;1855  border-radius: 50%;1856  background: var(--peach-t2);1857  flex-shrink: 0;1858  transform: translateX(0px);1859  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1860}1861.peach-toggle.is-on .peach-toggle-knob {1862  background: var(--peach-accent);1863  transform: translateX(12px);1864}1865.peach-settings-footer {1866  display: flex;1867  align-items: center;1868  gap: 8px;1869  margin-top: auto;1870  padding: 14px 16px 8px;1871  font-family: "IBM Plex Mono", monospace;1872  font-size: 0.5625rem;1873  color: var(--peach-t2);1874}18751876/* ── Settings home navigation ──────────────────────────────────────────── */1877.peach-settings-nav-label {1878  margin: 0 0 2px;1879  padding: 12px 16px 4px;1880  font-family: "IBM Plex Mono", monospace;1881  font-size: 0.5rem;1882  text-transform: uppercase;1883  letter-spacing: 0.18em;1884  color: var(--peach-t2);1885}18861887.peach-settings-cat-row {1888  display: flex;1889  align-items: center;1890  gap: 10px;1891  width: 100%;1892  padding: 9px 16px;1893  background: none;1894  border: none;1895  border-bottom: 1px solid var(--peach-t3);1896  cursor: pointer;1897  text-align: left;1898  color: inherit;1899  transition: background var(--peach-dur-80) ease;1900}1901.peach-settings-cat-row:hover {1902  background: var(--peach-t3);1903}1904.peach-settings-cat-row:last-child {1905  border-bottom: none;1906}19071908.peach-settings-cat-icon {1909  width: 28px;1910  height: 28px;1911  border-radius: 7px;1912  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1913  color: var(--peach-accent);1914  display: flex;1915  align-items: center;1916  justify-content: center;1917  flex-shrink: 0;1918}1919/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1920   Darken the icon stroke to ink and bump the bg tint so the icon reads1921   sharply while the cell still feels accent-tinted. */1922.light .peach-settings-cat-icon {1923  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1924  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1925}19261927.peach-settings-cat-content {1928  flex: 1;1929  display: flex;1930  flex-direction: column;1931  gap: 2px;1932  min-width: 0;1933}19341935.peach-settings-cat-name {1936  font-size: 0.8125rem;1937  font-weight: 450;1938  color: var(--peach-t0);1939  line-height: 1.2;1940}19411942.peach-settings-cat-desc {1943  font-size: 0.625rem;1944  color: var(--peach-t2);1945  line-height: 1.3;1946  white-space: nowrap;1947  overflow: hidden;1948  text-overflow: ellipsis;1949}19501951.peach-settings-cat-chevron {1952  color: var(--peach-t2);1953  flex-shrink: 0;1954  opacity: 0.5;1955}19561957/* ── Settings sub-view section labels ──────────────────────────────────── */1958.peach-settings-sub-label {1959  margin: 12px 0 4px;1960  font-family: "IBM Plex Mono", monospace;1961  font-size: 0.5rem;1962  text-transform: uppercase;1963  letter-spacing: 0.18em;1964  color: var(--peach-t2);1965}1966.peach-settings-sub-label:first-child {1967  margin-top: 4px;1968}19691970/* ── Settings: collapsible Advanced section ─────────────────────────────── */1971.peach-settings-advanced-toggle {1972  display: flex;1973  align-items: center;1974  justify-content: space-between;1975  width: 100%;1976  background: none;1977  border: none;1978  cursor: pointer;1979  padding: 12px 0 4px;1980  margin: 0;1981  color: inherit;1982}1983.peach-settings-advanced-toggle:hover .peach-settings-advanced-chevron {1984  color: var(--peach-t1);1985}1986.peach-settings-advanced-chevron {1987  font-size: 0.5625rem;1988  color: var(--peach-t3);1989  letter-spacing: 0;1990  transition: color 120ms ease;1991}19921993/* ── Feedback form ──────────────────────────────────────────────────────── */1994.peach-feedback-group {1995  flex: 1;1996  display: flex;1997  flex-direction: column;1998  border-bottom: none;1999}20002001.peach-feedback-intro {2002  margin: 4px 0 14px;2003  font-size: 0.75rem;2004  line-height: 1.55;2005  color: var(--peach-t1);2006}20072008.peach-feedback-chips {2009  display: flex;2010  flex-wrap: wrap;2011  gap: 6px;2012  margin-bottom: 14px;2013}20142015.peach-feedback-chip {2016  padding: 4px 10px;2017  border-radius: 999px;2018  border: 1px solid var(--peach-t3);2019  background: none;2020  color: var(--peach-t2);2021  font-size: 0.6875rem;2022  font-family: var(--font-ui);2023  cursor: pointer;2024  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,2025    background var(--peach-dur-80) ease;2026}2027.peach-feedback-chip:hover {2028  border-color: var(--peach-t2);2029  color: var(--peach-t1);2030}2031.peach-feedback-chip.is-active {2032  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2033  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2034  color: var(--peach-accent);2035}20362037.peach-feedback-textarea {2038  flex: 1;2039  width: 100%;2040  min-height: 120px;2041  box-sizing: border-box;2042  background: rgba(0, 0, 0, 0.22);2043  border: 1px solid transparent;2044  border-radius: 6px;2045  color: var(--peach-t0);2046  font-size: 0.75rem;2047  font-family: var(--font-ui);2048  line-height: 1.5;2049  padding: 8px 10px;2050  resize: none;2051  outline: none;2052  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;2053}2054.peach-feedback-textarea:focus {2055  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);2056  background: rgba(0, 0, 0, 0.28);2057}2058.peach-feedback-textarea:focus {2059  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);2060}2061.peach-feedback-textarea::placeholder {2062  color: var(--peach-t2);2063}20642065.peach-feedback-meta {2066  margin: 6px 0 0;2067  font-size: 0.625rem;2068  color: var(--peach-t2);2069  font-family: "IBM Plex Mono", monospace;2070}20712072.peach-feedback-result {2073  margin: 8px 0 0;2074  font-size: 0.6875rem;2075  font-family: "IBM Plex Mono", monospace;2076}2077.peach-feedback-result--ok { color: var(--peach-sync-ok); }2078.peach-feedback-result--err { color: var(--peach-breach); }20792080.peach-feedback-submit {2081  width: 100%;2082  margin-top: 12px;2083  justify-content: center;2084}20852086.peach-feedback-anon {2087  margin: 8px 0 0;2088  font-size: 0.625rem;2089  color: var(--peach-t2);2090  text-align: center;2091}20922093.peach-passkey-badge {2094  margin-left: 8px;2095  font-size: 0.625rem;2096  letter-spacing: 0.06em;2097  text-transform: uppercase;2098  color: var(--peach-t2);2099  font-family: var(--font-ui);2100  vertical-align: middle;2101}21022103.peach-passkey-delete-btn {2104  color: var(--peach-breach);2105  border-color: rgba(229, 85, 85, 0.25);2106}21072108.peach-passkey-delete-confirm {2109  display: flex;2110  align-items: center;2111  gap: 8px;2112  padding: 8px 10px;2113  background: rgba(229, 85, 85, 0.06);2114  border: 1px solid rgba(229, 85, 85, 0.2);2115  border-radius: 6px;2116}21172118.peach-passkey-delete-confirm-copy {2119  flex: 1;2120  font-size: 0.6875rem;2121  color: var(--peach-t1);2122}21232124.peach-passkey-delete-btn--confirm {2125  color: var(--peach-breach);2126  border-color: rgba(229, 85, 85, 0.4);2127}21282129.peach-passkey-activity {2130  flex-direction: column;2131  align-items: flex-start;2132  gap: 4px;2133}21342135.peach-passkey-meta {2136  font-size: 0.6875rem;2137  color: var(--peach-t2);2138}21392140.peach-passkey-actions {2141  position: relative;2142  z-index: 1;2143  margin-top: 14px;2144  display: flex;2145  flex-direction: column;2146  gap: 8px;2147}21482149.peach-passkey-approval {2150  display: flex;2151  flex-direction: column;2152  align-items: center;2153  padding: 16px 20px 14px;2154  gap: 8px;2155  text-align: center;2156}21572158.peach-passkey-approval-icon {2159  width: 36px;2160  height: 36px;2161  border-radius: 10px;2162  background: var(--peach-s2);2163  border: 1px solid var(--peach-t3);2164  display: flex;2165  align-items: center;2166  justify-content: center;2167  flex-shrink: 0;2168  color: var(--peach-accent);2169}21702171.peach-passkey-approval-icon img,2172.peach-passkey-approval-icon svg {2173  width: 22px;2174  height: 22px;2175  border-radius: 5px;2176}21772178.peach-passkey-approval-rp {2179  font-family: var(--font-ui);2180  font-size: 0.75rem;2181  color: var(--peach-t2);2182  letter-spacing: 0.03em;2183}21842185.peach-passkey-approval-action {2186  font-family: var(--font-display);2187  font-style: italic;2188  font-weight: 300;2189  font-size: 18px;2190  color: var(--peach-t0);2191  line-height: 1.1;2192  margin: 1px 0;2193}21942195.peach-passkey-approval-user {2196  font-family: var(--font-mono);2197  font-size: 0.6875rem;2198  color: var(--peach-t1);2199  background: var(--peach-s2);2200  border: 1px solid var(--peach-t3);2201  border-radius: 4px;2202  padding: 3px 8px;2203}22042205.peach-passkey-approval-notice {2206  font-size: 0.625rem;2207  color: var(--peach-t2);2208  line-height: 1.5;2209  max-width: 220px;2210}22112212.peach-passkey-approval-actions {2213  display: flex;2214  gap: 8px;2215  width: 100%;2216  margin-top: 6px;2217}22182219.peach-passkey-approval-actions .peach-btn {2220  flex: 1;2221}22222223/* ── Inline generator drawer ── */2224.peach-generator-drawer {2225  display: grid;2226  grid-template-rows: 0fr;2227  transition: grid-template-rows 320ms var(--peach-curve-arrival);2228  overflow: hidden;2229}2230.peach-generator-drawer.is-open {2231  grid-template-rows: 1fr;2232}2233.peach-generator-drawer-inner {2234  min-height: 0;2235  overflow: hidden;2236}2237.peach-generator-drawer-content {2238  border-top: 1px solid var(--peach-t3);2239  padding: 8px 0 4px;2240  display: flex;2241  flex-direction: column;2242  gap: 8px;2243}22442245/* ── Compact generator (inside entry edit) ── */2246.peach-generator-drawer-content--compact {2247  border-top: 1px solid var(--peach-t3);2248  padding: 8px 0 2px;2249  gap: 7px;2250}2251.peach-pwgen-compact-display-row {2252  display: flex;2253  align-items: center;2254  gap: 6px;2255}2256.peach-pwgen-compact-output {2257  flex: 1;2258  min-width: 0;2259  font-family: "IBM Plex Mono", monospace;2260  font-size: 0.6875rem;2261  font-weight: 400;2262  letter-spacing: 0.04em;2263  color: var(--peach-t0);2264  background: rgba(240, 232, 216, 0.04);2265  border: 1px solid var(--peach-t3);2266  border-radius: 5px;2267  padding: 5px 8px;2268  line-height: 1.5;2269  outline: none;2270  transition: border-color 120ms ease;2271}22722273.peach-pwgen-compact-output:focus {2274  border-color: var(--peach-t1);2275}2276.peach-pwgen-compact-controls {2277  display: flex;2278  align-items: center;2279  gap: 6px;2280}2281.peach-pwgen-compact-slider {2282  flex: 1;2283  min-width: 0;2284  height: 2px !important;2285}2286.peach-pwgen-compact-controls .peach-pwgen-len-num {2287  flex-shrink: 0;2288  min-width: 18px;2289  text-align: right;2290}2291.peach-pwgen-compact-pills {2292  display: flex;2293  gap: 3px;2294  flex-shrink: 0;2295}2296.peach-pwgen-compact-pills .peach-pwgen-pill {2297  padding: 2px 7px;2298  font-size: 0.5rem;2299}2300.peach-pwgen-compact-use {2301  flex-shrink: 0;2302  font-size: 0.625rem !important;2303  padding: 3px 9px !important;2304  min-height: 22px !important;2305  border-radius: 5px !important;2306}23072308/* ── Password edit row (input + eye toggle side-by-side) ── */2309.peach-password-edit-row {2310  display: flex;2311  align-items: center;2312  gap: 6px;2313}2314.peach-password-edit-row .peach-inline-input {2315  flex: 1;2316  min-width: 0;2317}23182319/* ── Generate toggle link ── */2320.peach-generate-toggle-link {2321  display: inline-flex;2322  align-items: center;2323  gap: 5px;2324  background: none;2325  border: none;2326  padding: 0;2327  cursor: pointer;2328  font-family: "IBM Plex Mono", monospace;2329  font-size: 0.625rem;2330  color: var(--peach-t2);2331  letter-spacing: 0.04em;2332  transition: color 120ms ease;2333  align-self: flex-start;2334}2335.peach-generate-toggle-link:hover {2336  color: var(--peach-accent);2337}23382339/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2340.peach-entry-body {2341  flex: 1;2342  overflow-y: auto;2343  overflow-x: hidden;2344  scrollbar-width: none;2345  -ms-overflow-style: none;2346  overscroll-behavior: contain;2347  display: grid;2348  gap: 10px;2349  align-content: start;2350  padding: 10px 20px 14px;2351  min-width: 0;2352  min-height: 0;2353}2354.peach-entry-body::-webkit-scrollbar { display: none; }23552356/* Type-toggle pills + inline note toolbar */2357.peach-new-type-row {2358  display: flex;2359  align-items: center;2360  gap: 6px;2361  margin-bottom: 2px;2362}2363.peach-new-type-btn {2364  background: transparent;2365  border: 1px solid var(--peach-t3);2366  border-radius: 12px;2367  padding: 3px 10px;2368  font-family: "IBM Plex Mono", monospace;2369  font-size: 0.5625rem;2370  letter-spacing: 0.12em;2371  text-transform: uppercase;2372  color: var(--peach-t2);2373  cursor: pointer;2374  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2375}2376.peach-new-type-btn.is-active {2377  color: var(--peach-t0);2378  border-color: var(--peach-accent);2379  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2380}2381.peach-new-type-btn:not(.is-active):hover {2382  color: var(--peach-t1);2383  border-color: var(--peach-t2);2384}23852386/* Editable title */2387.peach-new-title-wrap { margin: 0 0 2px; }2388.peach-new-title-input {2389  background: transparent;2390  border: none;2391  outline: none;2392  width: 100%;2393  color: var(--peach-t0);2394  font-family: var(--font-display);2395  font-style: italic;2396  font-weight: 400;2397  font-size: 40px;2398  line-height: 0.95;2399  caret-color: var(--peach-accent);2400}2401.peach-new-title-input::placeholder { color: var(--peach-t2); }24022403/* Editable domain field */2404.peach-domain-edit-row {2405  display: flex;2406  align-items: center;2407  gap: 6px;2408}24092410.peach-domain-edit-row .peach-domain-value--edit {2411  flex: 1;2412  width: 0;2413}24142415.peach-domain-url-btn {2416  flex-shrink: 0;2417  background: transparent;2418  border: none;2419  cursor: pointer;2420  color: var(--peach-t3);2421  padding: 2px 3px;2422  display: flex;2423  align-items: center;2424  line-height: 0;2425  border-radius: 3px;2426  transition: color 120ms ease;2427}24282429.peach-domain-url-btn:hover {2430  color: var(--peach-accent);2431}24322433.peach-domain-value--edit {2434  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2435  font-size: 0.625rem;2436  font-style: italic;2437  letter-spacing: 0.12em;2438  color: var(--peach-t1);2439  background: transparent;2440  border: none;2441  border-bottom: 1px solid var(--peach-t3);2442  outline: none;2443  width: 100%;2444  padding: 2px 0;2445  caret-color: var(--peach-accent);2446  transition: border-color 140ms ease, color 140ms ease;2447}2448.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2449.peach-domain-value--edit:focus {2450  border-bottom-color: rgba(240, 232, 216, 0.28);2451  color: var(--peach-t0);2452}24532454/* Editable field values (username, password, totp) */2455.peach-field-value--edit {2456  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2457  font-size: 0.8125rem;2458  color: var(--peach-t0);2459  background: transparent;2460  border: none;2461  border-bottom: 1px solid var(--peach-t3);2462  outline: none;2463  flex: 1;2464  min-width: 0;2465  padding: 3px 0;2466  caret-color: var(--peach-accent);2467  transition: border-color 140ms ease, color 140ms ease;2468}2469.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2470.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2471.peach-field-value--edit:focus {2472  border-bottom-color: rgba(240, 232, 216, 0.28);2473  color: var(--peach-t0);2474}24752476/* "+ add optional field" links */2477.peach-entry-add-links {2478  display: flex;2479  gap: 12px;2480  flex-wrap: wrap;2481  margin-top: -2px;2482}2483.peach-add-field-link {2484  background: transparent;2485  border: none;2486  padding: 0;2487  cursor: pointer;2488  font-family: "IBM Plex Mono", monospace;2489  font-size: 0.5625rem;2490  letter-spacing: 0.1em;2491  text-transform: uppercase;2492  color: var(--peach-t2);2493  transition: color 140ms ease;2494}2495.peach-add-field-link:hover { color: var(--peach-accent); }24962497/* ── New entry form (legacy classes) ────────────────────────────────── */2498.peach-new-body {2499  flex: 1;2500  overflow-y: auto;2501  padding: 10px 20px 14px;2502}2503.peach-new-name-input {2504  background: transparent;2505  border: none;2506  outline: none;2507  width: 100%;2508  color: var(--peach-t0);2509  font-family: var(--font-display);2510  font-style: italic;2511  font-weight: 400;2512  font-size: 40px;2513  line-height: 0.95;2514  caret-color: var(--peach-accent);2515}2516.peach-new-name-input::placeholder { color: var(--peach-t2); }2517.peach-new-field-input {2518  background: transparent;2519  border: none;2520  outline: none;2521  flex: 1;2522  min-width: 0;2523  caret-color: var(--peach-accent);2524}2525.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }25262527/* ── Canary card ── */2528.peach-canary-card {2529  border: 1px solid rgba(217, 160, 48, 0.2);2530  background: rgba(217, 160, 48, 0.03);2531  border-radius: 8px;2532  padding: 12px;2533}25342535.peach-canary-settings-header {2536  display: flex;2537  align-items: center;2538  justify-content: space-between;2539  cursor: pointer;2540  user-select: none;2541}25422543.peach-canary-card .peach-label {2544  color: rgba(217, 160, 48, 0.85);2545}25462547.peach-canary-card .peach-new-field-input {2548  border-color: rgba(217, 160, 48, 0.25);2549}25502551.peach-canary-card .peach-new-field-input:focus {2552  border-color: rgba(217, 160, 48, 0.5);2553}25542555.peach-canary-body {2556  margin-top: 12px;2557  display: flex;2558  flex-direction: column;2559  gap: 10px;2560}25612562.peach-canary-explainer {2563  display: flex;2564  gap: 10px;2565  padding: 10px 12px;2566  border-radius: 10px;2567  background: rgba(217, 160, 48, 0.06);2568  border: 1px solid rgba(217, 160, 48, 0.22);2569  margin-bottom: 4px;2570}25712572.peach-canary-explainer-icon {2573  font-size: 1rem;2574  flex-shrink: 0;2575  line-height: 1.2;2576}25772578.peach-canary-explainer-title {2579  font-family: var(--font-ui);2580  font-size: 0.6875rem;2581  font-weight: 500;2582  color: rgba(217, 160, 48, 0.9);2583  margin: 0 0 3px;2584}25852586.peach-canary-explainer-copy {2587  font-family: var(--font-ui);2588  font-size: 0.625rem;2589  color: var(--peach-t2);2590  line-height: 1.55;2591  margin: 0;2592}25932594.peach-canary-hint {2595  font-size: 0.625rem;2596  color: var(--peach-t2);2597  font-family: Inter, system-ui, sans-serif;2598  line-height: 1.5;2599  margin-top: 4px;2600}26012602.peach-canary-actions-row {2603  display: flex;2604  align-items: center;2605  gap: 8px;2606}26072608.peach-canary-test-btn {2609  border-color: rgba(217, 160, 48, 0.3);2610  color: rgba(217, 160, 48, 0.85);2611}26122613.peach-canary-test-result {2614  font-size: 0.625rem;2615  font-family: Inter, system-ui, sans-serif;2616}26172618.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2619.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }26202621.peach-canary-badge {2622  display: flex;2623  position: relative;2624  z-index: 1;2625  align-items: center;2626  gap: 5px;2627  padding: 4px 10px;2628  background: rgba(217, 160, 48, 0.12);2629  border: 1px solid rgba(217, 160, 48, 0.35);2630  border-radius: 6px;2631  margin-bottom: 6px;2632  width: fit-content;2633}26342635.peach-canary-badge-label {2636  font-size: 0.625rem;2637  letter-spacing: 0.06em;2638  color: rgba(217, 160, 48, 0.9);2639  font-family: var(--font-ui);2640  text-transform: uppercase;2641}26422643.peach-canary-badge-icon {2644  font-size: 0.6875rem;2645}26462647.peach-canary-suppress-row {2648  display: flex;2649  align-items: center;2650  gap: 8px;2651  padding: 6px 10px;2652  background: rgba(217, 160, 48, 0.08);2653  border-radius: 6px;2654  margin-bottom: 8px;2655}26562657.peach-canary-suppress-label {2658  font-size: 0.6875rem;2659  color: rgba(217, 160, 48, 0.85);2660  cursor: pointer;2661  font-family: var(--font-ui);2662  letter-spacing: 0.04em;2663}26642665.peach-regen-panel {2666  position: relative;2667  z-index: 1;2668  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2669  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2670  border-radius: 8px;2671  padding: 12px;2672  margin-bottom: 8px;2673}26742675.peach-regen-panel-header {2676  display: flex;2677  align-items: center;2678  justify-content: space-between;2679  margin-bottom: 10px;2680}26812682.peach-regen-panel-title {2683  font-size: 0.6875rem;2684  font-weight: 600;2685  letter-spacing: 0.06em;2686  text-transform: uppercase;2687  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2688}26892690.peach-regen-output {2691  background: rgba(0, 0, 0, 0.2);2692  border-radius: 6px;2693  padding: 10px;2694  margin-bottom: 10px;2695  font-family: var(--font-mono);2696  font-size: 0.8125rem;2697  word-break: break-all;2698  color: var(--peach-t1);2699}27002701.peach-regen-actions {2702  display: flex;2703  gap: 6px;2704}27052706.peach-regen-actions--spaced {2707  margin-bottom: 8px;2708}27092710.peach-regen-action-grow {2711  flex: 1;2712}27132714.peach-regen-copy-btn {2715  padding: 0 8px;2716}27172718.peach-regen-success {2719  position: relative;2720  z-index: 1;2721  background: rgba(40, 180, 80, 0.1);2722  border: 1px solid rgba(40, 180, 80, 0.3);2723  border-radius: 8px;2724  padding: 10px 12px;2725  margin-bottom: 8px;2726  display: flex;2727  align-items: center;2728  gap: 8px;2729  font-size: 0.6875rem;2730  color: rgba(40, 180, 80, 0.9);2731}27322733/* ── Note editor overlay ── */2734.peach-note-editor {2735  position: absolute;2736  inset: 0;2737  z-index: 200;2738  display: flex;2739  flex-direction: column;2740  background:2741    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2742    var(--peach-bg);2743  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2744}27452746.peach-note-editor-header {2747  display: flex;2748  align-items: center;2749  gap: 10px;2750  padding: 14px 16px 10px;2751  border-bottom: 1px solid var(--peach-t3);2752  flex-shrink: 0;2753}27542755.peach-note-editor-back {2756  background: transparent;2757  border: none;2758  cursor: pointer;2759  color: var(--peach-t2);2760  padding: 4px 6px;2761  border-radius: 6px;2762  display: flex;2763  align-items: center;2764  transition: color 120ms ease, background 120ms ease;2765  flex-shrink: 0;2766}2767.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }27682769.peach-note-editor-label {2770  flex: 1;2771  font-family: var(--font-display);2772  font-style: italic;2773  font-size: 0.9375rem;2774  color: var(--peach-t1);2775  letter-spacing: 0.02em;2776}27772778.peach-note-editor-save-btn {2779  background: transparent;2780  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2781  border-radius: 8px;2782  color: var(--peach-accent);2783  font-family: "IBM Plex Mono", monospace;2784  font-size: 0.625rem;2785  letter-spacing: 0.06em;2786  text-transform: uppercase;2787  padding: 3px 10px;2788  cursor: pointer;2789  transition: background 120ms ease, border-color 120ms ease;2790}2791.peach-note-editor-save-btn:hover:not(:disabled) {2792  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2793  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2794}2795.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }27962797.peach-note-toolbar {2798  display: flex;2799  align-items: center;2800  gap: 3px;2801  padding: 6px 14px 5px;2802  border-bottom: 1px solid var(--peach-t3);2803  flex-shrink: 0;2804}28052806.peach-note-tool-btn {2807  background: transparent;2808  border: 1px solid transparent;2809  border-radius: 5px;2810  color: var(--peach-t2);2811  font-family: "IBM Plex Mono", monospace;2812  font-size: 0.625rem;2813  letter-spacing: 0.04em;2814  padding: 2px 8px;2815  cursor: pointer;2816  line-height: 1.6;2817  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2818}2819.peach-note-tool-btn:hover {2820  background: var(--peach-t4);2821  color: var(--peach-t0);2822  border-color: var(--peach-t3);2823}28242825.peach-note-tool-icon {2826  padding: 3px 7px;2827  display: inline-flex;2828  align-items: center;2829  justify-content: center;2830}28312832.peach-note-tool-divider {2833  width: 1px;2834  height: 14px;2835  background: var(--peach-t3);2836  margin: 0 4px;2837  flex-shrink: 0;2838}28392840.peach-note-editor-body {2841  flex: 1;2842  overflow-y: auto;2843  padding: 16px 20px 20px;2844  outline: none;2845  font-family: var(--font-display);2846  font-size: 1rem;2847  line-height: 1.75;2848  color: var(--peach-t0);2849  scrollbar-width: none;2850  word-break: break-word;2851}2852.peach-note-editor-body:empty::before {2853  content: "write your note…";2854  color: var(--peach-t3);2855  font-style: italic;2856  pointer-events: none;2857}28582859/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2860.peach-note-editor-inline {2861  display: flex;2862  flex-direction: column;2863  flex: 1;2864  min-height: 0;2865}2866.peach-note-editor-body--inline {2867  flex: 1;2868  min-height: 0;2869  font-size: 0.9375rem;2870  padding: 10px 20px 14px;2871}28722873/* Full-width toolbar row inside the body (Add.tsx note type).2874   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2875.peach-note-toolbar-body {2876  display: flex;2877  align-items: center;2878  gap: 3px;2879  padding: 5px 20px 4px;2880  margin: 2px -20px 0;2881  border-bottom: 1px solid var(--peach-t3);2882  flex-shrink: 0;2883}28842885/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2886   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2887   and .peach-note-tool-divider button-level styles. */2888.peach-note-toolbar-inline {2889  display: flex;2890  align-items: center;2891  gap: 3px;2892  margin-left: auto;2893  padding-left: 10px;2894  border-left: 1px solid var(--peach-t3);2895  min-height: 22px;2896}28972898/* Entry.tsx toolbar row (no tabs, toolbar only) */2899.peach-entry-note-toolbar-row {2900  display: flex;2901  align-items: center;2902  margin: 4px 0 6px;2903  position: relative;2904  z-index: 1;2905}2906.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2907  border-left: none;2908  padding-left: 0;2909  margin-left: 0;2910}29112912/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2913.peach-note-body {2914  display: flex;2915  flex-direction: column;2916  flex: 1;2917  min-height: 0;2918  margin: 4px 0 0;2919}2920.peach-entry-body--new .peach-note-body {2921  margin: 8px -20px 0;2922}29232924/* Add.tsx body is a grid by default; swap to a flex column when a note is2925   active so the note body can stretch and pin the tags row to the bottom. */2926.peach-entry-body--new:has(.peach-note-body) {2927  display: flex;2928  flex-direction: column;2929}29302931/* Rich content element styles (editor + display) */2932.peach-note-editor-body h2,2933.peach-note-content h2 {2934  font-family: var(--font-display);2935  font-size: 20px;2936  font-weight: 600;2937  font-style: italic;2938  color: var(--peach-t0);2939  margin: 6px 0 2px;2940  line-height: 1.3;2941}2942.peach-note-editor-body ul,2943.peach-note-content ul {2944  padding-left: 18px;2945  margin: 3px 0;2946  list-style: disc;2947}2948.peach-note-editor-body ol,2949.peach-note-content ol {2950  padding-left: 18px;2951  margin: 3px 0;2952  list-style: decimal;2953}2954.peach-note-editor-body li,2955.peach-note-content li { margin: 2px 0; }2956.peach-note-editor-body hr,2957.peach-note-content hr {2958  border: none;2959  border-top: 1px solid var(--peach-t3);2960  margin: 10px 0;2961}29622963/* font size elements from execCommand */2964.peach-note-editor-body font[size="1"],2965.peach-note-content font[size="1"] { font-size: 0.6875rem; line-height: 1.6; }2966.peach-note-editor-body font[size="2"],2967.peach-note-content font[size="2"] { font-size: 0.8125rem; }2968.peach-note-editor-body font[size="3"],2969.peach-note-content font[size="3"] { font-size: 1rem; }2970.peach-note-editor-body font[size="4"],2971.peach-note-content font[size="4"] { font-size: 20px; }2972.peach-note-editor-body font[size="5"],2973.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }29742975/* bold / italic inside the editor and note display */2976.peach-note-editor-body b, .peach-note-editor-body strong,2977.peach-note-content b, .peach-note-content strong { font-weight: 700; }2978.peach-note-editor-body em, .peach-note-editor-body i,2979.peach-note-content em, .peach-note-content i { font-style: italic; }29802981/* note display — rendered HTML, no pre-wrap */2982.peach-note-content {2983  overflow: auto;2984  max-height: 340px;2985  word-break: break-word;2986}29872988/* ── Note textarea ── */2989.peach-note-textarea {2990  width: 100%;2991  min-height: 180px;2992  max-height: 280px;2993  resize: vertical;2994  background: var(--peach-t4);2995  border: 1px solid var(--peach-t3);2996  border-radius: 8px;2997  padding: 10px 12px;2998  font-family: "IBM Plex Mono", monospace;2999  font-size: 0.75rem;3000  line-height: 1.7;3001  color: var(--peach-t1);3002  outline: none;3003  transition: border-color 150ms ease;3004}30053006.peach-note-textarea:focus {3007  border-color: var(--peach-t2);3008}30093010.peach-note-char-count {3011  font-family: "IBM Plex Mono", monospace;3012  font-size: 0.5625rem;3013  color: var(--peach-t3);3014  text-align: right;3015  margin-top: 4px;3016  letter-spacing: 0.1em;3017}30183019/* ── Field input baseline ── */3020.peach-new-field-input {3021  width: 100%;3022  background: transparent;3023  border: none;3024  border-bottom: 1px solid var(--peach-t3);3025  padding: 4px 0;3026  color: var(--peach-t1);3027  font-family: "IBM Plex Mono", monospace;3028  font-size: 0.8125rem;3029  outline: none;3030  transition: border-color 150ms ease;3031}30323033.peach-new-field-input:focus {3034  border-bottom-color: var(--peach-t0);3035  color: var(--peach-t0);3036}30373038.peach-new-name-input {3039  width: 100%;3040  background: transparent;3041  border: none;3042  border-bottom: 1px solid var(--peach-t3);3043  padding: 6px 0;3044  font-family: var(--font-display);3045  font-style: italic;3046  font-size: 28px;3047  color: var(--peach-t0);3048  outline: none;3049  transition: border-color 150ms ease;3050}30513052.peach-new-name-input:focus {3053  border-bottom-color: var(--peach-t1);3054}30553056.peach-new-name-input::placeholder {3057  color: var(--peach-t2);3058  font-style: italic;3059}30603061.peach-new-field-input::placeholder {3062  color: var(--peach-t3);3063}30643065/* ── Demo entrance animation ── */3066#hd-shell {3067  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;3068}3069@keyframes hd-shell-enter {3070  from { opacity: 0; transform: scale(0.96) translateY(16px); }3071  to   { opacity: 1; transform: scale(1) translateY(0); }3072}30733074/* ── Keyframes ── */3075@keyframes peach-char-enter {3076  from { opacity: 0; transform: translateY(0.22em); }3077  to   { opacity: 1; transform: translateY(0); }3078}3079@keyframes peach-content-enter {3080  from { opacity: 0.96; transform: translateY(4px); }3081  to   { opacity: 1; transform: translateY(0); }3082}3083@keyframes peach-content-exit {3084  from { opacity: 1; transform: translateY(0); }3085  to   { opacity: 0.92; transform: translateY(-3px); }3086}3087@keyframes peach-screen-enter {3088  from { opacity: 0; transform: translateY(14px); }3089  to   { opacity: 1; transform: translateY(0); }3090}3091@keyframes peach-shell-fade-in {3092  from { opacity: 0; }3093  to   { opacity: 1; }3094}3095@keyframes peach-veil-in {3096  from { opacity: 0; }3097  to   { opacity: 1; }3098}3099@keyframes peach-lock-settle {3100  0%   { transform: scale(0.9); }3101  65%  { transform: scale(1.08); }3102  100% { transform: scale(1); }3103}3104@keyframes peach-copy-confirm {3105  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3106  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); }3107}3108@keyframes peach-copy-retreat {3109  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); }3110  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3111}3112@keyframes peach-copy-flood {3113  from { opacity: 0; transform: scaleX(0.15); }3114  to   { opacity: 1; transform: scaleX(1); }3115}3116@keyframes peach-copy-icon-settle {3117  from  { transform: scale(0.84); }3118  70%   { transform: scale(1.08); }3119  to    { transform: scale(1); }3120}3121@keyframes peach-copy-sheen-retreat {3122  from { opacity: 1; transform: scaleX(1); }3123  to   { opacity: 0; transform: scaleX(0.15); }3124}3125@keyframes peach-copy-drain {3126  from { width: 100%; }3127  to   { width: 0; }3128}3129@keyframes peach-shake {3130  0%, 100% { transform: translateX(0); }3131  20%      { transform: translateX(-6px); }3132  40%      { transform: translateX(6px); }3133  60%      { transform: translateX(-4px); }3134  80%      { transform: translateX(4px); }3135}31363137@keyframes pip-pulse {3138  0% { transform: scale(1); }3139  40% { transform: scale(2.2); }3140  100% { transform: scale(1); }3141}314231433144/* ── Password generator ── */3145.peach-pwgen-body {3146  flex: 1; overflow-y: auto;3147  display: flex; flex-direction: column;3148}3149.peach-policy-badge {3150  display: flex; align-items: center;3151  padding: 6px 20px 0;3152  font-size: 0.625rem; font-family: Inter, sans-serif;3153  color: var(--peach-t2); letter-spacing: 0.04em;3154}3155.peach-pwgen-display {3156  padding: 14px 20px 12px;3157  border-bottom: 1px solid var(--peach-t3);3158  display: flex; align-items: flex-start; gap: 10px;3159}3160.peach-pwgen-display-row {3161  display: flex;3162  align-items: flex-start;3163  gap: 8px;3164  padding-bottom: 8px;3165  border-bottom: 1px solid var(--peach-t3);3166}3167.peach-pwgen-output {3168  flex: 1; min-width: 0; margin: 0;3169  font-family: "IBM Plex Mono", monospace;3170  font-size: 0.8125rem; color: var(--peach-t0);3171  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3172  white-space: normal;3173  padding: 10px 12px;3174  background: var(--peach-t4);3175  border-radius: 6px;3176  min-height: 36px;3177}3178.peach-pwgen-output-display {3179  flex: 1;3180  min-width: 0;3181  margin: 0;3182  font-family: var(--font-display);3183  font-style: italic;3184  font-weight: 300;3185  font-size: 32px;3186  line-height: 1.05;3187  color: var(--peach-t0);3188  word-break: break-all;3189  overflow-wrap: break-word;3190  white-space: normal;3191  letter-spacing: 0.02em;3192}3193.peach-pwgen-display-actions {3194  display: flex;3195  flex-direction: column;3196  gap: 4px;3197  flex-shrink: 0;3198  margin-top: 2px;3199}3200.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3201.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3202.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3203.peach-pwgen-len-num {3204  font-family: "IBM Plex Mono", monospace;3205  font-size: 0.75rem; color: var(--peach-accent);3206}3207.peach-pwgen-len-num--edit {3208  cursor: text;3209  border-bottom: 1px dotted color-mix(in srgb, var(--peach-accent) 50%, transparent);3210}3211.peach-pwgen-len-input {3212  font-family: "IBM Plex Mono", monospace;3213  font-size: 0.75rem;3214  color: var(--peach-accent);3215  background: transparent;3216  border: none;3217  border-bottom: 1px solid var(--peach-accent);3218  outline: none;3219  width: 32px;3220  text-align: right;3221  padding: 0;3222}3223.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3224.peach-pwgen-toggles { display: flex; flex-direction: column; }3225.peach-pwgen-charset-pills {3226  display: flex;3227  gap: 6px;3228  flex-wrap: wrap;3229}3230.peach-pwgen-pill {3231  padding: 4px 11px;3232  border-radius: 999px;3233  border: 1px solid var(--peach-t3);3234  background: transparent;3235  color: var(--peach-t2);3236  font-family: "IBM Plex Mono", monospace;3237  font-size: 0.5625rem;3238  letter-spacing: 0.08em;3239  cursor: pointer;3240  transition: all 150ms ease;3241}3242.peach-pwgen-pill.is-on {3243  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3244  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3245  color: var(--peach-accent);3246}3247.peach-pwgen-pill:not(.is-on):hover {3248  color: var(--peach-t1);3249  border-color: var(--peach-t2);3250}3251.peach-pwgen-use-btn {3252  width: 100%;3253  min-height: 34px;3254  border-radius: 8px;3255  margin-top: 2px;3256}3257.peach-generator-constraint-note {3258  font-family: 'IBM Plex Mono', monospace;3259  font-size: 10px;3260  color: var(--peach-t3);3261  letter-spacing: 0.04em;3262  margin: 0;3263  transition: opacity 200ms ease;3264}3265.peach-pwgen-toggle-row {3266  display: flex; align-items: center; justify-content: space-between;3267  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3268}3269.peach-pwgen-toggle-row:last-child { border-bottom: none; }3270.peach-pwgen-toggle-label { font-size: 0.8125rem; color: var(--peach-t1); }32713272.peach-screen-prelock {3273  z-index: 10;3274}32753276.prelock-form {3277  display: grid;3278  gap: 12px;3279}32803281/* Peach popup should not expose native scrollbars on internal panels. */3282.peach-settings-body,3283.peach-new-body,3284.peach-pwgen-body,3285.lock-screen,3286.peach-import-preview {3287  scrollbar-width: none;3288  -ms-overflow-style: none;3289  overscroll-behavior: contain;3290}3291.peach-settings-body::-webkit-scrollbar,3292.peach-new-body::-webkit-scrollbar,3293.peach-pwgen-body::-webkit-scrollbar,3294.lock-screen::-webkit-scrollbar,3295.peach-import-preview::-webkit-scrollbar {3296  width: 0;3297  height: 0;3298  display: none;3299}33003301.lock-screen {3302  height: 100%;3303  min-height: 100%;3304  overflow-y: auto;3305  padding: 18px 18px 16px;3306  gap: 14px;3307  grid-template-rows: auto auto auto 1fr auto;3308  align-content: stretch;3309  position: relative;3310  isolation: isolate;3311}3312.peach-screen.lock-screen--vault-stage {3313  display: flex;3314  flex-direction: column;3315  justify-content: flex-start;3316  gap: 18px;3317  padding: 20px 18px 18px;3318  overflow: hidden;3319}3320.peach-screen.lock-screen--vault-stage .peach-lock-panel {3321  margin-top: 0;3322}3323.lock-screen--onboarding {3324  display: flex;3325  flex-direction: column;3326  gap: 12px;3327  justify-content: flex-start;3328}33293330.lock-screen::before {3331  content: "";3332  position: absolute;3333  inset: 12px 18px auto auto;3334  width: 160px;3335  height: 160px;3336  border-radius: 999px;3337  background:3338    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%);3339  filter: blur(6px);3340  opacity: 0.7;3341  pointer-events: none;3342  z-index: 0;3343}33443345.peach-lock-rune-string {3346  flex: 1;3347  display: flex;3348  align-items: center;3349  justify-content: center;3350  gap: 6px;3351  font-family: PeachScript, monospace;3352  font-size: 0.8125rem;3353  letter-spacing: 0.05em;3354  pointer-events: none;3355  user-select: none;3356  position: relative;3357  z-index: 1;3358}33593360.peach-lock-rune-string span {3361  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3362  text-shadow:3363    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3364    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3365  transition: color 0.9s ease, text-shadow 0.9s ease;3366}33673368.peach-lock-rune-string span.is-glowing {3369  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3370  text-shadow:3371    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3372    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3373}33743375.lock-screen-header {3376  display: flex;3377  align-items: center;3378  justify-content: space-between;3379  position: relative;3380  z-index: 1;3381}33823383.lock-password-input.shake {3384  animation: peach-shake 300ms ease-in-out;3385}33863387.peach-hint-error {3388  color: rgba(220, 80, 60, 0.92);3389}33903391.peach-onboarding-headline {3392  margin: 0;3393  font-family: var(--font-display);3394  font-size: 35px;3395  line-height: 0.88;3396  font-style: italic;3397  font-weight: 400;3398  max-width: 252px;3399}34003401.peach-lock-copy {3402  display: grid;3403  gap: 8px;3404  position: relative;3405  z-index: 1;3406}34073408.peach-lock-copy--onboarding {3409  gap: 10px;3410}34113412.peach-lock-hero {3413  position: relative;3414  z-index: 1;3415  display: grid;3416  gap: 8px;3417  min-height: 0;3418  padding: 4px 2px 0;3419  border: none;3420  border-radius: 0;3421  background: transparent;3422  box-shadow: none;3423}3424.peach-lock-hero-art {3425  position: absolute;3426  right: -8px;3427  top: -6px;3428  width: 120px;3429  height: 120px;3430  display: flex;3431  align-items: center;3432  justify-content: center;3433  pointer-events: none;3434  opacity: 0.12;3435  filter: saturate(0.9);3436}3437.peach-lock-hero-mark {3438  width: 100%;3439  height: 100%;3440}3441/* Peach body stays brand-peach across every accent — we don't want a3442   green or blue peach when sage/sky is selected. Leaf + vein keep the3443   sage tint because a real peach has a sage leaf. In the new brand-kit3444   mark the leaf is path 1 and the vein stroke is path 2; the body and3445   back-lobe (paths 3 + 4) must stay untouched. */3446.peach-lock-hero-mark path:nth-child(1) {3447  fill: rgba(123, 144, 96, 0.88);3448}3449.peach-lock-hero-mark path:nth-child(2) {3450  stroke: rgba(94, 122, 66, 0.95);3451}3452.peach-lock-hero > *:not(.peach-lock-hero-art) {3453  position: relative;3454  z-index: 1;3455}34563457.peach-lock-eyebrow {3458  display: inline-flex;3459  align-items: center;3460  width: fit-content;3461  padding: 4px 9px;3462  border-radius: 999px;3463  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3464  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3465  color: var(--peach-t0);3466  font-family: "IBM Plex Mono", monospace;3467  font-size: 0.5rem;3468  letter-spacing: 0.18em;3469  text-transform: uppercase;3470}34713472.peach-lock-label-row {3473  display: flex;3474  align-items: center;3475  justify-content: space-between;3476  margin-bottom: 0;3477}34783479.peach-lock-reveal-btn {3480  display: inline-flex;3481  align-items: center;3482  gap: 4px;3483  background: none;3484  border: none;3485  cursor: pointer;3486  font-family: "IBM Plex Mono", monospace;3487  font-size: 0.5625rem;3488  letter-spacing: 0.06em;3489  color: var(--peach-t2);3490  padding: 2px 0;3491  transition: color 150ms ease;3492}34933494.peach-lock-reveal-btn:hover {3495  color: var(--peach-t1);3496}34973498.peach-lock-warning {3499  color: rgba(220, 80, 60, 0.85) !important;3500  line-height: 1.5;3501}35023503.peach-onboarding-cards {3504  display: grid;3505  gap: 8px;3506  position: relative;3507  z-index: 1;3508}35093510.peach-lock-panel {3511  position: relative;3512  z-index: 1;3513  display: grid;3514  gap: 9px;3515  padding: 14px 16px 15px;3516  border-radius: 18px;3517  border: 1px solid var(--peach-t3);3518  background:3519    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3520  box-shadow:3521    inset 0 1px 0 rgba(240, 232, 216, 0.04),3522    0 12px 28px rgba(0, 0, 0, 0.12);3523}35243525/* Glass surface — lock panel and settings groups */3526.peach-glass {3527  background: rgba(26, 20, 16, 0.65);3528  border: 1px solid rgba(255, 255, 255, 0.08);3529  border-radius: 12px;3530  backdrop-filter: blur(12px) saturate(1.4);3531  -webkit-backdrop-filter: blur(12px) saturate(1.4);3532}35333534@supports not (backdrop-filter: blur(1px)) {3535  .peach-glass {3536    background: rgba(26, 20, 16, 0.92);3537    border: 1px solid rgba(255, 255, 255, 0.10);3538    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3539  }3540}35413542.light .peach-glass,3543[data-theme="light"] .peach-glass {3544  background: rgba(240, 233, 223, 0.72);3545  border: 1px solid rgba(26, 18, 8, 0.08);3546  backdrop-filter: blur(12px) saturate(1.2);3547  -webkit-backdrop-filter: blur(12px) saturate(1.2);3548}35493550@supports not (backdrop-filter: blur(1px)) {3551  .light .peach-glass,3552  [data-theme="light"] .peach-glass {3553    background: rgba(240, 233, 223, 0.97);3554    border: 1px solid rgba(26, 18, 8, 0.10);3555  }3556}35573558/* Lock panel keeps its own border-radius over the generic glass token */3559.peach-lock-panel.peach-glass {3560  border-radius: 18px;3561  background: rgba(26, 20, 16, 0.65);3562  border: 1px solid rgba(255, 255, 255, 0.08);3563  box-shadow:3564    inset 0 1px 0 rgba(255, 255, 255, 0.05),3565    0 12px 28px rgba(0, 0, 0, 0.3);3566}35673568.light .peach-lock-panel.peach-glass,3569[data-theme="light"] .peach-lock-panel.peach-glass {3570  background: rgba(240, 233, 223, 0.82);3571  border: 1px solid rgba(26, 18, 8, 0.08);3572  box-shadow:3573    inset 0 1px 0 rgba(255, 255, 255, 0.4),3574    0 8px 24px rgba(80, 56, 32, 0.15);3575}35763577@supports not (backdrop-filter: blur(1px)) {3578  .peach-lock-panel.peach-glass {3579    background: rgba(26, 20, 16, 0.92);3580    box-shadow:3581      inset 0 1px 0 rgba(255, 255, 255, 0.05),3582      0 12px 28px rgba(0, 0, 0, 0.4);3583  }3584  .light .peach-lock-panel.peach-glass,3585  [data-theme="light"] .peach-lock-panel.peach-glass {3586    background: rgba(240, 233, 223, 0.98);3587  }3588}35893590.peach-lock-panel--secondary {3591  gap: 12px;3592}35933594.peach-lock-panel-header {3595  display: flex;3596  align-items: baseline;3597  justify-content: space-between;3598  gap: 12px;3599}36003601.peach-lock-option-grid {3602  display: grid;3603  gap: 10px;3604}36053606.peach-lock-option {3607  width: 100%;3608  display: grid;3609  gap: 6px;3610  padding: 14px 15px;3611  border-radius: 16px;3612  border: 1px solid rgba(240, 232, 216, 0.08);3613  background: rgba(240, 232, 216, 0.02);3614  color: var(--peach-t0);3615  text-align: left;3616  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3617}36183619.peach-lock-option:hover {3620  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3621  background: rgba(240, 232, 216, 0.04);3622  transform: translateY(-1px);3623}36243625.peach-lock-option-title {3626  font-size: 0.75rem;3627  color: var(--peach-t0);3628}36293630.peach-lock-option-copy {3631  font-size: 0.6875rem;3632  line-height: 1.55;3633  color: var(--peach-t1);3634}36353636.peach-onboarding-stack {3637  margin-top: 2px;3638}3639.peach-lock-panel-footer {3640  display: grid;3641  gap: 6px;3642  margin-top: 2px;3643  padding-top: 10px;3644  border-top: 1px solid rgba(240, 232, 216, 0.06);3645}36463647/* ── Restore tab view ─────────────────────────────────────────────────────3648   Tab-based restore screen replacing the old three-card picker. */36493650.peach-restore-tabview {3651  overflow: hidden;3652}36533654.peach-restore-tabcard {3655  flex: 1;3656  display: flex;3657  flex-direction: column;3658  gap: 0;3659  padding: 0;3660  overflow: hidden;3661  cursor: default;3662  user-select: none;3663  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;3664}36653666/* ── Tab selector ─────────────────────────────────────────────────────── */36673668.peach-restore-tabs {3669  display: flex;3670  justify-content: space-around;3671  padding: 14px 10px 10px;3672  border-bottom: 1px solid var(--peach-t3);3673  gap: 2px;3674  overflow: hidden;3675  scrollbar-width: none;3676}3677.peach-restore-tabs::-webkit-scrollbar { display: none; }36783679.peach-restore-tab {3680  background: none;3681  border: none;3682  cursor: pointer;3683  padding: 3px 2px;3684  font-family: 'Cormorant Garamond', Georgia, serif;3685  font-style: italic;3686  font-size: 11px;3687  color: var(--peach-t2);3688  transition: color 150ms ease, text-shadow 150ms ease;3689  flex: 1;3690  min-width: 0;3691  text-align: center;3692  white-space: nowrap;3693  overflow: hidden;3694  text-overflow: ellipsis;3695}3696.peach-restore-tab:hover {3697  color: var(--peach-accent);3698  text-shadow:3699    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3700    0 0 18px color-mix(in srgb, var(--peach-accent) 25%, transparent);3701}3702.peach-restore-tab.is-active {3703  color: var(--peach-accent);3704  text-shadow:3705    0 0 10px color-mix(in srgb, var(--peach-accent) 60%, transparent),3706    0 0 22px color-mix(in srgb, var(--peach-accent) 30%, transparent);3707}37083709/* ── Content area ─────────────────────────────────────────────────────── */37103711.peach-restore-content {3712  padding: 16px 16px 14px;3713  display: flex;3714  flex-direction: column;3715  gap: 8px;3716  overflow: hidden;3717  scrollbar-width: none;3718  flex: 1;3719}3720.peach-restore-content::-webkit-scrollbar { display: none; }3721.peach-restore-content > * {3722  overflow: hidden;3723  scrollbar-width: none;3724}3725.peach-restore-content > *::-webkit-scrollbar { display: none; }37263727/* ── Shared tab inner layout ──────────────────────────────────────────── */37283729.peach-rt-symbols,3730.peach-rt-csv,3731.peach-rt-phone {3732  display: flex;3733  flex-direction: column;3734  gap: 8px;3735  overflow: hidden;3736}37373738.peach-rt-submit {3739  width: 100%;3740}37413742.peach-rt-error {3743  margin: 0;3744  font-size: 0.6875rem;3745  color: var(--peach-breach);3746  line-height: 1.4;3747}37483749/* ── PeachScript tab ──────────────────────────────────────────────────── */37503751.peach-restore-symbols-textarea {3752  font-family: 'PeachScript', monospace;3753  font-size: 13px;3754  line-height: 1.9;3755  letter-spacing: 0.1em;3756  word-break: break-all;3757  resize: none;3758  width: 100%;3759  min-height: 56px;3760  max-height: 72px;3761  overflow: hidden;3762  scrollbar-width: none;3763  -ms-overflow-style: none;3764  box-sizing: border-box;3765  padding: 6px 8px;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}3771.peach-restore-symbols-textarea::-webkit-scrollbar { display: none; }3772.peach-restore-symbols-textarea:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }37733774.peach-restore-symbols-pass {3775  width: 100%;3776  box-sizing: border-box;3777  padding: 7px 10px;3778  border-radius: 8px;3779  border: 1px solid var(--peach-t3);3780  background: rgba(240, 232, 216, 0.03);3781  color: var(--peach-t0);3782  font-size: 0.8125rem;3783}3784.peach-restore-symbols-pass::placeholder { color: var(--peach-t2); }3785.peach-restore-symbols-pass:focus { outline: none; border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent); }37863787.peach-rt-divider {3788  text-align: center;3789  font-size: 0.6875rem;3790  color: var(--peach-t2);3791  font-style: italic;3792}37933794.peach-rt-file-label {3795  width: 100%;3796  justify-content: center;3797}37983799.peach-rt-anim-canvas {3800  width: 100%;3801  height: 180px;3802  border-radius: 10px;3803  overflow: hidden;3804  display: block;3805}38063807/* ── CSV tab ──────────────────────────────────────────────────────────── */38083809.peach-rt-csv-sources {3810  margin: 0;3811  font-size: 0.6875rem;3812  color: var(--peach-t2);3813  line-height: 1.5;3814  text-align: center;3815}38163817.peach-rt-csv-warning {3818  margin: 0;3819  font-family: "IBM Plex Mono", monospace;3820  font-size: 0.5625rem;3821  letter-spacing: 0.12em;3822  color: var(--peach-breach);3823  text-align: center;3824}38253826/* ── From Phone tab ───────────────────────────────────────────────────── */38273828.peach-rt-phone-code {3829  margin: 0;3830  text-align: center;3831  font-family: "IBM Plex Mono", monospace;3832  font-size: 22px;3833  letter-spacing: 0.18em;3834  color: var(--peach-t0);3835}38363837.peach-rt-phone-qr {3838  display: block;3839  width: 96px;3840  height: 96px;3841  margin: 0 auto;3842  border-radius: 6px;3843  image-rendering: pixelated;3844  overflow: hidden;3845}38463847.peach-rt-phone-hint {3848  margin: 0;3849  font-size: 0.6875rem;3850  color: var(--peach-t2);3851  line-height: 1.55;3852  text-align: center;3853}38543855/* ── Intro popup ──────────────────────────────────────────────────────── */38563857.peach-restore-intro-overlay {3858  position: absolute;3859  inset: 0;3860  z-index: 100;3861  display: flex;3862  align-items: center;3863  justify-content: center;3864  padding: 20px;3865  background: rgba(12, 10, 6, 0.7);3866  backdrop-filter: blur(4px);3867  animation: peach-card-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3868}38693870.peach-restore-intro-card {3871  width: 100%;3872  display: flex;3873  flex-direction: column;3874  gap: 12px;3875  padding: 22px 20px 20px;3876  border-radius: 16px;3877  border: 1px solid var(--peach-t3);3878  background: linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));3879  backdrop-filter: blur(4px);3880  -webkit-backdrop-filter: blur(4px);3881  box-shadow: inset 0 1px 0 rgba(240, 232, 216, 0.06), 0 16px 36px rgba(0, 0, 0, 0.3);3882}38833884.peach-restore-intro-headline {3885  margin: 0;3886  font-family: var(--font-display);3887  font-style: italic;3888  font-size: 20px;3889  font-weight: 400;3890  color: var(--peach-t0);3891}38923893.peach-restore-intro-body {3894  display: flex;3895  flex-direction: column;3896  gap: 8px;3897}3898.peach-restore-intro-body p {3899  margin: 0;3900  font-size: 0.75rem;3901  color: var(--peach-t1);3902  line-height: 1.5;3903}39043905.peach-restore-intro-btn {3906  width: 100%;3907  margin-top: 4px;3908}39093910/* Snapshot restore panel */3911.peach-snapshot-panel {3912  gap: 10px;3913  overflow-y: auto;3914  max-height: 340px;3915}3916.peach-snapshot-list {3917  display: flex;3918  flex-direction: column;3919  gap: 4px;3920}3921.peach-snapshot-row {3922  display: flex;3923  align-items: center;3924  justify-content: space-between;3925  width: 100%;3926  padding: 8px 10px;3927  border-radius: 8px;3928  border: 1px solid rgba(240, 232, 216, 0.07);3929  background: transparent;3930  cursor: pointer;3931  transition: border-color 120ms, background 120ms;3932  text-align: left;3933  gap: 8px;3934}3935.peach-snapshot-row:hover {3936  border-color: rgba(240, 232, 216, 0.14);3937  background: rgba(240, 232, 216, 0.03);3938}3939.peach-snapshot-row.is-selected {3940  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3941  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3942}3943.peach-snapshot-time {3944  font-size: 11.5px;3945  color: var(--peach-t0);3946  flex: 1;3947}3948.peach-snapshot-count {3949  font-family: "IBM Plex Mono", monospace;3950  font-size: 0.625rem;3951  color: var(--peach-t2);3952  flex-shrink: 0;3953}3954.peach-snapshot-confirm {3955  display: flex;3956  flex-direction: column;3957  gap: 8px;3958  padding-top: 10px;3959  border-top: 1px solid rgba(240, 232, 216, 0.06);3960}3961.peach-snapshot-warning {3962  display: flex;3963  align-items: flex-start;3964  gap: 6px;3965  font-size: 10.5px;3966  color: rgba(220, 80, 60, 0.85);3967  line-height: 1.55;3968}3969.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3970.peach-snapshot-confirm-row {3971  display: flex;3972  gap: 6px;3973  align-items: center;3974}3975.peach-snapshot-restore-btn {3976  width: 100%;3977}3978.peach-lock-hero--unlock .peach-lock-hero-art {3979  width: 112px;3980  height: 112px;3981  right: 0;3982  top: 2px;3983  opacity: 0.1;3984}39853986.peach-card {3987  border: 1px solid var(--peach-t3);3988  border-radius: 18px;3989  background:3990    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3991  box-shadow:3992    inset 0 0 0 1px var(--peach-border-accent),3993    inset 0 1px 0 rgba(240, 232, 216, 0.04),3994    0 12px 32px rgba(0, 0, 0, 0.14);3995  overflow: hidden;3996}39973998.peach-card-active {3999  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4000  box-shadow:4001    inset 0 1px 0 rgba(240, 232, 216, 0.05),4002    0 16px 38px rgba(0, 0, 0, 0.18),4003    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);4004}40054006.peach-card-disabled {4007  opacity: 0.72;4008}40094010.peach-card-header {4011  width: 100%;4012  padding: 13px 16px 11px;4013  background: transparent;4014  color: var(--peach-t0);4015  display: flex;4016  justify-content: space-between;4017  align-items: center;4018  text-align: left;4019  font-size: 0.75rem;4020}40214022.peach-card-body {4023  padding: 0 16px 16px;4024  display: grid;4025  gap: 9px;4026}40274028.peach-card-tag {4029  color: var(--peach-t2);4030  font-family: "IBM Plex Mono", monospace;4031  font-size: 0.5625rem;4032  letter-spacing: 0.12em;4033  text-transform: uppercase;4034}40354036.peach-empty-copy {4037  display: grid;4038  gap: 6px;4039  color: var(--peach-t1);4040  font-size: 0.8125rem;4041}40424043.peach-lock-submit {4044  width: 100%;4045  box-shadow:4046    0 1px 0 rgba(255,255,255,0.10) inset,4047    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),4048    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),4049    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);4050}40514052.peach-lock-secondary {4053  width: 100%;4054  border-color: var(--peach-t3);4055  background: rgba(240, 232, 216, 0.02);4056}40574058.peach-lock-secondary:hover {4059  background: rgba(240, 232, 216, 0.04);4060}40614062.peach-lock-note {4063  max-width: none;4064  line-height: 1.55;4065  margin: 0;4066}40674068.peach-overlay-action {4069  font-size: 0.625rem;4070  padding: 4px 8px;4071  letter-spacing: 0.06em;4072  min-width: 44px;4073  text-align: center;4074}40754076.peach-overlay-spacer {4077  width: 32px;4078}40794080.peach-inline-action {4081  flex-shrink: 0;4082  font-size: 0.5625rem;4083  letter-spacing: 0.1em;4084  text-transform: uppercase;4085  padding: 4px 7px;4086}4087.peach-password-toggle-btn {4088  display: inline-flex;4089  align-items: center;4090  justify-content: center;4091  min-width: 30px;4092  min-height: 26px;4093  padding: 0 7px;4094  border: 1px solid var(--peach-t3);4095  border-radius: 999px;4096  background: rgba(240, 232, 216, 0.04);4097  color: var(--peach-t2);4098  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;4099}4100.peach-password-toggle-btn:hover {4101  border-color: var(--peach-t2);4102  color: var(--peach-t0);4103  background: rgba(240, 232, 216, 0.06);4104}41054106.peach-new-textarea {4107  width: 100%;4108  min-height: 88px;4109  resize: vertical;4110  border: 0;4111  outline: none;4112  background: transparent;4113  color: var(--peach-t1);4114  font-family: "IBM Plex Mono", monospace;4115  font-size: 0.75rem;4116  line-height: 1.65;4117  caret-color: var(--peach-accent);4118}41194120.peach-new-textarea::placeholder {4121  color: var(--peach-t2);4122  opacity: 0.7;4123}41244125.peach-settings-actions {4126  display: grid;4127  gap: 8px;4128}41294130.peach-sync-section-label {4131  font-size: 0.6875rem;4132  color: var(--peach-t2);4133  text-transform: uppercase;4134  letter-spacing: 0.05em;4135}41364137.peach-sync-network-note {4138  margin: 0 0 6px;4139  font-size: 0.75rem;4140  color: var(--peach-t2);4141  line-height: 1.4;4142}41434144.peach-settings-row--tappable {4145  background: none;4146  border: none;4147  width: 100%;4148  text-align: left;4149  cursor: pointer;4150  color: var(--peach-t1);4151  font-size: 0.8125rem;4152}4153.peach-settings-row--tappable:hover {4154  color: var(--peach-t0);4155}41564157.peach-sync-pro-hint {4158  display: flex;4159  flex-direction: column;4160  align-items: flex-start;4161  gap: 8px;4162  padding: 12px 0 4px;4163}41644165.peach-sync-device-row {4166  display: flex;4167  justify-content: space-between;4168  align-items: center;4169  padding: 6px 0;4170  border-bottom: 1px solid var(--peach-t3);4171}41724173.peach-sync-device-info {4174  display: flex;4175  flex-direction: column;4176  gap: 2px;4177}41784179.peach-sync-device-name {4180  font-size: 0.8125rem;4181  color: var(--peach-t0);4182}41834184.peach-sync-device-meta {4185  font-size: 0.6875rem;4186  color: var(--peach-t2);4187}41884189.peach-sync-status-dot {4190  display: inline-block;4191  width: 8px;4192  height: 8px;4193  border-radius: 50%;4194  vertical-align: middle;4195}41964197.peach-sync-remove-btn {4198  color: var(--peach-breach);4199}42004201.peach-sync-advanced-row {4202  display: flex;4203  justify-content: space-between;4204  align-items: center;4205  padding: 6px 0;4206  gap: 12px;4207}42084209.peach-sync-advanced-info {4210  display: flex;4211  flex-direction: column;4212  gap: 2px;4213  flex: 1;4214}42154216.peach-sync-advanced-name {4217  font-size: 0.8125rem;4218  color: var(--peach-t0);4219}42204221.peach-sync-reset-confirm {4222  display: flex;4223  flex-direction: column;4224  gap: 8px;4225  padding: 10px;4226  border: 1px solid var(--peach-breach);4227  border-radius: 10px;4228  background: color-mix(in srgb, var(--peach-breach) 6%, transparent);4229}42304231.peach-sync-reset-confirm-headline {4232  font-size: 0.8125rem;4233  font-weight: 600;4234  color: var(--peach-t0);4235  margin: 0;4236}42374238.peach-sync-reset-confirm-body {4239  font-size: 0.75rem;4240  color: var(--peach-t1);4241  margin: 0;4242  line-height: 1.4;4243}42444245.peach-btn--danger {4246  background: var(--peach-breach);4247  color: #fff;4248  border-color: var(--peach-breach);4249}4250.peach-btn--danger:hover:not(:disabled) {4251  background: color-mix(in srgb, var(--peach-breach) 88%, #000);4252}4253.peach-btn--danger:disabled {4254  opacity: 0.55;4255  cursor: not-allowed;4256}42574258.peach-sync-hero-icon {4259  color: var(--peach-t1);4260  opacity: 0.85;4261}42624263.peach-import-preview {4264  margin-bottom: 12px;4265  max-height: 152px;4266  overflow-y: auto;4267  border: 1px solid var(--peach-t3);4268  border-radius: 10px;4269  padding: 8px 10px;4270  display: grid;4271  gap: 8px;4272  background: rgba(240, 232, 216, 0.02);4273}42744275.peach-import-preview-row {4276  display: flex;4277  justify-content: space-between;4278  gap: 10px;4279  font-size: 0.6875rem;4280  color: var(--peach-t1);4281}42824283.peach-import-preview-title {4284  color: var(--peach-t0);4285  flex: 1;4286  min-width: 0;4287  overflow: hidden;4288  text-overflow: ellipsis;4289  white-space: nowrap;4290}42914292.peach-import-preview-meta {4293  color: var(--peach-t2);4294  flex-shrink: 0;4295  max-width: 42%;4296  overflow: hidden;4297  text-overflow: ellipsis;4298  white-space: nowrap;4299}43004301.peach-import-preview-more {4302  color: var(--peach-t2);4303  font-size: 0.625rem;4304}43054306.peach-restore-copy {4307  margin: 0;4308  color: var(--peach-t1);4309  font-size: 0.6875rem;4310  line-height: 1.6;4311}43124313.peach-restore-warning {4314  padding: 10px 12px;4315  border-radius: 12px;4316  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4317  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4318  color: var(--peach-t0);4319  font-size: 0.6875rem;4320  line-height: 1.55;4321}43224323.peach-provider-chips {4324  display: flex;4325  flex-wrap: wrap;4326  gap: 6px;4327}43284329.peach-provider-chip {4330  display: inline-flex;4331  align-items: center;4332  padding: 5px 8px;4333  border-radius: 999px;4334  border: 1px solid var(--peach-t3);4335  background: rgba(240, 232, 216, 0.02);4336  color: var(--peach-t1);4337  font-family: "IBM Plex Mono", monospace;4338  font-size: 0.5rem;4339  letter-spacing: 0.08em;4340  text-transform: uppercase;4341}43424343.peach-restore-file,4344.peach-restore-input {4345  width: 100%;4346  border-radius: 10px;4347  border: 1px solid var(--peach-t3);4348  background: var(--peach-s2);4349  color: var(--peach-t0);4350  font-size: 0.75rem;4351}43524353.peach-restore-file {4354  padding: 9px 10px;4355}43564357.peach-restore-file::file-selector-button {4358  margin-right: 10px;4359  padding: 7px 10px;4360  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4361  border-radius: 999px;4362  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4363  color: var(--peach-t0);4364  font-size: 0.625rem;4365  letter-spacing: 0.08em;4366  text-transform: uppercase;4367  cursor: pointer;4368}43694370.peach-restore-input {4371  padding: 10px 12px;4372}43734374.peach-auth-grid {4375  display: grid;4376  gap: 10px;4377}43784379.peach-import-summary {4380  color: var(--peach-t1);4381  font-size: 0.75rem;4382  line-height: 1.6;4383  margin-bottom: 12px;4384}43854386.peach-restore-error {4387  color: rgba(220, 80, 60, 0.95);4388  font-size: 0.75rem;4389  line-height: 1.55;4390}43914392.peach-passkey-card {4393  max-width: 400px;4394  margin: auto 16px;4395  align-self: center;4396  width: calc(100% - 32px);4397}43984399/* Center the approval card vertically inside the overlay-view (which sets4400 * flex-direction: column without justify-content). Without this, the card4401 * sits at the top with a tall empty band below — looks unfinished on the4402 * 320px popup. */4403.peach-overlay-view:has(.peach-passkey-card) {4404  justify-content: center;4405}44064407.peach-pro-badge {4408  padding: 2px 6px;4409  border-radius: 999px;4410  font-family: var(--font-ui);4411  font-size: 0.625rem;4412  letter-spacing: 0.08em;4413  text-transform: uppercase;4414  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4415  color: var(--peach-accent);4416}44174418/* ── Shortcuts rebind table ─────────────────────────────────── */4419.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4420.peach-shortcut-row {4421  display: flex;4422  align-items: center;4423  gap: 10px;4424  padding: 6px 0;4425}4426.peach-shortcut-row-label {4427  flex: 1;4428  font-size: 0.75rem;4429  color: var(--peach-t0);4430}4431.peach-shortcut-chip {4432  min-width: 64px;4433  padding: 4px 10px;4434  border-radius: 6px;4435  border: 1px solid var(--peach-t3);4436  background: var(--peach-input-bg, var(--surface-card));4437  color: var(--peach-t0);4438  font-family: var(--font-mono);4439  font-size: 0.6875rem;4440  letter-spacing: 0.04em;4441  cursor: pointer;4442  text-align: center;4443  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4444}4445.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4446.peach-shortcut-chip.is-custom {4447  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4448  color: var(--peach-accent);4449}4450.peach-shortcut-chip.is-capturing {4451  border-color: var(--peach-accent);4452  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4453  color: var(--peach-accent);4454  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4455}4456@keyframes peach-shortcut-capture-pulse {4457  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4458  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4459}4460.peach-shortcut-reset {4461  background: transparent;4462  border: none;4463  cursor: pointer;4464  color: var(--peach-t2);4465  padding: 4px 6px;4466  border-radius: 5px;4467  font-size: 0.875rem;4468  line-height: 1;4469  transition: color 120ms ease, background 120ms ease;4470}4471.peach-shortcut-reset:hover {4472  color: var(--peach-t0);4473  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4474}4475.peach-shortcuts-conflict {4476  margin: 4px 0 0;4477  padding: 8px 10px;4478  border-radius: 7px;4479  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4480  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4481  font-family: var(--font-mono);4482  font-size: 0.6875rem;4483  color: var(--peach-t0);4484}44854486/* ── Help dialog overlay (? to open) ────────────────────────── */4487.peach-shortcuts-help-backdrop {4488  position: fixed;4489  inset: 0;4490  background: rgba(0, 0, 0, 0.55);4491  backdrop-filter: blur(2px);4492  display: flex;4493  align-items: center;4494  justify-content: center;4495  z-index: 1000;4496  animation: peach-help-fade-in 140ms ease forwards;4497}4498@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4499.peach-shortcuts-help-card {4500  width: min(320px, 92vw);4501  max-height: 80vh;4502  overflow-y: auto;4503  border-radius: 14px;4504  border: 1px solid var(--peach-t3);4505  background: var(--peach-bg);4506  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4507  padding: 16px 18px 18px;4508  display: flex;4509  flex-direction: column;4510  gap: 12px;4511}4512.peach-shortcuts-help-head {4513  display: flex; align-items: center; justify-content: space-between;4514}4515.peach-shortcuts-help-head h3 {4516  margin: 0;4517  font-family: var(--font-display);4518  font-style: italic;4519  font-weight: 400;4520  font-size: 22px;4521  color: var(--peach-t0);4522}4523.peach-shortcuts-help-close {4524  background: transparent;4525  border: none;4526  color: var(--peach-t2);4527  cursor: pointer;4528  font-size: 0.875rem;4529  padding: 4px 8px;4530  border-radius: 5px;4531}4532.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4533.peach-shortcuts-help-body ul {4534  list-style: none; padding: 0; margin: 4px 0 12px;4535  display: grid; gap: 8px;4536}4537.peach-shortcuts-help-body li {4538  display: flex; align-items: center; justify-content: space-between; gap: 12px;4539  font-size: 0.75rem; color: var(--peach-t0);4540}4541.peach-shortcuts-help-body kbd {4542  font-family: var(--font-mono);4543  font-size: 0.6875rem;4544  padding: 3px 8px;4545  border-radius: 6px;4546  background: var(--surface-card);4547  border: 1px solid var(--peach-t3);4548  color: var(--peach-accent);4549  letter-spacing: 0.04em;4550}45514552/* ── Pro promo on Account screen ────────────────────────────── */4553.peach-pro-promo {4554  position: relative;4555  border-radius: 14px;4556  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4557  background:4558    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4559    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4560    var(--surface-card);4561  overflow: hidden;4562  margin-bottom: 14px;4563}4564.peach-pro-promo-glow {4565  position: absolute;4566  inset: -40% -20% auto auto;4567  width: 220px; height: 220px;4568  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4569  pointer-events: none;4570  filter: blur(8px);4571}4572.peach-pro-promo-inner {4573  position: relative;4574  padding: 18px 18px 16px;4575}4576.peach-pro-promo-title {4577  font-family: var(--font-display);4578  font-style: italic;4579  font-weight: 400;4580  font-size: 28px;4581  line-height: 1;4582  letter-spacing: -0.005em;4583  color: var(--peach-t0);4584  margin: 0 0 4px;4585}4586.peach-pro-promo-tagline {4587  font-family: var(--font-mono);4588  font-size: 0.625rem;4589  letter-spacing: 0.06em;4590  color: var(--peach-t2);4591  margin: 0 0 14px;4592}4593.peach-pro-promo-list {4594  list-style: none;4595  margin: 0 0 16px;4596  padding: 0;4597  display: grid;4598  gap: 9px;4599}4600.peach-pro-promo-list li {4601  display: flex;4602  align-items: flex-start;4603  gap: 9px;4604  font-size: 0.75rem;4605  color: var(--peach-t1);4606  line-height: 1.4;4607}4608.peach-pro-promo-list svg {4609  width: 14px;4610  height: 14px;4611  flex-shrink: 0;4612  color: var(--peach-accent);4613  margin-top: 2px;4614}4615.peach-pro-promo-list span {4616  color: var(--peach-t0);4617}4618.peach-pro-promo-cta {4619  width: 100%;4620  background: var(--peach-accent);4621  color: #fff;4622  border: none;4623  padding: 9px 12px;4624  border-radius: 9px;4625  font-size: 0.75rem;4626  font-weight: 500;4627  font-family: var(--font-ui);4628  letter-spacing: 0.02em;4629  text-decoration: none;4630  display: inline-flex;4631  align-items: center;4632  justify-content: center;4633  cursor: pointer;4634  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4635  box-shadow: 0 2px 16px var(--peach-glow);4636}4637.peach-pro-promo-cta:hover {4638  filter: brightness(1.07);4639  box-shadow: 0 4px 24px var(--peach-glow);4640  transform: translateY(-1px);4641}4642.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }46434644.peach-pro-or-divider {4645  display: flex;4646  align-items: center;4647  gap: 10px;4648  margin: 4px 0 12px;4649  font-family: var(--font-mono);4650  font-size: 0.625rem;4651  letter-spacing: 0.06em;4652  color: var(--peach-t2);4653  text-transform: uppercase;4654}4655.peach-pro-or-divider::before,4656.peach-pro-or-divider::after {4657  content: "";4658  flex: 1;4659  height: 1px;4660  background: var(--peach-t3);4661}46624663.peach-loading {4664  position: absolute;4665  inset: 0;4666  display: flex;4667  align-items: center;4668  justify-content: center;4669  background: var(--bg);4670  animation: peach-loading-pulse 1.2s ease-in-out infinite;4671}46724673@keyframes peach-loading-pulse {4674  0%, 100% { opacity: 0.6; }4675  50% { opacity: 1; }4676}46774678/* ── Health Dashboard ─────────────────────────────────────────────────── */4679.peach-health-body {4680  flex: 1;4681  overflow-y: auto;4682  display: flex;4683  flex-direction: column;4684  /* Hide the platform scrollbar — every other scrollable surface in the4685   * popup hides it; the Health view was the one outlier and it ruined the4686   * polish. Behavior unchanged, just no rail rendered. */4687  scrollbar-width: none;4688  -ms-overflow-style: none;4689}4690.peach-health-body::-webkit-scrollbar { display: none; }46914692/* Loading screen for the Vault Health view. The advanced report computation4693 * can run for a few seconds on a large vault — without a clear loading4694 * screen the surface looked broken (the entry view bleeds through the4695 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4696.peach-health-loading-screen {4697  flex: 1;4698  display: flex;4699  flex-direction: column;4700  align-items: center;4701  justify-content: center;4702  gap: 14px;4703  padding: 32px 28px;4704  text-align: center;4705}47064707.peach-health-loading-glyph {4708  width: 48px;4709  height: 48px;4710  display: flex;4711  align-items: center;4712  justify-content: center;4713  border-radius: 14px;4714  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4715  color: var(--peach-accent);4716}47174718.peach-health-loading-title {4719  margin: 0;4720  font-family: var(--font-display);4721  font-style: italic;4722  font-weight: 300;4723  font-size: 19px;4724  line-height: 1.2;4725  color: var(--peach-t0);4726}47274728.peach-health-loading-copy {4729  margin: 0;4730  max-width: 240px;4731  font-size: 0.75rem;4732  line-height: 1.55;4733  color: var(--peach-t2);4734}47354736.peach-health-loading-track {4737  width: 200px;4738  height: 3px;4739  margin-top: 6px;4740  border-radius: 999px;4741  background: rgba(240, 232, 216, 0.06);4742  overflow: hidden;4743}47444745.peach-health-loading-fill {4746  width: 40%;4747  height: 100%;4748  border-radius: inherit;4749  background: linear-gradient(4750    90deg,4751    transparent 0%,4752    var(--peach-accent) 50%,4753    transparent 100%4754  );4755  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;4756}47574758@keyframes peach-health-loading-sweep {4759  0%   { transform: translateX(-100%); }4760  100% { transform: translateX(350%); }4761}47624763[data-motion="reduce"] .peach-health-loading-fill,4764[data-motion="reduce"] .peach-health-loading-glyph svg path {4765  animation: none;4766}47674768.peach-health-summary {4769  padding: 10px 16px 6px;4770  font-family: "IBM Plex Mono", monospace;4771  font-size: 0.6875rem;4772}4773.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4774.peach-health-summary-ok { color: var(--peach-t2); }47754776.peach-health-check-row {4777  padding: 0 16px 10px;4778}4779.peach-health-check-btn {4780  width: 100%;4781  display: flex;4782  align-items: center;4783  justify-content: center;4784}47854786.peach-health-sections {4787  flex: 1;4788  display: flex;4789  flex-direction: column;4790}47914792.peach-health-section {4793  border-bottom: 1px solid var(--peach-t3);4794}47954796.peach-health-section-header {4797  width: 100%;4798  display: flex;4799  align-items: center;4800  justify-content: space-between;4801  padding: 9px 16px;4802  background: transparent;4803  cursor: pointer;4804  color: var(--peach-t0);4805}48064807.peach-health-section-title-row {4808  display: flex;4809  align-items: center;4810  gap: 8px;4811}48124813.peach-health-count-badge {4814  display: inline-flex;4815  align-items: center;4816  justify-content: center;4817  min-width: 20px;4818  height: 18px;4819  padding: 0 5px;4820  border-radius: 999px;4821  background: rgba(220,80,60,0.15);4822  border: 1px solid rgba(220,80,60,0.25);4823  font-family: "IBM Plex Mono", monospace;4824  font-size: 0.5625rem;4825  color: rgba(220,80,60,0.9);4826}48274828.peach-health-section-title {4829  font-family: "IBM Plex Mono", monospace;4830  font-size: 0.6875rem;4831  text-transform: uppercase;4832  letter-spacing: 0.1em;4833  color: var(--peach-t1);4834}48354836.peach-health-chevron {4837  color: var(--peach-t2);4838  transition: transform 200ms ease;4839  flex-shrink: 0;4840}4841.peach-health-chevron.is-expanded {4842  transform: rotate(180deg);4843}48444845.peach-health-section-body {4846  padding: 0 16px 10px;4847  display: flex;4848  flex-direction: column;4849  gap: 4px;4850}48514852.peach-health-row {4853  display: flex;4854  align-items: flex-start;4855  justify-content: space-between;4856  gap: 8px;4857  padding: 6px 8px;4858  border-radius: 8px;4859  background: rgba(240,232,216,0.02);4860}48614862.peach-health-row-info {4863  flex: 1;4864  min-width: 0;4865  display: flex;4866  flex-direction: column;4867  gap: 2px;4868}48694870.peach-health-row-name {4871  font-family: var(--font-display);4872  font-size: 0.9375rem;4873  font-style: italic;4874  font-weight: 400;4875  color: var(--peach-t0);4876  white-space: nowrap;4877  overflow: hidden;4878  text-overflow: ellipsis;4879}48804881.peach-health-row-meta {4882  font-family: "IBM Plex Mono", monospace;4883  font-size: 0.5625rem;4884  color: var(--peach-t2);4885  letter-spacing: 0.05em;4886}48874888.peach-health-fix-btn {4889  font-size: 0.5625rem;4890  letter-spacing: 0.08em;4891  text-transform: uppercase;4892  padding: 4px 7px;4893  flex-shrink: 0;4894  display: flex;4895  align-items: center;4896}48974898.peach-health-empty {4899  font-family: "IBM Plex Mono", monospace;4900  font-size: 0.625rem;4901  color: var(--peach-t2);4902  padding: 6px 0;4903}49044905.peach-health-loading {4906  font-family: "IBM Plex Mono", monospace;4907  font-size: 0.625rem;4908  color: var(--peach-t2);4909  padding: 6px 0;4910  display: flex;4911  align-items: center;4912  gap: 6px;4913}49144915.peach-health-loading::before {4916  content: "";4917  width: 10px;4918  height: 10px;4919  border: 1.5px solid var(--peach-t3);4920  border-top-color: var(--peach-accent);4921  border-radius: 50%;4922  animation: peach-spin 600ms linear infinite;4923}49244925@keyframes peach-spin {4926  to { transform: rotate(360deg); }4927}49284929.peach-spinner {4930  width: 32px;4931  height: 32px;4932  border: 2px solid var(--peach-s2);4933  border-top-color: var(--peach-accent);4934  border-radius: 50%;4935  margin: 0 auto 16px;4936  animation: peach-spin 0.8s linear infinite;4937}49384939.peach-progress-screen {4940  text-align: center;4941  padding: 32px 16px;4942}49434944.peach-progress-screen-title {4945  font-size: 0.8125rem;4946  color: var(--peach-t0);4947  margin-bottom: 16px;4948}49494950.peach-progress-screen-stage {4951  font-size: 0.6875rem;4952  color: var(--peach-t2);4953  min-height: 14px;4954}49554956.peach-progress-screen-note {4957  font-size: 0.625rem;4958  color: var(--peach-t2);4959  margin-top: 8px;4960}49614962.peach-pairing-body {4963  flex: 1;4964  overflow-y: auto;4965  display: flex;4966  flex-direction: column;4967}49684969.peach-pairing-content {4970  flex: 1;4971  display: flex;4972  flex-direction: column;4973  align-items: center;4974  justify-content: center;4975  gap: 14px;4976  padding: 28px 20px;4977  text-align: center;4978}49794980.peach-pairing-code-screen {4981  gap: 18px;4982}49834984.peach-pairing-headline {4985  font-family: var(--font-display);4986  font-style: italic;4987  font-weight: 300;4988  font-size: 28px;4989  color: var(--peach-t0);4990  margin: 0;4991  line-height: 1;4992}49934994.peach-pairing-subline {4995  font-size: 0.75rem;4996  color: var(--peach-t2);4997  max-width: 220px;4998  line-height: 1.5;4999  margin: 0;5000}50015002.peach-pairing-subline--center {5003  text-align: center;5004}50055006/* 6-digit pairing code — both display (.peach-pairing-code) and entry5007   (.peach-pairing-code-input) share IBM Plex Mono / 36px / wide tracking5008   so the two modes feel like the same surface. */5009.peach-pairing-code {5010  font-family: "IBM Plex Mono", monospace;5011  font-size: 36px;5012  letter-spacing: 0.25em;5013  color: var(--peach-t0);5014  text-align: center;5015  padding: 24px 0;5016  text-shadow:5017    0 0 24px color-mix(in srgb, var(--peach-accent) 22%, transparent),5018    0 0 48px color-mix(in srgb, var(--peach-accent) 12%, transparent);5019  background: transparent;5020  border: 0;5021  cursor: default;5022  user-select: text;5023}50245025.peach-pairing-code--loading,5026.peach-pairing-code--expired {5027  font-size: 18px;5028  letter-spacing: 0.04em;5029  color: var(--peach-t2);5030  cursor: pointer;5031  text-shadow: none;5032}50335034.peach-pairing-qr-container {5035  display: flex;5036  flex-direction: column;5037  align-items: center;5038  gap: 10px;5039}50405041.peach-pairing-qr {5042  width: 240px;5043  height: 240px;5044  display: block;5045}50465047.peach-pairing-instruction {5048  font-size: 0.75rem;5049  color: var(--peach-t2);5050  text-align: center;5051  line-height: 1.5;5052  margin: 0;5053  max-width: 220px;5054}50555056.peach-pairing-expiry {5057  font-family: "IBM Plex Mono", monospace;5058  font-size: 13px;5059  letter-spacing: 0.06em;5060  color: var(--peach-t2);5061  margin: 0;5062}50635064.peach-pairing-regen {5065  font-size: 0.75rem;5066  color: var(--peach-accent);5067  background: transparent;5068  border: 0;5069  cursor: pointer;5070  padding: 4px 0;5071  text-decoration: underline;5072  text-underline-offset: 2px;5073}50745075.peach-pairing-code-input {5076  font-family: "IBM Plex Mono", monospace;5077  font-size: 36px;5078  letter-spacing: 0.25em;5079  color: var(--peach-t0);5080  background: transparent;5081  border: 0;5082  border-bottom: 1px solid var(--peach-t3);5083  outline: none;5084  text-align: center;5085  padding: 18px 0;5086  width: 220px;5087  caret-color: var(--peach-accent);5088  transition: border-color 160ms ease;5089}50905091.peach-pairing-code-input::placeholder {5092  color: var(--peach-t3);5093}50945095.peach-pairing-code-input:focus {5096  border-bottom-color: var(--peach-accent);5097}50985099.peach-pairing-toggle {5100  background: transparent;5101  border: 0;5102  color: var(--peach-t2);5103  font-size: 0.75rem;5104  padding: 8px 4px;5105  cursor: pointer;5106  transition: color 120ms ease;5107}51085109.peach-pairing-toggle:hover:not(:disabled) {5110  color: var(--peach-t1);5111}51125113.peach-pairing-toggle:disabled {5114  opacity: 0.5;5115  cursor: default;5116}51175118.peach-pairing-hint {5119  font-size: 0.6875rem;5120  color: var(--peach-t2);5121  margin: 0;5122  text-align: center;5123}51245125.peach-pairing-status {5126  display: flex;5127  align-items: center;5128  gap: 8px;5129  margin: 0;5130  font-size: 0.75rem;5131  color: var(--peach-t1);5132}51335134.peach-pairing-error {5135  margin: 0;5136  font-size: 0.6875rem;5137  color: var(--peach-breach);5138}51395140.peach-pairing-error--muted {5141  color: var(--peach-t2);5142}51435144.peach-pairing-spinner {5145  width: 12px;5146  height: 12px;5147  border: 1.5px solid var(--peach-t3);5148  border-top-color: var(--peach-accent);5149  border-radius: 50%;5150  animation: peach-spin 0.8s linear infinite;5151}51525153.peach-pairing-success-icon,5154.peach-pairing-error-icon,5155.peach-pairing-hero {5156  display: inline-flex;5157  align-items: center;5158  justify-content: center;5159}51605161/* Tag chips */5162.peach-tag-chip {5163  display: inline-flex;5164  align-items: center;5165  gap: 4px;5166  padding: 3px 8px;5167  border-radius: 999px;5168  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);5169  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5170  color: var(--peach-t0);5171  font-family: "IBM Plex Mono", monospace;5172  font-size: 0.625rem;5173  letter-spacing: 0.04em;5174}51755176.peach-tag-chip-remove {5177  background: transparent;5178  border: none;5179  color: inherit;5180  opacity: 0.6;5181  cursor: pointer;5182  padding: 0;5183  font-size: 0.75rem;5184  line-height: 1;5185}51865187.peach-tag-chip-remove:hover {5188  opacity: 1;5189}51905191/* Tag input */5192.peach-tag-input-wrap {5193  border-bottom: 1px solid var(--peach-t3);5194}51955196.peach-tag-suggestions {5197  display: flex;5198  flex-wrap: wrap;5199  gap: 4px;5200  padding: 6px 0;5201}52025203.peach-tag-suggestion {5204  padding: 2px 8px;5205  border-radius: 999px;5206  border: 1px solid var(--peach-t3);5207  background: var(--peach-s2);5208  color: var(--peach-t1);5209  font-family: "IBM Plex Mono", monospace;5210  font-size: 0.625rem;5211  cursor: pointer;5212  transition: border-color 80ms ease, background 80ms ease;5213}52145215.peach-tag-suggestion:hover {5216  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);5217  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5218}52195220/* Identity suggestions — shown below username/email inputs in new-entry form */5221@keyframes peach-suggest-in {5222  from { opacity: 0; transform: translateY(-4px); }5223  to   { opacity: 1; transform: none; }5224}52255226.peach-identity-suggestions {5227  display: flex;5228  flex-direction: column;5229  gap: 1px;5230  margin-top: 4px;5231  animation: peach-suggest-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;5232}52335234.peach-identity-filter-row {5235  display: flex;5236  align-items: center;5237  gap: 4px;5238  padding: 2px 0 5px;5239}52405241.peach-identity-collapse-btn {5242  margin-left: auto;5243  background: transparent;5244  border: none;5245  cursor: pointer;5246  color: var(--peach-t3);5247  padding: 2px 4px;5248  display: flex;5249  align-items: center;5250  line-height: 0;5251  border-radius: 3px;5252  transition: color 100ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);5253}52545255.peach-identity-collapse-btn:hover {5256  color: var(--peach-t1);5257}52585259.peach-identity-collapse-btn.is-collapsed {5260  transform: rotate(-90deg);5261}52625263.peach-identity-rows {5264  display: grid;5265  grid-template-rows: 1fr;5266  transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1);5267}52685269.peach-identity-rows.is-collapsed {5270  grid-template-rows: 0fr;5271}52725273.peach-identity-rows-inner {5274  overflow-y: auto;5275  min-height: 0;5276  max-height: 148px;5277  scrollbar-width: thin;5278  scrollbar-color: var(--peach-t3) transparent;5279  mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5280  -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 18px), transparent 100%);5281}52825283.peach-identity-rows-inner::-webkit-scrollbar {5284  width: 4px;5285}52865287.peach-identity-rows-inner::-webkit-scrollbar-track {5288  background: transparent;5289}52905291.peach-identity-rows-inner::-webkit-scrollbar-thumb {5292  background: var(--peach-t3);5293  border-radius: 2px;5294}52955296.peach-identity-filter-pill {5297  padding: 2px 7px;5298  border-radius: 999px;5299  border: 1px solid var(--peach-t3);5300  background: transparent;5301  color: var(--peach-t2);5302  font-family: "IBM Plex Mono", monospace;5303  font-size: 0.6rem;5304  cursor: pointer;5305  transition: border-color 80ms, background 80ms, color 80ms;5306}53075308.peach-identity-filter-pill.is-on {5309  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5310  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5311  color: var(--peach-accent);5312}53135314.peach-identity-suggestion {5315  display: flex;5316  align-items: center;5317  gap: 6px;5318  width: 100%;5319  padding: 4px 6px;5320  border-radius: 5px;5321  border: none;5322  background: transparent;5323  cursor: pointer;5324  text-align: left;5325  transition: background 80ms ease;5326}53275328.peach-identity-suggestion:hover,5329.peach-identity-suggestion:focus {5330  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5331  outline: none;5332}53335334.peach-identity-suggestion-value {5335  font-family: "IBM Plex Mono", monospace;5336  font-size: 0.7rem;5337  color: var(--peach-t1);5338  overflow: hidden;5339  text-overflow: ellipsis;5340  white-space: nowrap;5341  flex: 1;5342  min-width: 0;5343}53445345.peach-identity-suggestion-type {5346  font-family: "IBM Plex Mono", monospace;5347  font-size: 0.55rem;5348  font-weight: 600;5349  flex-shrink: 0;5350  padding: 1px 4px;5351  border-radius: 3px;5352}53535354.peach-identity-suggestion-type--email {5355  color: color-mix(in srgb, var(--peach-accent) 70%, transparent);5356  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5357}53585359.peach-identity-suggestion-type--username {5360  color: color-mix(in srgb, var(--peach-t1) 60%, transparent);5361  background: color-mix(in srgb, var(--peach-t3) 40%, transparent);5362}53635364.peach-identity-suggestion-meta {5365  font-family: "IBM Plex Mono", monospace;5366  font-size: 0.6rem;5367  color: var(--peach-t3);5368  flex-shrink: 0;5369}53705371/* Tag filter strip */5372.peach-tag-filter-strip {5373  border-bottom: 1px solid var(--peach-t3);5374  flex-shrink: 0;5375}53765377.peach-tag-filter-chip {5378  display: inline-flex;5379  align-items: center;5380  padding: 4px 10px;5381  border-radius: 999px;5382  border: 1px solid var(--peach-t3);5383  background: transparent;5384  color: var(--peach-t2);5385  font-family: "IBM Plex Mono", monospace;5386  font-size: 0.5625rem;5387  letter-spacing: 0.06em;5388  text-transform: uppercase;5389  cursor: pointer;5390  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5391  white-space: nowrap;5392}53935394.peach-tag-filter-chip:hover {5395  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);5396  color: var(--peach-t1);5397}53985399.peach-tag-filter-chip.is-selected {5400  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5401  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5402  color: var(--peach-t0);5403}54045405/* ─────────────────────────────────────────────────────────────────────────5406   v1.4.12 additions5407   ─────────────────────────────────────────────────────────────────────── */54085409/* Sort bar */5410.peach-sort-bar {5411  display: flex;5412  align-items: center;5413  gap: 4px;5414  padding: 5px 12px;5415  border-bottom: 1px solid var(--peach-t3);5416  flex-shrink: 0;5417  overflow-x: auto;5418  scrollbar-width: none;5419}54205421.peach-sort-btn {5422  padding: 2px 9px;5423  border-radius: 999px;5424  border: 1px solid transparent;5425  background: transparent;5426  color: var(--peach-t2);5427  font-family: "IBM Plex Mono", monospace;5428  font-size: 0.5625rem;5429  letter-spacing: 0.07em;5430  text-transform: uppercase;5431  cursor: pointer;5432  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;5433  white-space: nowrap;5434}54355436.peach-sort-btn:hover {5437  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);5438  color: var(--peach-t1);5439}54405441.peach-sort-btn.is-active {5442  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);5443  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);5444  color: var(--peach-t0);5445}54465447.peach-sort-domain-hint {5448  margin-left: auto;5449  font-family: "IBM Plex Mono", monospace;5450  font-size: 0.5625rem;5451  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);5452  white-space: nowrap;5453  overflow: hidden;5454  text-overflow: ellipsis;5455  max-width: 110px;5456}54575458/* Tab-match badge on entry rows */5459.peach-tab-match-badge {5460  display: inline-block;5461  width: 6px;5462  height: 6px;5463  border-radius: 50%;5464  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);5465  margin-left: 5px;5466  vertical-align: middle;5467  flex-shrink: 0;5468  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);5469}54705471.peach-entry-row.is-tab-match {5472  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5473  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);5474}54755476.peach-entry-row.is-tab-match:hover {5477  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5478}54795480/* Entry list stagger entrance */5481@keyframes peach-entry-fadein {5482  from { opacity: 0; transform: translateY(4px); }5483  to   { opacity: 1; transform: translateY(0); }5484}54855486.peach-vault-list .peach-entry-row {5487  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5488}54895490/* Button press micro-interaction */5491.peach-btn:active {5492  transform: scale(0.95);5493  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5494}54955496.peach-sort-btn:active,5497.peach-tag-filter-chip:active {5498  transform: scale(0.93);5499  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5500}55015502/* Password strength bar (Lock view + shared) */5503.peach-password-strength {5504  display: flex;5505  align-items: center;5506  gap: 8px;5507  margin-top: 6px;5508}55095510.peach-strength-bar {5511  flex: 1;5512  height: 3px;5513  border-radius: 2px;5514  background: var(--peach-t3);5515  overflow: hidden;5516}55175518.peach-strength-fill {5519  height: 100%;5520  border-radius: 2px;5521  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5522              background 300ms ease;5523}55245525.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5526.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5527.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5528.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }55295530.peach-strength-label {5531  font-family: "IBM Plex Mono", monospace;5532  font-style: italic;5533  font-size: 0.5625rem;5534  font-weight: 300;5535  letter-spacing: 0.06em;5536  color: var(--peach-t2);5537  min-width: 36px;5538  text-align: right;5539}55405541.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5542.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5543.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5544.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }55455546/* Duress form */5547.peach-duress-status {5548  padding: 2px 8px;5549  border-radius: 999px;5550  border: 1px solid var(--peach-t3);5551  font-family: "IBM Plex Mono", monospace;5552  font-size: 0.5625rem;5553  letter-spacing: 0.07em;5554  text-transform: uppercase;5555  color: var(--peach-t2);5556  flex-shrink: 0;5557}55585559.peach-duress-status.is-active {5560  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5561  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5562  color: var(--peach-t0);5563}55645565.peach-duress-form {5566  padding: 8px 0 4px;5567  display: flex;5568  flex-direction: column;5569  gap: 6px;5570}55715572.peach-duress-form .peach-label {5573  margin-top: 4px;5574}55755576.peach-duress-actions {5577  display: flex;5578  gap: 6px;5579  align-items: center;5580  margin-top: 4px;5581}55825583.peach-duress-actions .peach-btn:first-child {5584  margin-right: auto;5585}55865587/* Improved overlay spring entrance */5588.peach-overlay-view.ov-enter-up {5589  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5590}55915592@keyframes ov-enter-up-spring {5593  from { opacity: 0; transform: translateY(16px) scale(0.98); }5594  to   { opacity: 1; transform: translateY(0) scale(1); }5595}55965597.peach-overlay-view.ov-enter-right {5598  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5599}56005601@keyframes ov-enter-right-spring {5602  from { opacity: 0; transform: translateX(18px) scale(0.98); }5603  to   { opacity: 1; transform: translateX(0) scale(1); }5604}56055606/* ── Onboarding-mode restore screens (file import) ── */5607/* Used when MainImportView renders during onboarding (no vault yet).5608   Animates like a lock-screen transition. */5609.peach-lock-view {5610  position: absolute;5611  inset: 0;5612  display: flex;5613  flex-direction: column;5614  background:5615    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5616    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5617    var(--peach-bg);5618  z-index: 2;5619  overflow: hidden;5620  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5621}56225623.peach-lock-view-header {5624  display: flex;5625  align-items: center;5626  justify-content: space-between;5627  padding: 16px 18px 12px;5628  flex-shrink: 0;5629}56305631/* ───────── Settings: auto-lock select ───────── */5632.peach-settings-select {5633  font-family: "IBM Plex Mono", monospace;5634  font-size: 0.6875rem;5635  background: transparent;5636  border: 1px solid var(--peach-t3);5637  border-radius: 4px;5638  color: var(--peach-t1);5639  padding: 3px 6px;5640  cursor: pointer;5641  outline: none;5642}5643.peach-settings-select:focus {5644  border-color: var(--peach-accent);5645}56465647/* ───────── Duress status pill (new polished) ───────── */5648.peach-duress-status-pill {5649  font-family: "IBM Plex Mono", monospace;5650  font-size: 0.5625rem;5651  text-transform: uppercase;5652  letter-spacing: 0.12em;5653  padding: 2px 8px;5654  border-radius: 12px;5655  background: var(--peach-t3);5656  color: var(--peach-t2);5657  flex-shrink: 0;5658}5659.peach-duress-status-pill.is-active {5660  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5661  color: var(--peach-accent);5662}56635664/* ───────── Entry advanced disclosure (canary) ───────── */5665.peach-entry-advanced {5666  margin-top: 12px;5667  border-top: 1px solid var(--peach-t3);5668  padding-top: 10px;5669  position: relative;5670  z-index: 1;5671}5672.peach-entry-advanced-toggle {5673  display: flex;5674  align-items: center;5675  justify-content: space-between;5676  width: 100%;5677  background: transparent;5678  border: none;5679  cursor: pointer;5680  padding: 0;5681  color: var(--peach-t2);5682}5683.peach-canary-section {5684  margin-top: 10px;5685  display: grid;5686  gap: 6px;5687}56885689/* ───────── Import: merge/replace radio choices ───────── */5690.peach-import-choice {5691  display: flex;5692  align-items: flex-start;5693  gap: 10px;5694  padding: 8px 10px;5695  border: 1px solid var(--peach-t3);5696  border-radius: 10px;5697  cursor: pointer;5698  margin-bottom: 6px;5699  transition: border-color 120ms ease, background 120ms ease;5700}5701.peach-import-choice:hover {5702  border-color: var(--peach-accent);5703}5704.peach-import-choice input[type="radio"] {5705  margin-top: 3px;5706  accent-color: var(--peach-accent);5707  flex-shrink: 0;5708}5709.peach-import-choice-main {5710  display: flex;5711  flex-direction: column;5712  gap: 2px;5713  min-width: 0;5714}5715.peach-import-choice-label {5716  font-size: 0.75rem;5717  color: var(--peach-t0);5718}5719.peach-import-choice-sub {5720  font-size: 0.6875rem;5721  color: var(--peach-t2);5722  line-height: 1.5;5723}57245725/* ───────── Export: success confirmation strip ───────── */5726.peach-export-success {5727  display: flex;5728  align-items: flex-start;5729  gap: 10px;5730  padding: 12px;5731  border-radius: 12px;5732  border: 1px solid rgba(150, 175, 110, 0.3);5733  background: rgba(150, 175, 110, 0.08);5734  color: var(--peach-t0);5735  font-size: 0.75rem;5736  line-height: 1.55;5737}5738.peach-export-success-check {5739  color: rgba(150, 175, 110, 0.9);5740  font-size: 0.875rem;5741  flex-shrink: 0;5742}57435744/* ── Trash view ──────────────────────────────────────────────────────── */5745.peach-trash-entry-row {5746  display: flex;5747  align-items: center;5748  justify-content: space-between;5749  gap: 8px;5750  padding: 8px 0;5751  border-bottom: 1px solid var(--peach-border);5752}5753.peach-trash-entry-info {5754  flex: 1;5755  min-width: 0;5756  display: flex;5757  flex-direction: column;5758  gap: 2px;5759}5760.peach-trash-entry-title {5761  font-size: 0.8125rem;5762  color: var(--peach-t0);5763  overflow: hidden;5764  text-overflow: ellipsis;5765  white-space: nowrap;5766}5767.peach-trash-entry-meta {5768  font-family: var(--font-mono);5769  font-size: 0.5625rem;5770  color: var(--peach-t2);5771  letter-spacing: 0.04em;5772}5773.peach-trash-entry-actions {5774  display: flex;5775  align-items: center;5776  gap: 4px;5777  flex-shrink: 0;5778}5779.peach-trash-delete-btn {5780  background: transparent;5781  border: 0;5782  color: var(--peach-t3);5783  font-size: 1rem;5784  line-height: 1;5785  cursor: pointer;5786  padding: 2px 5px;5787  transition: color 0.15s;5788}5789.peach-trash-delete-btn:hover { color: var(--peach-breach); }5790.peach-trash-list {5791  overflow-y: auto;5792}5793.peach-trash-footer {5794  display: flex;5795  align-items: center;5796  gap: 8px;5797  padding: 8px 0 0;5798  border-top: 1px solid var(--peach-border);5799  margin-top: 4px;5800}5801.peach-trash-purge-all {5802  background: transparent;5803  border: 0;5804  color: var(--peach-t3);5805  font-size: 0.625rem;5806  cursor: pointer;5807  padding: 4px 0;5808  letter-spacing: 0.03em;5809  transition: color 0.2s;5810}5811.peach-trash-purge-all:hover { color: var(--peach-breach); }5812.peach-trash-purge-confirm-label {5813  font-size: 0.625rem;5814  color: var(--peach-t1);5815  flex: 1;5816}58175818/* ── Settings shortcuts grid ─────────────────────────────────────────── */5819.peach-shortcuts-grid {5820  display: grid;5821  grid-template-columns: auto 1fr;5822  gap: 6px 12px;5823  align-items: center;5824  padding: 4px 0;5825}5826.peach-shortcut-key {5827  font-family: var(--font-mono);5828  font-size: 0.625rem;5829  color: var(--peach-t0);5830  background: var(--peach-t3);5831  border-radius: 4px;5832  padding: 2px 6px;5833  white-space: nowrap;5834  text-align: center;5835}5836.peach-shortcut-desc {5837  font-size: 0.6875rem;5838  color: var(--peach-t1);5839}58405841/* ── Sort bar trash button ───────────────────────────────────────────── */5842.peach-sort-trash-btn {5843  display: flex;5844  align-items: center;5845  justify-content: center;5846  padding: 3px 5px;5847  background: transparent;5848  border: none;5849  cursor: pointer;5850  color: var(--peach-t2);5851  border-radius: 4px;5852  transition: color 140ms ease, background 140ms ease;5853}5854.peach-sort-trash-btn:hover {5855  color: var(--peach-t1);5856  background: var(--peach-t3);5857}5858.peach-sort-trash-btn.is-active {5859  color: var(--peach-accent);5860}58615862/* Accent color picker */5863.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5864.peach-accent-picker {5865  display: flex;5866  flex-wrap: wrap;5867  gap: 7px;5868  padding: 2px 0;5869}5870.peach-accent-swatch {5871  width: 22px;5872  height: 22px;5873  border-radius: 50%;5874  border: 2px solid transparent;5875  cursor: pointer;5876  padding: 0;5877  transition: transform 100ms;5878  outline-offset: 2px;5879}5880.peach-accent-swatch:hover { transform: scale(1.15); }5881.peach-accent-swatch.is-active {5882  border-color: var(--peach-t0);5883  transform: scale(1.1);5884}58855886.peach-pill-group {5887  display: flex;5888  gap: 6px;5889}5890.peach-pill-group .peach-btn.is-active {5891  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5892  border-color: var(--peach-accent);5893  color: var(--peach-t0);5894}58955896/* ── Card entry styles ───────────────────────────────────────── */5897.peach-card-number {5898  font-family: var(--peach-mono);5899  letter-spacing: 0.08em;5900}59015902.peach-card-network-badge {5903  font-size: 0.625rem;5904  padding: 1px 5px;5905  border-radius: 4px;5906  border: 0.5px solid var(--peach-border);5907  color: var(--peach-text-dim);5908  margin-left: 6px;5909  vertical-align: middle;5910}59115912.peach-card-expiry-row {5913  display: flex;5914  align-items: center;5915  gap: 8px;5916}59175918.peach-card-expiry-sep {5919  color: var(--peach-text-dim);5920}59215922/* ── Pro tier — upgrade screen ──────────────────────────────── */5923.peach-pro-mark {5924  font-size: 0.5625rem;5925  color: var(--peach-accent);5926  margin-left: 6px;5927  vertical-align: super;5928  opacity: 0.7;5929}59305931.peach-pro-mini-badge {5932  display: block;5933  font-size: 0.625rem;5934  font-style: italic;5935  color: var(--peach-accent);5936  letter-spacing: 0.04em;5937  margin-top: -2px;5938  padding-left: 2px;5939  opacity: 0.85;5940  text-align: center;5941}59425943.peach-wordmark-stack {5944  display: inline-flex;5945  flex-direction: column;5946  align-items: center;5947}59485949/* ── Pro tier — upgrade page ─────────────────────────────────── */5950/* ── Pro upgrade — redesigned editorial layout ─────────────────── */59515952.peach-pro-upgrade {5953  display: flex;5954  flex-direction: column;5955  align-items: stretch;5956  gap: 10px;5957  padding: 2px 2px 12px;5958}59595960.peach-pro-eyebrow {5961  margin: 0;5962  font-family: var(--font-ui);5963  font-size: 0.625rem;5964  font-weight: 500;5965  letter-spacing: 0.12em;5966  color: var(--peach-accent);5967}59685969.peach-pro-headline {5970  margin: 0;5971  font-family: var(--font-display, "Cormorant Garamond", serif);5972  font-size: 30px;5973  font-weight: 700;5974  font-style: normal;5975  line-height: 1.05;5976  color: var(--peach-t0);5977  letter-spacing: -0.01em;5978}5979.peach-pro-headline em {5980  font-style: italic;5981  font-weight: 400;5982  color: var(--peach-accent);5983}59845985.peach-pro-subtitle {5986  margin: 0;5987  font-size: 0.6875rem;5988  line-height: 1.5;5989  color: var(--peach-t1);5990}59915992/* Group header for the Pro feature grid (e.g. "ADVANCED SECURITY"). */5993.peach-pro-section-label {5994  margin: 6px 0 0;5995  font-family: var(--font-ui);5996  font-size: 0.5625rem;5997  font-weight: 500;5998  letter-spacing: 0.12em;5999  text-transform: uppercase;6000  color: var(--peach-t2);6001}60026003/* 2-column numbered feature grid */6004.peach-pro-grid {6005  display: grid;6006  grid-template-columns: 1fr 1fr;6007  border-top: 1px solid var(--peach-border);6008  border-left: 1px solid var(--peach-border);6009}60106011.peach-pro-grid-item {6012  display: flex;6013  flex-direction: column;6014  gap: 2px;6015  padding: 8px 9px;6016  border-right: 1px solid var(--peach-border);6017  border-bottom: 1px solid var(--peach-border);6018}60196020.peach-pro-grid-item--wide {6021  grid-column: 1 / -1;6022}60236024.peach-pro-grid-num {6025  font-family: var(--font-mono);6026  font-size: 0.5625rem;6027  color: var(--peach-accent);6028  letter-spacing: 0.06em;6029  opacity: 0.85;6030}60316032.peach-pro-grid-name {6033  font-size: 0.8125rem;6034  font-weight: 500;6035  color: var(--peach-t0);6036  line-height: 1.2;6037}60386039.peach-pro-grid-desc {6040  font-size: 0.625rem;6041  color: var(--peach-t1);6042  line-height: 1.4;6043}60446045.peach-pro-grid-item.is-highlighted .peach-pro-grid-num {6046  animation: peach-pulse-accent 600ms ease-out forwards;6047}60486049@keyframes peach-pulse-accent {6050  0%   { opacity: 1; transform: scale(1.2); }6051  100% { opacity: 0.85; transform: scale(1); }6052}60536054/* Actions */6055.peach-pro-upgrade-actions {6056  display: flex;6057  flex-direction: column;6058  align-items: stretch;6059  gap: 10px;6060}60616062.peach-pro-pricing {6063  margin: 0;6064  font-size: 1rem;6065  font-weight: 600;6066  color: var(--peach-t0);6067  letter-spacing: 0.01em;6068}6069.peach-pro-pricing-sub {6070  font-size: 0.75rem;6071  font-weight: 400;6072  color: var(--peach-t1);6073  letter-spacing: 0.02em;6074}60756076.peach-pro-upgrade-cta {6077  display: flex;6078  align-items: center;6079  justify-content: center;6080  text-decoration: none;6081  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);6082  border: 1px solid var(--peach-accent);6083  border-radius: 10px;6084  color: var(--peach-accent);6085  font-family: var(--font-ui);6086  font-size: 0.8125rem;6087  font-weight: 600;6088  letter-spacing: 0.06em;6089  padding: 11px 16px;6090  transition: background 0.15s ease, color 0.15s ease;6091}6092.peach-pro-upgrade-cta:hover {6093  background: color-mix(in srgb, var(--peach-accent) 28%, transparent);6094}60956096.peach-pro-key-divider {6097  display: flex;6098  align-items: center;6099  gap: 8px;6100  color: var(--peach-t2);6101  font-size: 0.5625rem;6102  letter-spacing: 0.1em;6103}6104.peach-pro-key-divider::before,6105.peach-pro-key-divider::after {6106  content: "";6107  flex: 1;6108  height: 1px;6109  background: var(--peach-border);6110}61116112/* Inline key entry row */6113.peach-pro-key-inline {6114  display: flex;6115  align-items: center;6116  background: color-mix(in srgb, var(--peach-t0) 4%, transparent);6117  border: 1px solid var(--peach-border);6118  border-radius: 8px;6119  overflow: hidden;6120}6121.peach-pro-key-inline-input {6122  flex: 1;6123  background: transparent;6124  border: none;6125  outline: none;6126  color: var(--peach-t1);6127  font-family: var(--font-mono);6128  font-size: 0.625rem;6129  letter-spacing: 0.06em;6130  padding: 9px 10px;6131}6132.peach-pro-key-inline-input::placeholder {6133  color: var(--peach-t2);6134}6135.peach-pro-key-apply {6136  background: transparent;6137  border: none;6138  border-left: 1px solid var(--peach-border);6139  color: var(--peach-t2);6140  font-family: var(--font-ui);6141  font-size: 0.5625rem;6142  font-weight: 600;6143  letter-spacing: 0.08em;6144  padding: 9px 10px;6145  cursor: pointer;6146  transition: color 0.15s ease;6147  flex-shrink: 0;6148}6149.peach-pro-key-apply:not(:disabled):hover {6150  color: var(--peach-accent);6151}6152.peach-pro-key-apply:disabled {6153  opacity: 0.35;6154  cursor: not-allowed;6155}61566157/* ── Pro tier — key ceremony ─────────────────────────────────── */6158.peach-pro-key-ceremony {6159  display: flex;6160  flex-direction: column;6161  align-items: center;6162  gap: 12px;6163  padding: 20px 4px 16px;6164}61656166.peach-pro-key-ceremony .peach-lock-rune-string {6167  font-size: 1rem;6168  gap: 12px;6169  flex: 0;6170  justify-content: center;6171}61726173.peach-pro-key-ceremony-label {6174  margin: 0;6175  font-size: 0.6875rem;6176  color: var(--peach-t2);6177  font-style: italic;6178  letter-spacing: 0.04em;6179}61806181.peach-pro-key-input {6182  font-family: var(--font-mono, monospace);6183  letter-spacing: 0.06em;6184  text-align: center;6185  width: 100%;6186  box-sizing: border-box;6187}61886189.peach-pro-key-error {6190  margin: 0;6191  font-size: 0.75rem;6192  text-align: center;6193  color: var(--peach-breach, #e55);6194  padding: 0;6195}61966197.peach-pro-key-activate {6198  width: 100%;6199  text-align: center;6200  box-sizing: border-box;6201  padding: 10px 20px;6202  font-size: 0.8125rem;6203}62046205.peach-pro-key-cancel {6206  background: transparent;6207  border: 0;6208  color: var(--peach-t2);6209  font-size: 0.6875rem;6210  cursor: pointer;6211  padding: 2px 8px;6212  transition: color 0.2s;6213}62146215.peach-pro-key-cancel:hover { color: var(--peach-accent); }62166217/* ── Pro tier — active state ─────────────────────────────────── */6218.peach-pro-active {6219  display: flex;6220  flex-direction: column;6221  align-items: center;6222  gap: 0;6223  padding: 8px 4px 16px;6224  min-height: 280px;6225}62266227.peach-pro-active-hero {6228  display: flex;6229  flex-direction: column;6230  align-items: center;6231  gap: 6px;6232  padding: 20px 0 22px;6233}62346235.peach-pro-active-mark-wrap {6236  display: flex;6237  align-items: center;6238  justify-content: center;6239  margin-bottom: 4px;6240}62416242.peach-pro-active-mark {6243  width: 60px;6244  height: 60px;6245}62466247.peach-pro-active-title {6248  font-family: var(--font-display, var(--font-ui));6249  font-size: 26px;6250  margin: 0;6251  color: var(--peach-t0);6252  letter-spacing: 0.01em;6253}62546255.peach-pro-active-since {6256  margin: 0;6257  font-size: 0.6875rem;6258  color: var(--peach-t2);6259  font-style: italic;6260}62616262.peach-pro-active-features {6263  display: flex;6264  flex-direction: column;6265  gap: 8px;6266  width: 100%;6267  padding: 14px 8px 0;6268  border-top: 1px solid var(--peach-border);6269  flex: 1;6270}62716272.peach-pro-active-feature {6273  display: flex;6274  align-items: center;6275  gap: 9px;6276}62776278.peach-pro-active-feature-mark {6279  color: var(--peach-accent);6280  font-size: 0.625rem;6281  opacity: 0.65;6282  flex-shrink: 0;6283}62846285.peach-pro-active-feature-name {6286  font-size: 0.75rem;6287  color: var(--peach-t1);6288}62896290.peach-pro-deactivate {6291  align-self: center;6292  background: transparent;6293  border: 0;6294  color: var(--peach-t3);6295  font-size: 0.625rem;6296  cursor: pointer;6297  padding: 8px 0 0;6298  margin-top: 16px;6299  letter-spacing: 0.03em;6300  transition: color 0.2s;6301}63026303.peach-pro-deactivate:hover { color: var(--peach-t2); }63046305.peach-pro-deactivate:disabled {6306  opacity: 0.5;6307  cursor: default;6308}63096310/* ── Pro advanced health remediation queue ──────────────────── */6311.peach-health-pro-queue {6312  display: flex;6313  flex-direction: column;6314  gap: 10px;6315  padding: 12px;6316  margin: 0 0 12px;6317  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);6318  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);6319  border-radius: 10px;6320}63216322.peach-health-pro-queue-head {6323  display: flex;6324  justify-content: space-between;6325  align-items: baseline;6326}63276328.peach-health-pro-queue-title {6329  font-size: 0.75rem;6330  font-weight: 500;6331  letter-spacing: 0.04em;6332  text-transform: uppercase;6333  color: var(--peach-accent);6334}63356336.peach-health-pro-queue-score {6337  font-size: 0.6875rem;6338  color: var(--peach-t2);6339}63406341.peach-health-pro-row {6342  display: flex;6343  gap: 10px;6344  align-items: center;6345  padding: 8px 0;6346  border-top: 1px solid var(--peach-border);6347}63486349.peach-health-pro-row-info {6350  flex: 1;6351  display: flex;6352  flex-direction: column;6353  gap: 4px;6354  min-width: 0;6355}63566357.peach-health-pro-row-name {6358  font-size: 0.8125rem;6359  color: var(--peach-t0);6360  overflow: hidden;6361  text-overflow: ellipsis;6362  white-space: nowrap;6363}63646365.peach-health-pro-row-meta {6366  font-size: 0.6875rem;6367  color: var(--peach-t2);6368}63696370.peach-health-pro-bar {6371  height: 2px;6372  background: var(--peach-border);6373  border-radius: 2px;6374  overflow: hidden;6375  margin-top: 2px;6376}63776378.peach-health-pro-bar-fill {6379  height: 100%;6380  background: var(--peach-accent);6381  transition: width 200ms ease-out;6382}63836384/* ── Pro activation celebration ── */6385@keyframes peach-pro-bloom {6386  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }6387  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))6388                 drop-shadow(0 0 48px var(--peach-glow)); }6389  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }6390}63916392@keyframes peach-pro-wordmark-in {6393  from { opacity: 0; transform: translateY(4px); }6394  to   { opacity: 1; transform: translateY(0); }6395}63966397@keyframes peach-pro-fade-out {6398  from { opacity: 1; }6399  to   { opacity: 0; }6400}64016402.peach-pro-celebration {6403  background:6404    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),6405    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),6406    var(--peach-bg);6407  border: 1px solid var(--peach-t3);6408  box-shadow:6409    0 2px 8px rgba(0,0,0,0.55),6410    0 14px 48px rgba(0,0,0,0.7),6411    0 0 0 1px rgba(240,232,216,0.04);6412  overflow: hidden;6413  width: 320px;6414  height: 520px;6415  display: flex;6416  flex-direction: column;6417  align-items: center;6418  justify-content: center;6419  gap: 8px;6420  padding: 32px 24px;6421  text-align: center;6422}64236424.peach-pro-celebration.is-leaving {6425  animation: peach-pro-fade-out 400ms ease forwards;6426}64276428.peach-pro-bloom-target {6429  display: flex;6430  align-items: center;6431  justify-content: center;6432  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;6433  margin-bottom: 12px;6434}64356436.peach-pro-bloom-icon {6437  width: 48px;6438  height: 48px;6439}64406441.peach-pro-wordmark {6442  font-family: var(--font-display);6443  font-size: 22px;6444  font-style: italic;6445  font-weight: 400;6446  color: var(--peach-accent);6447  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;6448}64496450.peach-pro-thankyou {6451  font-size: 0.75rem;6452  font-style: italic;6453  color: var(--peach-t2);6454  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;6455}645664576458/* ── Pending Pro notice banner (shown after background sync gate fires) ── */6459.peach-pro-notice-banner {6460  display: flex;6461  align-items: center;6462  gap: 8px;6463  padding: 7px 12px;6464  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));6465  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);6466  font-size: 0.6875rem;6467  color: var(--peach-t2);6468  font-family: "IBM Plex Mono", monospace;6469  flex-shrink: 0;6470}64716472.peach-pro-notice-link {6473  background: none;6474  border: none;6475  padding: 0;6476  cursor: pointer;6477  font-size: 0.6875rem;6478  color: var(--peach-accent);6479  font-family: "IBM Plex Mono", monospace;6480  margin-left: auto;6481  white-space: nowrap;6482}64836484.peach-pro-notice-close {6485  background: none;6486  border: none;6487  padding: 0 0 0 4px;6488  cursor: pointer;6489  font-size: 0.625rem;6490  color: var(--peach-t3);6491  line-height: 1;6492}64936494/* ── Incoming pairing request overlay banner (Phase 7) ──────────────────6495   Renders over whatever view is showing. 60-second expiry; the popup ticks6496   the countdown each second and clears the banner when it hits zero. */6497.peach-pair-request-banner {6498  display: flex;6499  flex-direction: column;6500  gap: 8px;6501  padding: 10px 12px;6502  background: color-mix(in srgb, var(--peach-accent) 14%, var(--peach-bg-card));6503  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);6504  font-family: "IBM Plex Mono", monospace;6505  flex-shrink: 0;6506}65076508.peach-pair-toast {6509  padding: 8px 12px;6510  font-family: "IBM Plex Mono", monospace;6511  font-size: 0.75rem;6512  color: var(--peach-t1);6513  background: color-mix(in srgb, var(--peach-accent) 10%, var(--peach-bg-card));6514  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);6515  flex-shrink: 0;6516  text-align: center;6517}65186519.peach-pair-toast strong {6520  color: var(--peach-t0);6521  font-weight: 500;6522}65236524.peach-pair-request-header {6525  display: flex;6526  align-items: center;6527  gap: 8px;6528  font-size: 0.75rem;6529  color: var(--peach-t1);6530}65316532.peach-pair-request-mark {6533  font-size: 0.875rem;6534  display: inline-flex;6535  align-items: center;6536}65376538.peach-pair-request-icon {6539  width: 1em;6540  height: 1em;6541}65426543.peach-pair-request-title {6544  font-weight: 600;6545  color: var(--peach-t0);6546}65476548.peach-pair-request-countdown {6549  margin-left: auto;6550  font-variant-numeric: tabular-nums;6551  color: var(--peach-t2);6552  font-size: 0.6875rem;6553}65546555.peach-pair-request-body {6556  margin: 0;6557  font-size: 0.75rem;6558  color: var(--peach-t1);6559  line-height: 1.4;6560}65616562.peach-pair-request-body strong {6563  color: var(--peach-t0);6564  font-weight: 600;6565}65666567.peach-pair-request-actions {6568  display: flex;6569  gap: 8px;6570  justify-content: flex-end;6571}65726573/* ─── First-run onboarding ──────────────────────────────────────────────6574   Three-card welcome shown once before vault creation. The PeachScript6575   rune background drifts behind everything at very low opacity — it's6576   atmosphere, not focus. The cards themselves use the same panel6577   language as the rest of the popup so the transition into NewVault is6578   continuous, not a jarring switch of visual register. */65796580.peach-onboarding {6581  position: relative;6582  display: flex;6583  flex-direction: column;6584  width: 100%;6585  height: 100%;6586  padding: 16px 16px 18px;6587  box-sizing: border-box;6588  overflow: hidden;6589  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6590}65916592.peach-onboarding.is-completing {6593  animation: peach-onboard-exit 200ms ease-out forwards;6594}65956596.peach-rune-background {6597  position: absolute;6598  inset: 0;6599  width: 100%;6600  height: 100%;6601  pointer-events: none;6602  z-index: 0;6603  transition: opacity 500ms ease-out;6604}66056606.peach-onboarding.is-completing .peach-rune-background {6607  opacity: 0;6608}66096610.peach-onboarding-header {6611  position: relative;6612  z-index: 1;6613  display: flex;6614  align-items: center;6615  margin-bottom: 14px;6616}66176618.peach-onboarding-card {6619  position: relative;6620  z-index: 1;6621  flex: 1;6622  display: flex;6623  flex-direction: column;6624  gap: 10px;6625  padding: 22px 20px;6626  border-radius: 16px;6627  border: 1px solid var(--peach-t3);6628  background:6629    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6630  backdrop-filter: blur(3px);6631  -webkit-backdrop-filter: blur(3px);6632  box-shadow:6633    inset 0 1px 0 rgba(240, 232, 216, 0.04),6634    0 12px 28px rgba(0, 0, 0, 0.12);6635  cursor: pointer;6636  user-select: none;6637  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6638}66396640.peach-onboarding-card.is-exiting {6641  animation: peach-card-out 120ms ease-in forwards;6642  pointer-events: none;6643}66446645.peach-onboarding-card-headline {6646  margin: 0;6647  font-family: var(--font-display);6648  font-style: italic;6649  font-weight: 400;6650  font-size: 22px;6651  line-height: 1.05;6652  color: var(--peach-t0);6653  white-space: pre-line;6654}66556656.peach-onboarding-divider {6657  margin: 4px 0 6px;6658  border: 0;6659  border-top: 1px solid var(--peach-t3);6660  width: 100%;6661}66626663.peach-onboarding-body {6664  margin: 0;6665  font-size: 0.8125rem;6666  line-height: 1.6;6667  color: var(--peach-t1);6668}66696670.peach-onboarding-warning {6671  display: flex;6672  align-items: flex-start;6673  gap: 8px;6674  margin: 6px 0 0;6675  padding-top: 8px;6676  border-top: 1px dashed var(--peach-t3);6677  font-size: 0.8125rem;6678  line-height: 1.5;6679  color: var(--peach-t1);6680}66816682.peach-onboarding-warning-icon {6683  color: var(--peach-accent);6684  font-size: 0.8125rem;6685  line-height: 1.5;6686  flex: 0 0 auto;6687}66886689.peach-onboarding-nav {6690  position: relative;6691  z-index: 1;6692  display: flex;6693  align-items: center;6694  justify-content: space-between;6695  margin-top: 12px;6696  padding: 0 4px;6697}66986699.peach-onboarding-dots {6700  display: flex;6701  align-items: center;6702  gap: 6px;6703}67046705.peach-onboarding-dot {6706  width: 6px;6707  height: 6px;6708  border-radius: 50%;6709  background: var(--peach-t2);6710  transition: width 200ms ease, height 200ms ease, background 200ms ease;6711}67126713.peach-onboarding-dot.is-active {6714  width: 8px;6715  height: 8px;6716  background: var(--peach-accent);6717}67186719.peach-onboarding-next {6720  background: none;6721  border: none;6722  padding: 4px 0;6723  cursor: pointer;6724  font-family: "IBM Plex Mono", monospace;6725  font-size: 0.6875rem;6726  letter-spacing: 0.04em;6727  color: var(--peach-t1);6728  transition: color 150ms ease;6729}67306731.peach-onboarding-next:hover {6732  color: var(--peach-t0);6733}67346735.peach-onboarding-next:disabled {6736  opacity: 0.5;6737  cursor: default;6738}67396740.peach-onboarding-back {6741  background: none;6742  border: none;6743  padding: 4px 0;6744  cursor: pointer;6745  font-family: "IBM Plex Mono", monospace;6746  font-size: 0.6875rem;6747  letter-spacing: 0.04em;6748  color: var(--peach-t2);6749  transition: color 150ms ease;6750}67516752.peach-onboarding-back:hover {6753  color: var(--peach-t0);6754}67556756.peach-onboarding-back:disabled {6757  opacity: 0.5;6758  cursor: default;6759}67606761/* Reserve back-button width on the first card so the dots stay centred */6762.peach-onboarding-back-spacer {6763  width: 44px;6764}67656766.peach-onboarding-mobile-card-buttons {6767  display: flex;6768  flex-direction: column;6769  gap: 8px;6770  margin-top: 16px;6771}67726773@keyframes peach-onboard-enter {6774  from { opacity: 0; transform: translateY(20px); }6775  to   { opacity: 1; transform: translateY(0); }6776}67776778@keyframes peach-onboard-exit {6779  from { opacity: 1; }6780  to   { opacity: 0; }6781}67826783@keyframes peach-card-in {6784  from { opacity: 0; transform: translateX(12px); }6785  to   { opacity: 1; transform: translateX(0); }6786}67876788@keyframes peach-card-out {6789  from { opacity: 1; transform: translateX(0); }6790  to   { opacity: 0; transform: translateX(-12px); }6791}67926793/* ─── New vault screen — matched to onboarding card language ─────────── */67946795.peach-newvault {6796  position: relative;6797  display: flex;6798  flex-direction: column;6799  gap: 12px;6800  padding: 16px 16px 18px;6801  overflow: hidden;6802}68036804/* Suppress the warm-blob ambient art inherited from .lock-screen — the6805   new vault card now carries the visual weight. */6806.peach-newvault::before {6807  content: none;6808}68096810.peach-newvault-header {6811  position: relative;6812  z-index: 2;6813  display: flex;6814  align-items: center;6815  gap: 10px;6816  margin-bottom: 2px;6817}68186819.peach-newvault-back {6820  display: inline-flex;6821  align-items: center;6822  gap: 4px;6823  background: transparent;6824  border: none;6825  color: var(--peach-t2);6826  font-family: "IBM Plex Mono", monospace;6827  font-size: 0.625rem;6828  letter-spacing: 0.06em;6829  cursor: pointer;6830  padding: 4px 6px;6831  border-radius: 6px;6832  transition: color 120ms ease, background 120ms ease;6833}68346835.peach-newvault-back:hover {6836  color: var(--peach-t0);6837  background: rgba(240, 232, 216, 0.04);6838}68396840.peach-newvault-mark {6841  position: absolute;6842  right: -12px;6843  top: 6px;6844  width: 110px;6845  height: 110px;6846  pointer-events: none;6847  opacity: 0.10;6848  filter: saturate(0.9);6849  z-index: 0;6850}6851.peach-newvault-mark-art {6852  width: 100%;6853  height: 100%;6854}6855.peach-newvault-mark-art path:nth-child(1) {6856  fill: rgba(123, 144, 96, 0.88);6857}6858.peach-newvault-mark-art path:nth-child(2) {6859  stroke: rgba(94, 122, 66, 0.95);6860}68616862.peach-newvault-card {6863  position: relative;6864  z-index: 1;6865  display: flex;6866  flex-direction: column;6867  gap: 12px;6868  padding: 22px 20px 18px;6869  border-radius: 16px;6870  border: 1px solid var(--peach-t3);6871  background:6872    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6873  backdrop-filter: blur(3px);6874  -webkit-backdrop-filter: blur(3px);6875  box-shadow:6876    inset 0 1px 0 rgba(240, 232, 216, 0.04),6877    0 12px 28px rgba(0, 0, 0, 0.12);6878  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;6879}68806881.peach-newvault-headline {6882  margin: 0;6883  font-family: var(--font-display);6884  font-style: italic;6885  font-weight: 400;6886  font-size: 24px;6887  line-height: 1.05;6888  color: var(--peach-t0);6889  white-space: pre-line;6890}68916892.peach-newvault-divider {6893  margin: 2px 0 4px;6894  border: 0;6895  border-top: 1px solid var(--peach-t3);6896  width: 100%;6897}68986899.peach-newvault-field {6900  display: flex;6901  flex-direction: column;6902  gap: 4px;6903}69046905.peach-newvault-label-row {6906  display: flex;6907  align-items: center;6908  justify-content: space-between;6909}69106911/* Monospace input scaled to the card. Replaces the 22px unlock-input6912   so the placeholder no longer overflows and the field reads as part6913   of the same surface as the body copy. */6914.peach-newvault-input {6915  font-size: 0.875rem;6916  letter-spacing: 0.18em;6917  padding: 8px 0;6918}6919.peach-newvault-input::placeholder {6920  letter-spacing: 0.18em;6921  color: var(--peach-t2);6922}69236924.peach-newvault-hint {6925  margin: 2px 0 0;6926  font-family: "IBM Plex Mono", monospace;6927  font-size: 0.625rem;6928  color: var(--peach-t2);6929  letter-spacing: 0.04em;6930}69316932.peach-newvault-submit {6933  margin-top: 4px;6934}69356936.peach-newvault-warning {6937  display: flex;6938  align-items: flex-start;6939  gap: 8px;6940  margin: 4px 0 0;6941  padding-top: 10px;6942  border-top: 1px dashed var(--peach-t3);6943  font-size: 0.75rem;6944  line-height: 1.5;6945  color: var(--peach-t1);6946}69476948.peach-newvault-warning-icon {6949  color: var(--peach-accent);6950  font-size: 0.8125rem;6951  line-height: 1.4;6952  flex: 0 0 auto;6953}69546955.peach-newvault-footer {6956  position: relative;6957  z-index: 1;6958  display: flex;6959  flex-direction: column;6960  gap: 4px;6961  padding: 4px 4px 0;6962}69636964/* Settings body — warm accent gradient gives the glass something to blur against */6965.peach-settings-body {6966  background:6967    radial-gradient(6968      ellipse at 30% 20%,6969      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,6970      transparent 60%6971    );6972}69736974/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */6975/* ── Danger cards (Replace + Destroy) ────────────────────────────────────6976 * Two severity levels: "warn" for actions that are dangerous-but-recoverable6977 * (replacing the vault from a backup file) and "hazard" for actions that6978 * are absolutely irreversible (Panic). Both use the same card scaffold so6979 * they read as a pair, but the colour family signals the severity at a6980 * glance — yellow for caution, red for don't.6981 */6982.peach-danger-card {6983  --danger-tint: 235, 158, 52; /* amber */6984  display: flex;6985  flex-direction: column;6986  gap: 8px;6987  padding: 14px;6988  margin-top: 10px;6989  border-radius: 12px;6990  border: 1px solid rgba(var(--danger-tint), 0.32);6991  background:6992    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),6993    rgba(var(--danger-tint), 0.04);6994  box-shadow:6995    inset 0 1px 0 rgba(var(--danger-tint), 0.08),6996    0 0 24px rgba(var(--danger-tint), 0.04);6997  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;6998}69997000.peach-danger-card:hover {7001  border-color: rgba(var(--danger-tint), 0.55);7002  box-shadow:7003    inset 0 1px 0 rgba(var(--danger-tint), 0.12),7004    0 0 36px rgba(var(--danger-tint), 0.10);7005}70067007.peach-danger-card--hazard {7008  --danger-tint: 220, 38, 38; /* red */7009}70107011.peach-danger-card-head {7012  display: flex;7013  align-items: center;7014  gap: 10px;7015}70167017.peach-danger-card-glyph {7018  width: 28px;7019  height: 28px;7020  flex-shrink: 0;7021  display: flex;7022  align-items: center;7023  justify-content: center;7024  border-radius: 8px;7025  background: rgba(var(--danger-tint), 0.12);7026  color: rgba(var(--danger-tint), 0.95);7027  font-size: 1rem;7028  line-height: 1;7029}70307031.peach-danger-card-title {7032  margin: 0;7033  font-size: 0.8125rem;7034  font-weight: 600;7035  color: rgba(var(--danger-tint), 0.92);7036  letter-spacing: 0.01em;7037}70387039.peach-danger-card-copy {7040  margin: 0;7041  font-size: 0.6875rem;7042  line-height: 1.5;7043  color: var(--peach-t2);7044}70457046.peach-danger-card-button {7047  width: 100%;7048  padding: 9px;7049  margin-top: 4px;7050  background: transparent;7051  border: 1px solid rgba(var(--danger-tint), 0.45);7052  border-radius: 8px;7053  color: rgba(var(--danger-tint), 0.9);7054  font-size: 0.75rem;7055  font-weight: 500;7056  letter-spacing: 0.02em;7057  cursor: pointer;7058  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7059}70607061.peach-danger-card-button:hover {7062  background: rgba(var(--danger-tint), 0.10);7063  border-color: rgba(var(--danger-tint), 0.75);7064  color: rgb(var(--danger-tint));7065}70667067/* ── Panic flow (three-step destruction) ───────────────────────────────── */7068.peach-panic {7069  display: flex;7070  flex-direction: column;7071  flex: 1;7072  min-height: 0;7073  padding: 28px 20px 20px;7074  gap: 18px;7075  overflow-y: auto;7076  scrollbar-width: none;7077  -ms-overflow-style: none;7078}70797080.peach-panic::-webkit-scrollbar { display: none; }70817082.peach-panic-step2 {7083  background: rgba(220, 38, 38, 0.04);7084}70857086.peach-panic-step3 {7087  position: relative;7088  background: #0f0505;7089  color: #ffffff;7090  overflow: hidden;7091}70927093.peach-panic-rune-bg {7094  position: absolute;7095  inset: 0;7096  opacity: 0.22;7097  pointer-events: none;7098  overflow: hidden;7099}71007101.peach-panic-rune-bg canvas {7102  width: 100% !important;7103  height: 100% !important;7104}71057106.peach-panic-icon {7107  font-size: 32px;7108  color: rgb(220, 38, 38);7109  line-height: 1;7110}71117112.peach-panic-title {7113  margin: 0;7114  font-size: 18px;7115  font-weight: 500;7116  color: var(--peach-t1);7117}71187119.peach-panic-title--severe {7120  font-size: 20px;7121  font-weight: 700;7122  color: rgb(220, 38, 38);7123}71247125.peach-panic-body {7126  margin: 0;7127  font-size: 0.8125rem;7128  line-height: 1.55;7129  color: var(--peach-t2);7130}71317132.peach-panic-body--severe {7133  color: rgba(220, 38, 38, 0.85);7134}71357136.peach-panic-body--final {7137  font-size: 1rem;7138  font-weight: 700;7139  color: rgb(255, 80, 80);7140  line-height: 1.4;7141}71427143.peach-panic-body--final-intro {7144  font-size: 1rem;7145  color: #ffffff;7146  font-weight: 400;7147}71487149.peach-panic-divider {7150  height: 1px;7151  background: rgba(255, 255, 255, 0.08);7152  margin: 4px 0;7153}71547155.peach-panic-confirm-input {7156  width: 100%;7157  padding: 10px 12px;7158  background: rgba(255, 255, 255, 0.02);7159  border: 1px solid rgba(220, 38, 38, 0.4);7160  border-radius: 8px;7161  color: var(--peach-t1);7162  font-family: "IBM Plex Mono", monospace;7163  font-size: 0.875rem;7164  letter-spacing: 0.12em;7165  text-transform: uppercase;7166}71677168.peach-panic-confirm-input:focus {7169  outline: none;7170  border-color: rgb(220, 38, 38);7171}71727173.peach-panic-confirm-input--match {7174  border-color: rgb(220, 38, 38);7175  color: rgb(220, 38, 38);7176}71777178.peach-panic-confirm-label {7179  font-size: 0.6875rem;7180  color: var(--peach-t2);7181  margin: 0 0 -8px;7182  letter-spacing: 0.06em;7183}71847185.peach-panic-actions {7186  display: flex;7187  flex-direction: column;7188  gap: 10px;7189  margin-top: auto;7190}71917192.peach-panic-button {7193  width: 100%;7194  padding: 12px;7195  border-radius: 8px;7196  font-size: 0.8125rem;7197  cursor: pointer;7198  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;7199}72007201.peach-panic-button--primary {7202  background: var(--peach-accent);7203  border: 1px solid var(--peach-accent);7204  color: #ffffff;7205  font-weight: 600;7206}72077208.peach-panic-button--primary:hover {7209  background: color-mix(in srgb, var(--peach-accent) 88%, white);7210}72117212.peach-panic-button--danger {7213  background: rgb(220, 38, 38);7214  border: 1px solid rgb(220, 38, 38);7215  color: #ffffff;7216  font-weight: 600;7217}72187219.peach-panic-button--danger:disabled {7220  opacity: 0.35;7221  cursor: not-allowed;7222}72237224.peach-panic-button--ghost {7225  background: transparent;7226  border: 1px solid rgba(255, 255, 255, 0.18);7227  color: var(--peach-t2);7228}72297230.peach-panic-button--ghost:hover {7231  border-color: rgba(255, 255, 255, 0.32);7232  color: var(--peach-t1);7233}72347235.peach-panic-link {7236  background: transparent;7237  border: none;7238  padding: 4px 0;7239  color: rgba(220, 38, 38, 0.65);7240  font-size: 0.75rem;7241  cursor: pointer;7242  text-align: left;7243  text-decoration: underline;7244  text-underline-offset: 3px;7245}72467247.peach-panic-link:hover {7248  color: rgb(220, 38, 38);7249}72507251.peach-panic-bar {7252  background: rgb(220, 38, 38);7253  padding: 16px 20px;7254  margin: -28px -20px 0;7255  text-align: center;7256  font-size: 0.8125rem;7257  font-weight: 700;7258  letter-spacing: 0.12em;7259  color: #ffffff;7260}72617262.peach-panic-final-button {7263  width: 100%;7264  padding: 14px;7265  background: rgb(220, 38, 38);7266  border: none;7267  border-radius: 8px;7268  color: #ffffff;7269  font-size: 0.875rem;7270  font-weight: 700;7271  letter-spacing: 0.08em;7272  text-transform: uppercase;7273  cursor: pointer;7274  animation: peach-panic-pulse 2s ease-in-out infinite;7275}72767277.peach-settings-license {7278  margin-top: 10px;7279  padding-top: 10px;7280  border-top: 1px solid var(--peach-t3);7281}72827283.peach-settings-label {7284  font-size: 0.625rem;7285  letter-spacing: 0.08em;7286  color: var(--peach-t3);7287  display: block;7288  margin-bottom: 6px;7289}72907291.peach-settings-license-row {7292  display: flex;7293  align-items: center;7294  justify-content: space-between;7295  gap: 8px;7296}72977298.peach-settings-license-key {7299  font-family: 'IBM Plex Mono', monospace;7300  font-size: 0.75rem;7301  color: var(--peach-t0);7302  letter-spacing: 0.04em;7303  word-break: break-all;7304  flex: 1;7305  min-width: 0;7306}73077308.peach-settings-license-key--masked {7309  font-family: 'IBM Plex Mono', monospace;7310  font-size: 0.6rem;7311  color: var(--peach-t1);7312  letter-spacing: 0.18em;7313  user-select: none;7314}73157316.peach-settings-license-actions {7317  display: flex;7318  align-items: center;7319  gap: 2px;7320  flex-shrink: 0;7321}73227323.peach-settings-license-copy {7324  font-size: 0.6875rem;7325  color: var(--peach-accent);7326  background: transparent;7327  border: none;7328  cursor: pointer;7329  padding: 4px 8px;7330  border-radius: 4px;7331  flex-shrink: 0;7332  transition: opacity 150ms ease;7333}73347335.peach-settings-license-copy:hover {7336  opacity: 0.75;7337}73387339.peach-settings-license-toggle {7340  display: flex;7341  align-items: center;7342  justify-content: center;7343  background: transparent;7344  border: none;7345  cursor: pointer;7346  padding: 4px 6px;7347  border-radius: 4px;7348  color: var(--peach-t2);7349  transition: color 150ms ease;7350}73517352.peach-settings-license-toggle:hover {7353  color: var(--peach-t1);7354}73557356@keyframes peach-panic-pulse {7357  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }7358  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }7359}73607361[data-motion="reduce"] .peach-panic-final-button {7362  animation: none;7363}73647365/* Vault History — Settings → Vault sub-view */73667367.peach-history-toggle {7368  display: flex;7369  align-items: center;7370  justify-content: space-between;7371  width: 100%;7372  margin: 12px 0 4px;7373  padding: 0;7374  background: none;7375  border: none;7376  cursor: pointer;7377  font-family: "IBM Plex Mono", monospace;7378  font-size: 0.5rem;7379  text-transform: uppercase;7380  letter-spacing: 0.18em;7381  color: var(--peach-t2);7382}7383.peach-history-toggle:hover {7384  color: var(--peach-t1);7385}7386.peach-history-chevron {7387  transition: transform 200ms var(--peach-curve-arrival);7388  flex-shrink: 0;7389}7390.peach-history-chevron.is-open {7391  transform: rotate(180deg);7392}73937394.peach-history-list {7395  border: 1px solid var(--peach-border);7396  border-radius: 8px;7397  overflow: hidden;7398  margin: 8px 0 4px;7399}74007401.peach-history-row {7402  display: flex;7403  align-items: center;7404  justify-content: space-between;7405  padding: 9px 12px;7406  gap: 10px;7407  border-bottom: 1px solid var(--peach-border);7408}74097410.peach-history-row:last-child {7411  border-bottom: none;7412}74137414.peach-history-meta {7415  display: flex;7416  flex-direction: column;7417  gap: 2px;7418  min-width: 0;7419  flex: 1;7420}74217422.peach-history-time {7423  font-size: 0.75rem;7424  font-family: 'IBM Plex Mono', ui-monospace, monospace;7425  color: var(--peach-t0);7426  white-space: nowrap;7427  overflow: hidden;7428  text-overflow: ellipsis;7429}74307431.peach-history-sub {7432  font-size: 0.625rem;7433  color: var(--peach-t2);7434  letter-spacing: 0.06em;7435  text-transform: uppercase;7436  white-space: nowrap;7437  overflow: hidden;7438  text-overflow: ellipsis;7439}74407441.peach-history-btn {7442  flex-shrink: 0;7443  white-space: nowrap;7444  min-width: 56px;7445  text-align: center;7446}74477448.peach-history-btn.is-busy {7449  opacity: 0.65;7450}74517452.peach-history-footer {7453  font-size: 0.625rem;7454  color: var(--peach-t3);7455  letter-spacing: 0.05em;7456  text-align: right;7457  margin: 0;7458  padding: 2px 0 0;7459}74607461/* ── Context menu + swipe-copy flash ─────────────────────── */7462.peach-context-menu-backdrop {7463  position: fixed;7464  inset: 0;7465  background: rgba(0, 0, 0, 0.45);7466  z-index: 100;7467  display: flex;7468  align-items: flex-end;7469  justify-content: center;7470  animation: peach-ctx-fade 140ms ease both;7471}7472.peach-context-menu {7473  width: min(360px, calc(100vw - 24px));7474  margin-bottom: max(env(safe-area-inset-bottom), 12px);7475  background: var(--peach-bg);7476  border: 1px solid var(--peach-t3);7477  border-radius: 14px;7478  padding: 6px;7479  display: flex;7480  flex-direction: column;7481  gap: 2px;7482  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);7483  animation: peach-ctx-rise 200ms cubic-bezier(0.16, 1, 0.3, 1) both;7484}7485@keyframes peach-ctx-fade { from { opacity: 0; } to { opacity: 1; } }7486@keyframes peach-ctx-rise {7487  from { transform: translateY(16px); opacity: 0; }7488  to   { transform: translateY(0);    opacity: 1; }7489}7490.peach-context-menu-item {7491  background: transparent;7492  color: var(--peach-t0);7493  border: 0;7494  border-radius: 10px;7495  padding: 12px 14px;7496  text-align: left;7497  font: inherit;7498  cursor: pointer;7499}7500.peach-context-menu-item:hover,7501.peach-context-menu-item:focus-visible {7502  background: var(--peach-t3);7503}7504.peach-context-menu-item--danger {7505  color: var(--peach-health-bad, #d96868);7506}7507.peach-context-menu-item--cancel {7508  color: var(--peach-t2);7509  margin-top: 4px;7510  border-top: 1px solid var(--peach-t3);7511  border-radius: 0 0 10px 10px;7512}75137514/* Swipe-to-copy flash */7515.peach-entry-row.is-copy-flash {7516  animation: peach-copy-flash 600ms ease both;7517}7518@keyframes peach-copy-flash {7519  0%   { background: transparent; }7520  20%  { background: rgba(217, 153, 51, 0.32); }7521  100% { background: transparent; }7522}75237524html { font-size: 16px; }75257526/* ── Recovery word entry ─────────────────────────────────────────── */7527.peach-lock-recover-link {7528  display: block;7529  width: 100%;7530  margin-top: 12px;7531  background: none;7532  border: none;7533  font-family: "IBM Plex Mono", monospace;7534  font-size: 0.625rem;7535  letter-spacing: 0.06em;7536  color: var(--peach-t2);7537  cursor: pointer;7538  text-align: center;7539  padding: 4px;7540  transition: color 120ms ease;7541}7542.peach-lock-recover-link:hover {7543  color: var(--peach-t0);7544}75457546.lock-screen--recovery {7547  display: flex;7548  flex-direction: column;7549  align-items: stretch;7550  padding: 12px 20px 24px;7551  overflow: hidden;7552}75537554.peach-recovery-nav {7555  display: flex;7556  align-items: center;7557  position: relative;7558  z-index: 1;7559  margin-bottom: 4px;7560}75617562/* Mask runes to the top decorative band only — keep inputs and the7563   bottom CTA button clear. The bottom of the popup is reserved for7564   submit buttons; rendering runes there overlaps the button glyph. */7565.peach-rune-background--recovery {7566  -webkit-mask-image: linear-gradient(7567    to bottom,7568    black 0px, black 85px,7569    transparent 110px,7570    transparent 100%7571  );7572  mask-image: linear-gradient(7573    to bottom,7574    black 0px, black 85px,7575    transparent 110px,7576    transparent 100%7577  );7578}75797580.peach-recovery-header {7581  text-align: center;7582  margin-bottom: 16px;7583  margin-top: 4px;7584}7585.peach-recovery-header .peach-onboarding-headline {7586  font-size: 1.25rem;7587  font-weight: 300;7588  letter-spacing: 0.02em;7589  margin: 0 0 4px;7590}7591.peach-recovery-header .peach-hint {7592  font-family: "IBM Plex Mono", monospace;7593  font-size: 0.625rem;7594  color: var(--peach-t2);7595  letter-spacing: 0.04em;7596  margin: 0;7597}75987599/* 12-word grid: 2 columns × 6 rows */7600.peach-recovery-grid {7601  display: grid;7602  grid-template-columns: repeat(2, 1fr);7603  gap: 12px 20px;7604  width: 100%;7605  margin-bottom: 0;7606}76077608.peach-recovery-word-slot {7609  display: flex;7610  align-items: center;7611  gap: 6px;7612  min-width: 0;7613}76147615.peach-recovery-word-index {7616  font-family: "IBM Plex Mono", monospace;7617  font-size: 0.5rem;7618  color: rgba(255, 255, 255, 0.35);7619  min-width: 14px;7620  flex-shrink: 0;7621  text-align: right;7622  letter-spacing: 0.04em;7623}76247625.peach-recovery-word-input {7626  flex: 1;7627  min-width: 0;7628  background: transparent;7629  border: none;7630  border-bottom: 1px solid rgba(255, 255, 255, 0.22);7631  color: var(--peach-t0);7632  font-family: "IBM Plex Mono", monospace;7633  font-size: 0.6875rem;7634  letter-spacing: 0.06em;7635  padding: 5px 2px 4px;7636  outline: none;7637  text-transform: lowercase;7638  transition: border-color 120ms ease;7639}7640.peach-recovery-word-input::placeholder {7641  color: rgba(255, 255, 255, 0.18);7642}7643.peach-recovery-word-input:focus {7644  border-bottom-color: var(--peach-accent);7645}76467647.peach-recovery-submit {7648  width: 100%;7649  margin-top: auto;7650}76517652.peach-recovery-new-password-form {7653  width: 100%;7654  display: flex;7655  flex-direction: column;7656  gap: 16px;7657  margin-bottom: 8px;7658}7659.peach-recovery-new-password-form .peach-newvault-field {7660  display: flex;7661  flex-direction: column;7662  gap: 4px;7663}76647665/* ── Recovery words display (post-create) ────────────────────────── */7666.lock-screen--recovery-display {7667  display: flex;7668  flex-direction: column;7669  align-items: stretch;7670  padding: 0 20px 20px;7671  min-height: 0;7672  overflow-y: auto;7673}76747675.peach-recovery-words-display {7676  width: 100%;7677  margin-bottom: 16px;7678  border: 1px solid var(--peach-t3);7679  border-radius: 8px;7680  padding: 12px 14px;7681  background: rgba(245, 240, 234, 0.04);7682}76837684.peach-recovery-words-label {7685  font-family: "IBM Plex Mono", monospace;7686  font-size: 0.5rem;7687  letter-spacing: 0.08em;7688  color: var(--peach-t2);7689  text-transform: uppercase;7690  margin-bottom: 10px;7691}76927693.peach-recovery-word-list {7694  list-style: none;7695  margin: 0;7696  padding: 0;7697  display: grid;7698  grid-template-columns: repeat(2, 1fr);7699  gap: 6px 16px;7700}77017702.peach-recovery-word-item {7703  display: flex;7704  align-items: baseline;7705  gap: 5px;7706}77077708.peach-recovery-word-num {7709  font-family: "IBM Plex Mono", monospace;7710  font-size: 0.5rem;7711  color: var(--peach-t2);7712  width: 14px;7713  flex: 0 0 14px;7714  text-align: right;7715  letter-spacing: 0.04em;7716  font-variant-numeric: tabular-nums;7717}77187719.peach-recovery-download-btn {7720  display: block;7721  margin: 10px auto 0;7722  padding: 4px 10px;7723  background: transparent;7724  border: 1px solid var(--peach-border);7725  border-radius: 6px;7726  color: var(--peach-t2);7727  font-family: "IBM Plex Mono", monospace;7728  font-size: 0.5625rem;7729  letter-spacing: 0.06em;7730  text-transform: lowercase;7731  cursor: pointer;7732  transition: border-color 0.15s, color 0.15s;7733}77347735.peach-recovery-download-btn:hover {7736  border-color: var(--peach-accent);7737  color: var(--peach-t0);7738}77397740.peach-recovery-word-text {7741  font-family: "IBM Plex Mono", monospace;7742  font-size: 0.6875rem;7743  letter-spacing: 0.06em;7744  color: var(--peach-t0);7745  text-transform: lowercase;7746}77477748.peach-hint--warning {7749  color: var(--peach-accent);7750  font-style: italic;7751}7752.peach-hint--success {7753  color: var(--peach-t2);7754  font-family: "IBM Plex Mono", monospace;7755  font-size: 0.625rem;7756  letter-spacing: 0.06em;7757}77587759/* Confirmation step */7760.peach-recovery-confirm {7761  width: 100%;7762  flex: 1;7763  display: flex;7764  flex-direction: column;7765}7766.peach-recovery-confirm-label {7767  font-family: "IBM Plex Mono", monospace;7768  font-size: 0.5625rem;7769  letter-spacing: 0.04em;7770  color: var(--peach-t2);7771  text-align: center;7772  margin: 0 0 12px;7773}7774.peach-recovery-confirm-fields {7775  display: flex;7776  flex-direction: column;7777  gap: 14px;7778  margin-bottom: 10px;7779}7780.peach-recovery-confirm-field {7781  display: flex;7782  align-items: center;7783  gap: 8px;7784}7785.peach-recovery-confirm-num {7786  font-family: "IBM Plex Mono", monospace;7787  font-size: 0.5rem;7788  color: var(--peach-t2);7789  min-width: 44px;7790  letter-spacing: 0.04em;7791}7792.peach-recovery-confirm-input {7793  flex: 1;7794  background: transparent;7795  border: none;7796  border-bottom: 1px solid var(--peach-t3);7797  color: var(--peach-t0);7798  font-family: "IBM Plex Mono", monospace;7799  font-size: 0.6875rem;7800  letter-spacing: 0.06em;7801  padding: 4px 2px 3px;7802  outline: none;7803  text-transform: lowercase;7804  transition: border-color 120ms ease;7805}7806.peach-recovery-confirm-input:focus {7807  border-bottom-color: var(--peach-accent);7808}7809.peach-recovery-confirm-input:disabled {7810  opacity: 0.4;7811  cursor: not-allowed;7812}7813.peach-recovery-confirm-btn {7814  width: 100%;7815  margin-top: auto;7816}78177818/* ============================================================7819   Sync info sheet7820   ============================================================ */78217822.peach-sync-info-backdrop {7823  position: fixed;7824  inset: 0;7825  z-index: 200;7826  background: rgba(0, 0, 0, 0.55);7827  display: flex;7828  align-items: flex-end;7829  animation: peach-fade-in 200ms ease forwards;7830}78317832@keyframes peach-fade-in {7833  from { opacity: 0; }7834  to   { opacity: 1; }7835}78367837.peach-sync-info-sheet {7838  width: 100%;7839  background: var(--peach-bg-card, var(--peach-bg));7840  border-top-left-radius: 20px;7841  border-top-right-radius: 20px;7842  padding: 12px 24px 32px;7843  display: flex;7844  flex-direction: column;7845  gap: 20px;7846  animation: peach-sheet-up 280ms cubic-bezier(0, 0, 0, 1) forwards;7847}78487849@keyframes peach-sheet-up {7850  from { transform: translateY(100%); }7851  to   { transform: translateY(0); }7852}78537854.peach-sync-info-handle {7855  width: 36px;7856  height: 4px;7857  border-radius: 2px;7858  background: var(--peach-border);7859  margin: 0 auto 4px;7860  flex-shrink: 0;7861}78627863.peach-sync-info-title {7864  font-family: 'Cormorant Garamond', serif;7865  font-style: italic;7866  font-size: 26px;7867  font-weight: 600;7868  color: var(--peach-t0);7869  margin: 0;7870  line-height: 1.2;7871}78727873.peach-sync-info-body {7874  display: flex;7875  flex-direction: column;7876  gap: 14px;7877}78787879.peach-sync-info-point {7880  display: flex;7881  gap: 12px;7882  align-items: flex-start;7883  font-size: 14px;7884  color: var(--peach-t2);7885  line-height: 1.6;7886  margin: 0;7887}78887889.peach-sync-info-icon {7890  color: var(--peach-accent);7891  font-size: 16px;7892  flex-shrink: 0;7893  margin-top: 1px;7894}78957896.peach-sync-info-actions {7897  display: flex;7898  flex-direction: column;7899  gap: 12px;7900  margin-top: 4px;7901}79027903.peach-sync-info-pro-link {7904  background: none;7905  border: none;7906  font-size: 13px;7907  color: var(--peach-t3);7908  cursor: pointer;7909  padding: 0;7910  font-family: inherit;7911  text-align: center;7912  transition: color 150ms ease;7913}79147915.peach-sync-info-pro-link:hover {7916  color: var(--peach-accent);7917}79187919.peach-btn--full {7920  width: 100%;7921}79227923/* ── Sync screen ── */79247925.peach-sync-coming-soon {7926  display: flex;7927  align-items: flex-start;7928  gap: 10px;7929  padding: 12px 14px;7930  background: var(--peach-s1);7931  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);7932  border-radius: 10px;7933}7934.peach-sync-coming-soon__icon {7935  flex-shrink: 0;7936  color: var(--peach-accent);7937  margin-top: 1px;7938  line-height: 0;7939}7940.peach-sync-coming-soon__title {7941  font-family: 'Cormorant Garamond', serif;7942  font-weight: 500;7943  font-size: 13px;7944  color: var(--peach-accent);7945  margin: 0 0 5px;7946  line-height: 1.3;7947}7948.peach-sync-coming-soon__body {7949  font-size: 12px;7950  color: var(--peach-t1);7951  line-height: 1.55;7952  margin: 0;7953}79547955.peach-sync-screen {7956  display: flex;7957  flex-direction: column;7958  height: 100%;7959}79607961.peach-sync-content {7962  flex: 1;7963  overflow-y: auto;7964  padding: 24px 20px 40px;7965  display: flex;7966  flex-direction: column;7967  gap: 24px;7968}79697970/* Intro (State A) */7971.peach-sync-headline {7972  font-family: 'Cormorant Garamond', serif;7973  font-style: italic;7974  font-size: 28px;7975  font-weight: 600;7976  color: var(--peach-t0);7977  margin: 0 0 10px;7978  line-height: 1.2;7979}79807981.peach-sync-intro-body {7982  font-size: 14px;7983  color: var(--peach-t1);7984  line-height: 1.6;7985  margin: 0;7986}79877988.peach-sync-pro-note {7989  display: flex;7990  flex-direction: column;7991  gap: 8px;7992  background: var(--peach-t3);7993  border-radius: 10px;7994  padding: 12px 14px;7995}79967997.peach-sync-pro-note-text {7998  font-size: 12px;7999  color: var(--peach-t2);8000  line-height: 1.5;8001  margin: 0;8002}80038004.peach-sync-pro-link {8005  background: none;8006  border: none;8007  font-size: 12px;8008  color: var(--peach-accent);8009  cursor: pointer;8010  padding: 0;8011  font-family: inherit;8012  text-align: left;8013}80148015/* Status (State C) */8016.peach-sync-status {8017  padding: 12px 0;8018  border-bottom: 1px solid var(--peach-border);8019}80208021.peach-sync-status-row {8022  display: flex;8023  align-items: center;8024  gap: 8px;8025}80268027.peach-sync-dot {8028  width: 7px;8029  height: 7px;8030  border-radius: 50%;8031  flex-shrink: 0;8032}80338034.peach-sync-dot--green { background: var(--peach-health-ok); }8035.peach-sync-dot--amber { background: var(--peach-accent); }80368037.peach-sync-status-text {8038  font-family: 'IBM Plex Mono', monospace;8039  font-size: 11px;8040  color: var(--peach-t2);8041}80428043/* Paired devices */8044.peach-sync-section {8045  display: flex;8046  flex-direction: column;8047  gap: 2px;8048}80498050.peach-sync-section-label {8051  font-family: 'IBM Plex Mono', monospace;8052  font-size: 10px;8053  letter-spacing: 0.1em;8054  color: var(--peach-t3);8055  margin: 0 0 10px;8056}80578058.peach-sync-device-row {8059  display: flex;8060  justify-content: space-between;8061  align-items: baseline;8062  padding: 10px 0;8063  border-bottom: 1px solid var(--peach-border);8064  gap: 12px;8065}80668067.peach-sync-device-name {8068  font-size: 14px;8069  color: var(--peach-t1);8070}80718072.peach-sync-device-meta {8073  font-family: 'IBM Plex Mono', monospace;8074  font-size: 11px;8075  color: var(--peach-t3);8076  white-space: nowrap;8077}80788079.peach-sync-hub-note {8080  padding: 14px 16px;8081  border: 1px solid var(--peach-border);8082  border-radius: 10px;8083  display: flex;8084  flex-direction: column;8085  gap: 6px;8086  background: rgba(var(--peach-accent-rgb, 201, 137, 58), 0.04);8087}80888089.peach-sync-hub-note-title {8090  font-size: 13px;8091  font-weight: 600;8092  color: var(--peach-t0);8093  margin: 0;8094}80958096.peach-sync-hub-note-body {8097  font-size: 12px;8098  color: var(--peach-t2);8099  line-height: 1.6;8100  margin: 0;8101}81028103/* Action buttons */8104.peach-sync-actions {8105  display: flex;8106  gap: 10px;8107  flex-wrap: wrap;8108}81098110/* Upgrade prompt (State B) */8111.peach-sync-upgrade {8112  display: flex;8113  flex-direction: column;8114  gap: 12px;8115  padding: 16px;8116  border: 1px solid var(--peach-border);8117  border-radius: 10px;8118}81198120.peach-sync-upgrade-text {8121  font-size: 13px;8122  color: var(--peach-t2);8123  line-height: 1.6;8124  margin: 0;8125}81268127/* Network note */8128.peach-sync-network-note {8129  font-size: 12px;8130  color: var(--peach-t3);8131  line-height: 1.6;8132  margin: 0;8133}81348135/* Advanced */8136.peach-sync-advanced {8137  margin-top: auto;8138  padding-top: 16px;8139  border-top: 1px solid var(--peach-border);8140}81418142.peach-sync-advanced-toggle {8143  display: flex;8144  align-items: center;8145  gap: 8px;8146  background: none;8147  border: none;8148  font-family: 'IBM Plex Mono', monospace;8149  font-size: 11px;8150  letter-spacing: 0.08em;8151  color: var(--peach-t3);8152  cursor: pointer;8153  padding: 0;8154  text-transform: uppercase;8155}81568157.peach-sync-advanced-chevron {8158  display: inline-block;8159  transition: transform 200ms ease;8160  font-size: 10px;8161}81628163.peach-sync-advanced-chevron.is-open {8164  transform: rotate(90deg);8165}81668167.peach-sync-advanced-content {8168  margin-top: 14px;8169}81708171.peach-sync-advanced-row {8172  display: flex;8173  justify-content: space-between;8174  align-items: center;8175  gap: 16px;8176}81778178.peach-sync-advanced-title {8179  font-size: 14px;8180  color: var(--peach-t1);8181  margin: 0 0 2px;8182}81838184.peach-sync-advanced-subtitle {8185  font-size: 12px;8186  color: var(--peach-t3);8187  margin: 0;8188  line-height: 1.5;8189}81908191/* ── Add Device — Android scan tabs ─────────────────────────────────────── */81928193.peach-pairing-tabs {8194  display: flex;8195  border: 1px solid var(--peach-border);8196  border-radius: 8px;8197  overflow: hidden;8198  margin-bottom: 4px;8199}82008201.peach-pairing-tab {8202  flex: 1;8203  padding: 10px 0;8204  background: none;8205  border: none;8206  font-family: 'IBM Plex Mono', monospace;8207  font-size: 11px;8208  letter-spacing: 0.06em;8209  color: var(--peach-t2);8210  cursor: pointer;8211  transition: background 150ms, color 150ms;8212}82138214.peach-pairing-tab.is-active {8215  background: var(--peach-accent);8216  color: #fff;8217  font-weight: 600;8218}82198220.peach-pairing-tab:not(.is-active):active {8221  background: var(--peach-border);8222}82238224/* Camera view */8225.peach-pairing-camera-container {8226  position: relative;8227  width: 100%;8228  aspect-ratio: 1;8229  border-radius: 12px;8230  overflow: hidden;8231  background: #000;8232  flex-shrink: 0;8233}82348235.peach-pairing-video {8236  width: 100%;8237  height: 100%;8238  object-fit: cover;8239}82408241.peach-pairing-scan-frame {8242  position: absolute;8243  top: 50%;8244  left: 50%;8245  transform: translate(-50%, -50%);8246  width: 60%;8247  aspect-ratio: 1;8248  border: 2px solid var(--peach-accent);8249  border-radius: 8px;8250  pointer-events: none;8251}82528253/* ── Notes Mode ── */82548255/* Overlay that crossfades over the vault */8256.peach-notes-overlay {8257  position: fixed;8258  inset: 0;8259  z-index: 90;8260  opacity: 0;8261  pointer-events: none;8262  animation: peach-mode-in 220ms ease-in forwards;8263}82648265.peach-notes-overlay.is-visible {8266  opacity: 1;8267  pointer-events: auto;8268}82698270@keyframes peach-mode-in {8271  from { opacity: 0; }8272  to   { opacity: 1; }8273}82748275/* Top-level notes surface */8276.peach-notes-mode {8277  position: absolute;8278  inset: 0;8279  background: var(--peach-bg);8280  display: flex;8281  flex-direction: column;8282}82838284/* Rune canvas positioned behind content */8285.peach-note-rune-canvas {8286  position: absolute;8287  inset: 0;8288  width: 100%;8289  height: 100%;8290  pointer-events: none;8291  z-index: 0;8292}82938294/* TOC wrapper */8295.peach-notes-toc-wrapper {8296  position: absolute;8297  inset: 0;8298  z-index: 1;8299  opacity: 1;8300  pointer-events: auto;8301  transition: opacity 200ms ease;8302}83038304.peach-notes-toc-wrapper.is-hidden {8305  opacity: 0;8306  pointer-events: none;8307}83088309/* Editor wrapper */8310.peach-notes-editor-wrapper {8311  position: absolute;8312  inset: 0;8313  z-index: 2;8314  opacity: 0;8315  pointer-events: none;8316  transition: opacity 200ms ease;8317}83188319.peach-notes-editor-wrapper.is-visible {8320  opacity: 1;8321  pointer-events: auto;8322}83238324/* TOC inner */8325.peach-notes-toc {8326  position: relative;8327  display: flex;8328  flex-direction: column;8329  height: 100%;8330  padding-top: env(safe-area-inset-top, 0px);8331  padding-bottom: env(safe-area-inset-bottom, 0px);8332}83338334/* Shared header */8335.peach-notes-header {8336  display: flex;8337  align-items: center;8338  padding: 12px 16px;8339  gap: 12px;8340  flex-shrink: 0;8341  min-height: 52px;8342  position: relative;8343  z-index: 2;8344}83458346.peach-notes-back {8347  font-size: 22px;8348  color: var(--peach-t2);8349  background: none;8350  border: none;8351  padding: 4px;8352  cursor: pointer;8353  line-height: 1;8354  flex-shrink: 0;8355  transition: color 150ms ease;8356  -webkit-tap-highlight-color: transparent;8357}83588359.peach-notes-back:active { color: var(--peach-t0); }83608361.peach-notes-header-title {8362  flex: 1;8363  font-family: 'Cormorant Garamond', serif;8364  font-style: italic;8365  font-size: 22px;8366  color: var(--peach-t0);8367  text-align: center;8368}83698370.peach-notes-header-title.is-breadcrumb {8371  font-family: 'IBM Plex Mono', monospace;8372  font-style: normal;8373  font-size: 11px;8374  color: var(--peach-t3);8375  letter-spacing: 0.08em;8376  text-transform: uppercase;8377  cursor: pointer;8378}83798380.peach-notes-header-actions {8381  display: flex;8382  gap: 8px;8383  flex-shrink: 0;8384}83858386.peach-notes-header-btn {8387  width: 36px;8388  height: 36px;8389  display: flex;8390  align-items: center;8391  justify-content: center;8392  background: none;8393  border: none;8394  color: var(--peach-t2);8395  cursor: pointer;8396  border-radius: 8px;8397  font-size: 16px;8398  transition: color 150ms ease, background 150ms ease;8399  -webkit-tap-highlight-color: transparent;8400}84018402.peach-notes-header-btn:active {8403  background: rgba(255,255,255,0.06);8404  color: var(--peach-t0);8405}84068407/* Inline search bar */8408.peach-notes-search-input {8409  flex: 1;8410  background: none;8411  border: none;8412  outline: none;8413  font-family: 'IBM Plex Mono', monospace;8414  font-size: 13px;8415  color: var(--peach-t0);8416  padding: 4px 0;8417  letter-spacing: 0.02em;8418}84198420.peach-notes-search-input::placeholder {8421  color: var(--peach-t3);8422}84238424/* TOC list */8425.peach-notes-list-container {8426  flex: 1;8427  overflow-y: auto;8428  overflow-x: hidden;8429  scrollbar-width: none;8430  -webkit-overflow-scrolling: touch;8431  overscroll-behavior: contain;8432  position: relative;8433  z-index: 1;8434}84358436.peach-notes-list-container::-webkit-scrollbar { display: none; }84378438/* Note row */8439.peach-note-row {8440  position: relative;8441  display: grid;8442  grid-template-columns: 44px 8px 1fr 8px auto;8443  align-items: center;8444  min-height: 72px;8445  padding: 16px 20px;8446  border-bottom: 0.5px solid var(--peach-border);8447  cursor: pointer;8448  overflow: hidden;8449  touch-action: pan-y;8450  user-select: none;8451  -webkit-user-select: none;8452  -webkit-tap-highlight-color: transparent;8453}84548455.peach-note-row:first-child {8456  border-top: 0.5px solid var(--peach-border);8457}84588459.peach-note-row:active {8460  background: rgba(255,255,255,0.02);8461}84628463.peach-note-numeral {8464  font-family: 'Cormorant Garamond', serif;8465  font-style: italic;8466  font-size: 15px;8467  color: var(--peach-accent);8468  text-align: right;8469  line-height: 1;8470  flex-shrink: 0;8471}84728473.peach-note-title-gap { /* grid spacer */ }84748475.peach-note-title {8476  font-family: 'Cormorant Garamond', serif;8477  font-style: italic;8478  font-size: 18px;8479  color: var(--peach-t0);8480  line-height: 1.3;8481  min-width: 0;8482  overflow-wrap: break-word;8483}84848485.peach-note-title-match {8486  color: var(--peach-accent);8487}84888489.peach-note-date {8490  font-family: 'IBM Plex Mono', monospace;8491  font-size: 11px;8492  color: var(--peach-t2);8493  white-space: nowrap;8494  text-align: right;8495  flex-shrink: 0;8496  grid-column: 5;8497}84988499/* Swipe underlays */8500.peach-note-row-underlay {8501  position: absolute;8502  inset: 0;8503  display: flex;8504  align-items: center;8505  padding: 0 24px;8506  font-family: 'IBM Plex Mono', monospace;8507  font-size: 11px;8508  letter-spacing: 0.1em;8509  pointer-events: none;8510  z-index: 0;8511}85128513.peach-note-row-underlay--delete {8514  background: #8B2020;8515  color: rgba(255,255,255,0.9);8516  justify-content: flex-end;8517}85188519.peach-note-row-underlay--archive {8520  background: var(--peach-accent);8521  color: #0C0A06;8522  justify-content: flex-start;8523}85248525/* Delete confirm strip */8526.peach-note-delete-confirm {8527  position: absolute;8528  inset: 0;8529  background: var(--peach-bg);8530  display: flex;8531  align-items: center;8532  gap: 12px;8533  padding: 0 20px;8534  font-family: 'IBM Plex Mono', monospace;8535  font-size: 11px;8536  color: var(--peach-t1);8537  letter-spacing: 0.04em;8538  animation: peach-delete-confirm-in 150ms ease both;8539  z-index: 10;8540}85418542@keyframes peach-delete-confirm-in {8543  from { opacity: 0; }8544  to   { opacity: 1; }8545}85468547.peach-note-delete-confirm-btn {8548  background: #8B2020;8549  color: rgba(255,255,255,0.9);8550  border: none;8551  border-radius: 6px;8552  padding: 4px 10px;8553  font-family: 'IBM Plex Mono', monospace;8554  font-size: 10px;8555  cursor: pointer;8556  letter-spacing: 0.06em;8557}85588559.peach-note-delete-cancel-btn {8560  background: none;8561  border: none;8562  color: var(--peach-t3);8563  font-family: 'IBM Plex Mono', monospace;8564  font-size: 10px;8565  cursor: pointer;8566  letter-spacing: 0.06em;8567  padding: 4px 6px;8568}85698570/* + New note button */8571.peach-notes-new-btn {8572  font-family: 'IBM Plex Mono', monospace;8573  font-size: 12px;8574  color: var(--peach-t3);8575  text-align: center;8576  padding: 28px 20px calc(28px + env(safe-area-inset-bottom, 0px));8577  background: none;8578  border: none;8579  width: 100%;8580  cursor: pointer;8581  letter-spacing: 0.04em;8582  transition: color 150ms ease;8583  -webkit-tap-highlight-color: transparent;8584}85858586.peach-notes-new-btn:active { color: var(--peach-accent); }85878588/* Empty state */8589.peach-notes-empty {8590  display: flex;8591  flex-direction: column;8592  align-items: center;8593  justify-content: center;8594  flex: 1;8595  padding: 48px 32px;8596  gap: 16px;8597}85988599.peach-notes-empty-text {8600  font-family: 'Cormorant Garamond', serif;8601  font-style: italic;8602  font-size: 20px;8603  color: var(--peach-t3);8604  text-align: center;8605  margin: 0;8606  line-height: 1.4;8607  white-space: pre-line;8608}86098610/* ── Editor surface ── */86118612.peach-note-editor-surface {8613  position: absolute;8614  inset: 0;8615  background: var(--peach-bg);8616  display: flex;8617  flex-direction: column;8618  padding-top: env(safe-area-inset-top, 0px);8619}86208621.peach-note-editor-scroll {8622  flex: 1;8623  overflow-y: auto;8624  overflow-x: hidden;8625  scrollbar-width: none;8626  -webkit-overflow-scrolling: touch;8627  padding: 0 24px 120px;8628  position: relative;8629  z-index: 1;8630}86318632.peach-note-editor-scroll::-webkit-scrollbar { display: none; }86338634/* Desktop toolbar (always visible above body) */8635.peach-note-toolbar-desktop-inline {8636  display: flex;8637  align-items: center;8638  gap: 2px;8639  padding: 6px 0 12px;8640  margin-bottom: 4px;8641  border-bottom: 0.5px solid var(--peach-border);8642}86438644/* Title field */8645.peach-note-title-field {8646  font-family: 'Cormorant Garamond', serif;8647  font-style: italic;8648  font-size: 32px;8649  font-weight: 600;8650  color: var(--peach-t0);8651  line-height: 1.2;8652  padding: 8px 0 0;8653  outline: none;8654  min-height: 44px;8655  word-break: break-word;8656  position: relative;8657  z-index: 1;8658}86598660.peach-note-title-field:empty::before {8661  content: attr(data-placeholder);8662  color: var(--peach-t3);8663  pointer-events: none;8664}86658666/* Hairline separator */8667.peach-note-hairline {8668  height: 0.5px;8669  background: var(--peach-border);8670  margin: 12px 0 20px;8671  position: relative;8672  z-index: 1;8673}86748675/* Body field */8676.peach-note-body-field {8677  font-family: 'DM Sans', sans-serif;8678  font-size: 16px;8679  color: var(--peach-t0);8680  line-height: 1.85;8681  padding: 0;8682  outline: none;8683  min-height: 240px;8684  word-break: break-word;8685  position: relative;8686  z-index: 1;8687}86888689.peach-note-body-field:empty::before {8690  content: attr(data-placeholder);8691  color: var(--peach-t3);8692  font-style: italic;8693  pointer-events: none;8694}86958696.peach-note-body-field h2 {8697  font-family: 'Cormorant Garamond', serif;8698  font-style: italic;8699  font-size: 22px;8700  font-weight: 600;8701  color: var(--peach-t0);8702  margin: 20px 0 8px;8703}87048705.peach-note-body-field blockquote {8706  border-left: 2px solid var(--peach-accent);8707  margin: 12px 0;8708  padding-left: 16px;8709  color: var(--peach-t1);8710  font-style: italic;8711}87128713.peach-note-body-field ul,8714.peach-note-body-field ol {8715  padding-left: 20px;8716  margin: 8px 0;8717}87188719.peach-note-body-field li {8720  margin: 4px 0;8721}87228723.peach-note-body-field hr {8724  border: none;8725  border-top: 0.5px solid var(--peach-border);8726  margin: 16px 0;8727}87288729/* Saved indicator */8730.peach-note-saved-indicator {8731  font-family: 'IBM Plex Mono', monospace;8732  font-size: 11px;8733  color: var(--peach-t3);8734  letter-spacing: 0.04em;8735  text-align: right;8736  padding: 6px 24px;8737  flex-shrink: 0;8738  transition: opacity 300ms ease;8739  pointer-events: none;8740  position: relative;8741  z-index: 1;8742}87438744/* Mobile keyboard toolbar */8745.peach-note-toolbar-mobile {8746  display: flex;8747  align-items: center;8748  padding: 8px 16px;8749  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));8750  background: var(--peach-bg);8751  border-top: 0.5px solid var(--peach-border);8752  gap: 4px;8753  flex-shrink: 0;8754  position: relative;8755  z-index: 10;8756}87578758.peach-note-toolbar-btn {8759  min-width: 36px;8760  height: 36px;8761  display: flex;8762  align-items: center;8763  justify-content: center;8764  background: none;8765  border: none;8766  border-radius: 8px;8767  cursor: pointer;8768  font-size: 14px;8769  color: var(--peach-t1);8770  font-family: 'DM Sans', sans-serif;8771  font-weight: 600;8772  transition: background 100ms ease, color 100ms ease;8773  -webkit-tap-highlight-color: transparent;8774}87758776.peach-note-toolbar-btn--italic { font-style: italic; }8777.peach-note-toolbar-btn.is-active { color: var(--peach-accent); }8778.peach-note-toolbar-btn:active { background: rgba(255,255,255,0.08); }87798780.peach-note-toolbar-divider {8781  width: 0.5px;8782  height: 20px;8783  background: var(--peach-border);8784  margin: 0 4px;8785  flex-shrink: 0;8786}87878788.peach-note-toolbar-spacer { flex: 1; }87898790/* Desktop: larger headline in TOC */8791@media (min-width: 400px) {8792  .peach-notes-header-title:not(.is-breadcrumb) {8793    font-size: 32px;8794  }87958796  .peach-note-row {8797    min-height: 64px;8798    padding: 14px 16px;8799  }8800}88018802/* Flying title — shared element during expansion/collapse */88038804/* ─── Light theme overrides ───────────────────────────────────────────────8805   Tokens that cannot be expressed as variable substitutions — hardcoded8806   context-specific values that need separate light-mode rules. */88078808/* Settings section headers: use text-label (#79766F) per restoration brief —8809   muted gray-warm gives ENTRIES / MAINTENANCE / DATA / VAULT HISTORY8810   presence without fighting the light parchment background. */8811.light .peach-settings-sub-label,8812[data-theme="light"] .peach-settings-sub-label,8813.light .peach-settings-nav-label,8814[data-theme="light"] .peach-settings-nav-label {8815  color: #79766F;8816}88178818/* Secondary action buttons (ghost / subtle): filled with input-well surface8819   so they read as recessed against the parchment card background. */8820.light .peach-btn--ghost:not(.peach-icon-btn),8821[data-theme="light"] .peach-btn--ghost:not(.peach-icon-btn) {8822  background: #EEE7DD;8823  border-color: #DDD5CB;8824  color: #1A1208;8825}8826.light .peach-icon-btn,8827[data-theme="light"] .peach-icon-btn {8828  background: transparent;8829  border-color: transparent;8830}8831.light .peach-btn--subtle,8832[data-theme="light"] .peach-btn--subtle {8833  background: #EEE7DD;8834  border-color: #DDD5CB;8835}88368837/* Wide secondary action button on the lock screen — override the8838   hardcoded dark-mode rgba values with warm parchment equivalents. */8839.light .peach-lock-secondary,8840[data-theme="light"] .peach-lock-secondary {8841  background: #EEE7DD;8842  border-color: #DDD5CB;8843  color: #1A1208;8844}8845.light .peach-lock-secondary:hover,8846[data-theme="light"] .peach-lock-secondary:hover {8847  background: #F0E9DF;8848}88498850/* Entry row hover: bg-row lifts the row above the card surface. */8851.light .peach-entry-row:hover,8852[data-theme="light"] .peach-entry-row:hover {8853  background: #F2EBE1;8854}8855.light .peach-entry-row.is-active,8856[data-theme="light"] .peach-entry-row.is-active {8857  background: #F2EBE1;8858}8859.light .peach-entry-row.is-selected,8860[data-theme="light"] .peach-entry-row.is-selected {8861  background: #F5EDE2;8862}88638864/* ──────────────────────────────────────────────────────────────────────────8865   Chirp pairing flow — bird-stage animation (Phase 1)8866   See src/popup/components/ChirpPairingFlow.tsx and the brief §6.2.8867   Three-act animation gated on the [data-phase] attribute of8868   .peach-chirp-pair; child layers (birds, chirp arcs, flight wave, dot)8869   each react via either pose class or visibility flag.8870   Tokens: accent surfaces use var(--peach-accent); bird illustration8871   colours are baked into the SVG per the brand-peach exception in §3.1.8872   ────────────────────────────────────────────────────────────────────── */88738874.peach-chirp-pair {8875  position: absolute;8876  inset: 0;8877  z-index: 3;8878  display: flex;8879  flex-direction: column;8880  padding: 14px 12px 12px;8881  width: 100%;8882  box-sizing: border-box;8883  gap: 0;8884  background:8885    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),8886    var(--peach-bg);8887  color: var(--peach-t0);8888  overflow-y: auto;8889  overflow-x: hidden;8890  scrollbar-width: none;8891  isolation: isolate;8892  animation: peach-chirp-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;8893}8894@keyframes peach-chirp-overlay-in {8895  from { opacity: 0; transform: translateY(8px); }8896  to   { opacity: 1; transform: translateY(0); }8897}8898.peach-chirp-pair::-webkit-scrollbar { width: 0; height: 0; display: none; }8899.peach-chirp-pair::before {8900  content: '';8901  position: absolute;8902  inset: 0;8903  border-radius: inherit;8904  pointer-events: none;8905  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);8906  z-index: 0;8907}8908.peach-chirp-pair > * { position: relative; z-index: 1; }89098910/* Header --------------------------------------------------------------- */8911.peach-chirp-head {8912  display: flex; align-items: center; gap: 10px;8913}8914.peach-chirp-back {8915  width: 32px; height: 32px;8916  display: inline-flex; align-items: center; justify-content: center;8917  background: transparent;8918  border: none;8919  border-radius: 8px;8920  color: var(--peach-t1);8921  cursor: pointer;8922  transition: color 0.15s ease, box-shadow 0.15s ease;8923}8924.peach-chirp-back:hover {8925  color: var(--peach-accent);8926  box-shadow: 0 0 10px color-mix(in srgb, var(--peach-accent) 24%, transparent);8927}8928.peach-chirp-title {8929  font-family: var(--font-display, Georgia, serif);8930  font-style: italic;8931  font-size: 24px;8932  font-weight: 500;8933  letter-spacing: 0.005em;8934  color: var(--peach-t0);8935  line-height: 1;8936}8937.peach-chirp-head-spacer { flex: 1; }89388939/* Chip row ------------------------------------------------------------- */8940.peach-chirp-chip-row {8941  display: flex;8942  align-items: center;8943  justify-content: flex-start;8944  margin-top: 12px;8945}8946.peach-chirp-chip {8947  display: inline-flex; align-items: center; gap: 8px;8948  padding: 5px 10px 5px 8px;8949  background: color-mix(in srgb, var(--peach-accent) 16%, transparent);8950  border: 1px solid color-mix(in srgb, var(--peach-accent) 32%, transparent);8951  border-radius: 999px;8952  font-family: var(--peach-mono, ui-monospace, monospace);8953  font-size: 11px;8954  letter-spacing: 0.04em;8955  color: color-mix(in srgb, var(--peach-accent) 70%, var(--peach-t0));8956}8957.peach-chirp-chip-dot {8958  width: 6px; height: 6px; border-radius: 50%;8959  background: var(--peach-accent);8960  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-accent) 50%, transparent);8961}8962.peach-chirp-chip[data-phase="paired"] {8963  background: color-mix(in srgb, #4f9eda 12%, transparent);8964  border-color: color-mix(in srgb, #4f9eda 28%, transparent);8965  color: #76b6e8;8966}8967.peach-chirp-chip[data-phase="paired"] .peach-chirp-chip-dot {8968  background: #76b6e8;8969  box-shadow: 0 0 6px rgba(118, 182, 232, 0.55);8970}8971.peach-chirp-chip[data-phase="timeout"],8972.peach-chirp-chip[data-phase="mic_denied"],8973.peach-chirp-chip[data-phase="version_mismatch"],8974.peach-chirp-chip[data-phase="handshake_failed"] {8975  background: color-mix(in srgb, var(--peach-warn, #d29257) 14%, transparent);8976  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 28%, transparent);8977  color: var(--peach-warn, #d29257);8978}8979.peach-chirp-chip[data-phase="timeout"] .peach-chirp-chip-dot,8980.peach-chirp-chip[data-phase="mic_denied"] .peach-chirp-chip-dot,8981.peach-chirp-chip[data-phase="version_mismatch"] .peach-chirp-chip-dot,8982.peach-chirp-chip[data-phase="handshake_failed"] .peach-chirp-chip-dot {8983  background: var(--peach-warn, #d29257);8984  box-shadow: 0 0 6px color-mix(in srgb, var(--peach-warn, #d29257) 55%, transparent);8985}89868987/* Bird stage ----------------------------------------------------------- */8988.peach-chirp-stage {8989  position: relative;8990  margin: 14px 0 8px;8991  height: 180px;8992  border-radius: 12px;8993  background:8994    radial-gradient(ellipse 70% 60% at 50% 30%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),8995    radial-gradient(ellipse 90% 100% at 50% 100%, color-mix(in srgb, #d8748a 14%, transparent), transparent 70%),8996    color-mix(in srgb, var(--peach-bg) 92%, #000);8997  border: 1px solid color-mix(in srgb, var(--peach-t0) 8%, transparent);8998  overflow: hidden;8999  isolation: isolate;9000}9001.peach-chirp-stage::after {9002  content: '';9003  position: absolute;9004  left: 12%; right: 12%;9005  bottom: 36px;9006  height: 1px;9007  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 14%, transparent), transparent);9008}90099010.peach-chirp-bird-slot {9011  position: absolute;9012  bottom: 8px;9013  width: 100px;9014  height: 110px;9015  display: flex;9016  align-items: flex-end;9017  justify-content: center;9018}9019.peach-chirp-bird-slot-desktop { left: 28px; }9020.peach-chirp-bird-slot-mobile { right: 28px; }90219022/* Mobile bird hops in from the right when handshake begins */9023.peach-chirp-bird-slot-mobile {9024  opacity: 1;9025  transform: translateX(-6px);9026  transition: opacity 0.4s ease, transform 0.65s cubic-bezier(.5, 1.7, .4, 1);9027}9028.peach-chirp-stage.act-listening .peach-chirp-bird-slot-mobile,9029.peach-chirp-stage.act-chirping .peach-chirp-bird-slot-mobile,9030.peach-chirp-stage.act-idle .peach-chirp-bird-slot-mobile {9031  opacity: 0;9032  transform: translateX(60px) rotate(8deg);9033}9034.peach-chirp-stage.act-handshake .peach-chirp-bird-slot-desktop,9035.peach-chirp-stage.act-paired .peach-chirp-bird-slot-desktop {9036  transform: translateX(6px);9037  transition: transform 0.5s cubic-bezier(.4, 1.4, .4, 1);9038}90399040/* Paired: both birds bob together */9041.peach-chirp-stage.act-paired .peach-chirp-bird-slot {9042  animation: peach-chirp-happy-bob 1.2s ease-in-out infinite;9043}9044.peach-chirp-stage.act-paired .peach-chirp-bird-slot-mobile { animation-delay: 0.2s; }9045.peach-chirp-stage.act-paired .peach-chirp-bird-slot-desktop { --bb-x: 6px; }9046.peach-chirp-stage.act-paired .peach-chirp-bird-slot-mobile { --bb-x: -6px; }9047@keyframes peach-chirp-happy-bob {9048  0%, 100% { transform: translateX(var(--bb-x, 0)) translateY(0); }9049  50%      { transform: translateX(var(--bb-x, 0)) translateY(-3px); }9050}90519052/* Bird internal -------------------------------------------------------- */9053.peach-chirp-bird {9054  width: 108px;9055  height: 108px;9056  transform-origin: 50% 95%;9057}9058.peach-chirp-bird svg { width: 100%; height: 100%; overflow: visible; }90599060.peach-chirp-bird-body {9061  transform-origin: 50% 80%;9062  animation: peach-chirp-bird-bob 2.4s ease-in-out infinite;9063}9064@keyframes peach-chirp-bird-bob {9065  0%, 100% { transform: translateY(0) scale(1, 1); }9066  50%      { transform: translateY(-1.5px) scale(1.01, 0.99); }9067}90689069.peach-chirp-bird-eye-group {9070  animation: peach-chirp-blink 5.2s steps(1, end) infinite;9071  transform-origin: center;9072  transform-box: fill-box;9073}9074@keyframes peach-chirp-blink {9075  0%, 92%, 96%, 100% { transform: scaleY(1); }9076  94%                { transform: scaleY(0.05); }9077}90789079/* Pose: chirping — beak opens, head bobs, aura blooms */9080.peach-chirp-bird-pose-chirping .peach-chirp-bird-body {9081  animation:9082    peach-chirp-bird-bob 2.4s ease-in-out infinite,9083    peach-chirp-squeeze 1.7s ease-in-out infinite;9084}9085@keyframes peach-chirp-squeeze {9086  0%, 70%, 100% { transform-origin: 50% 85%; }9087  78%           { transform: scale(1.04, 0.96) translateY(1px); }9088  86%           { transform: scale(0.98, 1.02); }9089}9090.peach-chirp-bird-pose-chirping .peach-chirp-bird-head-group {9091  animation: peach-chirp-head-bob 1.7s ease-in-out infinite;9092}9093@keyframes peach-chirp-head-bob {9094  0%, 70%, 100% { transform: translateY(0) rotate(0); }9095  78%           { transform: translateY(-3px) rotate(-4deg); }9096  86%           { transform: translateY(-1px) rotate(-2deg); }9097}9098.peach-chirp-bird-pose-chirping .peach-chirp-bird-beak {9099  animation: peach-chirp-beak-open 1.7s ease-in-out infinite;9100}9101@keyframes peach-chirp-beak-open {9102  0%, 70%, 100% { transform: rotate(0) scaleX(1); }9103  78%           { transform: rotate(-14deg) scaleX(1.05) translateY(-1px); }9104  86%           { transform: rotate(-6deg); }9105}9106.peach-chirp-bird-pose-chirping .peach-chirp-bird-aura {9107  animation: peach-chirp-aura 1.7s ease-in-out infinite;9108}9109@keyframes peach-chirp-aura {9110  0%, 100% { opacity: 0; }9111  50%      { opacity: 0.8; }9112}9113.peach-chirp-bird-pose-chirping .peach-chirp-bird-tail {9114  animation: peach-chirp-tail-twitch 1.7s ease-in-out infinite;9115  transform-origin: 100% 50%;9116}9117@keyframes peach-chirp-tail-twitch {9118  0%, 75%, 100% { transform: rotate(0); }9119  82%           { transform: rotate(-3deg) translateX(-1px); }9120}91219122/* Pose: attentive — head tilts toward partner */9123.peach-chirp-bird-pose-attentive .peach-chirp-bird-head-group {9124  animation: peach-chirp-head-tilt 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9125}9126@keyframes peach-chirp-head-tilt {9127  0%   { transform: rotate(0) translateY(0); }9128  60%  { transform: rotate(-10deg) translateY(-1px) translateX(2px); }9129  100% { transform: rotate(-6deg); }9130}9131.peach-chirp-bird-pose-attentive .peach-chirp-bird-tail {9132  animation: peach-chirp-tail-cock 0.6s cubic-bezier(.4, 1.6, .5, 1) both;9133  transform-origin: 100% 50%;9134}9135@keyframes peach-chirp-tail-cock {9136  0%   { transform: rotate(0); }9137  100% { transform: rotate(-4deg); }9138}91399140/* Pose: happy — wing flutter, tuft perk, tail wag */9141.peach-chirp-bird-pose-happy .peach-chirp-bird-wing {9142  transform-origin: 80% 60%;9143  animation: peach-chirp-wing-flutter 0.32s ease-in-out 5;9144}9145@keyframes peach-chirp-wing-flutter {9146  0%, 100% { transform: rotate(0) translateY(0); }9147  50%      { transform: rotate(-16deg) translateY(-2px); }9148}9149.peach-chirp-bird-pose-happy .peach-chirp-bird-tuft {9150  transform-origin: 0% 100%;9151  animation: peach-chirp-tuft-perk 0.4s ease-in-out 3;9152}9153@keyframes peach-chirp-tuft-perk {9154  0%, 100% { transform: rotate(0); }9155  50%      { transform: rotate(-15deg) translateY(-1px); }9156}9157.peach-chirp-bird-pose-happy .peach-chirp-bird-tail {9158  transform-origin: 100% 50%;9159  animation: peach-chirp-tail-wag 0.5s ease-in-out 4;9160}9161@keyframes peach-chirp-tail-wag {9162  0%, 100% { transform: rotate(0); }9163  25%      { transform: rotate(6deg); }9164  75%      { transform: rotate(-6deg); }9165}9166.peach-chirp-bird-pose-happy .peach-chirp-bird-head-group {9167  animation: peach-chirp-head-perk 0.5s ease-out;9168}9169@keyframes peach-chirp-head-perk {9170  0%   { transform: translateY(0); }9171  40%  { transform: translateY(-3px) rotate(2deg); }9172  100% { transform: translateY(0); }9173}91749175/* Pose: sad — body droops forward */9176.peach-chirp-bird-pose-sad .peach-chirp-bird-body {9177  transform: translateY(5px) rotate(-2deg);9178  animation: none;9179}9180.peach-chirp-bird-pose-sad .peach-chirp-bird-head-group {9181  transform: translateY(4px) rotate(8deg);9182}9183.peach-chirp-bird-pose-sad .peach-chirp-bird-tuft { transform: rotate(15deg) translateY(2px); }9184.peach-chirp-bird-pose-sad .peach-chirp-bird-tail { transform: rotate(8deg) translateY(2px); }91859186.peach-chirp-bird-pose-hidden { opacity: 0; }91879188/* Chirp arcs ----------------------------------------------------------- */9189.peach-chirp-arcs {9190  position: absolute;9191  top: 18px;9192  width: 96px;9193  height: 70px;9194  pointer-events: none;9195}9196.peach-chirp-arcs-right { right: -60px; }9197.peach-chirp-arcs-left  { left: -60px; transform: scaleX(-1); }9198.peach-chirp-arc {9199  position: absolute;9200  top: 50%;9201  left: 0;9202  width: 40px;9203  height: 40px;9204  margin-top: -20px;9205  border: 1.2px solid #f4d5a8;9206  border-color: transparent #f4d5a8 transparent transparent;9207  border-radius: 50%;9208  opacity: 0;9209  animation: peach-chirp-arc-expand 1.7s cubic-bezier(.2, .6, .2, 1) infinite;9210}9211@keyframes peach-chirp-arc-expand {9212  0%   { transform: scale(0.4); opacity: 0; }9213  20%  { opacity: 0.9; }9214  100% { transform: scale(1.6); opacity: 0; }9215}92169217/* Flight wave ---------------------------------------------------------- */9218.peach-chirp-flight-track {9219  position: absolute;9220  inset: 32px 36px 38px 36px;9221  pointer-events: none;9222}9223.peach-chirp-flight-wave {9224  position: absolute;9225  top: 8px;9226  left: 76px;9227  right: 76px;9228  height: 60px;9229  width: auto;9230  opacity: 0;9231  transition: opacity 0.15s ease;9232  stroke: #f4d5a8;9233  fill: none;9234}9235.peach-chirp-flight-wave[data-from="mobile"] { transform: scaleX(-1); }9236.peach-chirp-flight-wave.is-visible { opacity: 1; }9237.peach-chirp-flight-path,9238.peach-chirp-flight-path-2 {9239  stroke-dasharray: 240;9240  stroke-dashoffset: 240;9241  stroke-linecap: round;9242  fill: none;9243}9244.peach-chirp-flight-path   { stroke-width: 1.6; stroke: #f4d5a8; }9245.peach-chirp-flight-path-2 { stroke-width: 1; stroke: #f4d5a8; opacity: 0.55; }9246.peach-chirp-flight-wave.is-visible .peach-chirp-flight-path {9247  animation: peach-chirp-fly 700ms cubic-bezier(.2,.6,.2,1) forwards;9248}9249.peach-chirp-flight-wave.is-visible .peach-chirp-flight-path-2 {9250  animation: peach-chirp-fly 700ms cubic-bezier(.2,.6,.2,1) 80ms forwards;9251}9252@keyframes peach-chirp-fly {9253  0%   { stroke-dashoffset: 240; opacity: 0; }9254  20%  { opacity: 1; }9255  100% { stroke-dashoffset: -120; opacity: 0; }9256}92579258/* Connection dot ------------------------------------------------------- */9259.peach-chirp-dot {9260  position: absolute;9261  top: 50%; left: 50%;9262  transform: translate(-50%, -50%);9263  width: 40px; height: 40px;9264  opacity: 0;9265  pointer-events: none;9266  transition: opacity 0.3s ease;9267  color: var(--peach-accent);9268}9269.peach-chirp-dot.is-visible { opacity: 1; }9270.peach-chirp-dot-glow {9271  position: absolute; top: 50%; left: 50%;9272  transform: translate(-50%, -50%);9273  width: 38px; height: 38px;9274  border-radius: 50%;9275  filter: blur(10px);9276  opacity: 0.55;9277  background: var(--peach-accent);9278  animation: peach-chirp-dot-bloom 1.4s ease-out;9279}9280.peach-chirp-dot-core {9281  position: absolute; top: 50%; left: 50%;9282  transform: translate(-50%, -50%);9283  width: 8px; height: 8px;9284  border-radius: 50%;9285  background: var(--peach-accent);9286  box-shadow: 0 0 12px currentColor;9287  animation: peach-chirp-dot-core 1.4s ease-out;9288}9289.peach-chirp-dot-ring {9290  position: absolute; top: 50%; left: 50%;9291  width: 60px; height: 60px;9292  transform: translate(-50%, -50%);9293  animation: peach-chirp-dot-ring 1.4s linear;9294  stroke: var(--peach-accent);9295}9296@keyframes peach-chirp-dot-bloom {9297  0%   { width: 4px; height: 4px; opacity: 0; }9298  35%  { width: 60px; height: 60px; opacity: 0.7; }9299  100% { width: 38px; height: 38px; opacity: 0.55; }9300}9301@keyframes peach-chirp-dot-core {9302  0%   { width: 0; height: 0; }9303  35%  { width: 12px; height: 12px; }9304  100% { width: 8px; height: 8px; }9305}9306@keyframes peach-chirp-dot-ring {9307  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }9308  35%  { transform: translate(-50%, -50%) scale(1.0); opacity: 0.6; }9309  100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; }9310}93119312/* Motes — drift upward across the stage */9313.peach-chirp-motes {9314  position: absolute;9315  inset: 0;9316  pointer-events: none;9317}9318.peach-chirp-mote {9319  position: absolute;9320  width: 2px; height: 2px;9321  background: color-mix(in srgb, var(--peach-text) 35%, transparent);9322  border-radius: 50%;9323  bottom: 32px;9324  left: calc(50% + (var(--mote-i, 0) - 4) * 24px);9325  opacity: 0;9326  animation: peach-chirp-mote-drift 6s linear infinite;9327  animation-delay: calc(var(--mote-i, 0) * 0.7s);9328}9329@keyframes peach-chirp-mote-drift {9330  0%   { transform: translateY(0); opacity: 0; }9331  10%  { opacity: 0.6; }9332  90%  { opacity: 0.1; }9333  100% { transform: translateY(-120px) translateX(8px); opacity: 0; }9334}93359336/* Status copy ---------------------------------------------------------- */9337.peach-chirp-copy-host {9338  margin: 4px 4px 10px;9339  text-align: center;9340  min-height: 50px;9341}9342.peach-chirp-copy {9343  animation: peach-chirp-copy-in 0.35s ease both;9344}9345@keyframes peach-chirp-copy-in {9346  from { opacity: 0; transform: translateY(4px); }9347  to   { opacity: 1; transform: translateY(0); }9348}9349.peach-chirp-headline {9350  font-family: var(--font-display, Georgia, serif);9351  font-style: italic;9352  font-size: 20px;9353  font-weight: 500;9354  line-height: 1.2;9355  letter-spacing: 0.005em;9356  color: var(--peach-t0);9357  margin-bottom: 6px;9358}9359.peach-chirp-copy-listening .peach-chirp-headline,9360.peach-chirp-copy-chirping .peach-chirp-headline,9361.peach-chirp-copy-idle .peach-chirp-headline {9362  font-family: inherit;9363  font-style: normal;9364  font-weight: 500;9365  font-size: 15px;9366  color: var(--peach-t0);9367  letter-spacing: 0;9368}9369.peach-chirp-copy-paired .peach-chirp-headline {9370  color: var(--peach-t0);9371  font-weight: 600;9372}9373.peach-chirp-sub {9374  font-size: 12.5px;9375  line-height: 1.45;9376  color: var(--peach-t1);9377  max-width: 280px;9378  margin: 0 auto;9379  text-wrap: pretty;9380}93819382/* Status action -------------------------------------------------------- */9383.peach-chirp-action {9384  margin: 2px 4px 10px;9385  margin-top: auto;9386  display: flex;9387  flex-direction: column;9388  gap: 8px;9389}9390.peach-chirp-mic-notice {9391  margin: 0;9392  font-size: 0.625rem;9393  color: var(--peach-t2);9394  line-height: 1.4;9395}9396.peach-chirp-action-waiting {9397  display: flex;9398  align-items: center;9399  justify-content: space-between;9400  gap: 12px;9401}9402.peach-chirp-cancel {9403  min-width: 96px;9404}9405.peach-chirp-listening {9406  display: inline-flex; align-items: center; gap: 4px;9407  font-family: var(--peach-mono, ui-monospace, monospace);9408  font-size: 9.5px;9409  text-transform: uppercase;9410  letter-spacing: 0.12em;9411  color: var(--peach-t1);9412  padding: 8px 10px;9413}9414.peach-chirp-listen-dot {9415  width: 4px; height: 4px;9416  border-radius: 50%;9417  background: color-mix(in srgb, var(--peach-accent) 55%, transparent);9418  animation: peach-chirp-listen-pulse 1.2s ease-in-out infinite;9419}9420.peach-chirp-listen-dot:nth-child(2) { animation-delay: 0.2s; }9421.peach-chirp-listen-dot:nth-child(3) { animation-delay: 0.4s; }9422.peach-chirp-listen-label { margin-left: 6px; }9423@keyframes peach-chirp-listen-pulse {9424  0%, 100% { opacity: 0.25; transform: scale(0.9); }9425  50%      { opacity: 1;     transform: scale(1.15); }9426}94279428.peach-chirp-action-handshake {9429  display: flex;9430  flex-direction: column;9431  align-items: center;9432  gap: 8px;9433  padding: 8px 4px;9434}9435.peach-chirp-meter {9436  width: 100%;9437  max-width: 280px;9438  height: 2px;9439  background: color-mix(in srgb, var(--peach-t0) 10%, transparent);9440  border-radius: 2px;9441  position: relative;9442  overflow: hidden;9443}9444.peach-chirp-meter-bar {9445  position: absolute;9446  top: 0; bottom: 0;9447  width: 30%;9448  left: -30%;9449  background: linear-gradient(90deg, transparent, var(--peach-accent), transparent);9450  animation: peach-chirp-meter-sweep 1.4s ease-in-out infinite;9451}9452@keyframes peach-chirp-meter-sweep {9453  0%   { left: -30%; }9454  100% { left: 100%; }9455}9456.peach-chirp-meter-label {9457  font-family: var(--peach-mono, ui-monospace, monospace);9458  font-size: 9.5px;9459  text-transform: uppercase;9460  letter-spacing: 0.14em;9461  color: var(--peach-t1);9462}94639464.peach-chirp-action-paired {9465  display: flex;9466  align-items: center;9467  gap: 10px;9468}9469.peach-chirp-device-confirm {9470  flex: 1;9471  display: inline-flex;9472  align-items: center;9473  gap: 8px;9474  padding: 9px 10px 9px 12px;9475  border-radius: 10px;9476  background: color-mix(in srgb, #76b6e8 12%, transparent);9477  border: 1px solid color-mix(in srgb, #76b6e8 30%, transparent);9478  font-size: 12.5px;9479  color: var(--peach-t0);9480  min-width: 0;9481}9482.peach-chirp-device-confirm-glyph {9483  display: inline-flex;9484  color: #76b6e8;9485}9486.peach-chirp-device-confirm-name {9487  flex: 1;9488  overflow: hidden;9489  text-overflow: ellipsis;9490  white-space: nowrap;9491}9492.peach-chirp-device-confirm-trust {9493  font-family: var(--peach-mono, ui-monospace, monospace);9494  font-size: 9.5px;9495  text-transform: uppercase;9496  letter-spacing: 0.1em;9497  color: #76b6e8;9498  padding: 2px 6px;9499  border-radius: 4px;9500  background: color-mix(in srgb, #76b6e8 14%, transparent);9501}9502.peach-chirp-done {9503  min-width: 80px;9504}9505.peach-chirp-retry {9506  align-self: center;9507  display: block;9508  margin: 6px auto 0;9509  min-width: 120px;9510}9511.peach-chirp-mic-help {9512  font-size: 12px;9513  color: var(--peach-t1);9514  text-align: center;9515  max-width: 320px;9516  margin: 0 auto;9517}95189519/* Rest state — bird stage at idle pose, primary CTA + paired list */9520.peach-chirp-pair[data-phase="idle"] .peach-chirp-stage {9521  /* Slightly shorter stage when at rest — no flight wave or motes to fill it */9522  height: 160px;9523}9524.peach-chirp-pair-start {9525  width: 100%;9526  display: inline-flex;9527  align-items: center;9528  justify-content: center;9529  gap: 8px;9530  padding: 11px 14px;9531  border-radius: 10px;9532  background: var(--peach-accent);9533  border: 1px solid color-mix(in srgb, var(--peach-accent) 80%, #000);9534  color: #1a0905;9535  font-family: inherit;9536  font-size: 13px;9537  font-weight: 600;9538  letter-spacing: 0.01em;9539  cursor: pointer;9540  transition: filter 0.15s ease, transform 0.1s ease;9541}9542.peach-chirp-pair-start:hover { filter: brightness(1.08); }9543.peach-chirp-pair-start:active { transform: translateY(1px); }95449545.peach-chirp-paired-section {9546  margin-top: 14px;9547  display: flex;9548  flex-direction: column;9549  gap: 8px;9550}9551.peach-chirp-paired-heading {9552  margin: 0;9553  font-family: var(--peach-mono, ui-monospace, monospace);9554  font-size: 10px;9555  font-weight: 500;9556  letter-spacing: 0.14em;9557  text-transform: uppercase;9558  color: var(--peach-t1);9559}95609561/* Footer --------------------------------------------------------------- */9562.peach-chirp-foot {9563  margin: 10px -4px -2px;9564  margin-top: auto;9565}9566.peach-chirp-foot-divider {9567  height: 1px;9568  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--peach-t0) 18%, transparent), transparent);9569  margin-bottom: 10px;9570}9571.peach-chirp-foot-text {9572  font-size: 11px;9573  line-height: 1.5;9574  color: var(--peach-t1);9575  text-align: center;9576  padding: 0 4px;9577  text-wrap: pretty;9578}95799580/* Screen-reader-only live region. Kept off the visual flow but read by9581   assistive tech as the pairing phase advances. */9582.peach-sr-only {9583  position: absolute;9584  width: 1px; height: 1px;9585  padding: 0; margin: -1px;9586  overflow: hidden;9587  clip: rect(0, 0, 0, 0);9588  white-space: nowrap;9589  border: 0;9590}95919592/* Reduced motion — stage simplifies to opacity transitions only */9593@media (prefers-reduced-motion: reduce) {9594  .peach-chirp-bird-body,9595  .peach-chirp-bird-head-group,9596  .peach-chirp-bird-beak,9597  .peach-chirp-bird-wing,9598  .peach-chirp-bird-tuft,9599  .peach-chirp-bird-tail,9600  .peach-chirp-bird-eye-group,9601  .peach-chirp-bird-aura,9602  .peach-chirp-arc,9603  .peach-chirp-flight-path,9604  .peach-chirp-flight-path-2,9605  .peach-chirp-dot-glow,9606  .peach-chirp-dot-core,9607  .peach-chirp-dot-ring,9608  .peach-chirp-mote,9609  .peach-chirp-meter-bar,9610  .peach-chirp-listen-dot,9611  .peach-chirp-bird-slot,9612  .peach-chirp-bird-slot-mobile {9613    animation: none !important;9614    transition: opacity 0.2s linear !important;9615  }9616}96179618/* ─────────────────────────────────────────────────────────────────9619   Settings → Sync surface (v3 ChirpSync). Wraps the same bird9620   animation used by the pairing flow with a paired-devices list and9621   the "Pair a device" CTA.9622   ───────────────────────────────────────────────────────────────── */9623.peach-chirp-settings {9624  position: absolute;9625  inset: 0;9626  z-index: 3;9627  display: flex;9628  flex-direction: column;9629  gap: 18px;9630  padding: 14px 12px 12px;9631  width: 100%;9632  box-sizing: border-box;9633  overflow-y: auto;9634  overflow-x: hidden;9635  /* Same warm Chirp surface as the pairing screen — unifies the two views. */9636  background:9637    radial-gradient(ellipse 70% 50% at 30% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent), transparent 70%),9638    var(--peach-bg);9639  color: var(--peach-t0);9640  isolation: isolate;9641  /* Hide native scrollbar — content fits 99% of the time and a chunky9642     gutter ruins the surface. */9643  scrollbar-width: none;9644  animation: peach-chirp-overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;9645}9646.peach-chirp-settings::-webkit-scrollbar { width: 0; height: 0; display: none; }9647.peach-chirp-settings::before {9648  content: '';9649  position: absolute;9650  inset: 0;9651  pointer-events: none;9652  background: radial-gradient(ellipse 90% 30% at 50% 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent), transparent 70%);9653  z-index: 0;9654}9655.peach-chirp-settings > * { position: relative; z-index: 1; }96569657.peach-chirp-settings--pairing {9658  padding: 0;9659  align-items: stretch;9660  justify-content: stretch;9661  background: none;9662  isolation: auto;9663}9664.peach-chirp-settings--pairing::before { display: none; }96659666.peach-chirp-settings-header {9667  display: flex;9668  align-items: center;9669  gap: 10px;9670}9671.peach-chirp-settings-title {9672  margin: 0;9673  font-family: var(--font-display, Georgia, serif);9674  font-style: italic;9675  font-size: 24px;9676  font-weight: 500;9677  line-height: 1;9678  color: var(--peach-t0);9679  letter-spacing: 0.005em;9680}9681.peach-chirp-settings-section {9682  margin: 6px 0 -4px;9683  font-size: 11px;9684  font-weight: 600;9685  letter-spacing: 0.08em;9686  text-transform: uppercase;9687  color: var(--peach-text-muted);9688}9689.peach-chirp-settings-error {9690  font-size: 12px;9691  padding: 8px 10px;9692  border-radius: 8px;9693  background: color-mix(in srgb, var(--peach-danger, #c25b4a) 18%, transparent);9694  color: var(--peach-text);9695}9696.peach-chirp-settings-footer {9697  margin-top: auto;9698  padding-top: 18px;9699  font-size: 11.5px;9700  line-height: 1.5;9701  color: var(--peach-text-muted);9702  text-align: center;9703}97049705/* Hero card shown when no devices are paired yet. */9706.peach-chirp-hero {9707  display: flex;9708  flex-direction: column;9709  align-items: center;9710  gap: 12px;9711  padding: 20px 12px 8px;9712  text-align: center;9713}9714.peach-chirp-hero-svg {9715  display: block;9716  max-width: 100%;9717  filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--peach-accent) 25%, transparent));9718}9719.peach-chirp-hero-headline {9720  margin: 0;9721  font-family: var(--font-display, Georgia, serif);9722  font-style: italic;9723  font-size: 20px;9724  font-weight: 500;9725  line-height: 1.2;9726  letter-spacing: 0.005em;9727  color: var(--peach-t0);9728}9729.peach-chirp-hero-sub {9730  margin: 0;9731  font-size: 13px;9732  line-height: 1.5;9733  color: var(--peach-t1);9734  max-width: 320px;9735  text-wrap: pretty;9736}97379738.peach-chirp-pair-cta {9739  display: flex;9740  justify-content: center;9741  padding: 4px 0 6px;9742}9743.peach-chirp-pair-button {9744  display: inline-flex;9745  align-items: center;9746  gap: 8px;9747  min-width: 220px;9748  justify-content: center;9749}9750.peach-chirp-pair-button-icon {9751  flex: 0 0 auto;9752}97539754/* Paired devices list. Roomy rows that look at home next to the rest9755   of Settings; stale rows get a soft warm-warning border tint. */9756.peach-chirp-device-list {9757  list-style: none;9758  margin: 0;9759  padding: 0;9760  display: flex;9761  flex-direction: column;9762  gap: 8px;9763}9764.peach-chirp-device-row {9765  display: flex;9766  align-items: center;9767  gap: 12px;9768  padding: 12px;9769  border-radius: 10px;9770  background: color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);9771  border: 1px solid color-mix(in srgb, var(--peach-accent) 12%, transparent);9772}9773.peach-chirp-device-row[data-stale="true"] {9774  border-color: color-mix(in srgb, var(--peach-warn, #d29257) 36%, transparent);9775}9776.peach-chirp-device-icon {9777  width: 32px;9778  height: 32px;9779  display: flex;9780  align-items: center;9781  justify-content: center;9782  border-radius: 8px;9783  color: var(--peach-text);9784  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);9785}9786.peach-chirp-device-info {9787  flex: 1;9788  display: flex;9789  flex-direction: column;9790  gap: 2px;9791  min-width: 0;9792}9793.peach-chirp-device-name {9794  font-size: 14px;9795  font-weight: 600;9796  color: var(--peach-text);9797  overflow: hidden;9798  text-overflow: ellipsis;9799  white-space: nowrap;9800}9801.peach-chirp-device-meta {9802  font-size: 11.5px;9803  color: var(--peach-text-muted);9804  display: flex;9805  flex-wrap: wrap;9806  align-items: center;9807  gap: 8px;9808}9809.peach-chirp-device-badge {9810  font-size: 10.5px;9811  font-weight: 500;9812  letter-spacing: 0.02em;9813  padding: 2px 6px;9814  border-radius: 999px;9815  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);9816  color: var(--peach-text);9817}9818.peach-chirp-device-stale {9819  font-size: 10.5px;9820  font-weight: 500;9821  color: var(--peach-warn, #d29257);9822}9823.peach-chirp-device-remove {9824  flex: 0 0 auto;9825  color: var(--peach-text-muted);9826}9827.peach-chirp-device-remove:hover {9828  color: var(--peach-danger, #c25b4a);9829}9830.peach-chirp-unpair-confirm {9831  display: flex;9832  gap: 6px;9833  align-items: center;9834}98359836/* Pro-gate card — soft upsell with the mobile bird perched, chirping. */9837.peach-chirp-pro-card {9838  position: relative;9839  margin: 18px 12px;9840  padding: 18px 20px 22px;9841  border-radius: 22px;9842  background:9843    radial-gradient(140% 90% at 50% 0%,9844      color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%,9845      transparent 60%),9846    color-mix(in srgb, var(--peach-bg-elevated, var(--peach-bg)) 88%, var(--peach-accent) 12%);9847  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);9848  box-shadow:9849    0 1px 0 color-mix(in srgb, var(--peach-accent) 8%, transparent) inset,9850    0 18px 40px -24px rgba(0, 0, 0, 0.45);9851  display: flex;9852  flex-direction: column;9853  align-items: center;9854  gap: 10px;9855  text-align: center;9856  overflow: hidden;9857}9858.peach-chirp-pro-stage {9859  position: relative;9860  width: 220px;9861  height: 140px;9862  display: flex;9863  align-items: flex-end;9864  justify-content: center;9865  margin-bottom: 2px;9866}9867.peach-chirp-pro-bird-slot {9868  width: 140px;9869  height: 132px;9870  display: flex;9871  align-items: flex-end;9872  justify-content: center;9873  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));9874}9875.peach-chirp-pro-bird-slot .peach-chirp-bird {9876  width: 100%;9877  height: 100%;9878}9879.peach-chirp-pro-bird-slot .peach-chirp-bird svg {9880  width: 100%;9881  height: 100%;9882  overflow: visible;9883}9884.peach-chirp-pro-chirp {9885  position: absolute;9886  top: 14px;9887  right: 8px;9888  width: 96px;9889  height: 80px;9890  color: var(--peach-accent);9891  animation: peach-chirp-pulse 2.6s ease-in-out infinite;9892  transform-origin: 0% 50%;9893  pointer-events: none;9894}9895@keyframes peach-chirp-pulse {9896  0%, 100% { opacity: 0.35; transform: translateX(0) scale(0.92); }9897  45%      { opacity: 1;    transform: translateX(2px) scale(1); }9898  70%      { opacity: 0.6;  transform: translateX(4px) scale(1.04); }9899}9900@media (prefers-reduced-motion: reduce) {9901  .peach-chirp-pro-chirp { animation: none; opacity: 0.7; }9902}9903.peach-chirp-pro-headline {9904  margin: 4px 0 0;9905  font-family: var(--font-display, "Cormorant Garamond", serif);9906  font-style: italic;9907  font-size: 19px;9908  font-weight: 500;9909  letter-spacing: 0.01em;9910  color: var(--peach-t0);9911  max-width: 280px;9912  line-height: 1.25;9913}9914.peach-chirp-pro-body {9915  margin: 0;9916  font-size: 13px;9917  line-height: 1.55;9918  color: var(--peach-t1);9919  max-width: 300px;9920}9921.peach-chirp-pro-cta {9922  margin-top: 4px;9923}9924.peach-chirp-pro-foot {9925  margin: 2px 0 0;9926  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;9927  font-size: 0.625rem;9928  letter-spacing: 0.08em;9929  text-transform: uppercase;9930  color: var(--peach-t2);9931  opacity: 0.75;9932}