popup.css

92.7 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: 0;103  border: 1px solid rgba(217, 104, 48, 0);104  box-shadow: 0 0 0 rgba(217, 104, 48, 0);105  border-radius: inherit;106  opacity: 0;107  transform: scale(0.996);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}670.peach-totp-main {671  min-width: 0;672}673.peach-totp-code-row {674  display: flex;675  align-items: flex-end;676  gap: 10px;677  min-width: 0;678}679.peach-totp-code {680  margin: 2px 0 0;681  font-family: "Cormorant Garamond", "Times New Roman", serif;682  font-style: italic;683  font-weight: 300;684  font-size: 38px; color: var(--peach-accent);685  line-height: 0.95; min-height: 1em;686  min-width: 0;687}688.peach-totp-code-text {689  display: inline-flex;690  overflow: hidden;691  text-overflow: ellipsis;692  white-space: nowrap;693}694.peach-totp-copy-btn {695  margin-bottom: 2px;696  flex-shrink: 0;697}698.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }699.peach-totp-countdown {700  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;701  font-size: 22px; color: var(--peach-t1);702}703.peach-totp-ring { transform: rotate(-90deg); }704.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }705.peach-totp-ring-progress {706  fill: none; stroke: var(--peach-accent); stroke-width: 2;707  stroke-linecap: round;708  transition: stroke-dashoffset 1s linear, stroke 500ms ease;709}710/* Search bar */711.peach-search-wrap {712  border-top: 1px solid var(--peach-t3);713  background: var(--peach-s1);714  min-height: 54px; position: relative;715}716.peach-search-wrap::before {717  content: "";718  position: absolute;719  left: 0;720  top: 0;721  height: 2px;722  width: var(--peach-totp-progress, 0%);723  background: var(--peach-accent);724  opacity: 0;725  transition: width 1s linear, opacity 180ms ease;726  pointer-events: none;727}728.peach-shell[data-totp-active="true"] .peach-search-wrap::before {729  opacity: 0.9;730}731732@keyframes peach-edge-ring-breath {733  0% {734    opacity: 0;735    border-color: rgba(217, 104, 48, 0);736    box-shadow: 0 0 0 rgba(217, 104, 48, 0);737    transform: scale(0.996);738  }739  36% {740    opacity: 0.82;741    border-color: rgba(217, 104, 48, 0.34);742    box-shadow:743      0 0 0 1px rgba(217, 104, 48, 0.08),744      0 0 10px rgba(217, 104, 48, 0.1);745    transform: scale(1);746  }747  64% {748    opacity: 0.36;749    border-color: rgba(217, 104, 48, 0.18);750    box-shadow:751      0 0 0 1px rgba(217, 104, 48, 0.05),752      0 0 14px rgba(217, 104, 48, 0.06);753    transform: scale(1.001);754  }755  100% {756    opacity: 0;757    border-color: rgba(217, 104, 48, 0);758    box-shadow: 0 0 0 rgba(217, 104, 48, 0);759    transform: scale(1.002);760  }761}762.peach-search-bar {763  min-height: 54px;764  display: grid;765  grid-template-columns: auto minmax(0, 1fr) auto;766  align-items: center;767  gap: 8px; padding: 0 9px 0 12px;768}769.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }770.peach-search-input {771  border: 0; background: transparent; color: var(--peach-t0);772  font-family: "Cormorant Garamond", "Times New Roman", serif;773  font-style: italic; font-size: 18px;774  outline: none; width: 100%; min-width: 0; padding: 0;775  caret-color: var(--peach-accent);776}777.peach-search-input::placeholder { color: var(--peach-t2); }778.peach-search-meta {779  display: grid;780  grid-auto-flow: column;781  align-items: center;782  justify-content: end;783  gap: 6px;784  min-width: max-content;785}786.peach-search-counter {787  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;788  font-size: 10px; color: var(--peach-t2);789  display: inline-flex;790  align-items: center;791  line-height: 1;792}793.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }794795/* Buttons */796.peach-btn {797  border: 1px solid transparent; border-radius: 12px;798  background: transparent; color: var(--peach-t0);799  font-family: Inter, system-ui, sans-serif;800  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;801  cursor: pointer;802  transition:803    background-color var(--peach-dur-80) var(--peach-curve-arrival),804    color var(--peach-dur-80) var(--peach-curve-arrival),805    border-color var(--peach-dur-150) var(--peach-curve-arrival);806}807.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }808.peach-btn:disabled {809  opacity: 0.45;810  cursor: not-allowed;811}812.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }813.peach-btn--md { min-height: 38px; }814.peach-btn--accent { background: var(--peach-accent); color: rgba(0,0,0,0.75); }815.peach-btn--accent:hover:not(:disabled) { background: var(--peach-accent); filter: brightness(1.12); }816.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }817.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }818.peach-icon-btn {819  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;820  display: inline-flex; align-items: center; justify-content: center;821}822823.peach-btn:focus-visible {824  outline: none;825  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px rgba(217, 104, 48, 0.5);826}827828/* Lock button */829.peach-lock-icon { transform-origin: center; }830.peach-lock-btn.is-locking { color: var(--peach-accent); }831.peach-lock-btn.is-locking .peach-lock-icon {832  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);833}834835/* Copy button */836.peach-copy-btn {837  position: relative; overflow: hidden;838  color: var(--peach-t2); border-color: var(--peach-t3);839}840.peach-copy-icon {841  display: inline-flex; align-items: center; justify-content: center;842  position: relative; z-index: 1;843}844.peach-copy-icon-svg { display: block; }845.peach-copy-sheen {846  position: absolute; inset: 0;847  background: linear-gradient(90deg, rgba(217,104,48,0) 0%, rgba(217,104,48,0.18) 30%, rgba(217,104,48,0.08) 100%);848  opacity: 0; transform: scaleX(0.15); transform-origin: left center;849}850.peach-copy-btn.is-copied {851  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;852  box-shadow:853    0 0 0 1px rgba(217,104,48,0.22),854    0 0 18px rgba(217,104,48,0.2),855    inset 0 0 20px rgba(217,104,48,0.12);856}857.peach-copy-btn.is-copied .peach-copy-icon {858  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;859}860.peach-copy-btn.is-copied .peach-copy-sheen {861  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;862}863.peach-copy-btn.is-retreat {864  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;865}866.peach-copy-btn.is-retreat .peach-copy-sheen {867  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;868}869.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }870.peach-copy-drain-bar {871  display: block; width: 100%; height: 100%;872  background: var(--peach-accent); opacity: 0.7;873  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;874}875876/* Unlock screen elements */877.peach-unlock-headline {878  margin: 2px 0 0;879  font-family: "Cormorant Garamond", "Times New Roman", serif;880  font-size: 52px; line-height: 0.95;881  font-style: italic; font-weight: 400;882}883.peach-subline {884  margin: 0;885  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;886  font-size: 10px; color: var(--peach-t2); font-style: italic;887}888.peach-subline--lock {889  max-width: 248px;890  line-height: 1.5;891}892.peach-underline-input {893  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);894  padding: 6px 0; background: transparent; color: var(--peach-t0);895  outline: none;896  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;897  font-size: 13px;898  caret-color: var(--peach-accent);899}900.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }901.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }902.peach-hint {903  margin: 0;904  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;905  font-size: 10px; color: var(--peach-t2);906}907.peach-unlock-footer {908  margin-top: 4px; display: flex; align-items: center; gap: 7px;909  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;910  font-size: 10px; color: var(--peach-t2);911}912.peach-unlock-footer--lock {913  padding-top: 2px;914}915916/* Breach badge */917.peach-breach-badge {918  display: flex;919  position: relative;920  z-index: 1;921  align-items: center;922  gap: 7px;923  font-size: 9px;924  color: var(--peach-breach);925  padding: 5px 10px;926  margin-bottom: 4px;927  border-radius: 8px;928  background: rgba(220, 80, 60, 0.07);929  border: 1px solid rgba(220, 80, 60, 0.18);930  letter-spacing: 0.04em;931}932933.peach-breach-action {934  margin-left: auto;935  font-size: 10px;936  padding: 3px 8px;937}938939.peach-password-value.is-breached {940  color: rgba(220, 80, 60, 0.75);941  border-bottom: 1px solid rgba(220, 80, 60, 0.22);942}943944/* ── Overlay views ─────────────────────────────────────────────────── */945.peach-overlay-view {946  position: absolute;947  inset: 0;948  display: flex;949  flex-direction: column;950  background:951    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),952    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),953    var(--peach-bg);954  z-index: 2;955  overflow: hidden;956  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;957}958@keyframes overlay-in {959  from { opacity: 0; transform: translateY(8px); }960  to   { opacity: 1; transform: translateY(0); }961}962.peach-overlay-view.ov-enter-up {963  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;964}965.peach-overlay-view.ov-exit-up {966  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;967}968.peach-overlay-view.ov-enter-right {969  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;970}971.peach-overlay-view.ov-exit-right {972  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;973}974975@keyframes ov-enter-up {976  from { opacity: 0; transform: translateY(18px); }977  to   { opacity: 1; transform: translateY(0); }978}979@keyframes ov-exit-up {980  from { opacity: 1; transform: translateY(0); }981  to   { opacity: 0; transform: translateY(-12px); }982}983@keyframes ov-enter-right {984  from { opacity: 0; transform: translateX(20px); }985  to   { opacity: 1; transform: translateX(0); }986}987@keyframes ov-exit-right {988  from { opacity: 1; transform: translateX(0); }989  to   { opacity: 0; transform: translateX(20px); }990}991992/* Overlay shared header */993.peach-overlay-header {994  padding: 10px 12px;995  display: flex;996  align-items: center;997  gap: 8px;998  border-bottom: 1px solid var(--peach-t3);999  flex-shrink: 0;1000}1001.peach-overlay-title {1002  font-family: "IBM Plex Mono", monospace;1003  font-size: 9px;1004  text-transform: uppercase;1005  letter-spacing: 0.18em;1006  color: var(--peach-t2);1007  flex: 1;1008  text-align: center;1009}10101011.peach-overlay-card {1012  background: var(--peach-s1);1013  border: 1px solid var(--peach-t3);1014  border-radius: 12px;1015  overflow: hidden;1016  width: 100%;1017}10181019.peach-onboarding-alt-actions {1020  display: flex;1021  flex-direction: column;1022  gap: 4px;1023  padding: 0;1024}10251026.peach-settings-copy {1027  margin: 0 0 10px;1028  font-size: 11px;1029  line-height: 1.5;1030  color: var(--peach-t2);1031}10321033.peach-settings-copy strong {1034  color: var(--peach-t0);1035}10361037.peach-settings-copy--spacious {1038  margin-bottom: 12px;1039}10401041.peach-settings-copy--result {1042  color: var(--peach-accent);1043  font-size: 13px;1044  text-align: center;1045  padding: 8px 0;1046}10471048.peach-settings-copy--danger {1049  color: var(--peach-breach);1050}10511052.peach-settings-copy--success {1053  color: var(--peach-accent);1054}10551056.peach-inline-feedback {1057  font-size: 11px;1058  margin: 10px 0 0;1059}10601061.peach-inline-feedback--ok {1062  color: var(--peach-accent);1063}10641065.peach-inline-feedback--error {1066  color: var(--peach-breach);1067}10681069.peach-inline-feedback--muted {1070  color: var(--peach-t2);1071  font-size: 10px;1072  margin: 4px 0;1073}10741075.peach-inline-feedback--spaced {1076  margin-top: 12px;1077}10781079.peach-settings-actions--row {1080  display: flex;1081  gap: 6px;1082}10831084.peach-settings-actions--end {1085  margin-top: 14px;1086  justify-content: flex-end;1087}10881089.peach-settings-stack {1090  display: flex;1091  flex-direction: column;1092  gap: 6px;1093}10941095.peach-settings-stack--tight {1096  gap: 4px;1097}10981099.peach-settings-stack--spacious {1100  gap: 8px;1101}11021103.peach-settings-input {1104  width: 100%;1105  box-sizing: border-box;1106  padding: 8px 10px;1107  background: var(--peach-s2);1108  border: 1px solid var(--peach-t3);1109  border-radius: 6px;1110  color: var(--peach-t0);1111  font-family: var(--font-ui);1112  font-size: 12px;1113  outline: none;1114  transition: border-color 120ms ease;1115}11161117.peach-settings-input:focus {1118  border-color: var(--peach-accent);1119}11201121.peach-settings-input[type="password"] {1122  font-family: var(--font-mono);1123  letter-spacing: 0.04em;1124}11251126.peach-phrase-textarea {1127  width: 100%;1128  box-sizing: border-box;1129  min-height: 120px;1130  padding: 10px 12px;1131  background: var(--peach-s2);1132  border: 1px solid var(--peach-t3);1133  border-radius: 6px;1134  color: var(--peach-t0);1135  font-size: 12px;1136  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1137  line-height: 1.5;1138  resize: vertical;1139  outline: none;1140}11411142.peach-phrase-textarea:focus {1143  border-color: var(--peach-accent);1144}11451146.peach-hidden-file-input {1147  display: none;1148}11491150.peach-checkbox-note {1151  display: flex;1152  align-items: flex-start;1153  gap: 8px;1154  font-size: 11px;1155  color: var(--peach-t1);1156  cursor: pointer;1157  margin: 12px 0;1158}11591160.peach-checkbox-note input {1161  margin-top: 1px;1162}11631164.peach-cjk-phrase-box {1165  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1166  font-size: 13px;1167  line-height: 1.5;1168  background: var(--peach-s2);1169  border: 1px solid var(--peach-t3);1170  border-radius: 6px;1171  padding: 10px 12px;1172  margin: 0 0 10px;1173  word-break: break-all;1174  white-space: pre-wrap;1175  max-height: 220px;1176  overflow-y: auto;1177  color: var(--peach-t0);1178  user-select: all;1179  scrollbar-width: none;1180  -ms-overflow-style: none;1181}1182.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }11831184.peach-danger-notice {1185  background: rgba(220, 80, 60, 0.08);1186  border: 1px solid rgba(220, 80, 60, 0.2);1187  border-radius: 6px;1188  padding: 9px 11px;1189  font-size: 11px;1190  color: var(--peach-t1);1191  line-height: 1.5;1192}11931194.peach-info-notice {1195  font-size: 11px;1196  color: var(--peach-t2);1197  line-height: 1.5;1198  background: rgba(240, 232, 216, 0.04);1199  border: 1px solid var(--peach-t3);1200  border-radius: 6px;1201  padding: 8px 10px;1202}12031204.peach-strength-row {1205  display: flex;1206  align-items: center;1207  gap: 8px;1208  margin-bottom: 10px;1209}12101211.peach-strength-track {1212  flex: 1;1213  height: 4px;1214  background: var(--peach-s2);1215  border-radius: 2px;1216  overflow: hidden;1217}12181219.peach-strength-fill {1220  height: 100%;1221  border-radius: 2px;1222  transition: width 120ms ease, background 120ms ease;1223}12241225/* ── Type selector tabs ── */1226.peach-type-tabs {1227  display: flex;1228  gap: 0;1229  background: var(--peach-t4);1230  border-radius: 8px;1231  padding: 3px;1232}12331234.peach-type-tab {1235  flex: 1;1236  display: flex;1237  align-items: center;1238  justify-content: center;1239  gap: 6px;1240  padding: 6px 10px;1241  border-radius: 6px;1242  border: none;1243  background: transparent;1244  cursor: pointer;1245  font-family: Inter, system-ui, sans-serif;1246  font-size: 11px;1247  font-weight: 400;1248  letter-spacing: 0.04em;1249  color: var(--peach-t1);1250  transition: background 150ms ease, color 150ms ease;1251}12521253.peach-type-tab.is-active {1254  background: var(--peach-s2);1255  color: var(--peach-t0);1256  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1257}12581259.peach-type-tab:not(.is-active):hover {1260  color: var(--peach-t0);1261}12621263.peach-type-tab svg {1264  opacity: 0.7;1265  flex-shrink: 0;1266}12671268.peach-type-tab.is-active svg {1269  opacity: 1;1270}12711272/* ── List view ───────────────────────────────────────────────────────── */1273.peach-list-top {1274  padding: 0 10px;1275  min-height: 46px;1276  display: flex;1277  align-items: center;1278  gap: 6px;1279  border-bottom: 1px solid var(--peach-t3);1280  flex-shrink: 0;1281  background: var(--peach-s1);1282}1283.peach-vault-list {1284  flex: 1;1285  overflow-y: auto;1286  scrollbar-width: none;1287}1288.peach-vault-list::-webkit-scrollbar { display: none; }12891290/* Scrollbar — vault list */1291.peach-vault-list {1292  scrollbar-width: thin;1293  scrollbar-color: var(--peach-t3) transparent;1294}12951296.peach-vault-list::-webkit-scrollbar {1297  width: 3px;1298}12991300.peach-vault-list::-webkit-scrollbar-thumb {1301  background: var(--peach-t3);1302  border-radius: 2px;1303}13041305.peach-entry-row {1306  width: 100%;1307  display: flex;1308  align-items: center;1309  gap: 10px;1310  padding: 9px 16px;1311  background: transparent;1312  border: none;1313  border-bottom: 1px solid var(--peach-t3);1314  cursor: pointer;1315  color: inherit;1316  text-align: left;1317  transition: background 80ms ease;1318}1319.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1320.peach-entry-row:last-child { border-bottom: none; }1321.peach-entry-row.is-active {1322  box-shadow: inset 2px 0 0 var(--peach-accent);1323  background: rgba(240,232,216,0.03);1324}1325.peach-entry-row-icon {1326  width: 26px; height: 26px;1327  border-radius: 7px;1328  border: 1px solid var(--peach-t3);1329  display: flex; align-items: center; justify-content: center;1330  color: var(--peach-t2);1331  flex-shrink: 0;1332}1333.peach-entry-row-icon.is-breach {1334  border-color: rgba(220,80,60,0.3);1335  color: rgba(220,80,60,0.7);1336}1337.peach-entry-row-info { flex: 1; min-width: 0; }1338.peach-entry-row-name {1339  display: block;1340  font-family: "Cormorant Garamond", serif;1341  font-size: 17px;1342  font-style: italic;1343  font-weight: 400;1344  color: var(--peach-t0);1345  line-height: 1.2;1346  white-space: nowrap;1347  overflow: hidden;1348  text-overflow: ellipsis;1349}1350.peach-entry-row-meta {1351  display: block;1352  font-family: "IBM Plex Mono", monospace;1353  font-size: 9px;1354  color: var(--peach-t2);1355  margin-top: 1px;1356  letter-spacing: 0.05em;1357}1358.peach-entry-row-dot {1359  width: 5px; height: 5px;1360  border-radius: 50%;1361  background: rgba(220,80,60,0.7);1362  flex-shrink: 0;1363}1364.peach-new-entry-row {1365  display: flex;1366  align-items: center;1367  justify-content: center;1368  gap: 6px;1369  width: 100%;1370  padding: 11px;1371  background: transparent;1372  border: none;1373  border-top: 1px solid var(--peach-t3);1374  color: var(--peach-t2);1375  font-family: "IBM Plex Mono", monospace;1376  font-size: 9px;1377  text-transform: uppercase;1378  letter-spacing: 0.14em;1379  cursor: pointer;1380  flex-shrink: 0;1381  transition: color 120ms ease, background 120ms ease;1382}1383.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13841385/* ── Multi-select mode ─────────────────────────────────────────────── */13861387/* Select-mode trigger button in sort bar — same shape as trash btn */1388.peach-sort-select-btn {1389  display: flex;1390  align-items: center;1391  justify-content: center;1392  padding: 3px 5px;1393  background: transparent;1394  border: none;1395  cursor: pointer;1396  color: var(--peach-t2);1397  border-radius: 4px;1398  transition: color 140ms ease, background 140ms ease;1399}1400.peach-sort-select-btn:hover {1401  color: var(--peach-t1);1402  background: var(--peach-t3);1403}14041405/* Sort bar in select mode */1406.peach-select-cancel-btn {1407  background: transparent;1408  border: none;1409  padding: 0 4px;1410  cursor: pointer;1411  font-family: "IBM Plex Mono", monospace;1412  font-size: 9px;1413  letter-spacing: 0.12em;1414  text-transform: uppercase;1415  color: var(--peach-t2);1416  transition: color 140ms ease;1417  flex-shrink: 0;1418}1419.peach-select-cancel-btn:hover { color: var(--peach-t0); }14201421.peach-select-count-label {1422  flex: 1;1423  text-align: center;1424  font-family: "IBM Plex Mono", monospace;1425  font-size: 9px;1426  letter-spacing: 0.14em;1427  text-transform: uppercase;1428  color: var(--peach-t1);1429}14301431.peach-select-all-btn {1432  background: transparent;1433  border: none;1434  padding: 0 4px;1435  cursor: pointer;1436  font-family: "IBM Plex Mono", monospace;1437  font-size: 9px;1438  letter-spacing: 0.12em;1439  text-transform: uppercase;1440  color: var(--peach-t2);1441  transition: color 140ms ease;1442  flex-shrink: 0;1443}1444.peach-select-all-btn:hover { color: var(--peach-accent); }14451446/* List in select mode */1447.peach-vault-list.is-selecting .peach-entry-row {1448  cursor: default;1449}1450.peach-vault-list.is-selecting .peach-entry-row:hover {1451  background: rgba(240,232,216,0.02);1452}1453.peach-vault-list.is-selecting .peach-entry-row.is-selected {1454  background: rgba(217,104,48,0.06);1455}1456.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1457  background: rgba(217,104,48,0.1);1458}14591460/* Select indicator circles in icon slot */1461.peach-entry-row-icon.is-select-icon {1462  color: var(--peach-t2);1463}1464.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1465  color: var(--peach-accent);1466}14671468/* Delete action bar at bottom (replaces new-entry row) */1469.peach-select-action-bar {1470  display: flex;1471  align-items: center;1472  justify-content: center;1473  gap: 7px;1474  width: 100%;1475  padding: 11px;1476  background: transparent;1477  border: none;1478  border-top: 1px solid var(--peach-t3);1479  color: var(--peach-t1);1480  font-family: "IBM Plex Mono", monospace;1481  font-size: 9px;1482  text-transform: uppercase;1483  letter-spacing: 0.14em;1484  cursor: pointer;1485  flex-shrink: 0;1486  transition: color 120ms ease, background 120ms ease;1487}1488.peach-select-action-bar:not(:disabled):hover {1489  color: var(--peach-t0);1490  background: rgba(220,80,60,0.06);1491}1492.peach-select-action-bar:not(:disabled):hover svg {1493  stroke: rgba(220,80,60,0.8);1494}1495.peach-select-action-bar:disabled,1496.peach-select-action-bar.is-empty {1497  color: var(--peach-t2);1498  cursor: default;1499  opacity: 0.5;1500}1501.peach-search-counter-list {1502  white-space: nowrap;1503  flex-shrink: 0;1504}1505.peach-list-empty {1506  min-height: 180px;1507  display: grid;1508  place-items: center;1509  color: var(--peach-t2);1510  font-family: "IBM Plex Mono", monospace;1511  font-size: 11px;1512}15131514/* ── Settings view ───────────────────────────────────────────────────── */1515.peach-settings-body {1516  flex: 1;1517  overflow-y: auto;1518  min-height: 0;1519  display: flex;1520  flex-direction: column;1521  padding: 2px 0 10px;1522}1523.peach-settings-group {1524  padding: 9px 16px 11px;1525  border-bottom: 1px solid var(--peach-t3);1526}1527.peach-export-intro {1528  padding-bottom: 8px;1529}1530.peach-export-card {1531  display: grid;1532  gap: 10px;1533}1534.peach-export-card--primary {1535  background:1536    linear-gradient(180deg, rgba(217,104,48,0.08), rgba(217,104,48,0.02));1537}1538.peach-export-card-head {1539  display: flex;1540  align-items: center;1541  justify-content: space-between;1542  gap: 10px;1543}1544.peach-export-card-copy {1545  margin: 0;1546  font-size: 12px;1547  line-height: 1.55;1548  color: var(--peach-t1);1549}1550.peach-export-note {1551  margin: 0;1552  font-size: 10px;1553  line-height: 1.5;1554  color: var(--peach-t2);1555}1556.peach-export-pill {1557  display: inline-flex;1558  align-items: center;1559  padding: 4px 8px;1560  border-radius: 999px;1561  border: 1px solid rgba(217,104,48,0.22);1562  background: rgba(217,104,48,0.08);1563  color: var(--peach-accent);1564  font-family: "IBM Plex Mono", monospace;1565  font-size: 8px;1566  letter-spacing: 0.12em;1567  text-transform: uppercase;1568  white-space: nowrap;1569}1570.peach-export-pill--danger {1571  border-color: rgba(220,80,60,0.22);1572  background: rgba(220,80,60,0.08);1573  color: var(--peach-breach);1574}1575.peach-export-password-stack {1576  gap: 8px;1577}1578.peach-settings-label {1579  margin: 0 0 6px;1580  font-family: "IBM Plex Mono", monospace;1581  font-size: 8px;1582  text-transform: uppercase;1583  letter-spacing: 0.18em;1584  color: var(--peach-t2);1585}1586.peach-settings-row {1587  display: flex;1588  align-items: center;1589  justify-content: space-between;1590  gap: 12px;1591  min-height: 34px;1592  padding: 6px 0;1593  font-size: 13px;1594  color: var(--peach-t1);1595}1596.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1597.peach-settings-value {1598  font-family: "IBM Plex Mono", monospace;1599  font-size: 10px;1600  color: var(--peach-t2);1601}16021603.peach-settings-value--status {1604  display: flex;1605  align-items: center;1606  gap: 6px;1607}16081609.peach-settings-row--stack {1610  flex-direction: column;1611  align-items: stretch;1612  gap: 6px;1613}16141615.peach-settings-row--top {1616  align-items: flex-start;1617}16181619.peach-settings-row-main {1620  display: flex;1621  flex-direction: column;1622  gap: 4px;1623  flex: 1;1624}1625.peach-toggle {1626  width: 28px; height: 16px;1627  border-radius: 999px;1628  background: var(--peach-t3);1629  border: 1px solid var(--peach-t3);1630  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1631  flex-shrink: 0;1632  transition: background 200ms ease, border-color 200ms ease;1633  cursor: pointer;1634}1635.peach-toggle.is-on {1636  background: rgba(217,104,48,0.22);1637  border-color: rgba(217,104,48,0.4);1638}1639.peach-toggle-knob {1640  width: 10px; height: 10px;1641  border-radius: 50%;1642  background: var(--peach-t2);1643  flex-shrink: 0;1644  transform: translateX(0px);1645  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1646}1647.peach-toggle.is-on .peach-toggle-knob {1648  background: var(--peach-accent);1649  transform: translateX(12px);1650}1651.peach-settings-footer {1652  display: flex;1653  align-items: center;1654  gap: 8px;1655  margin-top: auto;1656  padding: 14px 16px 8px;1657  font-family: "IBM Plex Mono", monospace;1658  font-size: 9px;1659  color: var(--peach-t2);1660}16611662.peach-passkey-badge {1663  margin-left: 8px;1664  font-size: 10px;1665  letter-spacing: 0.06em;1666  text-transform: uppercase;1667  color: var(--peach-t2);1668  font-family: var(--font-ui);1669  vertical-align: middle;1670}16711672.peach-passkey-delete-btn {1673  color: var(--peach-breach);1674  border-color: rgba(229, 85, 85, 0.25);1675}16761677.peach-passkey-delete-confirm {1678  display: flex;1679  align-items: center;1680  gap: 8px;1681  padding: 8px 10px;1682  background: rgba(229, 85, 85, 0.06);1683  border: 1px solid rgba(229, 85, 85, 0.2);1684  border-radius: 6px;1685}16861687.peach-passkey-delete-confirm-copy {1688  flex: 1;1689  font-size: 11px;1690  color: var(--peach-t1);1691}16921693.peach-passkey-delete-btn--confirm {1694  color: var(--peach-breach);1695  border-color: rgba(229, 85, 85, 0.4);1696}16971698.peach-passkey-activity {1699  flex-direction: column;1700  align-items: flex-start;1701  gap: 4px;1702}17031704.peach-passkey-meta {1705  font-size: 11px;1706  color: var(--peach-t2);1707}17081709.peach-passkey-actions {1710  position: relative;1711  z-index: 1;1712  margin-top: 14px;1713  display: flex;1714  flex-direction: column;1715  gap: 8px;1716}17171718.peach-passkey-approval {1719  display: flex;1720  flex-direction: column;1721  align-items: center;1722  padding: 28px 22px 22px;1723  gap: 14px;1724  text-align: center;1725}17261727.peach-passkey-approval-icon {1728  width: 46px;1729  height: 46px;1730  border-radius: 12px;1731  background: var(--peach-s2);1732  border: 1px solid var(--peach-t3);1733  display: flex;1734  align-items: center;1735  justify-content: center;1736  flex-shrink: 0;1737  color: var(--peach-accent);1738}17391740.peach-passkey-approval-icon img,1741.peach-passkey-approval-icon svg {1742  width: 28px;1743  height: 28px;1744  border-radius: 6px;1745}17461747.peach-passkey-approval-rp {1748  font-family: var(--font-ui);1749  font-size: 12px;1750  color: var(--peach-t2);1751  letter-spacing: 0.03em;1752}17531754.peach-passkey-approval-action {1755  font-family: var(--font-display);1756  font-style: italic;1757  font-weight: 300;1758  font-size: 26px;1759  color: var(--peach-t0);1760  line-height: 1;1761}17621763.peach-passkey-approval-user {1764  font-family: var(--font-mono);1765  font-size: 11px;1766  color: var(--peach-t1);1767  background: var(--peach-s2);1768  border: 1px solid var(--peach-t3);1769  border-radius: 4px;1770  padding: 3px 8px;1771}17721773.peach-passkey-approval-notice {1774  font-size: 10px;1775  color: var(--peach-t2);1776  line-height: 1.5;1777  max-width: 220px;1778}17791780.peach-passkey-approval-actions {1781  display: flex;1782  gap: 8px;1783  width: 100%;1784  margin-top: 6px;1785}17861787.peach-passkey-approval-actions .peach-btn {1788  flex: 1;1789}17901791/* ── Inline generator drawer ── */1792.peach-generator-drawer {1793  display: grid;1794  grid-template-rows: 0fr;1795  transition: grid-template-rows 320ms var(--peach-curve-arrival);1796  overflow: hidden;1797}1798.peach-generator-drawer.is-open {1799  grid-template-rows: 1fr;1800}1801.peach-generator-drawer-inner {1802  min-height: 0;1803  overflow: hidden;1804}1805.peach-generator-drawer-content {1806  border-top: 1px solid var(--peach-t3);1807  padding: 8px 0 4px;1808  display: flex;1809  flex-direction: column;1810  gap: 8px;1811}18121813/* ── Compact generator (inside entry edit) ── */1814.peach-generator-drawer-content--compact {1815  border-top: 1px solid var(--peach-t3);1816  padding: 8px 0 2px;1817  gap: 7px;1818}1819.peach-pwgen-compact-display-row {1820  display: flex;1821  align-items: center;1822  gap: 6px;1823}1824.peach-pwgen-compact-output {1825  flex: 1;1826  min-width: 0;1827  font-family: "IBM Plex Mono", monospace;1828  font-size: 11px;1829  font-weight: 400;1830  letter-spacing: 0.04em;1831  color: var(--peach-t0);1832  background: rgba(240, 232, 216, 0.04);1833  border: 1px solid var(--peach-t3);1834  border-radius: 5px;1835  padding: 5px 8px;1836  word-break: break-all;1837  line-height: 1.5;1838}1839.peach-pwgen-compact-controls {1840  display: flex;1841  align-items: center;1842  gap: 6px;1843}1844.peach-pwgen-compact-slider {1845  flex: 1;1846  min-width: 0;1847  height: 2px !important;1848}1849.peach-pwgen-compact-controls .peach-pwgen-len-num {1850  flex-shrink: 0;1851  min-width: 18px;1852  text-align: right;1853}1854.peach-pwgen-compact-pills {1855  display: flex;1856  gap: 3px;1857  flex-shrink: 0;1858}1859.peach-pwgen-compact-pills .peach-pwgen-pill {1860  padding: 2px 7px;1861  font-size: 8px;1862}1863.peach-pwgen-compact-use {1864  flex-shrink: 0;1865  font-size: 10px !important;1866  padding: 3px 9px !important;1867  min-height: 22px !important;1868  border-radius: 5px !important;1869}18701871/* ── Password edit row (input + eye toggle side-by-side) ── */1872.peach-password-edit-row {1873  display: flex;1874  align-items: center;1875  gap: 6px;1876}1877.peach-password-edit-row .peach-inline-input {1878  flex: 1;1879  min-width: 0;1880}18811882/* ── Generate toggle link ── */1883.peach-generate-toggle-link {1884  display: inline-flex;1885  align-items: center;1886  gap: 5px;1887  background: none;1888  border: none;1889  padding: 0;1890  cursor: pointer;1891  font-family: "IBM Plex Mono", monospace;1892  font-size: 10px;1893  color: var(--peach-t2);1894  letter-spacing: 0.04em;1895  transition: color 120ms ease;1896  align-self: flex-start;1897}1898.peach-generate-toggle-link:hover {1899  color: var(--peach-accent);1900}19011902/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1903.peach-entry-body {1904  flex: 1;1905  overflow-y: auto;1906  overflow-x: hidden;1907  scrollbar-width: none;1908  -ms-overflow-style: none;1909  overscroll-behavior: contain;1910  display: grid;1911  gap: 10px;1912  align-content: start;1913  padding: 10px 20px 14px;1914  min-width: 0;1915  min-height: 0;1916}1917.peach-entry-body::-webkit-scrollbar { display: none; }19181919/* Type-toggle pills (new entry only) */1920.peach-new-type-row {1921  display: flex;1922  gap: 6px;1923  margin-bottom: 2px;1924}1925.peach-new-type-btn {1926  background: transparent;1927  border: 1px solid var(--peach-t3);1928  border-radius: 12px;1929  padding: 3px 10px;1930  font-family: "IBM Plex Mono", monospace;1931  font-size: 9px;1932  letter-spacing: 0.12em;1933  text-transform: uppercase;1934  color: var(--peach-t2);1935  cursor: pointer;1936  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1937}1938.peach-new-type-btn.is-active {1939  color: var(--peach-t0);1940  border-color: var(--peach-accent);1941  background: rgba(217, 104, 48, 0.08);1942}1943.peach-new-type-btn:not(.is-active):hover {1944  color: var(--peach-t1);1945  border-color: var(--peach-t2);1946}19471948/* Editable title */1949.peach-new-title-wrap { margin: 0 0 2px; }1950.peach-new-title-input {1951  background: transparent;1952  border: none;1953  outline: none;1954  width: 100%;1955  color: var(--peach-t0);1956  font-family: "Cormorant Garamond", Georgia, serif;1957  font-style: italic;1958  font-weight: 400;1959  font-size: 40px;1960  line-height: 0.95;1961  caret-color: var(--peach-accent);1962}1963.peach-new-title-input::placeholder { color: var(--peach-t2); }19641965/* Editable domain field */1966.peach-domain-value--edit {1967  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1968  font-size: 10px;1969  font-style: italic;1970  letter-spacing: 0.12em;1971  color: var(--peach-t1);1972  background: transparent;1973  border: none;1974  border-bottom: 1px solid var(--peach-t3);1975  outline: none;1976  width: 100%;1977  padding: 2px 0;1978  caret-color: var(--peach-accent);1979  transition: border-color 140ms ease, color 140ms ease;1980}1981.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1982.peach-domain-value--edit:focus {1983  border-bottom-color: rgba(240, 232, 216, 0.28);1984  color: var(--peach-t0);1985}19861987/* Editable field values (username, password, totp) */1988.peach-field-value--edit {1989  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1990  font-size: 13px;1991  color: var(--peach-t0);1992  background: transparent;1993  border: none;1994  border-bottom: 1px solid var(--peach-t3);1995  outline: none;1996  flex: 1;1997  min-width: 0;1998  padding: 3px 0;1999  caret-color: var(--peach-accent);2000  transition: border-color 140ms ease, color 140ms ease;2001}2002.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2003.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2004.peach-field-value--edit:focus {2005  border-bottom-color: rgba(240, 232, 216, 0.28);2006  color: var(--peach-t0);2007}20082009/* "+ add optional field" links */2010.peach-entry-add-links {2011  display: flex;2012  gap: 12px;2013  flex-wrap: wrap;2014  margin-top: -2px;2015}2016.peach-add-field-link {2017  background: transparent;2018  border: none;2019  padding: 0;2020  cursor: pointer;2021  font-family: "IBM Plex Mono", monospace;2022  font-size: 9px;2023  letter-spacing: 0.1em;2024  text-transform: uppercase;2025  color: var(--peach-t2);2026  transition: color 140ms ease;2027}2028.peach-add-field-link:hover { color: var(--peach-accent); }20292030/* ── New entry form (legacy classes) ────────────────────────────────── */2031.peach-new-body {2032  flex: 1;2033  overflow-y: auto;2034  padding: 10px 20px 14px;2035}2036.peach-new-name-input {2037  background: transparent;2038  border: none;2039  outline: none;2040  width: 100%;2041  color: var(--peach-t0);2042  font-family: "Cormorant Garamond", Georgia, serif;2043  font-style: italic;2044  font-weight: 400;2045  font-size: 40px;2046  line-height: 0.95;2047  caret-color: var(--peach-accent);2048}2049.peach-new-name-input::placeholder { color: var(--peach-t2); }2050.peach-new-field-input {2051  background: transparent;2052  border: none;2053  outline: none;2054  flex: 1;2055  min-width: 0;2056  caret-color: var(--peach-accent);2057}2058.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }20592060/* ── Canary card ── */2061.peach-canary-card {2062  border: 1px solid rgba(217, 160, 48, 0.2);2063  background: rgba(217, 160, 48, 0.03);2064  border-radius: 8px;2065  padding: 12px;2066}20672068.peach-canary-settings-header {2069  display: flex;2070  align-items: center;2071  justify-content: space-between;2072  cursor: pointer;2073  user-select: none;2074}20752076.peach-canary-card .peach-label {2077  color: rgba(217, 160, 48, 0.85);2078}20792080.peach-canary-card .peach-new-field-input {2081  border-color: rgba(217, 160, 48, 0.25);2082}20832084.peach-canary-card .peach-new-field-input:focus {2085  border-color: rgba(217, 160, 48, 0.5);2086}20872088.peach-canary-body {2089  margin-top: 12px;2090  display: flex;2091  flex-direction: column;2092  gap: 10px;2093}20942095.peach-canary-explainer {2096  display: flex;2097  gap: 10px;2098  padding: 10px 12px;2099  border-radius: 10px;2100  background: rgba(217, 160, 48, 0.06);2101  border: 1px solid rgba(217, 160, 48, 0.22);2102  margin-bottom: 4px;2103}21042105.peach-canary-explainer-icon {2106  font-size: 16px;2107  flex-shrink: 0;2108  line-height: 1.2;2109}21102111.peach-canary-explainer-title {2112  font-family: var(--font-ui);2113  font-size: 11px;2114  font-weight: 500;2115  color: rgba(217, 160, 48, 0.9);2116  margin: 0 0 3px;2117}21182119.peach-canary-explainer-copy {2120  font-family: var(--font-ui);2121  font-size: 10px;2122  color: var(--peach-t2);2123  line-height: 1.55;2124  margin: 0;2125}21262127.peach-canary-hint {2128  font-size: 10px;2129  color: var(--peach-t2);2130  font-family: Inter, system-ui, sans-serif;2131  line-height: 1.5;2132  margin-top: 4px;2133}21342135.peach-canary-actions-row {2136  display: flex;2137  align-items: center;2138  gap: 8px;2139}21402141.peach-canary-test-btn {2142  border-color: rgba(217, 160, 48, 0.3);2143  color: rgba(217, 160, 48, 0.85);2144}21452146.peach-canary-test-result {2147  font-size: 10px;2148  font-family: Inter, system-ui, sans-serif;2149}21502151.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2152.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }21532154.peach-canary-badge {2155  display: flex;2156  position: relative;2157  z-index: 1;2158  align-items: center;2159  gap: 5px;2160  padding: 4px 10px;2161  background: rgba(217, 160, 48, 0.12);2162  border: 1px solid rgba(217, 160, 48, 0.35);2163  border-radius: 6px;2164  margin-bottom: 6px;2165  width: fit-content;2166}21672168.peach-canary-badge-label {2169  font-size: 10px;2170  letter-spacing: 0.06em;2171  color: rgba(217, 160, 48, 0.9);2172  font-family: var(--font-ui);2173  text-transform: uppercase;2174}21752176.peach-canary-badge-icon {2177  font-size: 11px;2178}21792180.peach-canary-suppress-row {2181  display: flex;2182  align-items: center;2183  gap: 8px;2184  padding: 6px 10px;2185  background: rgba(217, 160, 48, 0.08);2186  border-radius: 6px;2187  margin-bottom: 8px;2188}21892190.peach-canary-suppress-label {2191  font-size: 11px;2192  color: rgba(217, 160, 48, 0.85);2193  cursor: pointer;2194  font-family: var(--font-ui);2195  letter-spacing: 0.04em;2196}21972198.peach-regen-panel {2199  position: relative;2200  z-index: 1;2201  background: rgba(217, 104, 48, 0.08);2202  border: 1px solid rgba(217, 104, 48, 0.25);2203  border-radius: 8px;2204  padding: 12px;2205  margin-bottom: 8px;2206}22072208.peach-regen-panel-header {2209  display: flex;2210  align-items: center;2211  justify-content: space-between;2212  margin-bottom: 10px;2213}22142215.peach-regen-panel-title {2216  font-size: 11px;2217  font-weight: 600;2218  letter-spacing: 0.06em;2219  text-transform: uppercase;2220  color: rgba(217, 104, 48, 0.9);2221}22222223.peach-regen-output {2224  background: rgba(0, 0, 0, 0.2);2225  border-radius: 6px;2226  padding: 10px;2227  margin-bottom: 10px;2228  font-family: var(--font-mono);2229  font-size: 13px;2230  word-break: break-all;2231  color: var(--peach-t1);2232}22332234.peach-regen-actions {2235  display: flex;2236  gap: 6px;2237}22382239.peach-regen-actions--spaced {2240  margin-bottom: 8px;2241}22422243.peach-regen-action-grow {2244  flex: 1;2245}22462247.peach-regen-copy-btn {2248  padding: 0 8px;2249}22502251.peach-regen-success {2252  position: relative;2253  z-index: 1;2254  background: rgba(40, 180, 80, 0.1);2255  border: 1px solid rgba(40, 180, 80, 0.3);2256  border-radius: 8px;2257  padding: 10px 12px;2258  margin-bottom: 8px;2259  display: flex;2260  align-items: center;2261  gap: 8px;2262  font-size: 11px;2263  color: rgba(40, 180, 80, 0.9);2264}22652266/* ── Note textarea ── */2267.peach-note-textarea {2268  width: 100%;2269  min-height: 180px;2270  max-height: 280px;2271  resize: vertical;2272  background: var(--peach-t4);2273  border: 1px solid var(--peach-t3);2274  border-radius: 8px;2275  padding: 10px 12px;2276  font-family: "IBM Plex Mono", monospace;2277  font-size: 12px;2278  line-height: 1.7;2279  color: var(--peach-t1);2280  outline: none;2281  transition: border-color 150ms ease;2282}22832284.peach-note-textarea:focus {2285  border-color: var(--peach-t2);2286}22872288.peach-note-char-count {2289  font-family: "IBM Plex Mono", monospace;2290  font-size: 9px;2291  color: var(--peach-t3);2292  text-align: right;2293  margin-top: 4px;2294  letter-spacing: 0.1em;2295}22962297/* ── Field input baseline ── */2298.peach-new-field-input {2299  width: 100%;2300  background: transparent;2301  border: none;2302  border-bottom: 1px solid var(--peach-t3);2303  padding: 4px 0;2304  color: var(--peach-t1);2305  font-family: "IBM Plex Mono", monospace;2306  font-size: 13px;2307  outline: none;2308  transition: border-color 150ms ease;2309}23102311.peach-new-field-input:focus {2312  border-bottom-color: var(--peach-t0);2313  color: var(--peach-t0);2314}23152316.peach-new-name-input {2317  width: 100%;2318  background: transparent;2319  border: none;2320  border-bottom: 1px solid var(--peach-t3);2321  padding: 6px 0;2322  font-family: "Cormorant Garamond", Georgia, serif;2323  font-style: italic;2324  font-size: 28px;2325  color: var(--peach-t0);2326  outline: none;2327  transition: border-color 150ms ease;2328}23292330.peach-new-name-input:focus {2331  border-bottom-color: var(--peach-t1);2332}23332334.peach-new-name-input::placeholder {2335  color: var(--peach-t2);2336  font-style: italic;2337}23382339.peach-new-field-input::placeholder {2340  color: var(--peach-t3);2341}23422343/* ── Demo entrance animation ── */2344#hd-shell {2345  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2346}2347@keyframes hd-shell-enter {2348  from { opacity: 0; transform: scale(0.96) translateY(16px); }2349  to   { opacity: 1; transform: scale(1) translateY(0); }2350}23512352/* ── Keyframes ── */2353@keyframes peach-char-enter {2354  from { opacity: 0; transform: translateY(0.22em); }2355  to   { opacity: 1; transform: translateY(0); }2356}2357@keyframes peach-content-enter {2358  from { opacity: 0.96; transform: translateY(4px); }2359  to   { opacity: 1; transform: translateY(0); }2360}2361@keyframes peach-content-exit {2362  from { opacity: 1; transform: translateY(0); }2363  to   { opacity: 0.92; transform: translateY(-3px); }2364}2365@keyframes peach-screen-enter {2366  from { opacity: 0; transform: translateY(14px); }2367  to   { opacity: 1; transform: translateY(0); }2368}2369@keyframes peach-shell-fade-in {2370  from { opacity: 0; }2371  to   { opacity: 1; }2372}2373@keyframes peach-veil-in {2374  from { opacity: 0; }2375  to   { opacity: 1; }2376}2377@keyframes peach-lock-settle {2378  0%   { transform: scale(0.9); }2379  65%  { transform: scale(1.08); }2380  100% { transform: scale(1); }2381}2382@keyframes peach-copy-confirm {2383  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2384  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); }2385}2386@keyframes peach-copy-retreat {2387  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); }2388  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2389}2390@keyframes peach-copy-flood {2391  from { opacity: 0; transform: scaleX(0.15); }2392  to   { opacity: 1; transform: scaleX(1); }2393}2394@keyframes peach-copy-icon-settle {2395  from  { transform: scale(0.84); }2396  70%   { transform: scale(1.08); }2397  to    { transform: scale(1); }2398}2399@keyframes peach-copy-sheen-retreat {2400  from { opacity: 1; transform: scaleX(1); }2401  to   { opacity: 0; transform: scaleX(0.15); }2402}2403@keyframes peach-copy-drain {2404  from { width: 100%; }2405  to   { width: 0; }2406}2407@keyframes peach-shake {2408  0%, 100% { transform: translateX(0); }2409  20%      { transform: translateX(-6px); }2410  40%      { transform: translateX(6px); }2411  60%      { transform: translateX(-4px); }2412  80%      { transform: translateX(4px); }2413}24142415@keyframes pip-pulse {2416  0% { transform: scale(1); }2417  40% { transform: scale(2.2); }2418  100% { transform: scale(1); }2419}242024212422/* ── Password generator ── */2423.peach-pwgen-body {2424  flex: 1; overflow-y: auto;2425  display: flex; flex-direction: column;2426}2427.peach-policy-badge {2428  display: flex; align-items: center;2429  padding: 6px 20px 0;2430  font-size: 10px; font-family: Inter, sans-serif;2431  color: var(--peach-t2); letter-spacing: 0.04em;2432}2433.peach-pwgen-display {2434  padding: 14px 20px 12px;2435  border-bottom: 1px solid var(--peach-t3);2436  display: flex; align-items: flex-start; gap: 10px;2437}2438.peach-pwgen-display-row {2439  display: flex;2440  align-items: flex-start;2441  gap: 8px;2442  padding-bottom: 8px;2443  border-bottom: 1px solid var(--peach-t3);2444}2445.peach-pwgen-output {2446  flex: 1; min-width: 0; margin: 0;2447  font-family: "IBM Plex Mono", monospace;2448  font-size: 13px; color: var(--peach-t0);2449  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2450  white-space: normal;2451  padding: 10px 12px;2452  background: var(--peach-t4);2453  border-radius: 6px;2454  min-height: 36px;2455}2456.peach-pwgen-output-display {2457  flex: 1;2458  min-width: 0;2459  margin: 0;2460  font-family: "Cormorant Garamond", "Times New Roman", serif;2461  font-style: italic;2462  font-weight: 300;2463  font-size: 32px;2464  line-height: 1.05;2465  color: var(--peach-t0);2466  word-break: break-all;2467  overflow-wrap: break-word;2468  white-space: normal;2469  letter-spacing: 0.02em;2470}2471.peach-pwgen-display-actions {2472  display: flex;2473  flex-direction: column;2474  gap: 4px;2475  flex-shrink: 0;2476  margin-top: 2px;2477}2478.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2479.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2480.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2481.peach-pwgen-len-num {2482  font-family: "IBM Plex Mono", monospace;2483  font-size: 12px; color: var(--peach-accent);2484}2485.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2486.peach-pwgen-toggles { display: flex; flex-direction: column; }2487.peach-pwgen-charset-pills {2488  display: flex;2489  gap: 6px;2490  flex-wrap: wrap;2491}2492.peach-pwgen-pill {2493  padding: 4px 11px;2494  border-radius: 999px;2495  border: 1px solid var(--peach-t3);2496  background: transparent;2497  color: var(--peach-t2);2498  font-family: "IBM Plex Mono", monospace;2499  font-size: 9px;2500  letter-spacing: 0.08em;2501  cursor: pointer;2502  transition: all 150ms ease;2503}2504.peach-pwgen-pill.is-on {2505  border-color: rgba(217, 104, 48, 0.5);2506  background: rgba(217, 104, 48, 0.1);2507  color: var(--peach-accent);2508}2509.peach-pwgen-pill:not(.is-on):hover {2510  color: var(--peach-t1);2511  border-color: var(--peach-t2);2512}2513.peach-pwgen-use-btn {2514  width: 100%;2515  min-height: 34px;2516  border-radius: 8px;2517  margin-top: 2px;2518}2519.peach-pwgen-toggle-row {2520  display: flex; align-items: center; justify-content: space-between;2521  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2522}2523.peach-pwgen-toggle-row:last-child { border-bottom: none; }2524.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }25252526.peach-screen-prelock {2527  z-index: 10;2528}25292530.prelock-form {2531  display: grid;2532  gap: 12px;2533}25342535/* Peach popup should not expose native scrollbars on internal panels. */2536.peach-settings-body,2537.peach-new-body,2538.peach-pwgen-body,2539.lock-screen,2540.peach-import-preview {2541  scrollbar-width: none;2542  -ms-overflow-style: none;2543  overscroll-behavior: contain;2544}2545.peach-settings-body::-webkit-scrollbar,2546.peach-new-body::-webkit-scrollbar,2547.peach-pwgen-body::-webkit-scrollbar,2548.lock-screen::-webkit-scrollbar,2549.peach-import-preview::-webkit-scrollbar {2550  width: 0;2551  height: 0;2552  display: none;2553}25542555.lock-screen {2556  height: 100%;2557  min-height: 100%;2558  overflow-y: auto;2559  padding: 18px 18px 16px;2560  gap: 14px;2561  grid-template-rows: auto auto auto 1fr auto;2562  align-content: stretch;2563  position: relative;2564  isolation: isolate;2565}2566.peach-screen.lock-screen--vault-stage {2567  display: flex;2568  flex-direction: column;2569  justify-content: flex-start;2570  gap: 18px;2571  padding: 20px 18px 18px;2572  overflow: hidden;2573}2574.peach-screen.lock-screen--vault-stage .peach-lock-panel {2575  margin-top: auto;2576}2577.lock-screen--onboarding {2578  display: flex;2579  flex-direction: column;2580  gap: 12px;2581  justify-content: flex-start;2582}25832584.lock-screen::before {2585  content: "";2586  position: absolute;2587  inset: 12px 18px auto auto;2588  width: 160px;2589  height: 160px;2590  border-radius: 999px;2591  background:2592    radial-gradient(circle at 50% 50%, rgba(217, 104, 48, 0.18) 0%, rgba(217, 104, 48, 0.06) 42%, transparent 72%);2593  filter: blur(6px);2594  opacity: 0.7;2595  pointer-events: none;2596  z-index: 0;2597}25982599.lock-screen-header {2600  display: flex;2601  align-items: center;2602  justify-content: space-between;2603  position: relative;2604  z-index: 1;2605}26062607.lock-password-input.shake {2608  animation: peach-shake 300ms ease-in-out;2609}26102611.peach-hint-error {2612  color: rgba(220, 80, 60, 0.92);2613}26142615.peach-onboarding-headline {2616  margin: 0;2617  font-family: "Cormorant Garamond", "Times New Roman", serif;2618  font-size: 35px;2619  line-height: 0.88;2620  font-style: italic;2621  font-weight: 400;2622  max-width: 252px;2623}26242625.peach-lock-copy {2626  display: grid;2627  gap: 8px;2628  position: relative;2629  z-index: 1;2630}26312632.peach-lock-copy--onboarding {2633  gap: 10px;2634}26352636.peach-lock-hero {2637  position: relative;2638  z-index: 1;2639  display: grid;2640  gap: 8px;2641  min-height: 0;2642  padding: 4px 2px 0;2643  border: none;2644  border-radius: 0;2645  background: transparent;2646  box-shadow: none;2647}2648.peach-lock-hero-art {2649  position: absolute;2650  right: -8px;2651  top: -6px;2652  width: 120px;2653  height: 120px;2654  display: flex;2655  align-items: center;2656  justify-content: center;2657  pointer-events: none;2658  opacity: 0.12;2659  filter: saturate(0.9);2660}2661.peach-lock-hero-mark {2662  width: 100%;2663  height: 100%;2664}2665.peach-lock-hero-mark path:first-child {2666  fill: rgba(217, 104, 48, 0.92);2667}2668.peach-lock-hero-mark path:nth-child(2),2669.peach-lock-hero-mark path:nth-child(3) {2670  stroke: rgba(123, 144, 96, 0.88);2671  fill: rgba(123, 144, 96, 0.88);2672}2673.peach-lock-hero > *:not(.peach-lock-hero-art) {2674  position: relative;2675  z-index: 1;2676}26772678.peach-lock-eyebrow {2679  display: inline-flex;2680  align-items: center;2681  width: fit-content;2682  padding: 4px 9px;2683  border-radius: 999px;2684  border: 1px solid rgba(217, 104, 48, 0.22);2685  background: rgba(217, 104, 48, 0.08);2686  color: var(--peach-t0);2687  font-family: "IBM Plex Mono", monospace;2688  font-size: 8px;2689  letter-spacing: 0.18em;2690  text-transform: uppercase;2691}26922693.peach-lock-label-row {2694  display: flex;2695  align-items: center;2696  justify-content: space-between;2697  margin-bottom: 0;2698}26992700.peach-lock-reveal-btn {2701  display: inline-flex;2702  align-items: center;2703  gap: 4px;2704  background: none;2705  border: none;2706  cursor: pointer;2707  font-family: "IBM Plex Mono", monospace;2708  font-size: 9px;2709  letter-spacing: 0.06em;2710  color: var(--peach-t2);2711  padding: 2px 0;2712  transition: color 150ms ease;2713}27142715.peach-lock-reveal-btn:hover {2716  color: var(--peach-t1);2717}27182719.peach-lock-warning {2720  color: rgba(220, 80, 60, 0.85) !important;2721  line-height: 1.5;2722}27232724.peach-onboarding-cards {2725  display: grid;2726  gap: 8px;2727  position: relative;2728  z-index: 1;2729}27302731.peach-lock-panel {2732  position: relative;2733  z-index: 1;2734  display: grid;2735  gap: 9px;2736  padding: 14px 16px 15px;2737  border-radius: 18px;2738  border: 1px solid var(--peach-t3);2739  background:2740    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));2741  box-shadow:2742    inset 0 1px 0 rgba(240, 232, 216, 0.04),2743    0 12px 28px rgba(0, 0, 0, 0.12);2744}27452746.peach-lock-panel--secondary {2747  gap: 12px;2748}27492750.peach-lock-panel-header {2751  display: flex;2752  align-items: baseline;2753  justify-content: space-between;2754  gap: 12px;2755}27562757.peach-lock-option-grid {2758  display: grid;2759  gap: 10px;2760}27612762.peach-lock-option {2763  width: 100%;2764  display: grid;2765  gap: 6px;2766  padding: 14px 15px;2767  border-radius: 16px;2768  border: 1px solid rgba(240, 232, 216, 0.08);2769  background: rgba(240, 232, 216, 0.02);2770  color: var(--peach-t0);2771  text-align: left;2772  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;2773}27742775.peach-lock-option:hover {2776  border-color: rgba(217, 104, 48, 0.28);2777  background: rgba(240, 232, 216, 0.04);2778  transform: translateY(-1px);2779}27802781.peach-lock-option-title {2782  font-size: 12px;2783  color: var(--peach-t0);2784}27852786.peach-lock-option-copy {2787  font-size: 11px;2788  line-height: 1.55;2789  color: var(--peach-t1);2790}27912792.peach-onboarding-stack {2793  margin-top: 2px;2794}2795.peach-lock-panel-footer {2796  display: grid;2797  gap: 6px;2798  margin-top: 2px;2799  padding-top: 10px;2800  border-top: 1px solid rgba(240, 232, 216, 0.06);2801}28022803/* Restore picker panel — method option cards */2804.peach-lock-panel--restore {2805  gap: 10px;2806}2807.peach-lock-option--history {2808  border-color: rgba(240, 232, 216, 0.06);2809  opacity: 0.85;2810}28112812/* Snapshot restore panel */2813.peach-snapshot-panel {2814  gap: 10px;2815  overflow-y: auto;2816  max-height: 340px;2817}2818.peach-snapshot-list {2819  display: flex;2820  flex-direction: column;2821  gap: 4px;2822}2823.peach-snapshot-row {2824  display: flex;2825  align-items: center;2826  justify-content: space-between;2827  width: 100%;2828  padding: 8px 10px;2829  border-radius: 8px;2830  border: 1px solid rgba(240, 232, 216, 0.07);2831  background: transparent;2832  cursor: pointer;2833  transition: border-color 120ms, background 120ms;2834  text-align: left;2835  gap: 8px;2836}2837.peach-snapshot-row:hover {2838  border-color: rgba(240, 232, 216, 0.14);2839  background: rgba(240, 232, 216, 0.03);2840}2841.peach-snapshot-row.is-selected {2842  border-color: rgba(217, 104, 48, 0.4);2843  background: rgba(217, 104, 48, 0.07);2844}2845.peach-snapshot-time {2846  font-size: 11.5px;2847  color: var(--peach-t0);2848  flex: 1;2849}2850.peach-snapshot-count {2851  font-family: "IBM Plex Mono", monospace;2852  font-size: 10px;2853  color: var(--peach-t2);2854  flex-shrink: 0;2855}2856.peach-snapshot-confirm {2857  display: flex;2858  flex-direction: column;2859  gap: 8px;2860  padding-top: 10px;2861  border-top: 1px solid rgba(240, 232, 216, 0.06);2862}2863.peach-snapshot-warning {2864  display: flex;2865  align-items: flex-start;2866  gap: 6px;2867  font-size: 10.5px;2868  color: rgba(220, 80, 60, 0.85);2869  line-height: 1.55;2870}2871.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }2872.peach-snapshot-confirm-row {2873  display: flex;2874  gap: 6px;2875  align-items: center;2876}2877.peach-snapshot-restore-btn {2878  width: 100%;2879}2880.peach-lock-hero--unlock .peach-lock-hero-art {2881  width: 112px;2882  height: 112px;2883  right: 0;2884  top: 2px;2885  opacity: 0.1;2886}28872888.peach-card {2889  border: 1px solid var(--peach-t3);2890  border-radius: 18px;2891  background:2892    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);2893  box-shadow:2894    inset 0 1px 0 rgba(240, 232, 216, 0.04),2895    0 12px 32px rgba(0, 0, 0, 0.14);2896  overflow: hidden;2897}28982899.peach-card-active {2900  border-color: rgba(217, 104, 48, 0.35);2901  box-shadow:2902    inset 0 1px 0 rgba(240, 232, 216, 0.05),2903    0 16px 38px rgba(0, 0, 0, 0.18),2904    0 0 0 1px rgba(217, 104, 48, 0.08);2905}29062907.peach-card-disabled {2908  opacity: 0.72;2909}29102911.peach-card-header {2912  width: 100%;2913  padding: 13px 16px 11px;2914  background: transparent;2915  color: var(--peach-t0);2916  display: flex;2917  justify-content: space-between;2918  align-items: center;2919  text-align: left;2920  font-size: 12px;2921}29222923.peach-card-body {2924  padding: 0 16px 16px;2925  display: grid;2926  gap: 9px;2927}29282929.peach-card-tag {2930  color: var(--peach-t2);2931  font-family: "IBM Plex Mono", monospace;2932  font-size: 9px;2933  letter-spacing: 0.12em;2934  text-transform: uppercase;2935}29362937.peach-empty-copy {2938  display: grid;2939  gap: 6px;2940  color: var(--peach-t1);2941  font-size: 13px;2942}29432944.peach-lock-submit {2945  width: 100%;2946  box-shadow: 0 14px 36px rgba(217, 104, 48, 0.22);2947}29482949.peach-lock-secondary {2950  width: 100%;2951  border-color: var(--peach-t3);2952  background: rgba(240, 232, 216, 0.02);2953}29542955.peach-lock-secondary:hover {2956  background: rgba(240, 232, 216, 0.04);2957}29582959.peach-lock-note {2960  max-width: none;2961  line-height: 1.55;2962  margin: 0;2963}29642965.peach-overlay-action {2966  font-size: 10px;2967  padding: 4px 8px;2968  letter-spacing: 0.06em;2969  min-width: 44px;2970  text-align: center;2971}29722973.peach-overlay-spacer {2974  width: 32px;2975}29762977.peach-inline-action {2978  flex-shrink: 0;2979  font-size: 9px;2980  letter-spacing: 0.1em;2981  text-transform: uppercase;2982  padding: 4px 7px;2983}2984.peach-password-toggle-btn {2985  display: inline-flex;2986  align-items: center;2987  justify-content: center;2988  min-width: 30px;2989  min-height: 26px;2990  padding: 0 7px;2991  border: 1px solid var(--peach-t3);2992  border-radius: 999px;2993  background: rgba(240, 232, 216, 0.04);2994  color: var(--peach-t2);2995  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;2996}2997.peach-password-toggle-btn:hover {2998  border-color: var(--peach-t2);2999  color: var(--peach-t0);3000  background: rgba(240, 232, 216, 0.06);3001}30023003.peach-new-textarea {3004  width: 100%;3005  min-height: 88px;3006  resize: vertical;3007  border: 0;3008  outline: none;3009  background: transparent;3010  color: var(--peach-t1);3011  font-family: "IBM Plex Mono", monospace;3012  font-size: 12px;3013  line-height: 1.65;3014  caret-color: var(--peach-accent);3015}30163017.peach-new-textarea::placeholder {3018  color: var(--peach-t2);3019  opacity: 0.7;3020}30213022.peach-settings-actions {3023  display: grid;3024  gap: 8px;3025}30263027.peach-sync-section-label {3028  font-size: 11px;3029  color: var(--peach-t2);3030  text-transform: uppercase;3031  letter-spacing: 0.05em;3032}30333034.peach-sync-device-row {3035  display: flex;3036  justify-content: space-between;3037  align-items: center;3038  padding: 6px 0;3039  border-bottom: 1px solid var(--peach-t3);3040}30413042.peach-sync-device-info {3043  display: flex;3044  flex-direction: column;3045  gap: 2px;3046}30473048.peach-sync-device-name {3049  font-size: 13px;3050  color: var(--peach-t0);3051}30523053.peach-sync-device-meta {3054  font-size: 11px;3055  color: var(--peach-t2);3056}30573058.peach-sync-status-dot {3059  display: inline-block;3060  width: 8px;3061  height: 8px;3062  border-radius: 50%;3063  vertical-align: middle;3064}30653066.peach-sync-remove-btn {3067  color: var(--peach-breach);3068}30693070.peach-import-preview {3071  margin-bottom: 12px;3072  max-height: 152px;3073  overflow-y: auto;3074  border: 1px solid var(--peach-t3);3075  border-radius: 10px;3076  padding: 8px 10px;3077  display: grid;3078  gap: 8px;3079  background: rgba(240, 232, 216, 0.02);3080}30813082.peach-import-preview-row {3083  display: flex;3084  justify-content: space-between;3085  gap: 10px;3086  font-size: 11px;3087  color: var(--peach-t1);3088}30893090.peach-import-preview-title {3091  color: var(--peach-t0);3092  flex: 1;3093  min-width: 0;3094  overflow: hidden;3095  text-overflow: ellipsis;3096  white-space: nowrap;3097}30983099.peach-import-preview-meta {3100  color: var(--peach-t2);3101  flex-shrink: 0;3102  max-width: 42%;3103  overflow: hidden;3104  text-overflow: ellipsis;3105  white-space: nowrap;3106}31073108.peach-import-preview-more {3109  color: var(--peach-t2);3110  font-size: 10px;3111}31123113.peach-restore-copy {3114  margin: 0;3115  color: var(--peach-t1);3116  font-size: 11px;3117  line-height: 1.6;3118}31193120.peach-restore-warning {3121  padding: 10px 12px;3122  border-radius: 12px;3123  border: 1px solid rgba(220, 80, 60, 0.22);3124  background: rgba(220, 80, 60, 0.08);3125  color: rgba(240, 232, 216, 0.86);3126  font-size: 11px;3127  line-height: 1.55;3128}31293130.peach-provider-chips {3131  display: flex;3132  flex-wrap: wrap;3133  gap: 6px;3134}31353136.peach-provider-chip {3137  display: inline-flex;3138  align-items: center;3139  padding: 5px 8px;3140  border-radius: 999px;3141  border: 1px solid var(--peach-t3);3142  background: rgba(240, 232, 216, 0.02);3143  color: var(--peach-t1);3144  font-family: "IBM Plex Mono", monospace;3145  font-size: 8px;3146  letter-spacing: 0.08em;3147  text-transform: uppercase;3148}31493150.peach-restore-file,3151.peach-restore-input {3152  width: 100%;3153  border-radius: 10px;3154  border: 1px solid var(--peach-t3);3155  background: var(--peach-s2);3156  color: var(--peach-t0);3157  font-size: 12px;3158}31593160.peach-restore-file {3161  padding: 9px 10px;3162}31633164.peach-restore-file::file-selector-button {3165  margin-right: 10px;3166  padding: 7px 10px;3167  border: 1px solid rgba(217, 104, 48, 0.28);3168  border-radius: 999px;3169  background: rgba(217, 104, 48, 0.08);3170  color: var(--peach-t0);3171  font-size: 10px;3172  letter-spacing: 0.08em;3173  text-transform: uppercase;3174  cursor: pointer;3175}31763177.peach-restore-input {3178  padding: 10px 12px;3179}31803181.peach-auth-grid {3182  display: grid;3183  gap: 10px;3184}31853186.peach-import-summary {3187  color: var(--peach-t1);3188  font-size: 12px;3189  line-height: 1.6;3190  margin-bottom: 12px;3191}31923193.peach-restore-error {3194  color: rgba(220, 80, 60, 0.95);3195  font-size: 12px;3196  line-height: 1.55;3197}31983199.peach-cjk-qr-panel {3200  margin-top: 14px;3201  padding: 12px;3202  border-radius: 16px;3203  border: 1px solid var(--peach-t3);3204  background: rgba(240, 232, 216, 0.02);3205  display: grid;3206  gap: 10px;3207}32083209.peach-cjk-qr-frame {3210  display: grid;3211  place-items: center;3212  min-height: 212px;3213  border-radius: 14px;3214  background: #fff;3215  overflow: hidden;3216}32173218.peach-cjk-qr-frame svg {3219  display: block;3220  width: 196px;3221  height: 196px;3222}32233224.peach-cjk-qr-error,3225.peach-cjk-qr-caption {3226  color: var(--peach-t1);3227  font-size: 11px;3228  line-height: 1.55;3229}32303231.peach-cjk-qr-card {3232  max-width: 400px;3233  margin: auto;3234}32353236.peach-cjk-qr-body {3237  padding: 0 20px 20px;3238  text-align: center;3239}32403241.peach-cjk-qr-hint {3242  font-size: 11px;3243  color: var(--peach-t2);3244  margin: 0 0 14px;3245}32463247.peach-cjk-qr-image {3248  border-radius: 4px;3249  display: block;3250  margin: 0 auto;3251  width: 100%;3252  max-width: 320px;3253  height: auto;3254}32553256.peach-pro-badge {3257  padding: 2px 6px;3258  border-radius: 999px;3259  font-family: var(--font-ui);3260  font-size: 10px;3261  letter-spacing: 0.08em;3262  text-transform: uppercase;3263  background: rgba(217, 104, 48, 0.14);3264  color: var(--peach-accent);3265}32663267.peach-loading {3268  position: absolute;3269  inset: 0;3270  display: flex;3271  align-items: center;3272  justify-content: center;3273  background: var(--bg);3274  animation: peach-loading-pulse 1.2s ease-in-out infinite;3275}32763277@keyframes peach-loading-pulse {3278  0%, 100% { opacity: 0.6; }3279  50% { opacity: 1; }3280}32813282/* ── Health Dashboard ─────────────────────────────────────────────────── */3283.peach-health-body {3284  flex: 1;3285  overflow-y: auto;3286  display: flex;3287  flex-direction: column;3288}32893290.peach-health-summary {3291  padding: 10px 16px 6px;3292  font-family: "IBM Plex Mono", monospace;3293  font-size: 11px;3294}3295.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3296.peach-health-summary-ok { color: var(--peach-t2); }32973298.peach-health-check-row {3299  padding: 0 16px 10px;3300}3301.peach-health-check-btn {3302  width: 100%;3303  display: flex;3304  align-items: center;3305  justify-content: center;3306}33073308.peach-health-sections {3309  flex: 1;3310  display: flex;3311  flex-direction: column;3312}33133314.peach-health-section {3315  border-bottom: 1px solid var(--peach-t3);3316}33173318.peach-health-section-header {3319  width: 100%;3320  display: flex;3321  align-items: center;3322  justify-content: space-between;3323  padding: 9px 16px;3324  background: transparent;3325  cursor: pointer;3326  color: var(--peach-t0);3327}33283329.peach-health-section-title-row {3330  display: flex;3331  align-items: center;3332  gap: 8px;3333}33343335.peach-health-count-badge {3336  display: inline-flex;3337  align-items: center;3338  justify-content: center;3339  min-width: 20px;3340  height: 18px;3341  padding: 0 5px;3342  border-radius: 999px;3343  background: rgba(220,80,60,0.15);3344  border: 1px solid rgba(220,80,60,0.25);3345  font-family: "IBM Plex Mono", monospace;3346  font-size: 9px;3347  color: rgba(220,80,60,0.9);3348}33493350.peach-health-section-title {3351  font-family: "IBM Plex Mono", monospace;3352  font-size: 11px;3353  text-transform: uppercase;3354  letter-spacing: 0.1em;3355  color: var(--peach-t1);3356}33573358.peach-health-chevron {3359  color: var(--peach-t2);3360  transition: transform 200ms ease;3361  flex-shrink: 0;3362}3363.peach-health-chevron.is-expanded {3364  transform: rotate(180deg);3365}33663367.peach-health-section-body {3368  padding: 0 16px 10px;3369  display: flex;3370  flex-direction: column;3371  gap: 4px;3372}33733374.peach-health-row {3375  display: flex;3376  align-items: flex-start;3377  justify-content: space-between;3378  gap: 8px;3379  padding: 6px 8px;3380  border-radius: 8px;3381  background: rgba(240,232,216,0.02);3382}33833384.peach-health-row-info {3385  flex: 1;3386  min-width: 0;3387  display: flex;3388  flex-direction: column;3389  gap: 2px;3390}33913392.peach-health-row-name {3393  font-family: "Cormorant Garamond", serif;3394  font-size: 15px;3395  font-style: italic;3396  font-weight: 400;3397  color: var(--peach-t0);3398  white-space: nowrap;3399  overflow: hidden;3400  text-overflow: ellipsis;3401}34023403.peach-health-row-meta {3404  font-family: "IBM Plex Mono", monospace;3405  font-size: 9px;3406  color: var(--peach-t2);3407  letter-spacing: 0.05em;3408}34093410.peach-health-fix-btn {3411  font-size: 9px;3412  letter-spacing: 0.08em;3413  text-transform: uppercase;3414  padding: 4px 7px;3415  flex-shrink: 0;3416  display: flex;3417  align-items: center;3418}34193420.peach-health-empty {3421  font-family: "IBM Plex Mono", monospace;3422  font-size: 10px;3423  color: var(--peach-t2);3424  padding: 6px 0;3425}34263427.peach-health-loading {3428  font-family: "IBM Plex Mono", monospace;3429  font-size: 10px;3430  color: var(--peach-t2);3431  padding: 6px 0;3432  display: flex;3433  align-items: center;3434  gap: 6px;3435}34363437.peach-health-loading::before {3438  content: "";3439  width: 10px;3440  height: 10px;3441  border: 1.5px solid var(--peach-t3);3442  border-top-color: var(--peach-accent);3443  border-radius: 50%;3444  animation: peach-spin 600ms linear infinite;3445}34463447@keyframes peach-spin {3448  to { transform: rotate(360deg); }3449}34503451.peach-spinner {3452  width: 32px;3453  height: 32px;3454  border: 2px solid var(--peach-s2);3455  border-top-color: var(--peach-accent);3456  border-radius: 50%;3457  margin: 0 auto 16px;3458  animation: peach-spin 0.8s linear infinite;3459}34603461.peach-progress-screen {3462  text-align: center;3463  padding: 32px 16px;3464}34653466.peach-progress-screen-title {3467  font-size: 13px;3468  color: var(--peach-t0);3469  margin-bottom: 16px;3470}34713472.peach-progress-screen-stage {3473  font-size: 11px;3474  color: var(--peach-t2);3475  min-height: 14px;3476}34773478.peach-progress-screen-note {3479  font-size: 10px;3480  color: var(--peach-t2);3481  margin-top: 8px;3482}34833484.peach-pairing-body {3485  flex: 1;3486  overflow-y: auto;3487  display: flex;3488  flex-direction: column;3489}34903491.peach-pairing-content {3492  flex: 1;3493  display: flex;3494  flex-direction: column;3495  align-items: center;3496  justify-content: center;3497  gap: 14px;3498  padding: 28px 20px;3499  text-align: center;3500}35013502.peach-pairing-headline {3503  font-family: var(--font-display);3504  font-style: italic;3505  font-weight: 300;3506  font-size: 28px;3507  color: var(--peach-t0);3508  margin: 0;3509  line-height: 1;3510}35113512.peach-pairing-subline {3513  font-size: 12px;3514  color: var(--peach-t2);3515  max-width: 220px;3516  line-height: 1.5;3517  margin: 0;3518}35193520.peach-pairing-subline--center {3521  text-align: center;3522}35233524.peach-pairing-code-display {3525  display: flex;3526  gap: 6px;3527}35283529.peach-pairing-code-digit {3530  display: flex;3531  align-items: center;3532  justify-content: center;3533  width: 36px;3534  height: 48px;3535  background: var(--peach-s2);3536  border: 1px solid var(--peach-t3);3537  border-radius: 6px;3538  font-family: var(--font-mono);3539  font-size: 22px;3540  color: var(--peach-t0);3541  letter-spacing: 0;3542}35433544.peach-pairing-countdown-ring {3545  position: relative;3546  display: inline-flex;3547  align-items: center;3548  justify-content: center;3549}35503551.peach-pairing-countdown-num {3552  position: absolute;3553  font-family: var(--font-mono);3554  font-size: 14px;3555  color: var(--peach-t1);3556}35573558.peach-pairing-ring-track {3559  fill: none;3560  stroke: var(--peach-t3);3561  stroke-width: 2;3562}35633564.peach-pairing-ring-progress {3565  fill: none;3566  stroke: var(--peach-accent);3567  stroke-width: 2;3568  stroke-linecap: round;3569  transform: rotate(-90deg);3570  transform-origin: 50% 50%;3571  transition: stroke-dashoffset 0.5s linear;3572}35733574.peach-pairing-code-inputs {3575  display: flex;3576  gap: 8px;3577}35783579.peach-pairing-code-box {3580  width: 36px;3581  height: 48px;3582  text-align: center;3583  background: var(--peach-s2);3584  border: 1px solid var(--peach-t3);3585  border-radius: 6px;3586  font-family: var(--font-mono);3587  font-size: 20px;3588  color: var(--peach-t0);3589  outline: none;3590  transition: border-color 120ms ease;3591}35923593.peach-pairing-code-box:focus {3594  border-color: var(--peach-accent);3595}35963597.peach-pairing-code-box.has-error {3598  border-color: rgba(220, 80, 60, 0.45);3599}36003601.peach-pairing-status {3602  display: flex;3603  align-items: center;3604  gap: 8px;3605  margin: 0;3606  font-size: 12px;3607  color: var(--peach-t1);3608}36093610.peach-pairing-error {3611  margin: 0;3612  font-size: 11px;3613  color: var(--peach-breach);3614}36153616.peach-pairing-error-msg {3617  color: var(--peach-t1);3618}36193620.peach-pairing-spinner {3621  width: 12px;3622  height: 12px;3623  border: 1.5px solid var(--peach-t3);3624  border-top-color: var(--peach-accent);3625  border-radius: 50%;3626  animation: peach-spin 0.8s linear infinite;3627}36283629.peach-pairing-success-icon,3630.peach-pairing-error-icon,3631.peach-pairing-hero {3632  display: inline-flex;3633  align-items: center;3634  justify-content: center;3635}36363637/* Tag chips */3638.peach-tag-chip {3639  display: inline-flex;3640  align-items: center;3641  gap: 4px;3642  padding: 3px 8px;3643  border-radius: 999px;3644  border: 1px solid rgba(217, 104, 48, 0.28);3645  background: rgba(217, 104, 48, 0.08);3646  color: rgba(240, 232, 216, 0.85);3647  font-family: "IBM Plex Mono", monospace;3648  font-size: 10px;3649  letter-spacing: 0.04em;3650}36513652.peach-tag-chip-remove {3653  background: transparent;3654  border: none;3655  color: inherit;3656  opacity: 0.6;3657  cursor: pointer;3658  padding: 0;3659  font-size: 12px;3660  line-height: 1;3661}36623663.peach-tag-chip-remove:hover {3664  opacity: 1;3665}36663667/* Tag input */3668.peach-tag-input-wrap {3669  border-bottom: 1px solid var(--peach-t3);3670}36713672.peach-tag-suggestions {3673  display: flex;3674  flex-wrap: wrap;3675  gap: 4px;3676  padding: 6px 0;3677}36783679.peach-tag-suggestion {3680  padding: 2px 8px;3681  border-radius: 999px;3682  border: 1px solid var(--peach-t3);3683  background: var(--peach-s2);3684  color: var(--peach-t1);3685  font-family: "IBM Plex Mono", monospace;3686  font-size: 10px;3687  cursor: pointer;3688  transition: border-color 80ms ease, background 80ms ease;3689}36903691.peach-tag-suggestion:hover {3692  border-color: rgba(217, 104, 48, 0.4);3693  background: rgba(217, 104, 48, 0.08);3694}36953696/* Tag filter strip */3697.peach-tag-filter-strip {3698  border-bottom: 1px solid var(--peach-t3);3699  flex-shrink: 0;3700}37013702.peach-tag-filter-chip {3703  display: inline-flex;3704  align-items: center;3705  padding: 4px 10px;3706  border-radius: 999px;3707  border: 1px solid var(--peach-t3);3708  background: transparent;3709  color: var(--peach-t2);3710  font-family: "IBM Plex Mono", monospace;3711  font-size: 9px;3712  letter-spacing: 0.06em;3713  text-transform: uppercase;3714  cursor: pointer;3715  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3716  white-space: nowrap;3717}37183719.peach-tag-filter-chip:hover {3720  border-color: rgba(217, 104, 48, 0.35);3721  color: var(--peach-t1);3722}37233724.peach-tag-filter-chip.is-selected {3725  border-color: rgba(217, 104, 48, 0.5);3726  background: rgba(217, 104, 48, 0.12);3727  color: rgba(240, 232, 216, 0.9);3728}37293730/* ─────────────────────────────────────────────────────────────────────────3731   v1.4.12 additions3732   ─────────────────────────────────────────────────────────────────────── */37333734/* Sort bar */3735.peach-sort-bar {3736  display: flex;3737  align-items: center;3738  gap: 4px;3739  padding: 5px 12px;3740  border-bottom: 1px solid var(--peach-t3);3741  flex-shrink: 0;3742  overflow-x: auto;3743  scrollbar-width: none;3744}37453746.peach-sort-btn {3747  padding: 2px 9px;3748  border-radius: 999px;3749  border: 1px solid transparent;3750  background: transparent;3751  color: var(--peach-t2);3752  font-family: "IBM Plex Mono", monospace;3753  font-size: 9px;3754  letter-spacing: 0.07em;3755  text-transform: uppercase;3756  cursor: pointer;3757  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3758  white-space: nowrap;3759}37603761.peach-sort-btn:hover {3762  border-color: rgba(217, 104, 48, 0.3);3763  color: var(--peach-t1);3764}37653766.peach-sort-btn.is-active {3767  border-color: rgba(217, 104, 48, 0.5);3768  background: rgba(217, 104, 48, 0.12);3769  color: rgba(240, 232, 216, 0.9);3770}37713772.peach-sort-domain-hint {3773  margin-left: auto;3774  font-family: "IBM Plex Mono", monospace;3775  font-size: 9px;3776  color: rgba(217, 104, 48, 0.6);3777  white-space: nowrap;3778  overflow: hidden;3779  text-overflow: ellipsis;3780  max-width: 110px;3781}37823783/* Tab-match badge on entry rows */3784.peach-tab-match-badge {3785  display: inline-block;3786  width: 6px;3787  height: 6px;3788  border-radius: 50%;3789  background: rgba(217, 104, 48, 0.75);3790  margin-left: 5px;3791  vertical-align: middle;3792  flex-shrink: 0;3793  box-shadow: 0 0 4px rgba(217, 104, 48, 0.4);3794}37953796.peach-entry-row.is-tab-match {3797  background: rgba(217, 104, 48, 0.04);3798  border-bottom-color: rgba(217, 104, 48, 0.08);3799}38003801.peach-entry-row.is-tab-match:hover {3802  background: rgba(217, 104, 48, 0.08);3803}38043805/* Entry list stagger entrance */3806@keyframes peach-entry-fadein {3807  from { opacity: 0; transform: translateY(4px); }3808  to   { opacity: 1; transform: translateY(0); }3809}38103811.peach-vault-list .peach-entry-row {3812  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;3813  content-visibility: auto;3814  contain-intrinsic-size: auto 44px;3815}38163817/* Button press micro-interaction */3818.peach-btn:active {3819  transform: scale(0.95);3820  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3821}38223823.peach-sort-btn:active,3824.peach-tag-filter-chip:active {3825  transform: scale(0.93);3826  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3827}38283829/* Password strength bar (Lock view + shared) */3830.peach-password-strength {3831  display: flex;3832  align-items: center;3833  gap: 8px;3834  margin-top: 6px;3835}38363837.peach-strength-bar {3838  flex: 1;3839  height: 3px;3840  border-radius: 2px;3841  background: var(--peach-t3);3842  overflow: hidden;3843}38443845.peach-strength-fill {3846  height: 100%;3847  border-radius: 2px;3848  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),3849              background 300ms ease;3850}38513852.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }3853.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }3854.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }3855.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }38563857.peach-strength-label {3858  font-family: "IBM Plex Mono", monospace;3859  font-style: italic;3860  font-size: 9px;3861  font-weight: 300;3862  letter-spacing: 0.06em;3863  color: var(--peach-t2);3864  min-width: 36px;3865  text-align: right;3866}38673868.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }3869.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }3870.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }3871.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }38723873/* Duress form */3874.peach-duress-status {3875  padding: 2px 8px;3876  border-radius: 999px;3877  border: 1px solid var(--peach-t3);3878  font-family: "IBM Plex Mono", monospace;3879  font-size: 9px;3880  letter-spacing: 0.07em;3881  text-transform: uppercase;3882  color: var(--peach-t2);3883  flex-shrink: 0;3884}38853886.peach-duress-status.is-active {3887  border-color: rgba(217, 104, 48, 0.45);3888  background: rgba(217, 104, 48, 0.1);3889  color: rgba(240, 232, 216, 0.85);3890}38913892.peach-duress-form {3893  padding: 8px 0 4px;3894  display: flex;3895  flex-direction: column;3896  gap: 6px;3897}38983899.peach-duress-form .peach-label {3900  margin-top: 4px;3901}39023903.peach-duress-actions {3904  display: flex;3905  gap: 6px;3906  align-items: center;3907  margin-top: 4px;3908}39093910.peach-duress-actions .peach-btn:first-child {3911  margin-right: auto;3912}39133914/* Improved overlay spring entrance */3915.peach-overlay-view.ov-enter-up {3916  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3917}39183919@keyframes ov-enter-up-spring {3920  from { opacity: 0; transform: translateY(16px) scale(0.98); }3921  to   { opacity: 1; transform: translateY(0) scale(1); }3922}39233924.peach-overlay-view.ov-enter-right {3925  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3926}39273928@keyframes ov-enter-right-spring {3929  from { opacity: 0; transform: translateX(18px) scale(0.98); }3930  to   { opacity: 1; transform: translateX(0) scale(1); }3931}39323933/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */3934/* Used when CJKImportView or MainImportView renders during onboarding3935   (no vault yet). Animates like a lock-screen transition. */3936.peach-lock-view {3937  position: absolute;3938  inset: 0;3939  display: flex;3940  flex-direction: column;3941  background:3942    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),3943    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),3944    var(--peach-bg);3945  z-index: 2;3946  overflow: hidden;3947  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3948}39493950.peach-lock-view-header {3951  display: flex;3952  align-items: center;3953  justify-content: space-between;3954  padding: 16px 18px 12px;3955  flex-shrink: 0;3956}39573958/* ───────── Settings: auto-lock select ───────── */3959.peach-settings-select {3960  font-family: "IBM Plex Mono", monospace;3961  font-size: 11px;3962  background: transparent;3963  border: 1px solid var(--peach-t3);3964  border-radius: 4px;3965  color: var(--peach-t1);3966  padding: 3px 6px;3967  cursor: pointer;3968  outline: none;3969}3970.peach-settings-select:focus {3971  border-color: var(--peach-accent);3972}39733974/* ───────── Duress status pill (new polished) ───────── */3975.peach-duress-status-pill {3976  font-family: "IBM Plex Mono", monospace;3977  font-size: 9px;3978  text-transform: uppercase;3979  letter-spacing: 0.12em;3980  padding: 2px 8px;3981  border-radius: 12px;3982  background: var(--peach-t3);3983  color: var(--peach-t2);3984  flex-shrink: 0;3985}3986.peach-duress-status-pill.is-active {3987  background: rgba(217, 104, 48, 0.15);3988  color: var(--peach-accent);3989}39903991/* ───────── Entry advanced disclosure (canary) ───────── */3992.peach-entry-advanced {3993  margin-top: 12px;3994  border-top: 1px solid var(--peach-t3);3995  padding-top: 10px;3996  position: relative;3997  z-index: 1;3998}3999.peach-entry-advanced-toggle {4000  display: flex;4001  align-items: center;4002  justify-content: space-between;4003  width: 100%;4004  background: transparent;4005  border: none;4006  cursor: pointer;4007  padding: 0;4008  color: var(--peach-t2);4009}4010.peach-canary-section {4011  margin-top: 10px;4012  display: grid;4013  gap: 6px;4014}40154016/* ───────── Import: merge/replace radio choices ───────── */4017.peach-import-choice {4018  display: flex;4019  align-items: flex-start;4020  gap: 10px;4021  padding: 8px 10px;4022  border: 1px solid var(--peach-t3);4023  border-radius: 10px;4024  cursor: pointer;4025  margin-bottom: 6px;4026  transition: border-color 120ms ease, background 120ms ease;4027}4028.peach-import-choice:hover {4029  border-color: var(--peach-accent);4030}4031.peach-import-choice input[type="radio"] {4032  margin-top: 3px;4033  accent-color: var(--peach-accent);4034  flex-shrink: 0;4035}4036.peach-import-choice-main {4037  display: flex;4038  flex-direction: column;4039  gap: 2px;4040  min-width: 0;4041}4042.peach-import-choice-label {4043  font-size: 12px;4044  color: var(--peach-t0);4045}4046.peach-import-choice-sub {4047  font-size: 11px;4048  color: var(--peach-t2);4049  line-height: 1.5;4050}40514052/* ───────── Export: success confirmation strip ───────── */4053.peach-export-success {4054  display: flex;4055  align-items: flex-start;4056  gap: 10px;4057  padding: 12px;4058  border-radius: 12px;4059  border: 1px solid rgba(150, 175, 110, 0.3);4060  background: rgba(150, 175, 110, 0.08);4061  color: var(--peach-t0);4062  font-size: 12px;4063  line-height: 1.55;4064}4065.peach-export-success-check {4066  color: rgba(150, 175, 110, 0.9);4067  font-size: 14px;4068  flex-shrink: 0;4069}40704071/* ── Trash view ──────────────────────────────────────────────────────── */4072.peach-trash-entry-row {4073  display: flex;4074  align-items: center;4075  justify-content: space-between;4076  gap: 8px;4077  padding: 8px 0;4078  border-bottom: 1px solid var(--peach-t3);4079}4080.peach-trash-entry-row:last-child { border-bottom: none; }4081.peach-trash-entry-info {4082  flex: 1;4083  min-width: 0;4084  display: flex;4085  flex-direction: column;4086  gap: 2px;4087}4088.peach-trash-entry-title {4089  font-size: 12px;4090  color: var(--peach-t1);4091  overflow: hidden;4092  text-overflow: ellipsis;4093  white-space: nowrap;4094}4095.peach-trash-entry-meta {4096  font-family: var(--font-mono);4097  font-size: 9px;4098  color: var(--peach-t2);4099  letter-spacing: 0.06em;4100}4101.peach-trash-entry-actions {4102  display: flex;4103  align-items: center;4104  gap: 4px;4105  flex-shrink: 0;4106}41074108/* ── Settings shortcuts grid ─────────────────────────────────────────── */4109.peach-shortcuts-grid {4110  display: grid;4111  grid-template-columns: auto 1fr;4112  gap: 6px 12px;4113  align-items: center;4114  padding: 4px 0;4115}4116.peach-shortcut-key {4117  font-family: var(--font-mono);4118  font-size: 10px;4119  color: var(--peach-t0);4120  background: var(--peach-t3);4121  border-radius: 4px;4122  padding: 2px 6px;4123  white-space: nowrap;4124  text-align: center;4125}4126.peach-shortcut-desc {4127  font-size: 11px;4128  color: var(--peach-t1);4129}41304131/* ── Sort bar trash button ───────────────────────────────────────────── */4132.peach-sort-trash-btn {4133  display: flex;4134  align-items: center;4135  justify-content: center;4136  padding: 3px 5px;4137  background: transparent;4138  border: none;4139  cursor: pointer;4140  color: var(--peach-t2);4141  border-radius: 4px;4142  transition: color 140ms ease, background 140ms ease;4143}4144.peach-sort-trash-btn:hover {4145  color: var(--peach-t1);4146  background: var(--peach-t3);4147}