popup.css

93.2 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%, rgba(217,104,48,0.08) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 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}99.peach-shell::after {100  content: "";101  position: absolute;102  inset: 2px;103  border: 1px solid rgba(217, 104, 48, 0);104  box-shadow: 0 0 0 rgba(217, 104, 48, 0);105  border-radius: 1px;106  opacity: 0;107  transform: scale(0.998);108  pointer-events: none;109  z-index: 20;110}111.peach-shell.peach-shell--totp-ring::after {112  animation: peach-edge-ring-breath 920ms cubic-bezier(0.2, 0.72, 0.24, 1) both;113}114.peach-shell[data-surface="extension"] {115  width: min(320px, 100vw);116  border-radius: 0;117  height: 520px;118  max-height: 520px;119  overflow: hidden;120}121122/* ── Lock screen – full-window lock/create stage ── */123.lock-screen--vault-stage {124  display: flex;125  flex-direction: column;126  gap: 18px;127  padding: 20px 18px 18px;128  justify-content: flex-start;129}130.lock-screen--vault-stage .peach-lock-panel {131  margin-top: auto;132}133.peach-lock-headline--unlock {134  max-width: 220px;135}136.peach-lock-hero--unlock {137  padding-top: 14px;138}139.peach-lock-panel--unlock {140  gap: 10px;141}142143.peach-lock-restore-link {144  background: transparent;145  border: none;146  cursor: pointer;147  font-family: var(--font-mono);148  font-size: 10px;149  letter-spacing: 0.08em;150  color: var(--t1);151  padding: 5px 0;152  text-align: left;153  transition: color 150ms ease;154}155156.peach-lock-restore-link:hover {157  color: var(--t0);158}159.peach-shell[data-surface="extension"] .peach-stage {160  min-height: 250px;161}162163/* Screen (unlock) */164.peach-screen {165  width: min(320px, 100vw);166  min-height: 100%;167  height: 100%;168  border-radius: 0;169  padding: 16px 20px 18px;170  display: grid;171  gap: 14px;172}173.peach-screen[data-motion-phase="enter"] {174  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;175}176.peach-screen-header { min-height: 20px; }177178/* Wordmark */179.peach-wordmark {180  margin: 0;181  font-family: "Cormorant Garamond", "Times New Roman", serif;182  font-size: 15px;183  font-style: italic;184  letter-spacing: 0.03em;185  color: var(--peach-t0);186  display: inline-flex;187  min-height: 1em;188}189190/* Motion text / char animation */191.peach-motion-text { display: inline-flex; min-height: 1em; }192.peach-motion-char {193  display: inline-block;194  white-space: pre;195  opacity: 0;196  transform: translateY(0.22em);197  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;198  animation-delay: calc(var(--peach-char-index, 0) * 20ms);199}200201/* Chrome */202.peach-chrome {203  position: relative;204  z-index: 10;205  padding: 16px 20px 0;206  display: flex;207  justify-content: space-between;208  align-items: center;209  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense210     fallback) per §15 regression guard. Without pointer-events:none, the211     empty header strip also sits above `.peach-overlay-view` (z-index:2)212     and swallows clicks meant for an overlay's back button / top search. */213  pointer-events: none;214}215.peach-chrome .peach-btn { pointer-events: auto; }216.peach-chrome.is-hidden-for-overlay,217.peach-search-wrap.is-hidden-for-overlay {218  opacity: 0;219  visibility: hidden;220  pointer-events: none;221}222.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }223.peach-status-pip {224  width: 5px;225  height: 5px;226  border-radius: 50%;227  background: var(--peach-t3);228  display: inline-flex;229  flex-shrink: 0;230  transition: background 400ms ease, box-shadow 400ms ease;231}232.peach-chrome-actions { display: flex; gap: 6px; }233234/* Shell body */235.peach-shell-body {236  position: relative;237  display: grid;238  grid-template-rows: 1fr auto;239  min-height: 0;240  min-width: 0;241  width: 100%;242  overflow: hidden;243  height: 100%;244}245.peach-shell-veil {246  position: absolute; inset: 0;247  background: #000; opacity: 0;248  pointer-events: none; z-index: 1;249}250.peach-shell[data-motion-phase="enter"] .peach-shell-body {251  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;252}253.peach-shell[data-motion-phase="exit"] .peach-shell-veil {254  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;255}256257/* Content frame */258.peach-content-frame {259  display: grid;260  grid-template-rows: 1fr auto;261  grid-template-columns: minmax(0, 1fr);262  align-content: start;263  min-height: 0;264  min-width: 0;265  overflow: hidden;266  transition: opacity 80ms ease, transform 80ms ease;267}268.peach-content-frame.navigating {269  opacity: 0.93;270  transform: translateX(2px);271}272.peach-content-frame[data-content-phase="enter"] {273  animation: peach-content-enter 135ms ease-out both;274}275.peach-content-frame[data-content-phase="exit"] {276  animation: peach-content-exit 95ms ease-in forwards;277}278.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }279280/* Stage */281.peach-stage {282  padding: 10px 20px 12px;283  display: grid;284  gap: 12px;285  align-content: start;286  min-width: 0;287  min-height: 0;288  max-width: 100%;289  overflow-y: auto;290  overflow-x: hidden;291  scrollbar-width: none;292  -ms-overflow-style: none;293  overscroll-behavior: contain;294}295.peach-stage::-webkit-scrollbar { display: none; }296297/* Entry name */298.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }299.peach-entry-header {300  position: relative;301  z-index: 1;302  display: flex;303  align-items: flex-start;304  gap: 6px;305  min-width: 0;306}307.peach-entry-header-name {308  flex: 1;309  min-width: 0;310}311.peach-entry-name {312  margin: 0;313  font-family: "Cormorant Garamond", "Times New Roman", serif;314  font-style: italic; font-weight: 400;315  font-size: 44px; line-height: 0.95;316  color: var(--peach-t0);317  display: -webkit-box;318  -webkit-line-clamp: 2;319  -webkit-box-orient: vertical;320  overflow: hidden;321  text-wrap: balance;322}323.peach-entry-name--lg { font-size: 40px; }324.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }325.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }326.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; }327328/* Trash icon in entry header */329.peach-entry-trash-btn {330  flex-shrink: 0;331  padding: 4px;332  margin-top: 4px;333  background: transparent;334  border: none;335  cursor: pointer;336  color: var(--peach-t2);337  border-radius: 4px;338  transition: color 140ms ease, background 140ms ease;339  display: flex;340  align-items: center;341  justify-content: center;342}343.peach-entry-trash-btn:hover {344  color: var(--peach-t1);345  background: var(--peach-t3);346}347.peach-entry-trash-confirm {348  display: flex;349  align-items: center;350  gap: 6px;351  flex-shrink: 0;352  margin-top: 6px;353  flex-wrap: nowrap;354}355.peach-entry-trash-confirm-label {356  font-family: var(--font-mono);357  font-size: 9px;358  letter-spacing: 0.1em;359  color: var(--peach-t2);360  white-space: nowrap;361}362.peach-entry-name-button {363  padding: 0;364  background: transparent;365  text-align: left;366  cursor: pointer;367  max-width: 100%;368  overflow: hidden;369  display: block;370}371.peach-entry-name-char {372  display: inline-block;373  white-space: pre;374  opacity: 0;375  transform: translateY(0.22em);376  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;377  animation-delay: calc(var(--char-index, 0) * 20ms);378}379380/* Domain */381.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }382.peach-domain-row {383  width: 100%; border: 0; background: transparent; color: inherit;384  padding: 0; display: flex; justify-content: space-between; align-items: baseline;385  cursor: default;386}387.peach-domain-value {388  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;389  font-size: 10px; font-style: italic;390  letter-spacing: 0.12em; color: var(--peach-t1);391}392393/* Fields */394.peach-fields { display: grid; gap: 10px; }395.peach-field-card { display: grid; gap: 7px; }396.peach-label {397  font-family: Inter, system-ui, sans-serif;398  text-transform: uppercase; letter-spacing: 0.2em;399  font-size: 8px; color: var(--peach-t2);400}401.peach-field-value-row {402  display: flex; justify-content: space-between;403  align-items: center; gap: 8px;404  min-width: 0;405}406.peach-field-value {407  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;408  font-size: 13px; color: var(--peach-t1);409  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;410  flex: 1;411  min-width: 0;412}413.peach-password-value {414  display: inline-flex;415  align-items: center;416  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;417  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);418  overflow: hidden;419  text-overflow: ellipsis;420  white-space: nowrap;421  flex: 1;422  min-width: 0;423  max-width: 100%;424}425.peach-password-value.is-revealed {426  font-size: 14px;427  letter-spacing: 0.08em;428}429.peach-password-text,430.peach-password-mask {431  display: block;432  width: 100%;433  overflow: hidden;434  text-overflow: ellipsis;435  white-space: nowrap;436}437.peach-field-actions { display: flex; gap: 4px; align-items: center; }438.peach-password-strength { display: flex; align-items: center; gap: 8px; }439.peach-strength-bar { display: flex; gap: 3px; }440.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }441.peach-strength-label {442  font-family: "IBM Plex Mono", monospace;443  font-style: italic;444  font-size: 9px;445  font-weight: 300;446  min-width: 36px;447  text-align: right;448  color: var(--peach-t2);449  letter-spacing: 0.06em;450}451452.peach-strength-hairline {453  display: flex;454  align-items: center;455  gap: 10px;456  margin-top: -2px;457}458459.peach-strength-hairline-track {460  flex: 1;461  height: 3px;462  border-radius: 2px;463  background: var(--peach-s2);464  overflow: hidden;465}466467.peach-strength-hairline-fill {468  height: 100%;469  border-radius: 2px;470  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),471    background 400ms ease;472}473474/* Note content */475.peach-note-content {476  border-top: 1px solid var(--peach-t3);477  padding-top: 10px;478  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;479  font-size: 11px;480  line-height: 1.75;481  color: var(--peach-t1);482  white-space: pre-wrap;483}484485/* ── Inline editing ─────────────────────────────────────────────────── */486487/* Clickable display values */488.peach-inline-clickable {489  cursor: text;490  border-radius: 3px;491  transition: background 150ms ease;492}493.peach-inline-clickable:hover {494  background: rgba(240, 232, 216, 0.05);495}496497/* Subtle "edit" hint that appears on hover */498.peach-inline-edit-hint {499  font-family: Inter, system-ui, sans-serif;500  font-size: 9px;501  text-transform: uppercase;502  letter-spacing: 0.14em;503  color: var(--peach-t2);504  opacity: 0;505  transition: opacity 120ms ease;506  pointer-events: none;507  margin-left: 6px;508  flex-shrink: 0;509}510.peach-domain-row:hover .peach-inline-edit-hint {511  opacity: 1;512}513514/* Title editing */515.peach-inline-title-wrap {516  display: flex;517  flex-direction: column;518  gap: 6px;519}520.peach-inline-title-input {521  font-family: "Cormorant Garamond", "Times New Roman", serif;522  font-style: italic;523  font-weight: 400;524  font-size: 40px;525  line-height: 0.95;526  color: var(--peach-t0);527  background: transparent;528  border: none;529  border-bottom: 1px solid var(--peach-accent);530  outline: none;531  width: 100%;532  padding: 2px 0;533}534535/* Generic inline field */536.peach-inline-field-wrap {537  display: flex;538  flex-direction: column;539  gap: 6px;540}541.peach-inline-input {542  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;543  font-size: 13px;544  color: var(--peach-t0);545  background: transparent;546  border: none;547  border-bottom: 1px solid var(--peach-accent);548  outline: none;549  width: 100%;550  padding: 3px 0;551}552.peach-inline-textarea {553  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;554  font-size: 11px;555  line-height: 1.7;556  color: var(--peach-t0);557  background: rgba(240, 232, 216, 0.04);558  border: 1px solid var(--peach-accent);559  border-radius: 4px;560  outline: none;561  width: 100%;562  padding: 8px;563  resize: vertical;564  min-height: 80px;565}566567/* Save / cancel row */568.peach-inline-actions {569  display: flex;570  gap: 6px;571  align-items: center;572}573.peach-inline-save-btn,574.peach-inline-cancel-btn {575  display: inline-flex;576  align-items: center;577  justify-content: center;578  width: 26px;579  height: 26px;580  border-radius: 4px;581  border: none;582  cursor: pointer;583  transition: background 140ms ease, opacity 140ms ease;584  flex-shrink: 0;585}586.peach-inline-save-btn {587  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);588  color: var(--peach-accent);589}590.peach-inline-save-btn:hover:not(:disabled) {591  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);592}593.peach-inline-cancel-btn {594  background: rgba(240, 232, 216, 0.06);595  color: var(--peach-t2);596}597.peach-inline-cancel-btn:hover:not(:disabled) {598  background: rgba(240, 232, 216, 0.12);599  color: var(--peach-t1);600}601.peach-inline-save-btn:disabled,602.peach-inline-cancel-btn:disabled {603  opacity: 0.4;604  cursor: not-allowed;605}606607/* Inline password generator wrapper */608.peach-inline-generator-wrap {609  margin-top: 10px;610  padding-top: 10px;611  border-top: 1px solid var(--peach-t3);612  display: flex;613  flex-direction: column;614  gap: 8px;615}616.peach-inline-generator-cancel {617  align-self: flex-start;618  font-size: 11px;619  color: var(--peach-t2);620}621622/* "is-editing" card state */623.peach-field-card.is-editing {624  background: rgba(240, 232, 216, 0.02);625  border-radius: 6px;626  padding: 8px;627  margin: -8px;628}629630/* Add notes button */631.peach-add-notes-btn {632  font-size: 11px;633  color: var(--peach-t2);634  margin-top: 6px;635  align-self: flex-start;636  padding: 4px 0;637}638639/* Delete row */640.peach-entry-delete-row {641  display: flex;642  align-items: center;643  gap: 8px;644  padding-top: 18px;645  margin-top: 8px;646  border-top: 1px solid var(--peach-t3);647}648.peach-delete-btn {649  font-size: 11px;650  color: var(--peach-t2);651  padding: 4px 0;652}653.peach-delete-confirm-text {654  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;655  font-size: 11px;656  font-style: italic;657  color: var(--peach-t2);658  flex-shrink: 0;659}660661/* TOTP band */662.peach-totp-band {663  border-top: 1px solid var(--peach-t3);664  padding: 12px 20px 14px;665  position: relative;666  display: grid;667  grid-template-columns: 1fr auto;668  gap: 10px;669  box-shadow: inset 0 0 28px rgba(217, 104, 48, 0);670  transition: box-shadow 500ms ease;671}672.peach-totp-band.is-urgent {673  box-shadow: inset 0 0 28px rgba(217, 104, 48, 0.13);674}675.peach-totp-main {676  min-width: 0;677}678.peach-totp-code-row {679  display: flex;680  align-items: flex-end;681  gap: 10px;682  min-width: 0;683}684.peach-totp-code {685  margin: 2px 0 0;686  font-family: "Cormorant Garamond", "Times New Roman", serif;687  font-style: italic;688  font-weight: 300;689  font-size: 38px; color: var(--peach-accent);690  line-height: 0.95; min-height: 1em;691  min-width: 0;692}693.peach-totp-code-text {694  display: inline-flex;695  overflow: hidden;696  text-overflow: ellipsis;697  white-space: nowrap;698}699.peach-totp-copy-btn {700  margin-bottom: 2px;701  flex-shrink: 0;702}703.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }704.peach-totp-countdown {705  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;706  font-size: 22px; color: var(--peach-t1);707}708.peach-totp-ring { transform: rotate(-90deg); }709.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }710.peach-totp-ring-progress {711  fill: none; stroke: var(--peach-accent); stroke-width: 2;712  stroke-linecap: round;713  transition: stroke-dashoffset 1s linear, stroke 500ms ease;714}715/* Search bar */716.peach-search-wrap {717  border-top: 1px solid var(--peach-t3);718  background: var(--peach-s1);719  min-height: 54px; position: relative;720  box-shadow: inset 0 6px 18px rgba(217, 104, 48, 0);721  transition: box-shadow 700ms ease;722}723.peach-search-wrap::before {724  content: "";725  position: absolute;726  left: 0;727  top: 0;728  height: 2px;729  width: var(--peach-totp-progress, 0%);730  background: var(--peach-accent);731  opacity: 0;732  transition: width 1s linear, opacity 180ms ease;733  pointer-events: none;734}735.peach-shell[data-totp-active="true"] .peach-search-wrap::before {736  opacity: 0.9;737}738.peach-shell[data-totp-active="true"] .peach-search-wrap {739  box-shadow: inset 0 6px 18px rgba(217, 104, 48, 0.09);740}741742@keyframes peach-edge-ring-breath {743  0% {744    opacity: 0;745    border-color: rgba(217, 104, 48, 0);746    box-shadow: 0 0 0 rgba(217, 104, 48, 0);747    transform: scale(0.998);748  }749  36% {750    opacity: 0.88;751    border-color: rgba(217, 104, 48, 0.42);752    box-shadow:753      inset 0 0 0 1px rgba(217, 104, 48, 0.16),754      inset 0 0 16px rgba(217, 104, 48, 0.14),755      0 0 10px rgba(217, 104, 48, 0.08);756    transform: scale(1);757  }758  64% {759    opacity: 0.46;760    border-color: rgba(217, 104, 48, 0.24);761    box-shadow:762      inset 0 0 0 1px rgba(217, 104, 48, 0.1),763      inset 0 0 20px rgba(217, 104, 48, 0.1),764      0 0 12px rgba(217, 104, 48, 0.06);765    transform: scale(1.0005);766  }767  100% {768    opacity: 0;769    border-color: rgba(217, 104, 48, 0);770    box-shadow: 0 0 0 rgba(217, 104, 48, 0);771    transform: scale(1.0012);772  }773}774.peach-search-bar {775  min-height: 54px;776  display: grid;777  grid-template-columns: auto minmax(0, 1fr) auto;778  align-items: center;779  gap: 8px; padding: 0 9px 0 12px;780}781.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }782.peach-search-input {783  border: 0; background: transparent; color: var(--peach-t0);784  font-family: "Cormorant Garamond", "Times New Roman", serif;785  font-style: italic; font-size: 18px;786  outline: none; width: 100%; min-width: 0; padding: 0;787  caret-color: var(--peach-accent);788}789.peach-search-input::placeholder { color: var(--peach-t2); }790.peach-search-meta {791  display: grid;792  grid-auto-flow: column;793  align-items: center;794  justify-content: end;795  gap: 6px;796  min-width: max-content;797}798.peach-search-counter {799  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;800  font-size: 10px; color: var(--peach-t2);801  display: inline-flex;802  align-items: center;803  line-height: 1;804}805.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }806807/* Buttons */808.peach-btn {809  border: 1px solid transparent; border-radius: 12px;810  background: transparent; color: var(--peach-t0);811  font-family: Inter, system-ui, sans-serif;812  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;813  cursor: pointer;814  transition:815    background-color var(--peach-dur-80) var(--peach-curve-arrival),816    color var(--peach-dur-80) var(--peach-curve-arrival),817    border-color var(--peach-dur-150) var(--peach-curve-arrival);818}819.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }820.peach-btn:disabled {821  opacity: 0.45;822  cursor: not-allowed;823}824.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }825.peach-btn--md { min-height: 38px; }826.peach-btn--accent { background: var(--peach-accent); color: rgba(0,0,0,0.75); }827.peach-btn--accent:hover:not(:disabled) { background: var(--peach-accent); filter: brightness(1.12); }828.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }829.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }830.peach-icon-btn {831  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;832  display: inline-flex; align-items: center; justify-content: center;833}834835.peach-btn:focus-visible {836  outline: none;837  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px rgba(217, 104, 48, 0.5);838}839840/* Lock button */841.peach-lock-icon { transform-origin: center; }842.peach-lock-btn.is-locking { color: var(--peach-accent); }843.peach-lock-btn.is-locking .peach-lock-icon {844  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);845}846847/* Copy button */848.peach-copy-btn {849  position: relative; overflow: hidden;850  color: var(--peach-t2); border-color: var(--peach-t3);851}852.peach-copy-icon {853  display: inline-flex; align-items: center; justify-content: center;854  position: relative; z-index: 1;855}856.peach-copy-icon-svg { display: block; }857.peach-copy-sheen {858  position: absolute; inset: 0;859  background: linear-gradient(90deg, rgba(217,104,48,0) 0%, rgba(217,104,48,0.18) 30%, rgba(217,104,48,0.08) 100%);860  opacity: 0; transform: scaleX(0.15); transform-origin: left center;861}862.peach-copy-btn.is-copied {863  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;864  box-shadow:865    0 0 0 1px rgba(217,104,48,0.22),866    0 0 18px rgba(217,104,48,0.2),867    inset 0 0 20px rgba(217,104,48,0.12);868}869.peach-copy-btn.is-copied .peach-copy-icon {870  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;871}872.peach-copy-btn.is-copied .peach-copy-sheen {873  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;874}875.peach-copy-btn.is-retreat {876  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;877}878.peach-copy-btn.is-retreat .peach-copy-sheen {879  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;880}881.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }882.peach-copy-drain-bar {883  display: block; width: 100%; height: 100%;884  background: var(--peach-accent); opacity: 0.7;885  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;886}887888/* Unlock screen elements */889.peach-unlock-headline {890  margin: 2px 0 0;891  font-family: "Cormorant Garamond", "Times New Roman", serif;892  font-size: 52px; line-height: 0.95;893  font-style: italic; font-weight: 400;894}895.peach-subline {896  margin: 0;897  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;898  font-size: 10px; color: var(--peach-t2); font-style: italic;899}900.peach-subline--lock {901  max-width: 248px;902  line-height: 1.5;903}904.peach-underline-input {905  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);906  padding: 6px 0; background: transparent; color: var(--peach-t0);907  outline: none;908  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;909  font-size: 13px;910  caret-color: var(--peach-accent);911}912.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }913.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }914.peach-hint {915  margin: 0;916  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;917  font-size: 10px; color: var(--peach-t2);918}919.peach-unlock-footer {920  margin-top: 4px; display: flex; align-items: center; gap: 7px;921  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;922  font-size: 10px; color: var(--peach-t2);923}924.peach-unlock-footer--lock {925  padding-top: 2px;926}927928/* Breach badge */929.peach-breach-badge {930  display: flex;931  position: relative;932  z-index: 1;933  align-items: center;934  gap: 7px;935  font-size: 9px;936  color: var(--peach-breach);937  padding: 5px 10px;938  margin-bottom: 4px;939  border-radius: 8px;940  background: rgba(220, 80, 60, 0.07);941  border: 1px solid rgba(220, 80, 60, 0.18);942  letter-spacing: 0.04em;943}944945.peach-breach-action {946  margin-left: auto;947  font-size: 10px;948  padding: 3px 8px;949}950951.peach-password-value.is-breached {952  color: rgba(220, 80, 60, 0.75);953  border-bottom: 1px solid rgba(220, 80, 60, 0.22);954}955956/* ── Overlay views ─────────────────────────────────────────────────── */957.peach-overlay-view {958  position: absolute;959  inset: 0;960  display: flex;961  flex-direction: column;962  background:963    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),964    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),965    var(--peach-bg);966  z-index: 2;967  overflow: hidden;968  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;969}970@keyframes overlay-in {971  from { opacity: 0; transform: translateY(8px); }972  to   { opacity: 1; transform: translateY(0); }973}974.peach-overlay-view.ov-enter-up {975  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;976}977.peach-overlay-view.ov-exit-up {978  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;979}980.peach-overlay-view.ov-enter-right {981  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;982}983.peach-overlay-view.ov-exit-right {984  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;985}986987@keyframes ov-enter-up {988  from { opacity: 0; transform: translateY(18px); }989  to   { opacity: 1; transform: translateY(0); }990}991@keyframes ov-exit-up {992  from { opacity: 1; transform: translateY(0); }993  to   { opacity: 0; transform: translateY(-12px); }994}995@keyframes ov-enter-right {996  from { opacity: 0; transform: translateX(20px); }997  to   { opacity: 1; transform: translateX(0); }998}999@keyframes ov-exit-right {1000  from { opacity: 1; transform: translateX(0); }1001  to   { opacity: 0; transform: translateX(20px); }1002}10031004/* Overlay shared header */1005.peach-overlay-header {1006  padding: 10px 12px;1007  display: flex;1008  align-items: center;1009  gap: 8px;1010  border-bottom: 1px solid var(--peach-t3);1011  flex-shrink: 0;1012}1013.peach-overlay-title {1014  font-family: "IBM Plex Mono", monospace;1015  font-size: 9px;1016  text-transform: uppercase;1017  letter-spacing: 0.18em;1018  color: var(--peach-t2);1019  flex: 1;1020  text-align: center;1021}10221023.peach-overlay-card {1024  background: var(--peach-s1);1025  border: 1px solid var(--peach-t3);1026  border-radius: 12px;1027  overflow: hidden;1028  width: 100%;1029}10301031.peach-onboarding-alt-actions {1032  display: flex;1033  flex-direction: column;1034  gap: 4px;1035  padding: 0;1036}10371038.peach-settings-copy {1039  margin: 0 0 10px;1040  font-size: 11px;1041  line-height: 1.5;1042  color: var(--peach-t2);1043}10441045.peach-settings-copy strong {1046  color: var(--peach-t0);1047}10481049.peach-settings-copy--spacious {1050  margin-bottom: 12px;1051}10521053.peach-settings-copy--result {1054  color: var(--peach-accent);1055  font-size: 13px;1056  text-align: center;1057  padding: 8px 0;1058}10591060.peach-settings-copy--danger {1061  color: var(--peach-breach);1062}10631064.peach-settings-copy--success {1065  color: var(--peach-accent);1066}10671068.peach-inline-feedback {1069  font-size: 11px;1070  margin: 10px 0 0;1071}10721073.peach-inline-feedback--ok {1074  color: var(--peach-accent);1075}10761077.peach-inline-feedback--error {1078  color: var(--peach-breach);1079}10801081.peach-inline-feedback--muted {1082  color: var(--peach-t2);1083  font-size: 10px;1084  margin: 4px 0;1085}10861087.peach-inline-feedback--spaced {1088  margin-top: 12px;1089}10901091.peach-settings-actions--row {1092  display: flex;1093  gap: 6px;1094}10951096.peach-settings-actions--end {1097  margin-top: 14px;1098  justify-content: flex-end;1099}11001101.peach-settings-stack {1102  display: flex;1103  flex-direction: column;1104  gap: 6px;1105}11061107.peach-settings-stack--tight {1108  gap: 4px;1109}11101111.peach-settings-stack--spacious {1112  gap: 8px;1113}11141115.peach-settings-input {1116  width: 100%;1117  box-sizing: border-box;1118  padding: 8px 10px;1119  background: var(--peach-s2);1120  border: 1px solid var(--peach-t3);1121  border-radius: 6px;1122  color: var(--peach-t0);1123  font-family: var(--font-ui);1124  font-size: 12px;1125  outline: none;1126  transition: border-color 120ms ease;1127}11281129.peach-settings-input:focus {1130  border-color: var(--peach-accent);1131}11321133.peach-settings-input[type="password"] {1134  font-family: var(--font-mono);1135  letter-spacing: 0.04em;1136}11371138.peach-phrase-textarea {1139  width: 100%;1140  box-sizing: border-box;1141  min-height: 120px;1142  padding: 10px 12px;1143  background: var(--peach-s2);1144  border: 1px solid var(--peach-t3);1145  border-radius: 6px;1146  color: var(--peach-t0);1147  font-size: 12px;1148  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1149  line-height: 1.5;1150  resize: vertical;1151  outline: none;1152}11531154.peach-phrase-textarea:focus {1155  border-color: var(--peach-accent);1156}11571158.peach-hidden-file-input {1159  display: none;1160}11611162.peach-checkbox-note {1163  display: flex;1164  align-items: flex-start;1165  gap: 8px;1166  font-size: 11px;1167  color: var(--peach-t1);1168  cursor: pointer;1169  margin: 12px 0;1170}11711172.peach-checkbox-note input {1173  margin-top: 1px;1174}11751176.peach-cjk-phrase-box {1177  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1178  font-size: 13px;1179  line-height: 1.5;1180  background: var(--peach-s2);1181  border: 1px solid var(--peach-t3);1182  border-radius: 6px;1183  padding: 10px 12px;1184  margin: 0 0 10px;1185  word-break: break-all;1186  white-space: pre-wrap;1187  max-height: 220px;1188  overflow-y: auto;1189  color: var(--peach-t0);1190  user-select: all;1191  scrollbar-width: none;1192  -ms-overflow-style: none;1193}1194.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }11951196.peach-danger-notice {1197  background: rgba(220, 80, 60, 0.08);1198  border: 1px solid rgba(220, 80, 60, 0.2);1199  border-radius: 6px;1200  padding: 9px 11px;1201  font-size: 11px;1202  color: var(--peach-t1);1203  line-height: 1.5;1204}12051206.peach-info-notice {1207  font-size: 11px;1208  color: var(--peach-t2);1209  line-height: 1.5;1210  background: rgba(240, 232, 216, 0.04);1211  border: 1px solid var(--peach-t3);1212  border-radius: 6px;1213  padding: 8px 10px;1214}12151216.peach-strength-row {1217  display: flex;1218  align-items: center;1219  gap: 8px;1220  margin-bottom: 10px;1221}12221223.peach-strength-track {1224  flex: 1;1225  height: 4px;1226  background: var(--peach-s2);1227  border-radius: 2px;1228  overflow: hidden;1229}12301231.peach-strength-fill {1232  height: 100%;1233  border-radius: 2px;1234  transition: width 120ms ease, background 120ms ease;1235}12361237/* ── Type selector tabs ── */1238.peach-type-tabs {1239  display: flex;1240  gap: 0;1241  background: var(--peach-t4);1242  border-radius: 8px;1243  padding: 3px;1244}12451246.peach-type-tab {1247  flex: 1;1248  display: flex;1249  align-items: center;1250  justify-content: center;1251  gap: 6px;1252  padding: 6px 10px;1253  border-radius: 6px;1254  border: none;1255  background: transparent;1256  cursor: pointer;1257  font-family: Inter, system-ui, sans-serif;1258  font-size: 11px;1259  font-weight: 400;1260  letter-spacing: 0.04em;1261  color: var(--peach-t1);1262  transition: background 150ms ease, color 150ms ease;1263}12641265.peach-type-tab.is-active {1266  background: var(--peach-s2);1267  color: var(--peach-t0);1268  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1269}12701271.peach-type-tab:not(.is-active):hover {1272  color: var(--peach-t0);1273}12741275.peach-type-tab svg {1276  opacity: 0.7;1277  flex-shrink: 0;1278}12791280.peach-type-tab.is-active svg {1281  opacity: 1;1282}12831284/* ── List view ───────────────────────────────────────────────────────── */1285.peach-list-top {1286  padding: 0 10px;1287  min-height: 46px;1288  display: flex;1289  align-items: center;1290  gap: 6px;1291  border-bottom: 1px solid var(--peach-t3);1292  flex-shrink: 0;1293  background: var(--peach-s1);1294}1295.peach-vault-list {1296  flex: 1;1297  overflow-y: auto;1298  scrollbar-width: none;1299}1300.peach-vault-list::-webkit-scrollbar { display: none; }13011302/* Scrollbar — vault list */1303.peach-vault-list {1304  scrollbar-width: thin;1305  scrollbar-color: var(--peach-t3) transparent;1306}13071308.peach-vault-list::-webkit-scrollbar {1309  width: 3px;1310}13111312.peach-vault-list::-webkit-scrollbar-thumb {1313  background: var(--peach-t3);1314  border-radius: 2px;1315}13161317.peach-entry-row {1318  width: 100%;1319  display: flex;1320  align-items: center;1321  gap: 10px;1322  padding: 9px 16px;1323  background: transparent;1324  border: none;1325  border-bottom: 1px solid var(--peach-t3);1326  cursor: pointer;1327  color: inherit;1328  text-align: left;1329  transition: background 80ms ease;1330}1331.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1332.peach-entry-row:last-child { border-bottom: none; }1333.peach-entry-row.is-active {1334  box-shadow: inset 2px 0 0 var(--peach-accent);1335  background: rgba(240,232,216,0.03);1336}1337.peach-entry-row-icon {1338  width: 26px; height: 26px;1339  border-radius: 7px;1340  border: 1px solid var(--peach-t3);1341  display: flex; align-items: center; justify-content: center;1342  color: var(--peach-t2);1343  flex-shrink: 0;1344}1345.peach-entry-row-icon.is-breach {1346  border-color: rgba(220,80,60,0.3);1347  color: rgba(220,80,60,0.7);1348}1349.peach-entry-row-info { flex: 1; min-width: 0; }1350.peach-entry-row-name {1351  display: block;1352  font-family: "Cormorant Garamond", serif;1353  font-size: 17px;1354  font-style: italic;1355  font-weight: 400;1356  color: var(--peach-t0);1357  line-height: 1.2;1358  white-space: nowrap;1359  overflow: hidden;1360  text-overflow: ellipsis;1361}1362.peach-entry-row-meta {1363  display: block;1364  font-family: "IBM Plex Mono", monospace;1365  font-size: 9px;1366  color: var(--peach-t2);1367  margin-top: 1px;1368  letter-spacing: 0.05em;1369}1370.peach-entry-row-dot {1371  width: 5px; height: 5px;1372  border-radius: 50%;1373  background: rgba(220,80,60,0.7);1374  flex-shrink: 0;1375}1376.peach-new-entry-row {1377  display: flex;1378  align-items: center;1379  justify-content: center;1380  gap: 6px;1381  width: 100%;1382  padding: 11px;1383  background: transparent;1384  border: none;1385  border-top: 1px solid var(--peach-t3);1386  color: var(--peach-t2);1387  font-family: "IBM Plex Mono", monospace;1388  font-size: 9px;1389  text-transform: uppercase;1390  letter-spacing: 0.14em;1391  cursor: pointer;1392  flex-shrink: 0;1393  transition: color 120ms ease, background 120ms ease;1394}1395.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13961397/* ── Multi-select mode ─────────────────────────────────────────────── */13981399/* Select-mode trigger button in sort bar — same shape as trash btn */1400.peach-sort-select-btn {1401  display: flex;1402  align-items: center;1403  justify-content: center;1404  padding: 3px 5px;1405  background: transparent;1406  border: none;1407  cursor: pointer;1408  color: var(--peach-t2);1409  border-radius: 4px;1410  transition: color 140ms ease, background 140ms ease;1411}1412.peach-sort-select-btn:hover {1413  color: var(--peach-t1);1414  background: var(--peach-t3);1415}14161417/* Sort bar in select mode */1418.peach-select-cancel-btn {1419  background: transparent;1420  border: none;1421  padding: 0 4px;1422  cursor: pointer;1423  font-family: "IBM Plex Mono", monospace;1424  font-size: 9px;1425  letter-spacing: 0.12em;1426  text-transform: uppercase;1427  color: var(--peach-t2);1428  transition: color 140ms ease;1429  flex-shrink: 0;1430}1431.peach-select-cancel-btn:hover { color: var(--peach-t0); }14321433.peach-select-count-label {1434  flex: 1;1435  text-align: center;1436  font-family: "IBM Plex Mono", monospace;1437  font-size: 9px;1438  letter-spacing: 0.14em;1439  text-transform: uppercase;1440  color: var(--peach-t1);1441}14421443.peach-select-all-btn {1444  background: transparent;1445  border: none;1446  padding: 0 4px;1447  cursor: pointer;1448  font-family: "IBM Plex Mono", monospace;1449  font-size: 9px;1450  letter-spacing: 0.12em;1451  text-transform: uppercase;1452  color: var(--peach-t2);1453  transition: color 140ms ease;1454  flex-shrink: 0;1455}1456.peach-select-all-btn:hover { color: var(--peach-accent); }14571458/* List in select mode */1459.peach-vault-list.is-selecting .peach-entry-row {1460  cursor: default;1461}1462.peach-vault-list.is-selecting .peach-entry-row:hover {1463  background: rgba(240,232,216,0.02);1464}1465.peach-vault-list.is-selecting .peach-entry-row.is-selected {1466  background: rgba(217,104,48,0.06);1467}1468.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1469  background: rgba(217,104,48,0.1);1470}14711472/* Select indicator circles in icon slot */1473.peach-entry-row-icon.is-select-icon {1474  color: var(--peach-t2);1475}1476.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1477  color: var(--peach-accent);1478}14791480/* Delete action bar at bottom (replaces new-entry row) */1481.peach-select-action-bar {1482  display: flex;1483  align-items: center;1484  justify-content: center;1485  gap: 7px;1486  width: 100%;1487  padding: 11px;1488  background: transparent;1489  border: none;1490  border-top: 1px solid var(--peach-t3);1491  color: var(--peach-t1);1492  font-family: "IBM Plex Mono", monospace;1493  font-size: 9px;1494  text-transform: uppercase;1495  letter-spacing: 0.14em;1496  cursor: pointer;1497  flex-shrink: 0;1498  transition: color 120ms ease, background 120ms ease;1499}1500.peach-select-action-bar:not(:disabled):hover {1501  color: var(--peach-t0);1502  background: rgba(220,80,60,0.06);1503}1504.peach-select-action-bar:not(:disabled):hover svg {1505  stroke: rgba(220,80,60,0.8);1506}1507.peach-select-action-bar:disabled,1508.peach-select-action-bar.is-empty {1509  color: var(--peach-t2);1510  cursor: default;1511  opacity: 0.5;1512}1513.peach-search-counter-list {1514  white-space: nowrap;1515  flex-shrink: 0;1516}1517.peach-list-empty {1518  min-height: 180px;1519  display: grid;1520  place-items: center;1521  color: var(--peach-t2);1522  font-family: "IBM Plex Mono", monospace;1523  font-size: 11px;1524}15251526/* ── Settings view ───────────────────────────────────────────────────── */1527.peach-settings-body {1528  flex: 1;1529  overflow-y: auto;1530  min-height: 0;1531  display: flex;1532  flex-direction: column;1533  padding: 2px 0 10px;1534}1535.peach-settings-group {1536  padding: 9px 16px 11px;1537  border-bottom: 1px solid var(--peach-t3);1538}1539.peach-export-intro {1540  padding-bottom: 8px;1541}1542.peach-export-card {1543  display: grid;1544  gap: 10px;1545}1546.peach-export-card--primary {1547  background:1548    linear-gradient(180deg, rgba(217,104,48,0.08), rgba(217,104,48,0.02));1549}1550.peach-export-card-head {1551  display: flex;1552  align-items: center;1553  justify-content: space-between;1554  gap: 10px;1555}1556.peach-export-card-copy {1557  margin: 0;1558  font-size: 12px;1559  line-height: 1.55;1560  color: var(--peach-t1);1561}1562.peach-export-note {1563  margin: 0;1564  font-size: 10px;1565  line-height: 1.5;1566  color: var(--peach-t2);1567}1568.peach-export-pill {1569  display: inline-flex;1570  align-items: center;1571  padding: 4px 8px;1572  border-radius: 999px;1573  border: 1px solid rgba(217,104,48,0.22);1574  background: rgba(217,104,48,0.08);1575  color: var(--peach-accent);1576  font-family: "IBM Plex Mono", monospace;1577  font-size: 8px;1578  letter-spacing: 0.12em;1579  text-transform: uppercase;1580  white-space: nowrap;1581}1582.peach-export-pill--danger {1583  border-color: rgba(220,80,60,0.22);1584  background: rgba(220,80,60,0.08);1585  color: var(--peach-breach);1586}1587.peach-export-password-stack {1588  gap: 8px;1589}1590.peach-settings-label {1591  margin: 0 0 6px;1592  font-family: "IBM Plex Mono", monospace;1593  font-size: 8px;1594  text-transform: uppercase;1595  letter-spacing: 0.18em;1596  color: var(--peach-t2);1597}1598.peach-settings-row {1599  display: flex;1600  align-items: center;1601  justify-content: space-between;1602  gap: 12px;1603  min-height: 34px;1604  padding: 6px 0;1605  font-size: 13px;1606  color: var(--peach-t1);1607}1608.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1609.peach-settings-value {1610  font-family: "IBM Plex Mono", monospace;1611  font-size: 10px;1612  color: var(--peach-t2);1613}16141615.peach-settings-value--status {1616  display: flex;1617  align-items: center;1618  gap: 6px;1619}16201621.peach-settings-row--stack {1622  flex-direction: column;1623  align-items: stretch;1624  gap: 6px;1625}16261627.peach-settings-row--top {1628  align-items: flex-start;1629}16301631.peach-settings-row-main {1632  display: flex;1633  flex-direction: column;1634  gap: 4px;1635  flex: 1;1636}1637.peach-toggle {1638  width: 28px; height: 16px;1639  border-radius: 999px;1640  background: var(--peach-t3);1641  border: 1px solid var(--peach-t3);1642  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1643  flex-shrink: 0;1644  transition: background 200ms ease, border-color 200ms ease;1645  cursor: pointer;1646}1647.peach-toggle.is-on {1648  background: rgba(217,104,48,0.22);1649  border-color: rgba(217,104,48,0.4);1650}1651.peach-toggle-knob {1652  width: 10px; height: 10px;1653  border-radius: 50%;1654  background: var(--peach-t2);1655  flex-shrink: 0;1656  transform: translateX(0px);1657  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1658}1659.peach-toggle.is-on .peach-toggle-knob {1660  background: var(--peach-accent);1661  transform: translateX(12px);1662}1663.peach-settings-footer {1664  display: flex;1665  align-items: center;1666  gap: 8px;1667  margin-top: auto;1668  padding: 14px 16px 8px;1669  font-family: "IBM Plex Mono", monospace;1670  font-size: 9px;1671  color: var(--peach-t2);1672}16731674.peach-passkey-badge {1675  margin-left: 8px;1676  font-size: 10px;1677  letter-spacing: 0.06em;1678  text-transform: uppercase;1679  color: var(--peach-t2);1680  font-family: var(--font-ui);1681  vertical-align: middle;1682}16831684.peach-passkey-delete-btn {1685  color: var(--peach-breach);1686  border-color: rgba(229, 85, 85, 0.25);1687}16881689.peach-passkey-delete-confirm {1690  display: flex;1691  align-items: center;1692  gap: 8px;1693  padding: 8px 10px;1694  background: rgba(229, 85, 85, 0.06);1695  border: 1px solid rgba(229, 85, 85, 0.2);1696  border-radius: 6px;1697}16981699.peach-passkey-delete-confirm-copy {1700  flex: 1;1701  font-size: 11px;1702  color: var(--peach-t1);1703}17041705.peach-passkey-delete-btn--confirm {1706  color: var(--peach-breach);1707  border-color: rgba(229, 85, 85, 0.4);1708}17091710.peach-passkey-activity {1711  flex-direction: column;1712  align-items: flex-start;1713  gap: 4px;1714}17151716.peach-passkey-meta {1717  font-size: 11px;1718  color: var(--peach-t2);1719}17201721.peach-passkey-actions {1722  position: relative;1723  z-index: 1;1724  margin-top: 14px;1725  display: flex;1726  flex-direction: column;1727  gap: 8px;1728}17291730.peach-passkey-approval {1731  display: flex;1732  flex-direction: column;1733  align-items: center;1734  padding: 28px 22px 22px;1735  gap: 14px;1736  text-align: center;1737}17381739.peach-passkey-approval-icon {1740  width: 46px;1741  height: 46px;1742  border-radius: 12px;1743  background: var(--peach-s2);1744  border: 1px solid var(--peach-t3);1745  display: flex;1746  align-items: center;1747  justify-content: center;1748  flex-shrink: 0;1749  color: var(--peach-accent);1750}17511752.peach-passkey-approval-icon img,1753.peach-passkey-approval-icon svg {1754  width: 28px;1755  height: 28px;1756  border-radius: 6px;1757}17581759.peach-passkey-approval-rp {1760  font-family: var(--font-ui);1761  font-size: 12px;1762  color: var(--peach-t2);1763  letter-spacing: 0.03em;1764}17651766.peach-passkey-approval-action {1767  font-family: var(--font-display);1768  font-style: italic;1769  font-weight: 300;1770  font-size: 26px;1771  color: var(--peach-t0);1772  line-height: 1;1773}17741775.peach-passkey-approval-user {1776  font-family: var(--font-mono);1777  font-size: 11px;1778  color: var(--peach-t1);1779  background: var(--peach-s2);1780  border: 1px solid var(--peach-t3);1781  border-radius: 4px;1782  padding: 3px 8px;1783}17841785.peach-passkey-approval-notice {1786  font-size: 10px;1787  color: var(--peach-t2);1788  line-height: 1.5;1789  max-width: 220px;1790}17911792.peach-passkey-approval-actions {1793  display: flex;1794  gap: 8px;1795  width: 100%;1796  margin-top: 6px;1797}17981799.peach-passkey-approval-actions .peach-btn {1800  flex: 1;1801}18021803/* ── Inline generator drawer ── */1804.peach-generator-drawer {1805  display: grid;1806  grid-template-rows: 0fr;1807  transition: grid-template-rows 320ms var(--peach-curve-arrival);1808  overflow: hidden;1809}1810.peach-generator-drawer.is-open {1811  grid-template-rows: 1fr;1812}1813.peach-generator-drawer-inner {1814  min-height: 0;1815  overflow: hidden;1816}1817.peach-generator-drawer-content {1818  border-top: 1px solid var(--peach-t3);1819  padding: 8px 0 4px;1820  display: flex;1821  flex-direction: column;1822  gap: 8px;1823}18241825/* ── Compact generator (inside entry edit) ── */1826.peach-generator-drawer-content--compact {1827  border-top: 1px solid var(--peach-t3);1828  padding: 8px 0 2px;1829  gap: 7px;1830}1831.peach-pwgen-compact-display-row {1832  display: flex;1833  align-items: center;1834  gap: 6px;1835}1836.peach-pwgen-compact-output {1837  flex: 1;1838  min-width: 0;1839  font-family: "IBM Plex Mono", monospace;1840  font-size: 11px;1841  font-weight: 400;1842  letter-spacing: 0.04em;1843  color: var(--peach-t0);1844  background: rgba(240, 232, 216, 0.04);1845  border: 1px solid var(--peach-t3);1846  border-radius: 5px;1847  padding: 5px 8px;1848  word-break: break-all;1849  line-height: 1.5;1850}1851.peach-pwgen-compact-controls {1852  display: flex;1853  align-items: center;1854  gap: 6px;1855}1856.peach-pwgen-compact-slider {1857  flex: 1;1858  min-width: 0;1859  height: 2px !important;1860}1861.peach-pwgen-compact-controls .peach-pwgen-len-num {1862  flex-shrink: 0;1863  min-width: 18px;1864  text-align: right;1865}1866.peach-pwgen-compact-pills {1867  display: flex;1868  gap: 3px;1869  flex-shrink: 0;1870}1871.peach-pwgen-compact-pills .peach-pwgen-pill {1872  padding: 2px 7px;1873  font-size: 8px;1874}1875.peach-pwgen-compact-use {1876  flex-shrink: 0;1877  font-size: 10px !important;1878  padding: 3px 9px !important;1879  min-height: 22px !important;1880  border-radius: 5px !important;1881}18821883/* ── Password edit row (input + eye toggle side-by-side) ── */1884.peach-password-edit-row {1885  display: flex;1886  align-items: center;1887  gap: 6px;1888}1889.peach-password-edit-row .peach-inline-input {1890  flex: 1;1891  min-width: 0;1892}18931894/* ── Generate toggle link ── */1895.peach-generate-toggle-link {1896  display: inline-flex;1897  align-items: center;1898  gap: 5px;1899  background: none;1900  border: none;1901  padding: 0;1902  cursor: pointer;1903  font-family: "IBM Plex Mono", monospace;1904  font-size: 10px;1905  color: var(--peach-t2);1906  letter-spacing: 0.04em;1907  transition: color 120ms ease;1908  align-self: flex-start;1909}1910.peach-generate-toggle-link:hover {1911  color: var(--peach-accent);1912}19131914/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1915.peach-entry-body {1916  flex: 1;1917  overflow-y: auto;1918  overflow-x: hidden;1919  scrollbar-width: none;1920  -ms-overflow-style: none;1921  overscroll-behavior: contain;1922  display: grid;1923  gap: 10px;1924  align-content: start;1925  padding: 10px 20px 14px;1926  min-width: 0;1927  min-height: 0;1928}1929.peach-entry-body::-webkit-scrollbar { display: none; }19301931/* Type-toggle pills (new entry only) */1932.peach-new-type-row {1933  display: flex;1934  gap: 6px;1935  margin-bottom: 2px;1936}1937.peach-new-type-btn {1938  background: transparent;1939  border: 1px solid var(--peach-t3);1940  border-radius: 12px;1941  padding: 3px 10px;1942  font-family: "IBM Plex Mono", monospace;1943  font-size: 9px;1944  letter-spacing: 0.12em;1945  text-transform: uppercase;1946  color: var(--peach-t2);1947  cursor: pointer;1948  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1949}1950.peach-new-type-btn.is-active {1951  color: var(--peach-t0);1952  border-color: var(--peach-accent);1953  background: rgba(217, 104, 48, 0.08);1954}1955.peach-new-type-btn:not(.is-active):hover {1956  color: var(--peach-t1);1957  border-color: var(--peach-t2);1958}19591960/* Editable title */1961.peach-new-title-wrap { margin: 0 0 2px; }1962.peach-new-title-input {1963  background: transparent;1964  border: none;1965  outline: none;1966  width: 100%;1967  color: var(--peach-t0);1968  font-family: "Cormorant Garamond", Georgia, serif;1969  font-style: italic;1970  font-weight: 400;1971  font-size: 40px;1972  line-height: 0.95;1973  caret-color: var(--peach-accent);1974}1975.peach-new-title-input::placeholder { color: var(--peach-t2); }19761977/* Editable domain field */1978.peach-domain-value--edit {1979  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1980  font-size: 10px;1981  font-style: italic;1982  letter-spacing: 0.12em;1983  color: var(--peach-t1);1984  background: transparent;1985  border: none;1986  border-bottom: 1px solid var(--peach-t3);1987  outline: none;1988  width: 100%;1989  padding: 2px 0;1990  caret-color: var(--peach-accent);1991  transition: border-color 140ms ease, color 140ms ease;1992}1993.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1994.peach-domain-value--edit:focus {1995  border-bottom-color: rgba(240, 232, 216, 0.28);1996  color: var(--peach-t0);1997}19981999/* Editable field values (username, password, totp) */2000.peach-field-value--edit {2001  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2002  font-size: 13px;2003  color: var(--peach-t0);2004  background: transparent;2005  border: none;2006  border-bottom: 1px solid var(--peach-t3);2007  outline: none;2008  flex: 1;2009  min-width: 0;2010  padding: 3px 0;2011  caret-color: var(--peach-accent);2012  transition: border-color 140ms ease, color 140ms ease;2013}2014.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2015.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2016.peach-field-value--edit:focus {2017  border-bottom-color: rgba(240, 232, 216, 0.28);2018  color: var(--peach-t0);2019}20202021/* "+ add optional field" links */2022.peach-entry-add-links {2023  display: flex;2024  gap: 12px;2025  flex-wrap: wrap;2026  margin-top: -2px;2027}2028.peach-add-field-link {2029  background: transparent;2030  border: none;2031  padding: 0;2032  cursor: pointer;2033  font-family: "IBM Plex Mono", monospace;2034  font-size: 9px;2035  letter-spacing: 0.1em;2036  text-transform: uppercase;2037  color: var(--peach-t2);2038  transition: color 140ms ease;2039}2040.peach-add-field-link:hover { color: var(--peach-accent); }20412042/* ── New entry form (legacy classes) ────────────────────────────────── */2043.peach-new-body {2044  flex: 1;2045  overflow-y: auto;2046  padding: 10px 20px 14px;2047}2048.peach-new-name-input {2049  background: transparent;2050  border: none;2051  outline: none;2052  width: 100%;2053  color: var(--peach-t0);2054  font-family: "Cormorant Garamond", Georgia, serif;2055  font-style: italic;2056  font-weight: 400;2057  font-size: 40px;2058  line-height: 0.95;2059  caret-color: var(--peach-accent);2060}2061.peach-new-name-input::placeholder { color: var(--peach-t2); }2062.peach-new-field-input {2063  background: transparent;2064  border: none;2065  outline: none;2066  flex: 1;2067  min-width: 0;2068  caret-color: var(--peach-accent);2069}2070.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }20712072/* ── Canary card ── */2073.peach-canary-card {2074  border: 1px solid rgba(217, 160, 48, 0.2);2075  background: rgba(217, 160, 48, 0.03);2076  border-radius: 8px;2077  padding: 12px;2078}20792080.peach-canary-settings-header {2081  display: flex;2082  align-items: center;2083  justify-content: space-between;2084  cursor: pointer;2085  user-select: none;2086}20872088.peach-canary-card .peach-label {2089  color: rgba(217, 160, 48, 0.85);2090}20912092.peach-canary-card .peach-new-field-input {2093  border-color: rgba(217, 160, 48, 0.25);2094}20952096.peach-canary-card .peach-new-field-input:focus {2097  border-color: rgba(217, 160, 48, 0.5);2098}20992100.peach-canary-body {2101  margin-top: 12px;2102  display: flex;2103  flex-direction: column;2104  gap: 10px;2105}21062107.peach-canary-explainer {2108  display: flex;2109  gap: 10px;2110  padding: 10px 12px;2111  border-radius: 10px;2112  background: rgba(217, 160, 48, 0.06);2113  border: 1px solid rgba(217, 160, 48, 0.22);2114  margin-bottom: 4px;2115}21162117.peach-canary-explainer-icon {2118  font-size: 16px;2119  flex-shrink: 0;2120  line-height: 1.2;2121}21222123.peach-canary-explainer-title {2124  font-family: var(--font-ui);2125  font-size: 11px;2126  font-weight: 500;2127  color: rgba(217, 160, 48, 0.9);2128  margin: 0 0 3px;2129}21302131.peach-canary-explainer-copy {2132  font-family: var(--font-ui);2133  font-size: 10px;2134  color: var(--peach-t2);2135  line-height: 1.55;2136  margin: 0;2137}21382139.peach-canary-hint {2140  font-size: 10px;2141  color: var(--peach-t2);2142  font-family: Inter, system-ui, sans-serif;2143  line-height: 1.5;2144  margin-top: 4px;2145}21462147.peach-canary-actions-row {2148  display: flex;2149  align-items: center;2150  gap: 8px;2151}21522153.peach-canary-test-btn {2154  border-color: rgba(217, 160, 48, 0.3);2155  color: rgba(217, 160, 48, 0.85);2156}21572158.peach-canary-test-result {2159  font-size: 10px;2160  font-family: Inter, system-ui, sans-serif;2161}21622163.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2164.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }21652166.peach-canary-badge {2167  display: flex;2168  position: relative;2169  z-index: 1;2170  align-items: center;2171  gap: 5px;2172  padding: 4px 10px;2173  background: rgba(217, 160, 48, 0.12);2174  border: 1px solid rgba(217, 160, 48, 0.35);2175  border-radius: 6px;2176  margin-bottom: 6px;2177  width: fit-content;2178}21792180.peach-canary-badge-label {2181  font-size: 10px;2182  letter-spacing: 0.06em;2183  color: rgba(217, 160, 48, 0.9);2184  font-family: var(--font-ui);2185  text-transform: uppercase;2186}21872188.peach-canary-badge-icon {2189  font-size: 11px;2190}21912192.peach-canary-suppress-row {2193  display: flex;2194  align-items: center;2195  gap: 8px;2196  padding: 6px 10px;2197  background: rgba(217, 160, 48, 0.08);2198  border-radius: 6px;2199  margin-bottom: 8px;2200}22012202.peach-canary-suppress-label {2203  font-size: 11px;2204  color: rgba(217, 160, 48, 0.85);2205  cursor: pointer;2206  font-family: var(--font-ui);2207  letter-spacing: 0.04em;2208}22092210.peach-regen-panel {2211  position: relative;2212  z-index: 1;2213  background: rgba(217, 104, 48, 0.08);2214  border: 1px solid rgba(217, 104, 48, 0.25);2215  border-radius: 8px;2216  padding: 12px;2217  margin-bottom: 8px;2218}22192220.peach-regen-panel-header {2221  display: flex;2222  align-items: center;2223  justify-content: space-between;2224  margin-bottom: 10px;2225}22262227.peach-regen-panel-title {2228  font-size: 11px;2229  font-weight: 600;2230  letter-spacing: 0.06em;2231  text-transform: uppercase;2232  color: rgba(217, 104, 48, 0.9);2233}22342235.peach-regen-output {2236  background: rgba(0, 0, 0, 0.2);2237  border-radius: 6px;2238  padding: 10px;2239  margin-bottom: 10px;2240  font-family: var(--font-mono);2241  font-size: 13px;2242  word-break: break-all;2243  color: var(--peach-t1);2244}22452246.peach-regen-actions {2247  display: flex;2248  gap: 6px;2249}22502251.peach-regen-actions--spaced {2252  margin-bottom: 8px;2253}22542255.peach-regen-action-grow {2256  flex: 1;2257}22582259.peach-regen-copy-btn {2260  padding: 0 8px;2261}22622263.peach-regen-success {2264  position: relative;2265  z-index: 1;2266  background: rgba(40, 180, 80, 0.1);2267  border: 1px solid rgba(40, 180, 80, 0.3);2268  border-radius: 8px;2269  padding: 10px 12px;2270  margin-bottom: 8px;2271  display: flex;2272  align-items: center;2273  gap: 8px;2274  font-size: 11px;2275  color: rgba(40, 180, 80, 0.9);2276}22772278/* ── Note textarea ── */2279.peach-note-textarea {2280  width: 100%;2281  min-height: 180px;2282  max-height: 280px;2283  resize: vertical;2284  background: var(--peach-t4);2285  border: 1px solid var(--peach-t3);2286  border-radius: 8px;2287  padding: 10px 12px;2288  font-family: "IBM Plex Mono", monospace;2289  font-size: 12px;2290  line-height: 1.7;2291  color: var(--peach-t1);2292  outline: none;2293  transition: border-color 150ms ease;2294}22952296.peach-note-textarea:focus {2297  border-color: var(--peach-t2);2298}22992300.peach-note-char-count {2301  font-family: "IBM Plex Mono", monospace;2302  font-size: 9px;2303  color: var(--peach-t3);2304  text-align: right;2305  margin-top: 4px;2306  letter-spacing: 0.1em;2307}23082309/* ── Field input baseline ── */2310.peach-new-field-input {2311  width: 100%;2312  background: transparent;2313  border: none;2314  border-bottom: 1px solid var(--peach-t3);2315  padding: 4px 0;2316  color: var(--peach-t1);2317  font-family: "IBM Plex Mono", monospace;2318  font-size: 13px;2319  outline: none;2320  transition: border-color 150ms ease;2321}23222323.peach-new-field-input:focus {2324  border-bottom-color: var(--peach-t0);2325  color: var(--peach-t0);2326}23272328.peach-new-name-input {2329  width: 100%;2330  background: transparent;2331  border: none;2332  border-bottom: 1px solid var(--peach-t3);2333  padding: 6px 0;2334  font-family: "Cormorant Garamond", Georgia, serif;2335  font-style: italic;2336  font-size: 28px;2337  color: var(--peach-t0);2338  outline: none;2339  transition: border-color 150ms ease;2340}23412342.peach-new-name-input:focus {2343  border-bottom-color: var(--peach-t1);2344}23452346.peach-new-name-input::placeholder {2347  color: var(--peach-t2);2348  font-style: italic;2349}23502351.peach-new-field-input::placeholder {2352  color: var(--peach-t3);2353}23542355/* ── Demo entrance animation ── */2356#hd-shell {2357  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2358}2359@keyframes hd-shell-enter {2360  from { opacity: 0; transform: scale(0.96) translateY(16px); }2361  to   { opacity: 1; transform: scale(1) translateY(0); }2362}23632364/* ── Keyframes ── */2365@keyframes peach-char-enter {2366  from { opacity: 0; transform: translateY(0.22em); }2367  to   { opacity: 1; transform: translateY(0); }2368}2369@keyframes peach-content-enter {2370  from { opacity: 0.96; transform: translateY(4px); }2371  to   { opacity: 1; transform: translateY(0); }2372}2373@keyframes peach-content-exit {2374  from { opacity: 1; transform: translateY(0); }2375  to   { opacity: 0.92; transform: translateY(-3px); }2376}2377@keyframes peach-screen-enter {2378  from { opacity: 0; transform: translateY(14px); }2379  to   { opacity: 1; transform: translateY(0); }2380}2381@keyframes peach-shell-fade-in {2382  from { opacity: 0; }2383  to   { opacity: 1; }2384}2385@keyframes peach-veil-in {2386  from { opacity: 0; }2387  to   { opacity: 1; }2388}2389@keyframes peach-lock-settle {2390  0%   { transform: scale(0.9); }2391  65%  { transform: scale(1.08); }2392  100% { transform: scale(1); }2393}2394@keyframes peach-copy-confirm {2395  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2396  to   { color: var(--peach-accent); border-color: rgba(217,104,48,0.42); background-color: rgba(217,104,48,0.09); box-shadow: 0 0 18px rgba(217,104,48,0.22), inset 0 0 18px rgba(217,104,48,0.12); }2397}2398@keyframes peach-copy-retreat {2399  from { color: var(--peach-accent); border-color: rgba(217,104,48,0.42); background-color: rgba(217,104,48,0.09); box-shadow: 0 0 18px rgba(217,104,48,0.22), inset 0 0 18px rgba(217,104,48,0.12); }2400  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2401}2402@keyframes peach-copy-flood {2403  from { opacity: 0; transform: scaleX(0.15); }2404  to   { opacity: 1; transform: scaleX(1); }2405}2406@keyframes peach-copy-icon-settle {2407  from  { transform: scale(0.84); }2408  70%   { transform: scale(1.08); }2409  to    { transform: scale(1); }2410}2411@keyframes peach-copy-sheen-retreat {2412  from { opacity: 1; transform: scaleX(1); }2413  to   { opacity: 0; transform: scaleX(0.15); }2414}2415@keyframes peach-copy-drain {2416  from { width: 100%; }2417  to   { width: 0; }2418}2419@keyframes peach-shake {2420  0%, 100% { transform: translateX(0); }2421  20%      { transform: translateX(-6px); }2422  40%      { transform: translateX(6px); }2423  60%      { transform: translateX(-4px); }2424  80%      { transform: translateX(4px); }2425}24262427@keyframes pip-pulse {2428  0% { transform: scale(1); }2429  40% { transform: scale(2.2); }2430  100% { transform: scale(1); }2431}243224332434/* ── Password generator ── */2435.peach-pwgen-body {2436  flex: 1; overflow-y: auto;2437  display: flex; flex-direction: column;2438}2439.peach-policy-badge {2440  display: flex; align-items: center;2441  padding: 6px 20px 0;2442  font-size: 10px; font-family: Inter, sans-serif;2443  color: var(--peach-t2); letter-spacing: 0.04em;2444}2445.peach-pwgen-display {2446  padding: 14px 20px 12px;2447  border-bottom: 1px solid var(--peach-t3);2448  display: flex; align-items: flex-start; gap: 10px;2449}2450.peach-pwgen-display-row {2451  display: flex;2452  align-items: flex-start;2453  gap: 8px;2454  padding-bottom: 8px;2455  border-bottom: 1px solid var(--peach-t3);2456}2457.peach-pwgen-output {2458  flex: 1; min-width: 0; margin: 0;2459  font-family: "IBM Plex Mono", monospace;2460  font-size: 13px; color: var(--peach-t0);2461  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2462  white-space: normal;2463  padding: 10px 12px;2464  background: var(--peach-t4);2465  border-radius: 6px;2466  min-height: 36px;2467}2468.peach-pwgen-output-display {2469  flex: 1;2470  min-width: 0;2471  margin: 0;2472  font-family: "Cormorant Garamond", "Times New Roman", serif;2473  font-style: italic;2474  font-weight: 300;2475  font-size: 32px;2476  line-height: 1.05;2477  color: var(--peach-t0);2478  word-break: break-all;2479  overflow-wrap: break-word;2480  white-space: normal;2481  letter-spacing: 0.02em;2482}2483.peach-pwgen-display-actions {2484  display: flex;2485  flex-direction: column;2486  gap: 4px;2487  flex-shrink: 0;2488  margin-top: 2px;2489}2490.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2491.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2492.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2493.peach-pwgen-len-num {2494  font-family: "IBM Plex Mono", monospace;2495  font-size: 12px; color: var(--peach-accent);2496}2497.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2498.peach-pwgen-toggles { display: flex; flex-direction: column; }2499.peach-pwgen-charset-pills {2500  display: flex;2501  gap: 6px;2502  flex-wrap: wrap;2503}2504.peach-pwgen-pill {2505  padding: 4px 11px;2506  border-radius: 999px;2507  border: 1px solid var(--peach-t3);2508  background: transparent;2509  color: var(--peach-t2);2510  font-family: "IBM Plex Mono", monospace;2511  font-size: 9px;2512  letter-spacing: 0.08em;2513  cursor: pointer;2514  transition: all 150ms ease;2515}2516.peach-pwgen-pill.is-on {2517  border-color: rgba(217, 104, 48, 0.5);2518  background: rgba(217, 104, 48, 0.1);2519  color: var(--peach-accent);2520}2521.peach-pwgen-pill:not(.is-on):hover {2522  color: var(--peach-t1);2523  border-color: var(--peach-t2);2524}2525.peach-pwgen-use-btn {2526  width: 100%;2527  min-height: 34px;2528  border-radius: 8px;2529  margin-top: 2px;2530}2531.peach-pwgen-toggle-row {2532  display: flex; align-items: center; justify-content: space-between;2533  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2534}2535.peach-pwgen-toggle-row:last-child { border-bottom: none; }2536.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }25372538.peach-screen-prelock {2539  z-index: 10;2540}25412542.prelock-form {2543  display: grid;2544  gap: 12px;2545}25462547/* Peach popup should not expose native scrollbars on internal panels. */2548.peach-settings-body,2549.peach-new-body,2550.peach-pwgen-body,2551.lock-screen,2552.peach-import-preview {2553  scrollbar-width: none;2554  -ms-overflow-style: none;2555  overscroll-behavior: contain;2556}2557.peach-settings-body::-webkit-scrollbar,2558.peach-new-body::-webkit-scrollbar,2559.peach-pwgen-body::-webkit-scrollbar,2560.lock-screen::-webkit-scrollbar,2561.peach-import-preview::-webkit-scrollbar {2562  width: 0;2563  height: 0;2564  display: none;2565}25662567.lock-screen {2568  height: 100%;2569  min-height: 100%;2570  overflow-y: auto;2571  padding: 18px 18px 16px;2572  gap: 14px;2573  grid-template-rows: auto auto auto 1fr auto;2574  align-content: stretch;2575  position: relative;2576  isolation: isolate;2577}2578.peach-screen.lock-screen--vault-stage {2579  display: flex;2580  flex-direction: column;2581  justify-content: flex-start;2582  gap: 18px;2583  padding: 20px 18px 18px;2584  overflow: hidden;2585}2586.peach-screen.lock-screen--vault-stage .peach-lock-panel {2587  margin-top: auto;2588}2589.lock-screen--onboarding {2590  display: flex;2591  flex-direction: column;2592  gap: 12px;2593  justify-content: flex-start;2594}25952596.lock-screen::before {2597  content: "";2598  position: absolute;2599  inset: 12px 18px auto auto;2600  width: 160px;2601  height: 160px;2602  border-radius: 999px;2603  background:2604    radial-gradient(circle at 50% 50%, rgba(217, 104, 48, 0.18) 0%, rgba(217, 104, 48, 0.06) 42%, transparent 72%);2605  filter: blur(6px);2606  opacity: 0.7;2607  pointer-events: none;2608  z-index: 0;2609}26102611.lock-screen-header {2612  display: flex;2613  align-items: center;2614  justify-content: space-between;2615  position: relative;2616  z-index: 1;2617}26182619.lock-password-input.shake {2620  animation: peach-shake 300ms ease-in-out;2621}26222623.peach-hint-error {2624  color: rgba(220, 80, 60, 0.92);2625}26262627.peach-onboarding-headline {2628  margin: 0;2629  font-family: "Cormorant Garamond", "Times New Roman", serif;2630  font-size: 35px;2631  line-height: 0.88;2632  font-style: italic;2633  font-weight: 400;2634  max-width: 252px;2635}26362637.peach-lock-copy {2638  display: grid;2639  gap: 8px;2640  position: relative;2641  z-index: 1;2642}26432644.peach-lock-copy--onboarding {2645  gap: 10px;2646}26472648.peach-lock-hero {2649  position: relative;2650  z-index: 1;2651  display: grid;2652  gap: 8px;2653  min-height: 0;2654  padding: 4px 2px 0;2655  border: none;2656  border-radius: 0;2657  background: transparent;2658  box-shadow: none;2659}2660.peach-lock-hero-art {2661  position: absolute;2662  right: -8px;2663  top: -6px;2664  width: 120px;2665  height: 120px;2666  display: flex;2667  align-items: center;2668  justify-content: center;2669  pointer-events: none;2670  opacity: 0.12;2671  filter: saturate(0.9);2672}2673.peach-lock-hero-mark {2674  width: 100%;2675  height: 100%;2676}2677.peach-lock-hero-mark path:first-child {2678  fill: rgba(217, 104, 48, 0.92);2679}2680.peach-lock-hero-mark path:nth-child(2),2681.peach-lock-hero-mark path:nth-child(3) {2682  stroke: rgba(123, 144, 96, 0.88);2683  fill: rgba(123, 144, 96, 0.88);2684}2685.peach-lock-hero > *:not(.peach-lock-hero-art) {2686  position: relative;2687  z-index: 1;2688}26892690.peach-lock-eyebrow {2691  display: inline-flex;2692  align-items: center;2693  width: fit-content;2694  padding: 4px 9px;2695  border-radius: 999px;2696  border: 1px solid rgba(217, 104, 48, 0.22);2697  background: rgba(217, 104, 48, 0.08);2698  color: var(--peach-t0);2699  font-family: "IBM Plex Mono", monospace;2700  font-size: 8px;2701  letter-spacing: 0.18em;2702  text-transform: uppercase;2703}27042705.peach-lock-label-row {2706  display: flex;2707  align-items: center;2708  justify-content: space-between;2709  margin-bottom: 0;2710}27112712.peach-lock-reveal-btn {2713  display: inline-flex;2714  align-items: center;2715  gap: 4px;2716  background: none;2717  border: none;2718  cursor: pointer;2719  font-family: "IBM Plex Mono", monospace;2720  font-size: 9px;2721  letter-spacing: 0.06em;2722  color: var(--peach-t2);2723  padding: 2px 0;2724  transition: color 150ms ease;2725}27262727.peach-lock-reveal-btn:hover {2728  color: var(--peach-t1);2729}27302731.peach-lock-warning {2732  color: rgba(220, 80, 60, 0.85) !important;2733  line-height: 1.5;2734}27352736.peach-onboarding-cards {2737  display: grid;2738  gap: 8px;2739  position: relative;2740  z-index: 1;2741}27422743.peach-lock-panel {2744  position: relative;2745  z-index: 1;2746  display: grid;2747  gap: 9px;2748  padding: 14px 16px 15px;2749  border-radius: 18px;2750  border: 1px solid var(--peach-t3);2751  background:2752    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));2753  box-shadow:2754    inset 0 1px 0 rgba(240, 232, 216, 0.04),2755    0 12px 28px rgba(0, 0, 0, 0.12);2756}27572758.peach-lock-panel--secondary {2759  gap: 12px;2760}27612762.peach-lock-panel-header {2763  display: flex;2764  align-items: baseline;2765  justify-content: space-between;2766  gap: 12px;2767}27682769.peach-lock-option-grid {2770  display: grid;2771  gap: 10px;2772}27732774.peach-lock-option {2775  width: 100%;2776  display: grid;2777  gap: 6px;2778  padding: 14px 15px;2779  border-radius: 16px;2780  border: 1px solid rgba(240, 232, 216, 0.08);2781  background: rgba(240, 232, 216, 0.02);2782  color: var(--peach-t0);2783  text-align: left;2784  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;2785}27862787.peach-lock-option:hover {2788  border-color: rgba(217, 104, 48, 0.28);2789  background: rgba(240, 232, 216, 0.04);2790  transform: translateY(-1px);2791}27922793.peach-lock-option-title {2794  font-size: 12px;2795  color: var(--peach-t0);2796}27972798.peach-lock-option-copy {2799  font-size: 11px;2800  line-height: 1.55;2801  color: var(--peach-t1);2802}28032804.peach-onboarding-stack {2805  margin-top: 2px;2806}2807.peach-lock-panel-footer {2808  display: grid;2809  gap: 6px;2810  margin-top: 2px;2811  padding-top: 10px;2812  border-top: 1px solid rgba(240, 232, 216, 0.06);2813}28142815/* Restore picker panel — method option cards */2816.peach-lock-panel--restore {2817  gap: 10px;2818}2819.peach-lock-option--history {2820  border-color: rgba(240, 232, 216, 0.06);2821  opacity: 0.85;2822}28232824/* Snapshot restore panel */2825.peach-snapshot-panel {2826  gap: 10px;2827  overflow-y: auto;2828  max-height: 340px;2829}2830.peach-snapshot-list {2831  display: flex;2832  flex-direction: column;2833  gap: 4px;2834}2835.peach-snapshot-row {2836  display: flex;2837  align-items: center;2838  justify-content: space-between;2839  width: 100%;2840  padding: 8px 10px;2841  border-radius: 8px;2842  border: 1px solid rgba(240, 232, 216, 0.07);2843  background: transparent;2844  cursor: pointer;2845  transition: border-color 120ms, background 120ms;2846  text-align: left;2847  gap: 8px;2848}2849.peach-snapshot-row:hover {2850  border-color: rgba(240, 232, 216, 0.14);2851  background: rgba(240, 232, 216, 0.03);2852}2853.peach-snapshot-row.is-selected {2854  border-color: rgba(217, 104, 48, 0.4);2855  background: rgba(217, 104, 48, 0.07);2856}2857.peach-snapshot-time {2858  font-size: 11.5px;2859  color: var(--peach-t0);2860  flex: 1;2861}2862.peach-snapshot-count {2863  font-family: "IBM Plex Mono", monospace;2864  font-size: 10px;2865  color: var(--peach-t2);2866  flex-shrink: 0;2867}2868.peach-snapshot-confirm {2869  display: flex;2870  flex-direction: column;2871  gap: 8px;2872  padding-top: 10px;2873  border-top: 1px solid rgba(240, 232, 216, 0.06);2874}2875.peach-snapshot-warning {2876  display: flex;2877  align-items: flex-start;2878  gap: 6px;2879  font-size: 10.5px;2880  color: rgba(220, 80, 60, 0.85);2881  line-height: 1.55;2882}2883.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }2884.peach-snapshot-confirm-row {2885  display: flex;2886  gap: 6px;2887  align-items: center;2888}2889.peach-snapshot-restore-btn {2890  width: 100%;2891}2892.peach-lock-hero--unlock .peach-lock-hero-art {2893  width: 112px;2894  height: 112px;2895  right: 0;2896  top: 2px;2897  opacity: 0.1;2898}28992900.peach-card {2901  border: 1px solid var(--peach-t3);2902  border-radius: 18px;2903  background:2904    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);2905  box-shadow:2906    inset 0 1px 0 rgba(240, 232, 216, 0.04),2907    0 12px 32px rgba(0, 0, 0, 0.14);2908  overflow: hidden;2909}29102911.peach-card-active {2912  border-color: rgba(217, 104, 48, 0.35);2913  box-shadow:2914    inset 0 1px 0 rgba(240, 232, 216, 0.05),2915    0 16px 38px rgba(0, 0, 0, 0.18),2916    0 0 0 1px rgba(217, 104, 48, 0.08);2917}29182919.peach-card-disabled {2920  opacity: 0.72;2921}29222923.peach-card-header {2924  width: 100%;2925  padding: 13px 16px 11px;2926  background: transparent;2927  color: var(--peach-t0);2928  display: flex;2929  justify-content: space-between;2930  align-items: center;2931  text-align: left;2932  font-size: 12px;2933}29342935.peach-card-body {2936  padding: 0 16px 16px;2937  display: grid;2938  gap: 9px;2939}29402941.peach-card-tag {2942  color: var(--peach-t2);2943  font-family: "IBM Plex Mono", monospace;2944  font-size: 9px;2945  letter-spacing: 0.12em;2946  text-transform: uppercase;2947}29482949.peach-empty-copy {2950  display: grid;2951  gap: 6px;2952  color: var(--peach-t1);2953  font-size: 13px;2954}29552956.peach-lock-submit {2957  width: 100%;2958  box-shadow: 0 14px 36px rgba(217, 104, 48, 0.22);2959}29602961.peach-lock-secondary {2962  width: 100%;2963  border-color: var(--peach-t3);2964  background: rgba(240, 232, 216, 0.02);2965}29662967.peach-lock-secondary:hover {2968  background: rgba(240, 232, 216, 0.04);2969}29702971.peach-lock-note {2972  max-width: none;2973  line-height: 1.55;2974  margin: 0;2975}29762977.peach-overlay-action {2978  font-size: 10px;2979  padding: 4px 8px;2980  letter-spacing: 0.06em;2981  min-width: 44px;2982  text-align: center;2983}29842985.peach-overlay-spacer {2986  width: 32px;2987}29882989.peach-inline-action {2990  flex-shrink: 0;2991  font-size: 9px;2992  letter-spacing: 0.1em;2993  text-transform: uppercase;2994  padding: 4px 7px;2995}2996.peach-password-toggle-btn {2997  display: inline-flex;2998  align-items: center;2999  justify-content: center;3000  min-width: 30px;3001  min-height: 26px;3002  padding: 0 7px;3003  border: 1px solid var(--peach-t3);3004  border-radius: 999px;3005  background: rgba(240, 232, 216, 0.04);3006  color: var(--peach-t2);3007  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3008}3009.peach-password-toggle-btn:hover {3010  border-color: var(--peach-t2);3011  color: var(--peach-t0);3012  background: rgba(240, 232, 216, 0.06);3013}30143015.peach-new-textarea {3016  width: 100%;3017  min-height: 88px;3018  resize: vertical;3019  border: 0;3020  outline: none;3021  background: transparent;3022  color: var(--peach-t1);3023  font-family: "IBM Plex Mono", monospace;3024  font-size: 12px;3025  line-height: 1.65;3026  caret-color: var(--peach-accent);3027}30283029.peach-new-textarea::placeholder {3030  color: var(--peach-t2);3031  opacity: 0.7;3032}30333034.peach-settings-actions {3035  display: grid;3036  gap: 8px;3037}30383039.peach-sync-section-label {3040  font-size: 11px;3041  color: var(--peach-t2);3042  text-transform: uppercase;3043  letter-spacing: 0.05em;3044}30453046.peach-sync-device-row {3047  display: flex;3048  justify-content: space-between;3049  align-items: center;3050  padding: 6px 0;3051  border-bottom: 1px solid var(--peach-t3);3052}30533054.peach-sync-device-info {3055  display: flex;3056  flex-direction: column;3057  gap: 2px;3058}30593060.peach-sync-device-name {3061  font-size: 13px;3062  color: var(--peach-t0);3063}30643065.peach-sync-device-meta {3066  font-size: 11px;3067  color: var(--peach-t2);3068}30693070.peach-sync-status-dot {3071  display: inline-block;3072  width: 8px;3073  height: 8px;3074  border-radius: 50%;3075  vertical-align: middle;3076}30773078.peach-sync-remove-btn {3079  color: var(--peach-breach);3080}30813082.peach-import-preview {3083  margin-bottom: 12px;3084  max-height: 152px;3085  overflow-y: auto;3086  border: 1px solid var(--peach-t3);3087  border-radius: 10px;3088  padding: 8px 10px;3089  display: grid;3090  gap: 8px;3091  background: rgba(240, 232, 216, 0.02);3092}30933094.peach-import-preview-row {3095  display: flex;3096  justify-content: space-between;3097  gap: 10px;3098  font-size: 11px;3099  color: var(--peach-t1);3100}31013102.peach-import-preview-title {3103  color: var(--peach-t0);3104  flex: 1;3105  min-width: 0;3106  overflow: hidden;3107  text-overflow: ellipsis;3108  white-space: nowrap;3109}31103111.peach-import-preview-meta {3112  color: var(--peach-t2);3113  flex-shrink: 0;3114  max-width: 42%;3115  overflow: hidden;3116  text-overflow: ellipsis;3117  white-space: nowrap;3118}31193120.peach-import-preview-more {3121  color: var(--peach-t2);3122  font-size: 10px;3123}31243125.peach-restore-copy {3126  margin: 0;3127  color: var(--peach-t1);3128  font-size: 11px;3129  line-height: 1.6;3130}31313132.peach-restore-warning {3133  padding: 10px 12px;3134  border-radius: 12px;3135  border: 1px solid rgba(220, 80, 60, 0.22);3136  background: rgba(220, 80, 60, 0.08);3137  color: rgba(240, 232, 216, 0.86);3138  font-size: 11px;3139  line-height: 1.55;3140}31413142.peach-provider-chips {3143  display: flex;3144  flex-wrap: wrap;3145  gap: 6px;3146}31473148.peach-provider-chip {3149  display: inline-flex;3150  align-items: center;3151  padding: 5px 8px;3152  border-radius: 999px;3153  border: 1px solid var(--peach-t3);3154  background: rgba(240, 232, 216, 0.02);3155  color: var(--peach-t1);3156  font-family: "IBM Plex Mono", monospace;3157  font-size: 8px;3158  letter-spacing: 0.08em;3159  text-transform: uppercase;3160}31613162.peach-restore-file,3163.peach-restore-input {3164  width: 100%;3165  border-radius: 10px;3166  border: 1px solid var(--peach-t3);3167  background: var(--peach-s2);3168  color: var(--peach-t0);3169  font-size: 12px;3170}31713172.peach-restore-file {3173  padding: 9px 10px;3174}31753176.peach-restore-file::file-selector-button {3177  margin-right: 10px;3178  padding: 7px 10px;3179  border: 1px solid rgba(217, 104, 48, 0.28);3180  border-radius: 999px;3181  background: rgba(217, 104, 48, 0.08);3182  color: var(--peach-t0);3183  font-size: 10px;3184  letter-spacing: 0.08em;3185  text-transform: uppercase;3186  cursor: pointer;3187}31883189.peach-restore-input {3190  padding: 10px 12px;3191}31923193.peach-auth-grid {3194  display: grid;3195  gap: 10px;3196}31973198.peach-import-summary {3199  color: var(--peach-t1);3200  font-size: 12px;3201  line-height: 1.6;3202  margin-bottom: 12px;3203}32043205.peach-restore-error {3206  color: rgba(220, 80, 60, 0.95);3207  font-size: 12px;3208  line-height: 1.55;3209}32103211.peach-cjk-qr-panel {3212  margin-top: 14px;3213  padding: 12px;3214  border-radius: 16px;3215  border: 1px solid var(--peach-t3);3216  background: rgba(240, 232, 216, 0.02);3217  display: grid;3218  gap: 10px;3219}32203221.peach-cjk-qr-frame {3222  display: grid;3223  place-items: center;3224  min-height: 212px;3225  border-radius: 14px;3226  background: #fff;3227  overflow: hidden;3228}32293230.peach-cjk-qr-frame svg {3231  display: block;3232  width: 196px;3233  height: 196px;3234}32353236.peach-cjk-qr-error,3237.peach-cjk-qr-caption {3238  color: var(--peach-t1);3239  font-size: 11px;3240  line-height: 1.55;3241}32423243.peach-cjk-qr-card {3244  max-width: 400px;3245  margin: auto;3246}32473248.peach-cjk-qr-body {3249  padding: 0 20px 20px;3250  text-align: center;3251}32523253.peach-cjk-qr-hint {3254  font-size: 11px;3255  color: var(--peach-t2);3256  margin: 0 0 14px;3257}32583259.peach-cjk-qr-image {3260  border-radius: 4px;3261  display: block;3262  margin: 0 auto;3263  width: 100%;3264  max-width: 320px;3265  height: auto;3266}32673268.peach-pro-badge {3269  padding: 2px 6px;3270  border-radius: 999px;3271  font-family: var(--font-ui);3272  font-size: 10px;3273  letter-spacing: 0.08em;3274  text-transform: uppercase;3275  background: rgba(217, 104, 48, 0.14);3276  color: var(--peach-accent);3277}32783279.peach-loading {3280  position: absolute;3281  inset: 0;3282  display: flex;3283  align-items: center;3284  justify-content: center;3285  background: var(--bg);3286  animation: peach-loading-pulse 1.2s ease-in-out infinite;3287}32883289@keyframes peach-loading-pulse {3290  0%, 100% { opacity: 0.6; }3291  50% { opacity: 1; }3292}32933294/* ── Health Dashboard ─────────────────────────────────────────────────── */3295.peach-health-body {3296  flex: 1;3297  overflow-y: auto;3298  display: flex;3299  flex-direction: column;3300}33013302.peach-health-summary {3303  padding: 10px 16px 6px;3304  font-family: "IBM Plex Mono", monospace;3305  font-size: 11px;3306}3307.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3308.peach-health-summary-ok { color: var(--peach-t2); }33093310.peach-health-check-row {3311  padding: 0 16px 10px;3312}3313.peach-health-check-btn {3314  width: 100%;3315  display: flex;3316  align-items: center;3317  justify-content: center;3318}33193320.peach-health-sections {3321  flex: 1;3322  display: flex;3323  flex-direction: column;3324}33253326.peach-health-section {3327  border-bottom: 1px solid var(--peach-t3);3328}33293330.peach-health-section-header {3331  width: 100%;3332  display: flex;3333  align-items: center;3334  justify-content: space-between;3335  padding: 9px 16px;3336  background: transparent;3337  cursor: pointer;3338  color: var(--peach-t0);3339}33403341.peach-health-section-title-row {3342  display: flex;3343  align-items: center;3344  gap: 8px;3345}33463347.peach-health-count-badge {3348  display: inline-flex;3349  align-items: center;3350  justify-content: center;3351  min-width: 20px;3352  height: 18px;3353  padding: 0 5px;3354  border-radius: 999px;3355  background: rgba(220,80,60,0.15);3356  border: 1px solid rgba(220,80,60,0.25);3357  font-family: "IBM Plex Mono", monospace;3358  font-size: 9px;3359  color: rgba(220,80,60,0.9);3360}33613362.peach-health-section-title {3363  font-family: "IBM Plex Mono", monospace;3364  font-size: 11px;3365  text-transform: uppercase;3366  letter-spacing: 0.1em;3367  color: var(--peach-t1);3368}33693370.peach-health-chevron {3371  color: var(--peach-t2);3372  transition: transform 200ms ease;3373  flex-shrink: 0;3374}3375.peach-health-chevron.is-expanded {3376  transform: rotate(180deg);3377}33783379.peach-health-section-body {3380  padding: 0 16px 10px;3381  display: flex;3382  flex-direction: column;3383  gap: 4px;3384}33853386.peach-health-row {3387  display: flex;3388  align-items: flex-start;3389  justify-content: space-between;3390  gap: 8px;3391  padding: 6px 8px;3392  border-radius: 8px;3393  background: rgba(240,232,216,0.02);3394}33953396.peach-health-row-info {3397  flex: 1;3398  min-width: 0;3399  display: flex;3400  flex-direction: column;3401  gap: 2px;3402}34033404.peach-health-row-name {3405  font-family: "Cormorant Garamond", serif;3406  font-size: 15px;3407  font-style: italic;3408  font-weight: 400;3409  color: var(--peach-t0);3410  white-space: nowrap;3411  overflow: hidden;3412  text-overflow: ellipsis;3413}34143415.peach-health-row-meta {3416  font-family: "IBM Plex Mono", monospace;3417  font-size: 9px;3418  color: var(--peach-t2);3419  letter-spacing: 0.05em;3420}34213422.peach-health-fix-btn {3423  font-size: 9px;3424  letter-spacing: 0.08em;3425  text-transform: uppercase;3426  padding: 4px 7px;3427  flex-shrink: 0;3428  display: flex;3429  align-items: center;3430}34313432.peach-health-empty {3433  font-family: "IBM Plex Mono", monospace;3434  font-size: 10px;3435  color: var(--peach-t2);3436  padding: 6px 0;3437}34383439.peach-health-loading {3440  font-family: "IBM Plex Mono", monospace;3441  font-size: 10px;3442  color: var(--peach-t2);3443  padding: 6px 0;3444  display: flex;3445  align-items: center;3446  gap: 6px;3447}34483449.peach-health-loading::before {3450  content: "";3451  width: 10px;3452  height: 10px;3453  border: 1.5px solid var(--peach-t3);3454  border-top-color: var(--peach-accent);3455  border-radius: 50%;3456  animation: peach-spin 600ms linear infinite;3457}34583459@keyframes peach-spin {3460  to { transform: rotate(360deg); }3461}34623463.peach-spinner {3464  width: 32px;3465  height: 32px;3466  border: 2px solid var(--peach-s2);3467  border-top-color: var(--peach-accent);3468  border-radius: 50%;3469  margin: 0 auto 16px;3470  animation: peach-spin 0.8s linear infinite;3471}34723473.peach-progress-screen {3474  text-align: center;3475  padding: 32px 16px;3476}34773478.peach-progress-screen-title {3479  font-size: 13px;3480  color: var(--peach-t0);3481  margin-bottom: 16px;3482}34833484.peach-progress-screen-stage {3485  font-size: 11px;3486  color: var(--peach-t2);3487  min-height: 14px;3488}34893490.peach-progress-screen-note {3491  font-size: 10px;3492  color: var(--peach-t2);3493  margin-top: 8px;3494}34953496.peach-pairing-body {3497  flex: 1;3498  overflow-y: auto;3499  display: flex;3500  flex-direction: column;3501}35023503.peach-pairing-content {3504  flex: 1;3505  display: flex;3506  flex-direction: column;3507  align-items: center;3508  justify-content: center;3509  gap: 14px;3510  padding: 28px 20px;3511  text-align: center;3512}35133514.peach-pairing-headline {3515  font-family: var(--font-display);3516  font-style: italic;3517  font-weight: 300;3518  font-size: 28px;3519  color: var(--peach-t0);3520  margin: 0;3521  line-height: 1;3522}35233524.peach-pairing-subline {3525  font-size: 12px;3526  color: var(--peach-t2);3527  max-width: 220px;3528  line-height: 1.5;3529  margin: 0;3530}35313532.peach-pairing-subline--center {3533  text-align: center;3534}35353536.peach-pairing-code-display {3537  display: flex;3538  gap: 6px;3539}35403541.peach-pairing-code-digit {3542  display: flex;3543  align-items: center;3544  justify-content: center;3545  width: 36px;3546  height: 48px;3547  background: var(--peach-s2);3548  border: 1px solid var(--peach-t3);3549  border-radius: 6px;3550  font-family: var(--font-mono);3551  font-size: 22px;3552  color: var(--peach-t0);3553  letter-spacing: 0;3554}35553556.peach-pairing-countdown-ring {3557  position: relative;3558  display: inline-flex;3559  align-items: center;3560  justify-content: center;3561}35623563.peach-pairing-countdown-num {3564  position: absolute;3565  font-family: var(--font-mono);3566  font-size: 14px;3567  color: var(--peach-t1);3568}35693570.peach-pairing-ring-track {3571  fill: none;3572  stroke: var(--peach-t3);3573  stroke-width: 2;3574}35753576.peach-pairing-ring-progress {3577  fill: none;3578  stroke: var(--peach-accent);3579  stroke-width: 2;3580  stroke-linecap: round;3581  transform: rotate(-90deg);3582  transform-origin: 50% 50%;3583  transition: stroke-dashoffset 0.5s linear;3584}35853586.peach-pairing-code-inputs {3587  display: flex;3588  gap: 8px;3589}35903591.peach-pairing-code-box {3592  width: 36px;3593  height: 48px;3594  text-align: center;3595  background: var(--peach-s2);3596  border: 1px solid var(--peach-t3);3597  border-radius: 6px;3598  font-family: var(--font-mono);3599  font-size: 20px;3600  color: var(--peach-t0);3601  outline: none;3602  transition: border-color 120ms ease;3603}36043605.peach-pairing-code-box:focus {3606  border-color: var(--peach-accent);3607}36083609.peach-pairing-code-box.has-error {3610  border-color: rgba(220, 80, 60, 0.45);3611}36123613.peach-pairing-status {3614  display: flex;3615  align-items: center;3616  gap: 8px;3617  margin: 0;3618  font-size: 12px;3619  color: var(--peach-t1);3620}36213622.peach-pairing-error {3623  margin: 0;3624  font-size: 11px;3625  color: var(--peach-breach);3626}36273628.peach-pairing-error-msg {3629  color: var(--peach-t1);3630}36313632.peach-pairing-spinner {3633  width: 12px;3634  height: 12px;3635  border: 1.5px solid var(--peach-t3);3636  border-top-color: var(--peach-accent);3637  border-radius: 50%;3638  animation: peach-spin 0.8s linear infinite;3639}36403641.peach-pairing-success-icon,3642.peach-pairing-error-icon,3643.peach-pairing-hero {3644  display: inline-flex;3645  align-items: center;3646  justify-content: center;3647}36483649/* Tag chips */3650.peach-tag-chip {3651  display: inline-flex;3652  align-items: center;3653  gap: 4px;3654  padding: 3px 8px;3655  border-radius: 999px;3656  border: 1px solid rgba(217, 104, 48, 0.28);3657  background: rgba(217, 104, 48, 0.08);3658  color: rgba(240, 232, 216, 0.85);3659  font-family: "IBM Plex Mono", monospace;3660  font-size: 10px;3661  letter-spacing: 0.04em;3662}36633664.peach-tag-chip-remove {3665  background: transparent;3666  border: none;3667  color: inherit;3668  opacity: 0.6;3669  cursor: pointer;3670  padding: 0;3671  font-size: 12px;3672  line-height: 1;3673}36743675.peach-tag-chip-remove:hover {3676  opacity: 1;3677}36783679/* Tag input */3680.peach-tag-input-wrap {3681  border-bottom: 1px solid var(--peach-t3);3682}36833684.peach-tag-suggestions {3685  display: flex;3686  flex-wrap: wrap;3687  gap: 4px;3688  padding: 6px 0;3689}36903691.peach-tag-suggestion {3692  padding: 2px 8px;3693  border-radius: 999px;3694  border: 1px solid var(--peach-t3);3695  background: var(--peach-s2);3696  color: var(--peach-t1);3697  font-family: "IBM Plex Mono", monospace;3698  font-size: 10px;3699  cursor: pointer;3700  transition: border-color 80ms ease, background 80ms ease;3701}37023703.peach-tag-suggestion:hover {3704  border-color: rgba(217, 104, 48, 0.4);3705  background: rgba(217, 104, 48, 0.08);3706}37073708/* Tag filter strip */3709.peach-tag-filter-strip {3710  border-bottom: 1px solid var(--peach-t3);3711  flex-shrink: 0;3712}37133714.peach-tag-filter-chip {3715  display: inline-flex;3716  align-items: center;3717  padding: 4px 10px;3718  border-radius: 999px;3719  border: 1px solid var(--peach-t3);3720  background: transparent;3721  color: var(--peach-t2);3722  font-family: "IBM Plex Mono", monospace;3723  font-size: 9px;3724  letter-spacing: 0.06em;3725  text-transform: uppercase;3726  cursor: pointer;3727  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3728  white-space: nowrap;3729}37303731.peach-tag-filter-chip:hover {3732  border-color: rgba(217, 104, 48, 0.35);3733  color: var(--peach-t1);3734}37353736.peach-tag-filter-chip.is-selected {3737  border-color: rgba(217, 104, 48, 0.5);3738  background: rgba(217, 104, 48, 0.12);3739  color: rgba(240, 232, 216, 0.9);3740}37413742/* ─────────────────────────────────────────────────────────────────────────3743   v1.4.12 additions3744   ─────────────────────────────────────────────────────────────────────── */37453746/* Sort bar */3747.peach-sort-bar {3748  display: flex;3749  align-items: center;3750  gap: 4px;3751  padding: 5px 12px;3752  border-bottom: 1px solid var(--peach-t3);3753  flex-shrink: 0;3754  overflow-x: auto;3755  scrollbar-width: none;3756}37573758.peach-sort-btn {3759  padding: 2px 9px;3760  border-radius: 999px;3761  border: 1px solid transparent;3762  background: transparent;3763  color: var(--peach-t2);3764  font-family: "IBM Plex Mono", monospace;3765  font-size: 9px;3766  letter-spacing: 0.07em;3767  text-transform: uppercase;3768  cursor: pointer;3769  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3770  white-space: nowrap;3771}37723773.peach-sort-btn:hover {3774  border-color: rgba(217, 104, 48, 0.3);3775  color: var(--peach-t1);3776}37773778.peach-sort-btn.is-active {3779  border-color: rgba(217, 104, 48, 0.5);3780  background: rgba(217, 104, 48, 0.12);3781  color: rgba(240, 232, 216, 0.9);3782}37833784.peach-sort-domain-hint {3785  margin-left: auto;3786  font-family: "IBM Plex Mono", monospace;3787  font-size: 9px;3788  color: rgba(217, 104, 48, 0.6);3789  white-space: nowrap;3790  overflow: hidden;3791  text-overflow: ellipsis;3792  max-width: 110px;3793}37943795/* Tab-match badge on entry rows */3796.peach-tab-match-badge {3797  display: inline-block;3798  width: 6px;3799  height: 6px;3800  border-radius: 50%;3801  background: rgba(217, 104, 48, 0.75);3802  margin-left: 5px;3803  vertical-align: middle;3804  flex-shrink: 0;3805  box-shadow: 0 0 4px rgba(217, 104, 48, 0.4);3806}38073808.peach-entry-row.is-tab-match {3809  background: rgba(217, 104, 48, 0.04);3810  border-bottom-color: rgba(217, 104, 48, 0.08);3811}38123813.peach-entry-row.is-tab-match:hover {3814  background: rgba(217, 104, 48, 0.08);3815}38163817/* Entry list stagger entrance */3818@keyframes peach-entry-fadein {3819  from { opacity: 0; transform: translateY(4px); }3820  to   { opacity: 1; transform: translateY(0); }3821}38223823.peach-vault-list .peach-entry-row {3824  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;3825  content-visibility: auto;3826  contain-intrinsic-size: auto 44px;3827}38283829/* Button press micro-interaction */3830.peach-btn:active {3831  transform: scale(0.95);3832  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3833}38343835.peach-sort-btn:active,3836.peach-tag-filter-chip:active {3837  transform: scale(0.93);3838  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3839}38403841/* Password strength bar (Lock view + shared) */3842.peach-password-strength {3843  display: flex;3844  align-items: center;3845  gap: 8px;3846  margin-top: 6px;3847}38483849.peach-strength-bar {3850  flex: 1;3851  height: 3px;3852  border-radius: 2px;3853  background: var(--peach-t3);3854  overflow: hidden;3855}38563857.peach-strength-fill {3858  height: 100%;3859  border-radius: 2px;3860  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),3861              background 300ms ease;3862}38633864.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }3865.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }3866.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }3867.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }38683869.peach-strength-label {3870  font-family: "IBM Plex Mono", monospace;3871  font-style: italic;3872  font-size: 9px;3873  font-weight: 300;3874  letter-spacing: 0.06em;3875  color: var(--peach-t2);3876  min-width: 36px;3877  text-align: right;3878}38793880.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }3881.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }3882.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }3883.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }38843885/* Duress form */3886.peach-duress-status {3887  padding: 2px 8px;3888  border-radius: 999px;3889  border: 1px solid var(--peach-t3);3890  font-family: "IBM Plex Mono", monospace;3891  font-size: 9px;3892  letter-spacing: 0.07em;3893  text-transform: uppercase;3894  color: var(--peach-t2);3895  flex-shrink: 0;3896}38973898.peach-duress-status.is-active {3899  border-color: rgba(217, 104, 48, 0.45);3900  background: rgba(217, 104, 48, 0.1);3901  color: rgba(240, 232, 216, 0.85);3902}39033904.peach-duress-form {3905  padding: 8px 0 4px;3906  display: flex;3907  flex-direction: column;3908  gap: 6px;3909}39103911.peach-duress-form .peach-label {3912  margin-top: 4px;3913}39143915.peach-duress-actions {3916  display: flex;3917  gap: 6px;3918  align-items: center;3919  margin-top: 4px;3920}39213922.peach-duress-actions .peach-btn:first-child {3923  margin-right: auto;3924}39253926/* Improved overlay spring entrance */3927.peach-overlay-view.ov-enter-up {3928  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3929}39303931@keyframes ov-enter-up-spring {3932  from { opacity: 0; transform: translateY(16px) scale(0.98); }3933  to   { opacity: 1; transform: translateY(0) scale(1); }3934}39353936.peach-overlay-view.ov-enter-right {3937  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3938}39393940@keyframes ov-enter-right-spring {3941  from { opacity: 0; transform: translateX(18px) scale(0.98); }3942  to   { opacity: 1; transform: translateX(0) scale(1); }3943}39443945/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */3946/* Used when CJKImportView or MainImportView renders during onboarding3947   (no vault yet). Animates like a lock-screen transition. */3948.peach-lock-view {3949  position: absolute;3950  inset: 0;3951  display: flex;3952  flex-direction: column;3953  background:3954    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),3955    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),3956    var(--peach-bg);3957  z-index: 2;3958  overflow: hidden;3959  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3960}39613962.peach-lock-view-header {3963  display: flex;3964  align-items: center;3965  justify-content: space-between;3966  padding: 16px 18px 12px;3967  flex-shrink: 0;3968}39693970/* ───────── Settings: auto-lock select ───────── */3971.peach-settings-select {3972  font-family: "IBM Plex Mono", monospace;3973  font-size: 11px;3974  background: transparent;3975  border: 1px solid var(--peach-t3);3976  border-radius: 4px;3977  color: var(--peach-t1);3978  padding: 3px 6px;3979  cursor: pointer;3980  outline: none;3981}3982.peach-settings-select:focus {3983  border-color: var(--peach-accent);3984}39853986/* ───────── Duress status pill (new polished) ───────── */3987.peach-duress-status-pill {3988  font-family: "IBM Plex Mono", monospace;3989  font-size: 9px;3990  text-transform: uppercase;3991  letter-spacing: 0.12em;3992  padding: 2px 8px;3993  border-radius: 12px;3994  background: var(--peach-t3);3995  color: var(--peach-t2);3996  flex-shrink: 0;3997}3998.peach-duress-status-pill.is-active {3999  background: rgba(217, 104, 48, 0.15);4000  color: var(--peach-accent);4001}40024003/* ───────── Entry advanced disclosure (canary) ───────── */4004.peach-entry-advanced {4005  margin-top: 12px;4006  border-top: 1px solid var(--peach-t3);4007  padding-top: 10px;4008  position: relative;4009  z-index: 1;4010}4011.peach-entry-advanced-toggle {4012  display: flex;4013  align-items: center;4014  justify-content: space-between;4015  width: 100%;4016  background: transparent;4017  border: none;4018  cursor: pointer;4019  padding: 0;4020  color: var(--peach-t2);4021}4022.peach-canary-section {4023  margin-top: 10px;4024  display: grid;4025  gap: 6px;4026}40274028/* ───────── Import: merge/replace radio choices ───────── */4029.peach-import-choice {4030  display: flex;4031  align-items: flex-start;4032  gap: 10px;4033  padding: 8px 10px;4034  border: 1px solid var(--peach-t3);4035  border-radius: 10px;4036  cursor: pointer;4037  margin-bottom: 6px;4038  transition: border-color 120ms ease, background 120ms ease;4039}4040.peach-import-choice:hover {4041  border-color: var(--peach-accent);4042}4043.peach-import-choice input[type="radio"] {4044  margin-top: 3px;4045  accent-color: var(--peach-accent);4046  flex-shrink: 0;4047}4048.peach-import-choice-main {4049  display: flex;4050  flex-direction: column;4051  gap: 2px;4052  min-width: 0;4053}4054.peach-import-choice-label {4055  font-size: 12px;4056  color: var(--peach-t0);4057}4058.peach-import-choice-sub {4059  font-size: 11px;4060  color: var(--peach-t2);4061  line-height: 1.5;4062}40634064/* ───────── Export: success confirmation strip ───────── */4065.peach-export-success {4066  display: flex;4067  align-items: flex-start;4068  gap: 10px;4069  padding: 12px;4070  border-radius: 12px;4071  border: 1px solid rgba(150, 175, 110, 0.3);4072  background: rgba(150, 175, 110, 0.08);4073  color: var(--peach-t0);4074  font-size: 12px;4075  line-height: 1.55;4076}4077.peach-export-success-check {4078  color: rgba(150, 175, 110, 0.9);4079  font-size: 14px;4080  flex-shrink: 0;4081}40824083/* ── Trash view ──────────────────────────────────────────────────────── */4084.peach-trash-entry-row {4085  display: flex;4086  align-items: center;4087  justify-content: space-between;4088  gap: 8px;4089  padding: 8px 0;4090  border-bottom: 1px solid var(--peach-t3);4091}4092.peach-trash-entry-row:last-child { border-bottom: none; }4093.peach-trash-entry-info {4094  flex: 1;4095  min-width: 0;4096  display: flex;4097  flex-direction: column;4098  gap: 2px;4099}4100.peach-trash-entry-title {4101  font-size: 12px;4102  color: var(--peach-t1);4103  overflow: hidden;4104  text-overflow: ellipsis;4105  white-space: nowrap;4106}4107.peach-trash-entry-meta {4108  font-family: var(--font-mono);4109  font-size: 9px;4110  color: var(--peach-t2);4111  letter-spacing: 0.06em;4112}4113.peach-trash-entry-actions {4114  display: flex;4115  align-items: center;4116  gap: 4px;4117  flex-shrink: 0;4118}41194120/* ── Settings shortcuts grid ─────────────────────────────────────────── */4121.peach-shortcuts-grid {4122  display: grid;4123  grid-template-columns: auto 1fr;4124  gap: 6px 12px;4125  align-items: center;4126  padding: 4px 0;4127}4128.peach-shortcut-key {4129  font-family: var(--font-mono);4130  font-size: 10px;4131  color: var(--peach-t0);4132  background: var(--peach-t3);4133  border-radius: 4px;4134  padding: 2px 6px;4135  white-space: nowrap;4136  text-align: center;4137}4138.peach-shortcut-desc {4139  font-size: 11px;4140  color: var(--peach-t1);4141}41424143/* ── Sort bar trash button ───────────────────────────────────────────── */4144.peach-sort-trash-btn {4145  display: flex;4146  align-items: center;4147  justify-content: center;4148  padding: 3px 5px;4149  background: transparent;4150  border: none;4151  cursor: pointer;4152  color: var(--peach-t2);4153  border-radius: 4px;4154  transition: color 140ms ease, background 140ms ease;4155}4156.peach-sort-trash-btn:hover {4157  color: var(--peach-t1);4158  background: var(--peach-t3);4159}