popup.css

91.6 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, 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[data-surface="extension"] {100  width: min(320px, 100vw);101  border-radius: 0;102  height: 520px;103  max-height: 520px;104  overflow: hidden;105}106107/* ── Lock screen – full-window lock/create stage ── */108.lock-screen--vault-stage {109  display: flex;110  flex-direction: column;111  gap: 18px;112  padding: 20px 18px 18px;113  justify-content: flex-start;114}115.lock-screen--vault-stage .peach-lock-panel {116  margin-top: auto;117}118.peach-lock-headline--unlock {119  max-width: 220px;120}121.peach-lock-hero--unlock {122  padding-top: 14px;123}124.peach-lock-panel--unlock {125  gap: 10px;126}127128.peach-lock-restore-link {129  background: transparent;130  border: none;131  cursor: pointer;132  font-family: var(--font-mono);133  font-size: 10px;134  letter-spacing: 0.08em;135  color: var(--t1);136  padding: 5px 0;137  text-align: left;138  transition: color 150ms ease;139}140141.peach-lock-restore-link:hover {142  color: var(--t0);143}144.peach-shell[data-surface="extension"] .peach-stage {145  min-height: 250px;146}147148/* Screen (unlock) */149.peach-screen {150  width: min(320px, 100vw);151  min-height: 100%;152  height: 100%;153  border-radius: 0;154  padding: 16px 20px 18px;155  display: grid;156  gap: 14px;157}158.peach-screen[data-motion-phase="enter"] {159  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;160}161.peach-screen-header { min-height: 20px; }162163/* Wordmark */164.peach-wordmark {165  margin: 0;166  font-family: "Cormorant Garamond", "Times New Roman", serif;167  font-size: 15px;168  font-style: italic;169  letter-spacing: 0.03em;170  color: var(--peach-t0);171  display: inline-flex;172  min-height: 1em;173}174175/* Motion text / char animation */176.peach-motion-text { display: inline-flex; min-height: 1em; }177.peach-motion-char {178  display: inline-block;179  white-space: pre;180  opacity: 0;181  transform: translateY(0.22em);182  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;183  animation-delay: calc(var(--peach-char-index, 0) * 20ms);184}185186/* Chrome */187.peach-chrome {188  position: relative;189  z-index: 10;190  padding: 16px 20px 0;191  display: flex;192  justify-content: space-between;193  align-items: center;194  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense195     fallback) per §15 regression guard. Without pointer-events:none, the196     empty header strip also sits above `.peach-overlay-view` (z-index:2)197     and swallows clicks meant for an overlay's back button / top search. */198  pointer-events: none;199}200.peach-chrome .peach-btn { pointer-events: auto; }201.peach-chrome.is-hidden-for-overlay,202.peach-search-wrap.is-hidden-for-overlay {203  opacity: 0;204  visibility: hidden;205  pointer-events: none;206}207.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }208.peach-status-pip {209  width: 5px;210  height: 5px;211  border-radius: 50%;212  background: var(--peach-t3);213  display: inline-flex;214  flex-shrink: 0;215  transition: background 400ms ease, box-shadow 400ms ease;216}217.peach-chrome-actions { display: flex; gap: 6px; }218219/* Shell body */220.peach-shell-body {221  position: relative;222  display: grid;223  grid-template-rows: 1fr auto;224  min-height: 0;225  min-width: 0;226  width: 100%;227  overflow: hidden;228  height: 100%;229}230.peach-shell-veil {231  position: absolute; inset: 0;232  background: #000; opacity: 0;233  pointer-events: none; z-index: 1;234}235.peach-shell[data-motion-phase="enter"] .peach-shell-body {236  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;237}238.peach-shell[data-motion-phase="exit"] .peach-shell-veil {239  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;240}241242/* Content frame */243.peach-content-frame {244  display: grid;245  grid-template-rows: 1fr auto;246  grid-template-columns: minmax(0, 1fr);247  align-content: start;248  min-height: 0;249  min-width: 0;250  overflow: hidden;251  transition: opacity 80ms ease, transform 80ms ease;252}253.peach-content-frame.navigating {254  opacity: 0.93;255  transform: translateX(2px);256}257.peach-content-frame[data-content-phase="enter"] {258  animation: peach-content-enter 135ms ease-out both;259}260.peach-content-frame[data-content-phase="exit"] {261  animation: peach-content-exit 95ms ease-in forwards;262}263.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }264265/* Stage */266.peach-stage {267  padding: 10px 20px 12px;268  display: grid;269  gap: 12px;270  align-content: start;271  min-width: 0;272  min-height: 0;273  max-width: 100%;274  overflow-y: auto;275  overflow-x: hidden;276  scrollbar-width: none;277  -ms-overflow-style: none;278  overscroll-behavior: contain;279}280.peach-stage::-webkit-scrollbar { display: none; }281282/* Entry name */283.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }284.peach-entry-header {285  position: relative;286  z-index: 1;287  display: flex;288  align-items: flex-start;289  gap: 6px;290  min-width: 0;291}292.peach-entry-header-name {293  flex: 1;294  min-width: 0;295}296.peach-entry-name {297  margin: 0;298  font-family: "Cormorant Garamond", "Times New Roman", serif;299  font-style: italic; font-weight: 400;300  font-size: 44px; line-height: 0.95;301  color: var(--peach-t0);302  display: -webkit-box;303  -webkit-line-clamp: 2;304  -webkit-box-orient: vertical;305  overflow: hidden;306  text-wrap: balance;307}308.peach-entry-name--lg { font-size: 40px; }309.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }310.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }311.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; }312313/* Trash icon in entry header */314.peach-entry-trash-btn {315  flex-shrink: 0;316  padding: 4px;317  margin-top: 4px;318  background: transparent;319  border: none;320  cursor: pointer;321  color: var(--peach-t2);322  border-radius: 4px;323  transition: color 140ms ease, background 140ms ease;324  display: flex;325  align-items: center;326  justify-content: center;327}328.peach-entry-trash-btn:hover {329  color: var(--peach-t1);330  background: var(--peach-t3);331}332.peach-entry-trash-confirm {333  display: flex;334  align-items: center;335  gap: 6px;336  flex-shrink: 0;337  margin-top: 6px;338  flex-wrap: nowrap;339}340.peach-entry-trash-confirm-label {341  font-family: var(--font-mono);342  font-size: 9px;343  letter-spacing: 0.1em;344  color: var(--peach-t2);345  white-space: nowrap;346}347.peach-entry-name-button {348  padding: 0;349  background: transparent;350  text-align: left;351  cursor: pointer;352  max-width: 100%;353  overflow: hidden;354  display: block;355}356.peach-entry-name-char {357  display: inline-block;358  white-space: pre;359  opacity: 0;360  transform: translateY(0.22em);361  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;362  animation-delay: calc(var(--char-index, 0) * 20ms);363}364365/* Domain */366.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }367.peach-domain-row {368  width: 100%; border: 0; background: transparent; color: inherit;369  padding: 0; display: flex; justify-content: space-between; align-items: baseline;370  cursor: default;371}372.peach-domain-value {373  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;374  font-size: 10px; font-style: italic;375  letter-spacing: 0.12em; color: var(--peach-t1);376}377378/* Fields */379.peach-fields { display: grid; gap: 10px; }380.peach-field-card { display: grid; gap: 7px; }381.peach-label {382  font-family: Inter, system-ui, sans-serif;383  text-transform: uppercase; letter-spacing: 0.2em;384  font-size: 8px; color: var(--peach-t2);385}386.peach-field-value-row {387  display: flex; justify-content: space-between;388  align-items: center; gap: 8px;389  min-width: 0;390}391.peach-field-value {392  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;393  font-size: 13px; color: var(--peach-t1);394  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;395  flex: 1;396  min-width: 0;397}398.peach-password-value {399  display: inline-flex;400  align-items: center;401  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;402  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);403  overflow: hidden;404  text-overflow: ellipsis;405  white-space: nowrap;406  flex: 1;407  min-width: 0;408  max-width: 100%;409}410.peach-password-value.is-revealed {411  font-size: 14px;412  letter-spacing: 0.08em;413}414.peach-password-text,415.peach-password-mask {416  display: block;417  width: 100%;418  overflow: hidden;419  text-overflow: ellipsis;420  white-space: nowrap;421}422.peach-field-actions { display: flex; gap: 4px; align-items: center; }423.peach-password-strength { display: flex; align-items: center; gap: 8px; }424.peach-strength-bar { display: flex; gap: 3px; }425.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }426.peach-strength-label {427  font-family: "IBM Plex Mono", monospace;428  font-style: italic;429  font-size: 9px;430  font-weight: 300;431  min-width: 36px;432  text-align: right;433  color: var(--peach-t2);434  letter-spacing: 0.06em;435}436437.peach-strength-hairline {438  display: flex;439  align-items: center;440  gap: 10px;441  margin-top: -2px;442}443444.peach-strength-hairline-track {445  flex: 1;446  height: 3px;447  border-radius: 2px;448  background: var(--peach-s2);449  overflow: hidden;450}451452.peach-strength-hairline-fill {453  height: 100%;454  border-radius: 2px;455  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),456    background 400ms ease;457}458459/* Note content */460.peach-note-content {461  border-top: 1px solid var(--peach-t3);462  padding-top: 10px;463  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;464  font-size: 11px;465  line-height: 1.75;466  color: var(--peach-t1);467  white-space: pre-wrap;468}469470/* ── Inline editing ─────────────────────────────────────────────────── */471472/* Clickable display values */473.peach-inline-clickable {474  cursor: text;475  border-radius: 3px;476  transition: background 150ms ease;477}478.peach-inline-clickable:hover {479  background: rgba(240, 232, 216, 0.05);480}481482/* Subtle "edit" hint that appears on hover */483.peach-inline-edit-hint {484  font-family: Inter, system-ui, sans-serif;485  font-size: 9px;486  text-transform: uppercase;487  letter-spacing: 0.14em;488  color: var(--peach-t2);489  opacity: 0;490  transition: opacity 120ms ease;491  pointer-events: none;492  margin-left: 6px;493  flex-shrink: 0;494}495.peach-domain-row:hover .peach-inline-edit-hint {496  opacity: 1;497}498499/* Title editing */500.peach-inline-title-wrap {501  display: flex;502  flex-direction: column;503  gap: 6px;504}505.peach-inline-title-input {506  font-family: "Cormorant Garamond", "Times New Roman", serif;507  font-style: italic;508  font-weight: 400;509  font-size: 40px;510  line-height: 0.95;511  color: var(--peach-t0);512  background: transparent;513  border: none;514  border-bottom: 1px solid var(--peach-accent);515  outline: none;516  width: 100%;517  padding: 2px 0;518}519520/* Generic inline field */521.peach-inline-field-wrap {522  display: flex;523  flex-direction: column;524  gap: 6px;525}526.peach-inline-input {527  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;528  font-size: 13px;529  color: var(--peach-t0);530  background: transparent;531  border: none;532  border-bottom: 1px solid var(--peach-accent);533  outline: none;534  width: 100%;535  padding: 3px 0;536}537.peach-inline-textarea {538  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;539  font-size: 11px;540  line-height: 1.7;541  color: var(--peach-t0);542  background: rgba(240, 232, 216, 0.04);543  border: 1px solid var(--peach-accent);544  border-radius: 4px;545  outline: none;546  width: 100%;547  padding: 8px;548  resize: vertical;549  min-height: 80px;550}551552/* Save / cancel row */553.peach-inline-actions {554  display: flex;555  gap: 6px;556  align-items: center;557}558.peach-inline-save-btn,559.peach-inline-cancel-btn {560  display: inline-flex;561  align-items: center;562  justify-content: center;563  width: 26px;564  height: 26px;565  border-radius: 4px;566  border: none;567  cursor: pointer;568  transition: background 140ms ease, opacity 140ms ease;569  flex-shrink: 0;570}571.peach-inline-save-btn {572  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);573  color: var(--peach-accent);574}575.peach-inline-save-btn:hover:not(:disabled) {576  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);577}578.peach-inline-cancel-btn {579  background: rgba(240, 232, 216, 0.06);580  color: var(--peach-t2);581}582.peach-inline-cancel-btn:hover:not(:disabled) {583  background: rgba(240, 232, 216, 0.12);584  color: var(--peach-t1);585}586.peach-inline-save-btn:disabled,587.peach-inline-cancel-btn:disabled {588  opacity: 0.4;589  cursor: not-allowed;590}591592/* Inline password generator wrapper */593.peach-inline-generator-wrap {594  margin-top: 10px;595  padding-top: 10px;596  border-top: 1px solid var(--peach-t3);597  display: flex;598  flex-direction: column;599  gap: 8px;600}601.peach-inline-generator-cancel {602  align-self: flex-start;603  font-size: 11px;604  color: var(--peach-t2);605}606607/* "is-editing" card state */608.peach-field-card.is-editing {609  background: rgba(240, 232, 216, 0.02);610  border-radius: 6px;611  padding: 8px;612  margin: -8px;613}614615/* Add notes button */616.peach-add-notes-btn {617  font-size: 11px;618  color: var(--peach-t2);619  margin-top: 6px;620  align-self: flex-start;621  padding: 4px 0;622}623624/* Delete row */625.peach-entry-delete-row {626  display: flex;627  align-items: center;628  gap: 8px;629  padding-top: 18px;630  margin-top: 8px;631  border-top: 1px solid var(--peach-t3);632}633.peach-delete-btn {634  font-size: 11px;635  color: var(--peach-t2);636  padding: 4px 0;637}638.peach-delete-confirm-text {639  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;640  font-size: 11px;641  font-style: italic;642  color: var(--peach-t2);643  flex-shrink: 0;644}645646/* TOTP band */647.peach-totp-band {648  border-top: 1px solid var(--peach-t3);649  padding: 12px 20px 14px;650  position: relative;651  display: grid;652  grid-template-columns: 1fr auto;653  gap: 10px;654}655.peach-totp-main {656  min-width: 0;657}658.peach-totp-code-row {659  display: flex;660  align-items: flex-end;661  gap: 10px;662  min-width: 0;663}664.peach-totp-code {665  margin: 2px 0 0;666  font-family: "Cormorant Garamond", "Times New Roman", serif;667  font-style: italic;668  font-weight: 300;669  font-size: 38px; color: var(--peach-accent);670  line-height: 0.95; min-height: 1em;671  min-width: 0;672}673.peach-totp-code-text {674  display: inline-flex;675  overflow: hidden;676  text-overflow: ellipsis;677  white-space: nowrap;678}679.peach-totp-copy-btn {680  margin-bottom: 2px;681  flex-shrink: 0;682}683.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }684.peach-totp-countdown {685  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;686  font-size: 22px; color: var(--peach-t1);687}688.peach-totp-ring { transform: rotate(-90deg); }689.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }690.peach-totp-ring-progress {691  fill: none; stroke: var(--peach-accent); stroke-width: 2;692  stroke-linecap: round;693  transition: stroke-dashoffset 1s linear, stroke 500ms ease;694}695/* Search bar */696.peach-search-wrap {697  border-top: 1px solid var(--peach-t3);698  background: var(--peach-s1);699  min-height: 54px; position: relative;700}701.peach-search-wrap::before {702  content: "";703  position: absolute;704  left: 0;705  top: 0;706  height: 2px;707  width: var(--peach-totp-progress, 0%);708  background: var(--peach-accent);709  opacity: 0;710  transition: width 1s linear, opacity 180ms ease;711  pointer-events: none;712}713.peach-shell[data-totp-active="true"] .peach-search-wrap::before {714  opacity: 0.9;715}716.peach-search-bar {717  min-height: 54px;718  display: grid;719  grid-template-columns: auto minmax(0, 1fr) auto;720  align-items: center;721  gap: 8px; padding: 0 9px 0 12px;722}723.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }724.peach-search-input {725  border: 0; background: transparent; color: var(--peach-t0);726  font-family: "Cormorant Garamond", "Times New Roman", serif;727  font-style: italic; font-size: 18px;728  outline: none; width: 100%; min-width: 0; padding: 0;729  caret-color: var(--peach-accent);730}731.peach-search-input::placeholder { color: var(--peach-t2); }732.peach-search-meta {733  display: grid;734  grid-auto-flow: column;735  align-items: center;736  justify-content: end;737  gap: 6px;738  min-width: max-content;739}740.peach-search-counter {741  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;742  font-size: 10px; color: var(--peach-t2);743  display: inline-flex;744  align-items: center;745  line-height: 1;746}747.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }748749/* Buttons */750.peach-btn {751  border: 1px solid transparent; border-radius: 12px;752  background: transparent; color: var(--peach-t0);753  font-family: Inter, system-ui, sans-serif;754  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;755  cursor: pointer;756  transition:757    background-color var(--peach-dur-80) var(--peach-curve-arrival),758    color var(--peach-dur-80) var(--peach-curve-arrival),759    border-color var(--peach-dur-150) var(--peach-curve-arrival);760}761.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }762.peach-btn:disabled {763  opacity: 0.45;764  cursor: not-allowed;765}766.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }767.peach-btn--md { min-height: 38px; }768.peach-btn--accent { background: var(--peach-accent); color: rgba(0,0,0,0.75); }769.peach-btn--accent:hover:not(:disabled) { background: var(--peach-accent); filter: brightness(1.12); }770.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }771.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }772.peach-icon-btn {773  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;774  display: inline-flex; align-items: center; justify-content: center;775}776777.peach-btn:focus-visible {778  outline: none;779  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px rgba(217, 104, 48, 0.5);780}781782/* Lock button */783.peach-lock-icon { transform-origin: center; }784.peach-lock-btn.is-locking { color: var(--peach-accent); }785.peach-lock-btn.is-locking .peach-lock-icon {786  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);787}788789/* Copy button */790.peach-copy-btn {791  position: relative; overflow: hidden;792  color: var(--peach-t2); border-color: var(--peach-t3);793}794.peach-copy-icon {795  display: inline-flex; align-items: center; justify-content: center;796  position: relative; z-index: 1;797}798.peach-copy-icon-svg { display: block; }799.peach-copy-sheen {800  position: absolute; inset: 0;801  background: linear-gradient(90deg, rgba(217,104,48,0) 0%, rgba(217,104,48,0.18) 30%, rgba(217,104,48,0.08) 100%);802  opacity: 0; transform: scaleX(0.15); transform-origin: left center;803}804.peach-copy-btn.is-copied {805  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;806  box-shadow:807    0 0 0 1px rgba(217,104,48,0.22),808    0 0 18px rgba(217,104,48,0.2),809    inset 0 0 20px rgba(217,104,48,0.12);810}811.peach-copy-btn.is-copied .peach-copy-icon {812  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;813}814.peach-copy-btn.is-copied .peach-copy-sheen {815  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;816}817.peach-copy-btn.is-retreat {818  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;819}820.peach-copy-btn.is-retreat .peach-copy-sheen {821  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;822}823.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }824.peach-copy-drain-bar {825  display: block; width: 100%; height: 100%;826  background: var(--peach-accent); opacity: 0.7;827  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;828}829830/* Unlock screen elements */831.peach-unlock-headline {832  margin: 2px 0 0;833  font-family: "Cormorant Garamond", "Times New Roman", serif;834  font-size: 52px; line-height: 0.95;835  font-style: italic; font-weight: 400;836}837.peach-subline {838  margin: 0;839  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;840  font-size: 10px; color: var(--peach-t2); font-style: italic;841}842.peach-subline--lock {843  max-width: 248px;844  line-height: 1.5;845}846.peach-underline-input {847  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);848  padding: 6px 0; background: transparent; color: var(--peach-t0);849  outline: none;850  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;851  font-size: 13px;852  caret-color: var(--peach-accent);853}854.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }855.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }856.peach-hint {857  margin: 0;858  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;859  font-size: 10px; color: var(--peach-t2);860}861.peach-unlock-footer {862  margin-top: 4px; display: flex; align-items: center; gap: 7px;863  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;864  font-size: 10px; color: var(--peach-t2);865}866.peach-unlock-footer--lock {867  padding-top: 2px;868}869870/* Breach badge */871.peach-breach-badge {872  display: flex;873  position: relative;874  z-index: 1;875  align-items: center;876  gap: 7px;877  font-size: 9px;878  color: var(--peach-breach);879  padding: 5px 10px;880  margin-bottom: 4px;881  border-radius: 8px;882  background: rgba(220, 80, 60, 0.07);883  border: 1px solid rgba(220, 80, 60, 0.18);884  letter-spacing: 0.04em;885}886887.peach-breach-action {888  margin-left: auto;889  font-size: 10px;890  padding: 3px 8px;891}892893.peach-password-value.is-breached {894  color: rgba(220, 80, 60, 0.75);895  border-bottom: 1px solid rgba(220, 80, 60, 0.22);896}897898/* ── Overlay views ─────────────────────────────────────────────────── */899.peach-overlay-view {900  position: absolute;901  inset: 0;902  display: flex;903  flex-direction: column;904  background:905    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),906    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),907    var(--peach-bg);908  z-index: 2;909  overflow: hidden;910  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;911}912@keyframes overlay-in {913  from { opacity: 0; transform: translateY(8px); }914  to   { opacity: 1; transform: translateY(0); }915}916.peach-overlay-view.ov-enter-up {917  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;918}919.peach-overlay-view.ov-exit-up {920  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;921}922.peach-overlay-view.ov-enter-right {923  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;924}925.peach-overlay-view.ov-exit-right {926  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;927}928929@keyframes ov-enter-up {930  from { opacity: 0; transform: translateY(18px); }931  to   { opacity: 1; transform: translateY(0); }932}933@keyframes ov-exit-up {934  from { opacity: 1; transform: translateY(0); }935  to   { opacity: 0; transform: translateY(-12px); }936}937@keyframes ov-enter-right {938  from { opacity: 0; transform: translateX(20px); }939  to   { opacity: 1; transform: translateX(0); }940}941@keyframes ov-exit-right {942  from { opacity: 1; transform: translateX(0); }943  to   { opacity: 0; transform: translateX(20px); }944}945946/* Overlay shared header */947.peach-overlay-header {948  padding: 10px 12px;949  display: flex;950  align-items: center;951  gap: 8px;952  border-bottom: 1px solid var(--peach-t3);953  flex-shrink: 0;954}955.peach-overlay-title {956  font-family: "IBM Plex Mono", monospace;957  font-size: 9px;958  text-transform: uppercase;959  letter-spacing: 0.18em;960  color: var(--peach-t2);961  flex: 1;962  text-align: center;963}964965.peach-overlay-card {966  background: var(--peach-s1);967  border: 1px solid var(--peach-t3);968  border-radius: 12px;969  overflow: hidden;970  width: 100%;971}972973.peach-onboarding-alt-actions {974  display: flex;975  flex-direction: column;976  gap: 4px;977  padding: 0;978}979980.peach-settings-copy {981  margin: 0 0 10px;982  font-size: 11px;983  line-height: 1.5;984  color: var(--peach-t2);985}986987.peach-settings-copy strong {988  color: var(--peach-t0);989}990991.peach-settings-copy--spacious {992  margin-bottom: 12px;993}994995.peach-settings-copy--result {996  color: var(--peach-accent);997  font-size: 13px;998  text-align: center;999  padding: 8px 0;1000}10011002.peach-settings-copy--danger {1003  color: var(--peach-breach);1004}10051006.peach-settings-copy--success {1007  color: var(--peach-accent);1008}10091010.peach-inline-feedback {1011  font-size: 11px;1012  margin: 10px 0 0;1013}10141015.peach-inline-feedback--ok {1016  color: var(--peach-accent);1017}10181019.peach-inline-feedback--error {1020  color: var(--peach-breach);1021}10221023.peach-inline-feedback--muted {1024  color: var(--peach-t2);1025  font-size: 10px;1026  margin: 4px 0;1027}10281029.peach-inline-feedback--spaced {1030  margin-top: 12px;1031}10321033.peach-settings-actions--row {1034  display: flex;1035  gap: 6px;1036}10371038.peach-settings-actions--end {1039  margin-top: 14px;1040  justify-content: flex-end;1041}10421043.peach-settings-stack {1044  display: flex;1045  flex-direction: column;1046  gap: 6px;1047}10481049.peach-settings-stack--tight {1050  gap: 4px;1051}10521053.peach-settings-stack--spacious {1054  gap: 8px;1055}10561057.peach-settings-input {1058  width: 100%;1059  box-sizing: border-box;1060  padding: 8px 10px;1061  background: var(--peach-s2);1062  border: 1px solid var(--peach-t3);1063  border-radius: 6px;1064  color: var(--peach-t0);1065  font-family: var(--font-ui);1066  font-size: 12px;1067  outline: none;1068  transition: border-color 120ms ease;1069}10701071.peach-settings-input:focus {1072  border-color: var(--peach-accent);1073}10741075.peach-settings-input[type="password"] {1076  font-family: var(--font-mono);1077  letter-spacing: 0.04em;1078}10791080.peach-phrase-textarea {1081  width: 100%;1082  box-sizing: border-box;1083  min-height: 120px;1084  padding: 10px 12px;1085  background: var(--peach-s2);1086  border: 1px solid var(--peach-t3);1087  border-radius: 6px;1088  color: var(--peach-t0);1089  font-size: 12px;1090  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1091  line-height: 1.5;1092  resize: vertical;1093  outline: none;1094}10951096.peach-phrase-textarea:focus {1097  border-color: var(--peach-accent);1098}10991100.peach-hidden-file-input {1101  display: none;1102}11031104.peach-checkbox-note {1105  display: flex;1106  align-items: flex-start;1107  gap: 8px;1108  font-size: 11px;1109  color: var(--peach-t1);1110  cursor: pointer;1111  margin: 12px 0;1112}11131114.peach-checkbox-note input {1115  margin-top: 1px;1116}11171118.peach-cjk-phrase-box {1119  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1120  font-size: 13px;1121  line-height: 1.5;1122  background: var(--peach-s2);1123  border: 1px solid var(--peach-t3);1124  border-radius: 6px;1125  padding: 10px 12px;1126  margin: 0 0 10px;1127  word-break: break-all;1128  white-space: pre-wrap;1129  max-height: 220px;1130  overflow-y: auto;1131  color: var(--peach-t0);1132  user-select: all;1133  scrollbar-width: none;1134  -ms-overflow-style: none;1135}1136.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }11371138.peach-danger-notice {1139  background: rgba(220, 80, 60, 0.08);1140  border: 1px solid rgba(220, 80, 60, 0.2);1141  border-radius: 6px;1142  padding: 9px 11px;1143  font-size: 11px;1144  color: var(--peach-t1);1145  line-height: 1.5;1146}11471148.peach-info-notice {1149  font-size: 11px;1150  color: var(--peach-t2);1151  line-height: 1.5;1152  background: rgba(240, 232, 216, 0.04);1153  border: 1px solid var(--peach-t3);1154  border-radius: 6px;1155  padding: 8px 10px;1156}11571158.peach-strength-row {1159  display: flex;1160  align-items: center;1161  gap: 8px;1162  margin-bottom: 10px;1163}11641165.peach-strength-track {1166  flex: 1;1167  height: 4px;1168  background: var(--peach-s2);1169  border-radius: 2px;1170  overflow: hidden;1171}11721173.peach-strength-fill {1174  height: 100%;1175  border-radius: 2px;1176  transition: width 120ms ease, background 120ms ease;1177}11781179/* ── Type selector tabs ── */1180.peach-type-tabs {1181  display: flex;1182  gap: 0;1183  background: var(--peach-t4);1184  border-radius: 8px;1185  padding: 3px;1186}11871188.peach-type-tab {1189  flex: 1;1190  display: flex;1191  align-items: center;1192  justify-content: center;1193  gap: 6px;1194  padding: 6px 10px;1195  border-radius: 6px;1196  border: none;1197  background: transparent;1198  cursor: pointer;1199  font-family: Inter, system-ui, sans-serif;1200  font-size: 11px;1201  font-weight: 400;1202  letter-spacing: 0.04em;1203  color: var(--peach-t1);1204  transition: background 150ms ease, color 150ms ease;1205}12061207.peach-type-tab.is-active {1208  background: var(--peach-s2);1209  color: var(--peach-t0);1210  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1211}12121213.peach-type-tab:not(.is-active):hover {1214  color: var(--peach-t0);1215}12161217.peach-type-tab svg {1218  opacity: 0.7;1219  flex-shrink: 0;1220}12211222.peach-type-tab.is-active svg {1223  opacity: 1;1224}12251226/* ── List view ───────────────────────────────────────────────────────── */1227.peach-list-top {1228  padding: 0 10px;1229  min-height: 46px;1230  display: flex;1231  align-items: center;1232  gap: 6px;1233  border-bottom: 1px solid var(--peach-t3);1234  flex-shrink: 0;1235  background: var(--peach-s1);1236}1237.peach-vault-list {1238  flex: 1;1239  overflow-y: auto;1240  scrollbar-width: none;1241}1242.peach-vault-list::-webkit-scrollbar { display: none; }12431244/* Scrollbar — vault list */1245.peach-vault-list {1246  scrollbar-width: thin;1247  scrollbar-color: var(--peach-t3) transparent;1248}12491250.peach-vault-list::-webkit-scrollbar {1251  width: 3px;1252}12531254.peach-vault-list::-webkit-scrollbar-thumb {1255  background: var(--peach-t3);1256  border-radius: 2px;1257}12581259.peach-entry-row {1260  width: 100%;1261  display: flex;1262  align-items: center;1263  gap: 10px;1264  padding: 9px 16px;1265  background: transparent;1266  border: none;1267  border-bottom: 1px solid var(--peach-t3);1268  cursor: pointer;1269  color: inherit;1270  text-align: left;1271  transition: background 80ms ease;1272}1273.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1274.peach-entry-row:last-child { border-bottom: none; }1275.peach-entry-row.is-active {1276  box-shadow: inset 2px 0 0 var(--peach-accent);1277  background: rgba(240,232,216,0.03);1278}1279.peach-entry-row-icon {1280  width: 26px; height: 26px;1281  border-radius: 7px;1282  border: 1px solid var(--peach-t3);1283  display: flex; align-items: center; justify-content: center;1284  color: var(--peach-t2);1285  flex-shrink: 0;1286}1287.peach-entry-row-icon.is-breach {1288  border-color: rgba(220,80,60,0.3);1289  color: rgba(220,80,60,0.7);1290}1291.peach-entry-row-info { flex: 1; min-width: 0; }1292.peach-entry-row-name {1293  display: block;1294  font-family: "Cormorant Garamond", serif;1295  font-size: 17px;1296  font-style: italic;1297  font-weight: 400;1298  color: var(--peach-t0);1299  line-height: 1.2;1300  white-space: nowrap;1301  overflow: hidden;1302  text-overflow: ellipsis;1303}1304.peach-entry-row-meta {1305  display: block;1306  font-family: "IBM Plex Mono", monospace;1307  font-size: 9px;1308  color: var(--peach-t2);1309  margin-top: 1px;1310  letter-spacing: 0.05em;1311}1312.peach-entry-row-dot {1313  width: 5px; height: 5px;1314  border-radius: 50%;1315  background: rgba(220,80,60,0.7);1316  flex-shrink: 0;1317}1318.peach-new-entry-row {1319  display: flex;1320  align-items: center;1321  justify-content: center;1322  gap: 6px;1323  width: 100%;1324  padding: 11px;1325  background: transparent;1326  border: none;1327  border-top: 1px solid var(--peach-t3);1328  color: var(--peach-t2);1329  font-family: "IBM Plex Mono", monospace;1330  font-size: 9px;1331  text-transform: uppercase;1332  letter-spacing: 0.14em;1333  cursor: pointer;1334  flex-shrink: 0;1335  transition: color 120ms ease, background 120ms ease;1336}1337.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13381339/* ── Multi-select mode ─────────────────────────────────────────────── */13401341/* Select-mode trigger button in sort bar — same shape as trash btn */1342.peach-sort-select-btn {1343  display: flex;1344  align-items: center;1345  justify-content: center;1346  padding: 3px 5px;1347  background: transparent;1348  border: none;1349  cursor: pointer;1350  color: var(--peach-t2);1351  border-radius: 4px;1352  transition: color 140ms ease, background 140ms ease;1353}1354.peach-sort-select-btn:hover {1355  color: var(--peach-t1);1356  background: var(--peach-t3);1357}13581359/* Sort bar in select mode */1360.peach-select-cancel-btn {1361  background: transparent;1362  border: none;1363  padding: 0 4px;1364  cursor: pointer;1365  font-family: "IBM Plex Mono", monospace;1366  font-size: 9px;1367  letter-spacing: 0.12em;1368  text-transform: uppercase;1369  color: var(--peach-t2);1370  transition: color 140ms ease;1371  flex-shrink: 0;1372}1373.peach-select-cancel-btn:hover { color: var(--peach-t0); }13741375.peach-select-count-label {1376  flex: 1;1377  text-align: center;1378  font-family: "IBM Plex Mono", monospace;1379  font-size: 9px;1380  letter-spacing: 0.14em;1381  text-transform: uppercase;1382  color: var(--peach-t1);1383}13841385.peach-select-all-btn {1386  background: transparent;1387  border: none;1388  padding: 0 4px;1389  cursor: pointer;1390  font-family: "IBM Plex Mono", monospace;1391  font-size: 9px;1392  letter-spacing: 0.12em;1393  text-transform: uppercase;1394  color: var(--peach-t2);1395  transition: color 140ms ease;1396  flex-shrink: 0;1397}1398.peach-select-all-btn:hover { color: var(--peach-accent); }13991400/* List in select mode */1401.peach-vault-list.is-selecting .peach-entry-row {1402  cursor: default;1403}1404.peach-vault-list.is-selecting .peach-entry-row:hover {1405  background: rgba(240,232,216,0.02);1406}1407.peach-vault-list.is-selecting .peach-entry-row.is-selected {1408  background: rgba(217,104,48,0.06);1409}1410.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1411  background: rgba(217,104,48,0.1);1412}14131414/* Select indicator circles in icon slot */1415.peach-entry-row-icon.is-select-icon {1416  color: var(--peach-t2);1417}1418.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1419  color: var(--peach-accent);1420}14211422/* Delete action bar at bottom (replaces new-entry row) */1423.peach-select-action-bar {1424  display: flex;1425  align-items: center;1426  justify-content: center;1427  gap: 7px;1428  width: 100%;1429  padding: 11px;1430  background: transparent;1431  border: none;1432  border-top: 1px solid var(--peach-t3);1433  color: var(--peach-t1);1434  font-family: "IBM Plex Mono", monospace;1435  font-size: 9px;1436  text-transform: uppercase;1437  letter-spacing: 0.14em;1438  cursor: pointer;1439  flex-shrink: 0;1440  transition: color 120ms ease, background 120ms ease;1441}1442.peach-select-action-bar:not(:disabled):hover {1443  color: var(--peach-t0);1444  background: rgba(220,80,60,0.06);1445}1446.peach-select-action-bar:not(:disabled):hover svg {1447  stroke: rgba(220,80,60,0.8);1448}1449.peach-select-action-bar:disabled,1450.peach-select-action-bar.is-empty {1451  color: var(--peach-t2);1452  cursor: default;1453  opacity: 0.5;1454}1455.peach-search-counter-list {1456  white-space: nowrap;1457  flex-shrink: 0;1458}1459.peach-list-empty {1460  min-height: 180px;1461  display: grid;1462  place-items: center;1463  color: var(--peach-t2);1464  font-family: "IBM Plex Mono", monospace;1465  font-size: 11px;1466}14671468/* ── Settings view ───────────────────────────────────────────────────── */1469.peach-settings-body {1470  flex: 1;1471  overflow-y: auto;1472  min-height: 0;1473  display: flex;1474  flex-direction: column;1475  padding: 2px 0 10px;1476}1477.peach-settings-group {1478  padding: 9px 16px 11px;1479  border-bottom: 1px solid var(--peach-t3);1480}1481.peach-export-intro {1482  padding-bottom: 8px;1483}1484.peach-export-card {1485  display: grid;1486  gap: 10px;1487}1488.peach-export-card--primary {1489  background:1490    linear-gradient(180deg, rgba(217,104,48,0.08), rgba(217,104,48,0.02));1491}1492.peach-export-card-head {1493  display: flex;1494  align-items: center;1495  justify-content: space-between;1496  gap: 10px;1497}1498.peach-export-card-copy {1499  margin: 0;1500  font-size: 12px;1501  line-height: 1.55;1502  color: var(--peach-t1);1503}1504.peach-export-note {1505  margin: 0;1506  font-size: 10px;1507  line-height: 1.5;1508  color: var(--peach-t2);1509}1510.peach-export-pill {1511  display: inline-flex;1512  align-items: center;1513  padding: 4px 8px;1514  border-radius: 999px;1515  border: 1px solid rgba(217,104,48,0.22);1516  background: rgba(217,104,48,0.08);1517  color: var(--peach-accent);1518  font-family: "IBM Plex Mono", monospace;1519  font-size: 8px;1520  letter-spacing: 0.12em;1521  text-transform: uppercase;1522  white-space: nowrap;1523}1524.peach-export-pill--danger {1525  border-color: rgba(220,80,60,0.22);1526  background: rgba(220,80,60,0.08);1527  color: var(--peach-breach);1528}1529.peach-export-password-stack {1530  gap: 8px;1531}1532.peach-settings-label {1533  margin: 0 0 6px;1534  font-family: "IBM Plex Mono", monospace;1535  font-size: 8px;1536  text-transform: uppercase;1537  letter-spacing: 0.18em;1538  color: var(--peach-t2);1539}1540.peach-settings-row {1541  display: flex;1542  align-items: center;1543  justify-content: space-between;1544  gap: 12px;1545  min-height: 34px;1546  padding: 6px 0;1547  font-size: 13px;1548  color: var(--peach-t1);1549}1550.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1551.peach-settings-value {1552  font-family: "IBM Plex Mono", monospace;1553  font-size: 10px;1554  color: var(--peach-t2);1555}15561557.peach-settings-value--status {1558  display: flex;1559  align-items: center;1560  gap: 6px;1561}15621563.peach-settings-row--stack {1564  flex-direction: column;1565  align-items: stretch;1566  gap: 6px;1567}15681569.peach-settings-row--top {1570  align-items: flex-start;1571}15721573.peach-settings-row-main {1574  display: flex;1575  flex-direction: column;1576  gap: 4px;1577  flex: 1;1578}1579.peach-toggle {1580  width: 28px; height: 16px;1581  border-radius: 999px;1582  background: var(--peach-t3);1583  border: 1px solid var(--peach-t3);1584  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1585  flex-shrink: 0;1586  transition: background 200ms ease, border-color 200ms ease;1587  cursor: pointer;1588}1589.peach-toggle.is-on {1590  background: rgba(217,104,48,0.22);1591  border-color: rgba(217,104,48,0.4);1592}1593.peach-toggle-knob {1594  width: 10px; height: 10px;1595  border-radius: 50%;1596  background: var(--peach-t2);1597  flex-shrink: 0;1598  transform: translateX(0px);1599  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1600}1601.peach-toggle.is-on .peach-toggle-knob {1602  background: var(--peach-accent);1603  transform: translateX(12px);1604}1605.peach-settings-footer {1606  display: flex;1607  align-items: center;1608  gap: 8px;1609  margin-top: auto;1610  padding: 14px 16px 8px;1611  font-family: "IBM Plex Mono", monospace;1612  font-size: 9px;1613  color: var(--peach-t2);1614}16151616.peach-passkey-badge {1617  margin-left: 8px;1618  font-size: 10px;1619  letter-spacing: 0.06em;1620  text-transform: uppercase;1621  color: var(--peach-t2);1622  font-family: var(--font-ui);1623  vertical-align: middle;1624}16251626.peach-passkey-delete-btn {1627  color: var(--peach-breach);1628  border-color: rgba(229, 85, 85, 0.25);1629}16301631.peach-passkey-delete-confirm {1632  display: flex;1633  align-items: center;1634  gap: 8px;1635  padding: 8px 10px;1636  background: rgba(229, 85, 85, 0.06);1637  border: 1px solid rgba(229, 85, 85, 0.2);1638  border-radius: 6px;1639}16401641.peach-passkey-delete-confirm-copy {1642  flex: 1;1643  font-size: 11px;1644  color: var(--peach-t1);1645}16461647.peach-passkey-delete-btn--confirm {1648  color: var(--peach-breach);1649  border-color: rgba(229, 85, 85, 0.4);1650}16511652.peach-passkey-activity {1653  flex-direction: column;1654  align-items: flex-start;1655  gap: 4px;1656}16571658.peach-passkey-meta {1659  font-size: 11px;1660  color: var(--peach-t2);1661}16621663.peach-passkey-actions {1664  position: relative;1665  z-index: 1;1666  margin-top: 14px;1667  display: flex;1668  flex-direction: column;1669  gap: 8px;1670}16711672.peach-passkey-approval {1673  display: flex;1674  flex-direction: column;1675  align-items: center;1676  padding: 28px 22px 22px;1677  gap: 14px;1678  text-align: center;1679}16801681.peach-passkey-approval-icon {1682  width: 46px;1683  height: 46px;1684  border-radius: 12px;1685  background: var(--peach-s2);1686  border: 1px solid var(--peach-t3);1687  display: flex;1688  align-items: center;1689  justify-content: center;1690  flex-shrink: 0;1691  color: var(--peach-accent);1692}16931694.peach-passkey-approval-icon img,1695.peach-passkey-approval-icon svg {1696  width: 28px;1697  height: 28px;1698  border-radius: 6px;1699}17001701.peach-passkey-approval-rp {1702  font-family: var(--font-ui);1703  font-size: 12px;1704  color: var(--peach-t2);1705  letter-spacing: 0.03em;1706}17071708.peach-passkey-approval-action {1709  font-family: var(--font-display);1710  font-style: italic;1711  font-weight: 300;1712  font-size: 26px;1713  color: var(--peach-t0);1714  line-height: 1;1715}17161717.peach-passkey-approval-user {1718  font-family: var(--font-mono);1719  font-size: 11px;1720  color: var(--peach-t1);1721  background: var(--peach-s2);1722  border: 1px solid var(--peach-t3);1723  border-radius: 4px;1724  padding: 3px 8px;1725}17261727.peach-passkey-approval-notice {1728  font-size: 10px;1729  color: var(--peach-t2);1730  line-height: 1.5;1731  max-width: 220px;1732}17331734.peach-passkey-approval-actions {1735  display: flex;1736  gap: 8px;1737  width: 100%;1738  margin-top: 6px;1739}17401741.peach-passkey-approval-actions .peach-btn {1742  flex: 1;1743}17441745/* ── Inline generator drawer ── */1746.peach-generator-drawer {1747  display: grid;1748  grid-template-rows: 0fr;1749  transition: grid-template-rows 320ms var(--peach-curve-arrival);1750  overflow: hidden;1751}1752.peach-generator-drawer.is-open {1753  grid-template-rows: 1fr;1754}1755.peach-generator-drawer-inner {1756  min-height: 0;1757  overflow: hidden;1758}1759.peach-generator-drawer-content {1760  border-top: 1px solid var(--peach-t3);1761  padding: 8px 0 4px;1762  display: flex;1763  flex-direction: column;1764  gap: 8px;1765}17661767/* ── Compact generator (inside entry edit) ── */1768.peach-generator-drawer-content--compact {1769  border-top: 1px solid var(--peach-t3);1770  padding: 8px 0 2px;1771  gap: 7px;1772}1773.peach-pwgen-compact-display-row {1774  display: flex;1775  align-items: center;1776  gap: 6px;1777}1778.peach-pwgen-compact-output {1779  flex: 1;1780  min-width: 0;1781  font-family: "IBM Plex Mono", monospace;1782  font-size: 11px;1783  font-weight: 400;1784  letter-spacing: 0.04em;1785  color: var(--peach-t0);1786  background: rgba(240, 232, 216, 0.04);1787  border: 1px solid var(--peach-t3);1788  border-radius: 5px;1789  padding: 5px 8px;1790  word-break: break-all;1791  line-height: 1.5;1792}1793.peach-pwgen-compact-controls {1794  display: flex;1795  align-items: center;1796  gap: 6px;1797}1798.peach-pwgen-compact-slider {1799  flex: 1;1800  min-width: 0;1801  height: 2px !important;1802}1803.peach-pwgen-compact-controls .peach-pwgen-len-num {1804  flex-shrink: 0;1805  min-width: 18px;1806  text-align: right;1807}1808.peach-pwgen-compact-pills {1809  display: flex;1810  gap: 3px;1811  flex-shrink: 0;1812}1813.peach-pwgen-compact-pills .peach-pwgen-pill {1814  padding: 2px 7px;1815  font-size: 8px;1816}1817.peach-pwgen-compact-use {1818  flex-shrink: 0;1819  font-size: 10px !important;1820  padding: 3px 9px !important;1821  min-height: 22px !important;1822  border-radius: 5px !important;1823}18241825/* ── Password edit row (input + eye toggle side-by-side) ── */1826.peach-password-edit-row {1827  display: flex;1828  align-items: center;1829  gap: 6px;1830}1831.peach-password-edit-row .peach-inline-input {1832  flex: 1;1833  min-width: 0;1834}18351836/* ── Generate toggle link ── */1837.peach-generate-toggle-link {1838  display: inline-flex;1839  align-items: center;1840  gap: 5px;1841  background: none;1842  border: none;1843  padding: 0;1844  cursor: pointer;1845  font-family: "IBM Plex Mono", monospace;1846  font-size: 10px;1847  color: var(--peach-t2);1848  letter-spacing: 0.04em;1849  transition: color 120ms ease;1850  align-self: flex-start;1851}1852.peach-generate-toggle-link:hover {1853  color: var(--peach-accent);1854}18551856/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1857.peach-entry-body {1858  flex: 1;1859  overflow-y: auto;1860  overflow-x: hidden;1861  scrollbar-width: none;1862  -ms-overflow-style: none;1863  overscroll-behavior: contain;1864  display: grid;1865  gap: 10px;1866  align-content: start;1867  padding: 10px 20px 14px;1868  min-width: 0;1869  min-height: 0;1870}1871.peach-entry-body::-webkit-scrollbar { display: none; }18721873/* Type-toggle pills (new entry only) */1874.peach-new-type-row {1875  display: flex;1876  gap: 6px;1877  margin-bottom: 2px;1878}1879.peach-new-type-btn {1880  background: transparent;1881  border: 1px solid var(--peach-t3);1882  border-radius: 12px;1883  padding: 3px 10px;1884  font-family: "IBM Plex Mono", monospace;1885  font-size: 9px;1886  letter-spacing: 0.12em;1887  text-transform: uppercase;1888  color: var(--peach-t2);1889  cursor: pointer;1890  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1891}1892.peach-new-type-btn.is-active {1893  color: var(--peach-t0);1894  border-color: var(--peach-accent);1895  background: rgba(217, 104, 48, 0.08);1896}1897.peach-new-type-btn:not(.is-active):hover {1898  color: var(--peach-t1);1899  border-color: var(--peach-t2);1900}19011902/* Editable title */1903.peach-new-title-wrap { margin: 0 0 2px; }1904.peach-new-title-input {1905  background: transparent;1906  border: none;1907  outline: none;1908  width: 100%;1909  color: var(--peach-t0);1910  font-family: "Cormorant Garamond", Georgia, serif;1911  font-style: italic;1912  font-weight: 400;1913  font-size: 40px;1914  line-height: 0.95;1915  caret-color: var(--peach-accent);1916}1917.peach-new-title-input::placeholder { color: var(--peach-t2); }19181919/* Editable domain field */1920.peach-domain-value--edit {1921  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1922  font-size: 10px;1923  font-style: italic;1924  letter-spacing: 0.12em;1925  color: var(--peach-t1);1926  background: transparent;1927  border: none;1928  border-bottom: 1px solid var(--peach-t3);1929  outline: none;1930  width: 100%;1931  padding: 2px 0;1932  caret-color: var(--peach-accent);1933  transition: border-color 140ms ease, color 140ms ease;1934}1935.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1936.peach-domain-value--edit:focus {1937  border-bottom-color: rgba(240, 232, 216, 0.28);1938  color: var(--peach-t0);1939}19401941/* Editable field values (username, password, totp) */1942.peach-field-value--edit {1943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1944  font-size: 13px;1945  color: var(--peach-t0);1946  background: transparent;1947  border: none;1948  border-bottom: 1px solid var(--peach-t3);1949  outline: none;1950  flex: 1;1951  min-width: 0;1952  padding: 3px 0;1953  caret-color: var(--peach-accent);1954  transition: border-color 140ms ease, color 140ms ease;1955}1956.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1957.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }1958.peach-field-value--edit:focus {1959  border-bottom-color: rgba(240, 232, 216, 0.28);1960  color: var(--peach-t0);1961}19621963/* "+ add optional field" links */1964.peach-entry-add-links {1965  display: flex;1966  gap: 12px;1967  flex-wrap: wrap;1968  margin-top: -2px;1969}1970.peach-add-field-link {1971  background: transparent;1972  border: none;1973  padding: 0;1974  cursor: pointer;1975  font-family: "IBM Plex Mono", monospace;1976  font-size: 9px;1977  letter-spacing: 0.1em;1978  text-transform: uppercase;1979  color: var(--peach-t2);1980  transition: color 140ms ease;1981}1982.peach-add-field-link:hover { color: var(--peach-accent); }19831984/* ── New entry form (legacy classes) ────────────────────────────────── */1985.peach-new-body {1986  flex: 1;1987  overflow-y: auto;1988  padding: 10px 20px 14px;1989}1990.peach-new-name-input {1991  background: transparent;1992  border: none;1993  outline: none;1994  width: 100%;1995  color: var(--peach-t0);1996  font-family: "Cormorant Garamond", Georgia, serif;1997  font-style: italic;1998  font-weight: 400;1999  font-size: 40px;2000  line-height: 0.95;2001  caret-color: var(--peach-accent);2002}2003.peach-new-name-input::placeholder { color: var(--peach-t2); }2004.peach-new-field-input {2005  background: transparent;2006  border: none;2007  outline: none;2008  flex: 1;2009  min-width: 0;2010  caret-color: var(--peach-accent);2011}2012.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }20132014/* ── Canary card ── */2015.peach-canary-card {2016  border: 1px solid rgba(217, 160, 48, 0.2);2017  background: rgba(217, 160, 48, 0.03);2018  border-radius: 8px;2019  padding: 12px;2020}20212022.peach-canary-settings-header {2023  display: flex;2024  align-items: center;2025  justify-content: space-between;2026  cursor: pointer;2027  user-select: none;2028}20292030.peach-canary-card .peach-label {2031  color: rgba(217, 160, 48, 0.85);2032}20332034.peach-canary-card .peach-new-field-input {2035  border-color: rgba(217, 160, 48, 0.25);2036}20372038.peach-canary-card .peach-new-field-input:focus {2039  border-color: rgba(217, 160, 48, 0.5);2040}20412042.peach-canary-body {2043  margin-top: 12px;2044  display: flex;2045  flex-direction: column;2046  gap: 10px;2047}20482049.peach-canary-explainer {2050  display: flex;2051  gap: 10px;2052  padding: 10px 12px;2053  border-radius: 10px;2054  background: rgba(217, 160, 48, 0.06);2055  border: 1px solid rgba(217, 160, 48, 0.22);2056  margin-bottom: 4px;2057}20582059.peach-canary-explainer-icon {2060  font-size: 16px;2061  flex-shrink: 0;2062  line-height: 1.2;2063}20642065.peach-canary-explainer-title {2066  font-family: var(--font-ui);2067  font-size: 11px;2068  font-weight: 500;2069  color: rgba(217, 160, 48, 0.9);2070  margin: 0 0 3px;2071}20722073.peach-canary-explainer-copy {2074  font-family: var(--font-ui);2075  font-size: 10px;2076  color: var(--peach-t2);2077  line-height: 1.55;2078  margin: 0;2079}20802081.peach-canary-hint {2082  font-size: 10px;2083  color: var(--peach-t2);2084  font-family: Inter, system-ui, sans-serif;2085  line-height: 1.5;2086  margin-top: 4px;2087}20882089.peach-canary-actions-row {2090  display: flex;2091  align-items: center;2092  gap: 8px;2093}20942095.peach-canary-test-btn {2096  border-color: rgba(217, 160, 48, 0.3);2097  color: rgba(217, 160, 48, 0.85);2098}20992100.peach-canary-test-result {2101  font-size: 10px;2102  font-family: Inter, system-ui, sans-serif;2103}21042105.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2106.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }21072108.peach-canary-badge {2109  display: flex;2110  position: relative;2111  z-index: 1;2112  align-items: center;2113  gap: 5px;2114  padding: 4px 10px;2115  background: rgba(217, 160, 48, 0.12);2116  border: 1px solid rgba(217, 160, 48, 0.35);2117  border-radius: 6px;2118  margin-bottom: 6px;2119  width: fit-content;2120}21212122.peach-canary-badge-label {2123  font-size: 10px;2124  letter-spacing: 0.06em;2125  color: rgba(217, 160, 48, 0.9);2126  font-family: var(--font-ui);2127  text-transform: uppercase;2128}21292130.peach-canary-badge-icon {2131  font-size: 11px;2132}21332134.peach-canary-suppress-row {2135  display: flex;2136  align-items: center;2137  gap: 8px;2138  padding: 6px 10px;2139  background: rgba(217, 160, 48, 0.08);2140  border-radius: 6px;2141  margin-bottom: 8px;2142}21432144.peach-canary-suppress-label {2145  font-size: 11px;2146  color: rgba(217, 160, 48, 0.85);2147  cursor: pointer;2148  font-family: var(--font-ui);2149  letter-spacing: 0.04em;2150}21512152.peach-regen-panel {2153  position: relative;2154  z-index: 1;2155  background: rgba(217, 104, 48, 0.08);2156  border: 1px solid rgba(217, 104, 48, 0.25);2157  border-radius: 8px;2158  padding: 12px;2159  margin-bottom: 8px;2160}21612162.peach-regen-panel-header {2163  display: flex;2164  align-items: center;2165  justify-content: space-between;2166  margin-bottom: 10px;2167}21682169.peach-regen-panel-title {2170  font-size: 11px;2171  font-weight: 600;2172  letter-spacing: 0.06em;2173  text-transform: uppercase;2174  color: rgba(217, 104, 48, 0.9);2175}21762177.peach-regen-output {2178  background: rgba(0, 0, 0, 0.2);2179  border-radius: 6px;2180  padding: 10px;2181  margin-bottom: 10px;2182  font-family: var(--font-mono);2183  font-size: 13px;2184  word-break: break-all;2185  color: var(--peach-t1);2186}21872188.peach-regen-actions {2189  display: flex;2190  gap: 6px;2191}21922193.peach-regen-actions--spaced {2194  margin-bottom: 8px;2195}21962197.peach-regen-action-grow {2198  flex: 1;2199}22002201.peach-regen-copy-btn {2202  padding: 0 8px;2203}22042205.peach-regen-success {2206  position: relative;2207  z-index: 1;2208  background: rgba(40, 180, 80, 0.1);2209  border: 1px solid rgba(40, 180, 80, 0.3);2210  border-radius: 8px;2211  padding: 10px 12px;2212  margin-bottom: 8px;2213  display: flex;2214  align-items: center;2215  gap: 8px;2216  font-size: 11px;2217  color: rgba(40, 180, 80, 0.9);2218}22192220/* ── Note textarea ── */2221.peach-note-textarea {2222  width: 100%;2223  min-height: 180px;2224  max-height: 280px;2225  resize: vertical;2226  background: var(--peach-t4);2227  border: 1px solid var(--peach-t3);2228  border-radius: 8px;2229  padding: 10px 12px;2230  font-family: "IBM Plex Mono", monospace;2231  font-size: 12px;2232  line-height: 1.7;2233  color: var(--peach-t1);2234  outline: none;2235  transition: border-color 150ms ease;2236}22372238.peach-note-textarea:focus {2239  border-color: var(--peach-t2);2240}22412242.peach-note-char-count {2243  font-family: "IBM Plex Mono", monospace;2244  font-size: 9px;2245  color: var(--peach-t3);2246  text-align: right;2247  margin-top: 4px;2248  letter-spacing: 0.1em;2249}22502251/* ── Field input baseline ── */2252.peach-new-field-input {2253  width: 100%;2254  background: transparent;2255  border: none;2256  border-bottom: 1px solid var(--peach-t3);2257  padding: 4px 0;2258  color: var(--peach-t1);2259  font-family: "IBM Plex Mono", monospace;2260  font-size: 13px;2261  outline: none;2262  transition: border-color 150ms ease;2263}22642265.peach-new-field-input:focus {2266  border-bottom-color: var(--peach-t0);2267  color: var(--peach-t0);2268}22692270.peach-new-name-input {2271  width: 100%;2272  background: transparent;2273  border: none;2274  border-bottom: 1px solid var(--peach-t3);2275  padding: 6px 0;2276  font-family: "Cormorant Garamond", Georgia, serif;2277  font-style: italic;2278  font-size: 28px;2279  color: var(--peach-t0);2280  outline: none;2281  transition: border-color 150ms ease;2282}22832284.peach-new-name-input:focus {2285  border-bottom-color: var(--peach-t1);2286}22872288.peach-new-name-input::placeholder {2289  color: var(--peach-t2);2290  font-style: italic;2291}22922293.peach-new-field-input::placeholder {2294  color: var(--peach-t3);2295}22962297/* ── Demo entrance animation ── */2298#hd-shell {2299  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2300}2301@keyframes hd-shell-enter {2302  from { opacity: 0; transform: scale(0.96) translateY(16px); }2303  to   { opacity: 1; transform: scale(1) translateY(0); }2304}23052306/* ── Keyframes ── */2307@keyframes peach-char-enter {2308  from { opacity: 0; transform: translateY(0.22em); }2309  to   { opacity: 1; transform: translateY(0); }2310}2311@keyframes peach-content-enter {2312  from { opacity: 0.96; transform: translateY(4px); }2313  to   { opacity: 1; transform: translateY(0); }2314}2315@keyframes peach-content-exit {2316  from { opacity: 1; transform: translateY(0); }2317  to   { opacity: 0.92; transform: translateY(-3px); }2318}2319@keyframes peach-screen-enter {2320  from { opacity: 0; transform: translateY(14px); }2321  to   { opacity: 1; transform: translateY(0); }2322}2323@keyframes peach-shell-fade-in {2324  from { opacity: 0; }2325  to   { opacity: 1; }2326}2327@keyframes peach-veil-in {2328  from { opacity: 0; }2329  to   { opacity: 1; }2330}2331@keyframes peach-lock-settle {2332  0%   { transform: scale(0.9); }2333  65%  { transform: scale(1.08); }2334  100% { transform: scale(1); }2335}2336@keyframes peach-copy-confirm {2337  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2338  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); }2339}2340@keyframes peach-copy-retreat {2341  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); }2342  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2343}2344@keyframes peach-copy-flood {2345  from { opacity: 0; transform: scaleX(0.15); }2346  to   { opacity: 1; transform: scaleX(1); }2347}2348@keyframes peach-copy-icon-settle {2349  from  { transform: scale(0.84); }2350  70%   { transform: scale(1.08); }2351  to    { transform: scale(1); }2352}2353@keyframes peach-copy-sheen-retreat {2354  from { opacity: 1; transform: scaleX(1); }2355  to   { opacity: 0; transform: scaleX(0.15); }2356}2357@keyframes peach-copy-drain {2358  from { width: 100%; }2359  to   { width: 0; }2360}2361@keyframes peach-shake {2362  0%, 100% { transform: translateX(0); }2363  20%      { transform: translateX(-6px); }2364  40%      { transform: translateX(6px); }2365  60%      { transform: translateX(-4px); }2366  80%      { transform: translateX(4px); }2367}23682369@keyframes pip-pulse {2370  0% { transform: scale(1); }2371  40% { transform: scale(2.2); }2372  100% { transform: scale(1); }2373}237423752376/* ── Password generator ── */2377.peach-pwgen-body {2378  flex: 1; overflow-y: auto;2379  display: flex; flex-direction: column;2380}2381.peach-policy-badge {2382  display: flex; align-items: center;2383  padding: 6px 20px 0;2384  font-size: 10px; font-family: Inter, sans-serif;2385  color: var(--peach-t2); letter-spacing: 0.04em;2386}2387.peach-pwgen-display {2388  padding: 14px 20px 12px;2389  border-bottom: 1px solid var(--peach-t3);2390  display: flex; align-items: flex-start; gap: 10px;2391}2392.peach-pwgen-display-row {2393  display: flex;2394  align-items: flex-start;2395  gap: 8px;2396  padding-bottom: 8px;2397  border-bottom: 1px solid var(--peach-t3);2398}2399.peach-pwgen-output {2400  flex: 1; min-width: 0; margin: 0;2401  font-family: "IBM Plex Mono", monospace;2402  font-size: 13px; color: var(--peach-t0);2403  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2404  white-space: normal;2405  padding: 10px 12px;2406  background: var(--peach-t4);2407  border-radius: 6px;2408  min-height: 36px;2409}2410.peach-pwgen-output-display {2411  flex: 1;2412  min-width: 0;2413  margin: 0;2414  font-family: "Cormorant Garamond", "Times New Roman", serif;2415  font-style: italic;2416  font-weight: 300;2417  font-size: 32px;2418  line-height: 1.05;2419  color: var(--peach-t0);2420  word-break: break-all;2421  overflow-wrap: break-word;2422  white-space: normal;2423  letter-spacing: 0.02em;2424}2425.peach-pwgen-display-actions {2426  display: flex;2427  flex-direction: column;2428  gap: 4px;2429  flex-shrink: 0;2430  margin-top: 2px;2431}2432.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2433.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2434.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2435.peach-pwgen-len-num {2436  font-family: "IBM Plex Mono", monospace;2437  font-size: 12px; color: var(--peach-accent);2438}2439.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2440.peach-pwgen-toggles { display: flex; flex-direction: column; }2441.peach-pwgen-charset-pills {2442  display: flex;2443  gap: 6px;2444  flex-wrap: wrap;2445}2446.peach-pwgen-pill {2447  padding: 4px 11px;2448  border-radius: 999px;2449  border: 1px solid var(--peach-t3);2450  background: transparent;2451  color: var(--peach-t2);2452  font-family: "IBM Plex Mono", monospace;2453  font-size: 9px;2454  letter-spacing: 0.08em;2455  cursor: pointer;2456  transition: all 150ms ease;2457}2458.peach-pwgen-pill.is-on {2459  border-color: rgba(217, 104, 48, 0.5);2460  background: rgba(217, 104, 48, 0.1);2461  color: var(--peach-accent);2462}2463.peach-pwgen-pill:not(.is-on):hover {2464  color: var(--peach-t1);2465  border-color: var(--peach-t2);2466}2467.peach-pwgen-use-btn {2468  width: 100%;2469  min-height: 34px;2470  border-radius: 8px;2471  margin-top: 2px;2472}2473.peach-pwgen-toggle-row {2474  display: flex; align-items: center; justify-content: space-between;2475  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2476}2477.peach-pwgen-toggle-row:last-child { border-bottom: none; }2478.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }24792480.peach-screen-prelock {2481  z-index: 10;2482}24832484.prelock-form {2485  display: grid;2486  gap: 12px;2487}24882489/* Peach popup should not expose native scrollbars on internal panels. */2490.peach-settings-body,2491.peach-new-body,2492.peach-pwgen-body,2493.lock-screen,2494.peach-import-preview {2495  scrollbar-width: none;2496  -ms-overflow-style: none;2497  overscroll-behavior: contain;2498}2499.peach-settings-body::-webkit-scrollbar,2500.peach-new-body::-webkit-scrollbar,2501.peach-pwgen-body::-webkit-scrollbar,2502.lock-screen::-webkit-scrollbar,2503.peach-import-preview::-webkit-scrollbar {2504  width: 0;2505  height: 0;2506  display: none;2507}25082509.lock-screen {2510  height: 100%;2511  min-height: 100%;2512  overflow-y: auto;2513  padding: 18px 18px 16px;2514  gap: 14px;2515  grid-template-rows: auto auto auto 1fr auto;2516  align-content: stretch;2517  position: relative;2518  isolation: isolate;2519}2520.peach-screen.lock-screen--vault-stage {2521  display: flex;2522  flex-direction: column;2523  justify-content: flex-start;2524  gap: 18px;2525  padding: 20px 18px 18px;2526  overflow: hidden;2527}2528.peach-screen.lock-screen--vault-stage .peach-lock-panel {2529  margin-top: auto;2530}2531.lock-screen--onboarding {2532  display: flex;2533  flex-direction: column;2534  gap: 12px;2535  justify-content: flex-start;2536}25372538.lock-screen::before {2539  content: "";2540  position: absolute;2541  inset: 12px 18px auto auto;2542  width: 160px;2543  height: 160px;2544  border-radius: 999px;2545  background:2546    radial-gradient(circle at 50% 50%, rgba(217, 104, 48, 0.18) 0%, rgba(217, 104, 48, 0.06) 42%, transparent 72%);2547  filter: blur(6px);2548  opacity: 0.7;2549  pointer-events: none;2550  z-index: 0;2551}25522553.lock-screen-header {2554  display: flex;2555  align-items: center;2556  justify-content: space-between;2557  position: relative;2558  z-index: 1;2559}25602561.lock-password-input.shake {2562  animation: peach-shake 300ms ease-in-out;2563}25642565.peach-hint-error {2566  color: rgba(220, 80, 60, 0.92);2567}25682569.peach-onboarding-headline {2570  margin: 0;2571  font-family: "Cormorant Garamond", "Times New Roman", serif;2572  font-size: 35px;2573  line-height: 0.88;2574  font-style: italic;2575  font-weight: 400;2576  max-width: 252px;2577}25782579.peach-lock-copy {2580  display: grid;2581  gap: 8px;2582  position: relative;2583  z-index: 1;2584}25852586.peach-lock-copy--onboarding {2587  gap: 10px;2588}25892590.peach-lock-hero {2591  position: relative;2592  z-index: 1;2593  display: grid;2594  gap: 8px;2595  min-height: 0;2596  padding: 4px 2px 0;2597  border: none;2598  border-radius: 0;2599  background: transparent;2600  box-shadow: none;2601}2602.peach-lock-hero-art {2603  position: absolute;2604  right: -8px;2605  top: -6px;2606  width: 120px;2607  height: 120px;2608  display: flex;2609  align-items: center;2610  justify-content: center;2611  pointer-events: none;2612  opacity: 0.12;2613  filter: saturate(0.9);2614}2615.peach-lock-hero-mark {2616  width: 100%;2617  height: 100%;2618}2619.peach-lock-hero-mark path:first-child {2620  fill: rgba(217, 104, 48, 0.92);2621}2622.peach-lock-hero-mark path:nth-child(2),2623.peach-lock-hero-mark path:nth-child(3) {2624  stroke: rgba(123, 144, 96, 0.88);2625  fill: rgba(123, 144, 96, 0.88);2626}2627.peach-lock-hero > *:not(.peach-lock-hero-art) {2628  position: relative;2629  z-index: 1;2630}26312632.peach-lock-eyebrow {2633  display: inline-flex;2634  align-items: center;2635  width: fit-content;2636  padding: 4px 9px;2637  border-radius: 999px;2638  border: 1px solid rgba(217, 104, 48, 0.22);2639  background: rgba(217, 104, 48, 0.08);2640  color: var(--peach-t0);2641  font-family: "IBM Plex Mono", monospace;2642  font-size: 8px;2643  letter-spacing: 0.18em;2644  text-transform: uppercase;2645}26462647.peach-lock-label-row {2648  display: flex;2649  align-items: center;2650  justify-content: space-between;2651  margin-bottom: 0;2652}26532654.peach-lock-reveal-btn {2655  display: inline-flex;2656  align-items: center;2657  gap: 4px;2658  background: none;2659  border: none;2660  cursor: pointer;2661  font-family: "IBM Plex Mono", monospace;2662  font-size: 9px;2663  letter-spacing: 0.06em;2664  color: var(--peach-t2);2665  padding: 2px 0;2666  transition: color 150ms ease;2667}26682669.peach-lock-reveal-btn:hover {2670  color: var(--peach-t1);2671}26722673.peach-lock-warning {2674  color: rgba(220, 80, 60, 0.85) !important;2675  line-height: 1.5;2676}26772678.peach-onboarding-cards {2679  display: grid;2680  gap: 8px;2681  position: relative;2682  z-index: 1;2683}26842685.peach-lock-panel {2686  position: relative;2687  z-index: 1;2688  display: grid;2689  gap: 9px;2690  padding: 14px 16px 15px;2691  border-radius: 18px;2692  border: 1px solid var(--peach-t3);2693  background:2694    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));2695  box-shadow:2696    inset 0 1px 0 rgba(240, 232, 216, 0.04),2697    0 12px 28px rgba(0, 0, 0, 0.12);2698}26992700.peach-lock-panel--secondary {2701  gap: 12px;2702}27032704.peach-lock-panel-header {2705  display: flex;2706  align-items: baseline;2707  justify-content: space-between;2708  gap: 12px;2709}27102711.peach-lock-option-grid {2712  display: grid;2713  gap: 10px;2714}27152716.peach-lock-option {2717  width: 100%;2718  display: grid;2719  gap: 6px;2720  padding: 14px 15px;2721  border-radius: 16px;2722  border: 1px solid rgba(240, 232, 216, 0.08);2723  background: rgba(240, 232, 216, 0.02);2724  color: var(--peach-t0);2725  text-align: left;2726  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;2727}27282729.peach-lock-option:hover {2730  border-color: rgba(217, 104, 48, 0.28);2731  background: rgba(240, 232, 216, 0.04);2732  transform: translateY(-1px);2733}27342735.peach-lock-option-title {2736  font-size: 12px;2737  color: var(--peach-t0);2738}27392740.peach-lock-option-copy {2741  font-size: 11px;2742  line-height: 1.55;2743  color: var(--peach-t1);2744}27452746.peach-onboarding-stack {2747  margin-top: 2px;2748}2749.peach-lock-panel-footer {2750  display: grid;2751  gap: 6px;2752  margin-top: 2px;2753  padding-top: 10px;2754  border-top: 1px solid rgba(240, 232, 216, 0.06);2755}27562757/* Restore picker panel — method option cards */2758.peach-lock-panel--restore {2759  gap: 10px;2760}2761.peach-lock-option--history {2762  border-color: rgba(240, 232, 216, 0.06);2763  opacity: 0.85;2764}27652766/* Snapshot restore panel */2767.peach-snapshot-panel {2768  gap: 10px;2769  overflow-y: auto;2770  max-height: 340px;2771}2772.peach-snapshot-list {2773  display: flex;2774  flex-direction: column;2775  gap: 4px;2776}2777.peach-snapshot-row {2778  display: flex;2779  align-items: center;2780  justify-content: space-between;2781  width: 100%;2782  padding: 8px 10px;2783  border-radius: 8px;2784  border: 1px solid rgba(240, 232, 216, 0.07);2785  background: transparent;2786  cursor: pointer;2787  transition: border-color 120ms, background 120ms;2788  text-align: left;2789  gap: 8px;2790}2791.peach-snapshot-row:hover {2792  border-color: rgba(240, 232, 216, 0.14);2793  background: rgba(240, 232, 216, 0.03);2794}2795.peach-snapshot-row.is-selected {2796  border-color: rgba(217, 104, 48, 0.4);2797  background: rgba(217, 104, 48, 0.07);2798}2799.peach-snapshot-time {2800  font-size: 11.5px;2801  color: var(--peach-t0);2802  flex: 1;2803}2804.peach-snapshot-count {2805  font-family: "IBM Plex Mono", monospace;2806  font-size: 10px;2807  color: var(--peach-t2);2808  flex-shrink: 0;2809}2810.peach-snapshot-confirm {2811  display: flex;2812  flex-direction: column;2813  gap: 8px;2814  padding-top: 10px;2815  border-top: 1px solid rgba(240, 232, 216, 0.06);2816}2817.peach-snapshot-warning {2818  display: flex;2819  align-items: flex-start;2820  gap: 6px;2821  font-size: 10.5px;2822  color: rgba(220, 80, 60, 0.85);2823  line-height: 1.55;2824}2825.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }2826.peach-snapshot-confirm-row {2827  display: flex;2828  gap: 6px;2829  align-items: center;2830}2831.peach-snapshot-restore-btn {2832  width: 100%;2833}2834.peach-lock-hero--unlock .peach-lock-hero-art {2835  width: 112px;2836  height: 112px;2837  right: 0;2838  top: 2px;2839  opacity: 0.1;2840}28412842.peach-card {2843  border: 1px solid var(--peach-t3);2844  border-radius: 18px;2845  background:2846    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);2847  box-shadow:2848    inset 0 1px 0 rgba(240, 232, 216, 0.04),2849    0 12px 32px rgba(0, 0, 0, 0.14);2850  overflow: hidden;2851}28522853.peach-card-active {2854  border-color: rgba(217, 104, 48, 0.35);2855  box-shadow:2856    inset 0 1px 0 rgba(240, 232, 216, 0.05),2857    0 16px 38px rgba(0, 0, 0, 0.18),2858    0 0 0 1px rgba(217, 104, 48, 0.08);2859}28602861.peach-card-disabled {2862  opacity: 0.72;2863}28642865.peach-card-header {2866  width: 100%;2867  padding: 13px 16px 11px;2868  background: transparent;2869  color: var(--peach-t0);2870  display: flex;2871  justify-content: space-between;2872  align-items: center;2873  text-align: left;2874  font-size: 12px;2875}28762877.peach-card-body {2878  padding: 0 16px 16px;2879  display: grid;2880  gap: 9px;2881}28822883.peach-card-tag {2884  color: var(--peach-t2);2885  font-family: "IBM Plex Mono", monospace;2886  font-size: 9px;2887  letter-spacing: 0.12em;2888  text-transform: uppercase;2889}28902891.peach-empty-copy {2892  display: grid;2893  gap: 6px;2894  color: var(--peach-t1);2895  font-size: 13px;2896}28972898.peach-lock-submit {2899  width: 100%;2900  box-shadow: 0 14px 36px rgba(217, 104, 48, 0.22);2901}29022903.peach-lock-secondary {2904  width: 100%;2905  border-color: var(--peach-t3);2906  background: rgba(240, 232, 216, 0.02);2907}29082909.peach-lock-secondary:hover {2910  background: rgba(240, 232, 216, 0.04);2911}29122913.peach-lock-note {2914  max-width: none;2915  line-height: 1.55;2916  margin: 0;2917}29182919.peach-overlay-action {2920  font-size: 10px;2921  padding: 4px 8px;2922  letter-spacing: 0.06em;2923  min-width: 44px;2924  text-align: center;2925}29262927.peach-overlay-spacer {2928  width: 32px;2929}29302931.peach-inline-action {2932  flex-shrink: 0;2933  font-size: 9px;2934  letter-spacing: 0.1em;2935  text-transform: uppercase;2936  padding: 4px 7px;2937}2938.peach-password-toggle-btn {2939  display: inline-flex;2940  align-items: center;2941  justify-content: center;2942  min-width: 30px;2943  min-height: 26px;2944  padding: 0 7px;2945  border: 1px solid var(--peach-t3);2946  border-radius: 999px;2947  background: rgba(240, 232, 216, 0.04);2948  color: var(--peach-t2);2949  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;2950}2951.peach-password-toggle-btn:hover {2952  border-color: var(--peach-t2);2953  color: var(--peach-t0);2954  background: rgba(240, 232, 216, 0.06);2955}29562957.peach-new-textarea {2958  width: 100%;2959  min-height: 88px;2960  resize: vertical;2961  border: 0;2962  outline: none;2963  background: transparent;2964  color: var(--peach-t1);2965  font-family: "IBM Plex Mono", monospace;2966  font-size: 12px;2967  line-height: 1.65;2968  caret-color: var(--peach-accent);2969}29702971.peach-new-textarea::placeholder {2972  color: var(--peach-t2);2973  opacity: 0.7;2974}29752976.peach-settings-actions {2977  display: grid;2978  gap: 8px;2979}29802981.peach-sync-section-label {2982  font-size: 11px;2983  color: var(--peach-t2);2984  text-transform: uppercase;2985  letter-spacing: 0.05em;2986}29872988.peach-sync-device-row {2989  display: flex;2990  justify-content: space-between;2991  align-items: center;2992  padding: 6px 0;2993  border-bottom: 1px solid var(--peach-t3);2994}29952996.peach-sync-device-info {2997  display: flex;2998  flex-direction: column;2999  gap: 2px;3000}30013002.peach-sync-device-name {3003  font-size: 13px;3004  color: var(--peach-t0);3005}30063007.peach-sync-device-meta {3008  font-size: 11px;3009  color: var(--peach-t2);3010}30113012.peach-sync-status-dot {3013  display: inline-block;3014  width: 8px;3015  height: 8px;3016  border-radius: 50%;3017  vertical-align: middle;3018}30193020.peach-sync-remove-btn {3021  color: var(--peach-breach);3022}30233024.peach-import-preview {3025  margin-bottom: 12px;3026  max-height: 152px;3027  overflow-y: auto;3028  border: 1px solid var(--peach-t3);3029  border-radius: 10px;3030  padding: 8px 10px;3031  display: grid;3032  gap: 8px;3033  background: rgba(240, 232, 216, 0.02);3034}30353036.peach-import-preview-row {3037  display: flex;3038  justify-content: space-between;3039  gap: 10px;3040  font-size: 11px;3041  color: var(--peach-t1);3042}30433044.peach-import-preview-title {3045  color: var(--peach-t0);3046  flex: 1;3047  min-width: 0;3048  overflow: hidden;3049  text-overflow: ellipsis;3050  white-space: nowrap;3051}30523053.peach-import-preview-meta {3054  color: var(--peach-t2);3055  flex-shrink: 0;3056  max-width: 42%;3057  overflow: hidden;3058  text-overflow: ellipsis;3059  white-space: nowrap;3060}30613062.peach-import-preview-more {3063  color: var(--peach-t2);3064  font-size: 10px;3065}30663067.peach-restore-copy {3068  margin: 0;3069  color: var(--peach-t1);3070  font-size: 11px;3071  line-height: 1.6;3072}30733074.peach-restore-warning {3075  padding: 10px 12px;3076  border-radius: 12px;3077  border: 1px solid rgba(220, 80, 60, 0.22);3078  background: rgba(220, 80, 60, 0.08);3079  color: rgba(240, 232, 216, 0.86);3080  font-size: 11px;3081  line-height: 1.55;3082}30833084.peach-provider-chips {3085  display: flex;3086  flex-wrap: wrap;3087  gap: 6px;3088}30893090.peach-provider-chip {3091  display: inline-flex;3092  align-items: center;3093  padding: 5px 8px;3094  border-radius: 999px;3095  border: 1px solid var(--peach-t3);3096  background: rgba(240, 232, 216, 0.02);3097  color: var(--peach-t1);3098  font-family: "IBM Plex Mono", monospace;3099  font-size: 8px;3100  letter-spacing: 0.08em;3101  text-transform: uppercase;3102}31033104.peach-restore-file,3105.peach-restore-input {3106  width: 100%;3107  border-radius: 10px;3108  border: 1px solid var(--peach-t3);3109  background: var(--peach-s2);3110  color: var(--peach-t0);3111  font-size: 12px;3112}31133114.peach-restore-file {3115  padding: 9px 10px;3116}31173118.peach-restore-file::file-selector-button {3119  margin-right: 10px;3120  padding: 7px 10px;3121  border: 1px solid rgba(217, 104, 48, 0.28);3122  border-radius: 999px;3123  background: rgba(217, 104, 48, 0.08);3124  color: var(--peach-t0);3125  font-size: 10px;3126  letter-spacing: 0.08em;3127  text-transform: uppercase;3128  cursor: pointer;3129}31303131.peach-restore-input {3132  padding: 10px 12px;3133}31343135.peach-auth-grid {3136  display: grid;3137  gap: 10px;3138}31393140.peach-import-summary {3141  color: var(--peach-t1);3142  font-size: 12px;3143  line-height: 1.6;3144  margin-bottom: 12px;3145}31463147.peach-restore-error {3148  color: rgba(220, 80, 60, 0.95);3149  font-size: 12px;3150  line-height: 1.55;3151}31523153.peach-cjk-qr-panel {3154  margin-top: 14px;3155  padding: 12px;3156  border-radius: 16px;3157  border: 1px solid var(--peach-t3);3158  background: rgba(240, 232, 216, 0.02);3159  display: grid;3160  gap: 10px;3161}31623163.peach-cjk-qr-frame {3164  display: grid;3165  place-items: center;3166  min-height: 212px;3167  border-radius: 14px;3168  background: #fff;3169  overflow: hidden;3170}31713172.peach-cjk-qr-frame svg {3173  display: block;3174  width: 196px;3175  height: 196px;3176}31773178.peach-cjk-qr-error,3179.peach-cjk-qr-caption {3180  color: var(--peach-t1);3181  font-size: 11px;3182  line-height: 1.55;3183}31843185.peach-cjk-qr-card {3186  max-width: 400px;3187  margin: auto;3188}31893190.peach-cjk-qr-body {3191  padding: 0 20px 20px;3192  text-align: center;3193}31943195.peach-cjk-qr-hint {3196  font-size: 11px;3197  color: var(--peach-t2);3198  margin: 0 0 14px;3199}32003201.peach-cjk-qr-image {3202  border-radius: 4px;3203  display: block;3204  margin: 0 auto;3205  width: 100%;3206  max-width: 320px;3207  height: auto;3208}32093210.peach-pro-badge {3211  padding: 2px 6px;3212  border-radius: 999px;3213  font-family: var(--font-ui);3214  font-size: 10px;3215  letter-spacing: 0.08em;3216  text-transform: uppercase;3217  background: rgba(217, 104, 48, 0.14);3218  color: var(--peach-accent);3219}32203221.peach-loading {3222  position: absolute;3223  inset: 0;3224  display: flex;3225  align-items: center;3226  justify-content: center;3227  background: var(--bg);3228  animation: peach-loading-pulse 1.2s ease-in-out infinite;3229}32303231@keyframes peach-loading-pulse {3232  0%, 100% { opacity: 0.6; }3233  50% { opacity: 1; }3234}32353236/* ── Health Dashboard ─────────────────────────────────────────────────── */3237.peach-health-body {3238  flex: 1;3239  overflow-y: auto;3240  display: flex;3241  flex-direction: column;3242}32433244.peach-health-summary {3245  padding: 10px 16px 6px;3246  font-family: "IBM Plex Mono", monospace;3247  font-size: 11px;3248}3249.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3250.peach-health-summary-ok { color: var(--peach-t2); }32513252.peach-health-check-row {3253  padding: 0 16px 10px;3254}3255.peach-health-check-btn {3256  width: 100%;3257  display: flex;3258  align-items: center;3259  justify-content: center;3260}32613262.peach-health-sections {3263  flex: 1;3264  display: flex;3265  flex-direction: column;3266}32673268.peach-health-section {3269  border-bottom: 1px solid var(--peach-t3);3270}32713272.peach-health-section-header {3273  width: 100%;3274  display: flex;3275  align-items: center;3276  justify-content: space-between;3277  padding: 9px 16px;3278  background: transparent;3279  cursor: pointer;3280  color: var(--peach-t0);3281}32823283.peach-health-section-title-row {3284  display: flex;3285  align-items: center;3286  gap: 8px;3287}32883289.peach-health-count-badge {3290  display: inline-flex;3291  align-items: center;3292  justify-content: center;3293  min-width: 20px;3294  height: 18px;3295  padding: 0 5px;3296  border-radius: 999px;3297  background: rgba(220,80,60,0.15);3298  border: 1px solid rgba(220,80,60,0.25);3299  font-family: "IBM Plex Mono", monospace;3300  font-size: 9px;3301  color: rgba(220,80,60,0.9);3302}33033304.peach-health-section-title {3305  font-family: "IBM Plex Mono", monospace;3306  font-size: 11px;3307  text-transform: uppercase;3308  letter-spacing: 0.1em;3309  color: var(--peach-t1);3310}33113312.peach-health-chevron {3313  color: var(--peach-t2);3314  transition: transform 200ms ease;3315  flex-shrink: 0;3316}3317.peach-health-chevron.is-expanded {3318  transform: rotate(180deg);3319}33203321.peach-health-section-body {3322  padding: 0 16px 10px;3323  display: flex;3324  flex-direction: column;3325  gap: 4px;3326}33273328.peach-health-row {3329  display: flex;3330  align-items: flex-start;3331  justify-content: space-between;3332  gap: 8px;3333  padding: 6px 8px;3334  border-radius: 8px;3335  background: rgba(240,232,216,0.02);3336}33373338.peach-health-row-info {3339  flex: 1;3340  min-width: 0;3341  display: flex;3342  flex-direction: column;3343  gap: 2px;3344}33453346.peach-health-row-name {3347  font-family: "Cormorant Garamond", serif;3348  font-size: 15px;3349  font-style: italic;3350  font-weight: 400;3351  color: var(--peach-t0);3352  white-space: nowrap;3353  overflow: hidden;3354  text-overflow: ellipsis;3355}33563357.peach-health-row-meta {3358  font-family: "IBM Plex Mono", monospace;3359  font-size: 9px;3360  color: var(--peach-t2);3361  letter-spacing: 0.05em;3362}33633364.peach-health-fix-btn {3365  font-size: 9px;3366  letter-spacing: 0.08em;3367  text-transform: uppercase;3368  padding: 4px 7px;3369  flex-shrink: 0;3370  display: flex;3371  align-items: center;3372}33733374.peach-health-empty {3375  font-family: "IBM Plex Mono", monospace;3376  font-size: 10px;3377  color: var(--peach-t2);3378  padding: 6px 0;3379}33803381.peach-health-loading {3382  font-family: "IBM Plex Mono", monospace;3383  font-size: 10px;3384  color: var(--peach-t2);3385  padding: 6px 0;3386  display: flex;3387  align-items: center;3388  gap: 6px;3389}33903391.peach-health-loading::before {3392  content: "";3393  width: 10px;3394  height: 10px;3395  border: 1.5px solid var(--peach-t3);3396  border-top-color: var(--peach-accent);3397  border-radius: 50%;3398  animation: peach-spin 600ms linear infinite;3399}34003401@keyframes peach-spin {3402  to { transform: rotate(360deg); }3403}34043405.peach-spinner {3406  width: 32px;3407  height: 32px;3408  border: 2px solid var(--peach-s2);3409  border-top-color: var(--peach-accent);3410  border-radius: 50%;3411  margin: 0 auto 16px;3412  animation: peach-spin 0.8s linear infinite;3413}34143415.peach-progress-screen {3416  text-align: center;3417  padding: 32px 16px;3418}34193420.peach-progress-screen-title {3421  font-size: 13px;3422  color: var(--peach-t0);3423  margin-bottom: 16px;3424}34253426.peach-progress-screen-stage {3427  font-size: 11px;3428  color: var(--peach-t2);3429  min-height: 14px;3430}34313432.peach-progress-screen-note {3433  font-size: 10px;3434  color: var(--peach-t2);3435  margin-top: 8px;3436}34373438.peach-pairing-body {3439  flex: 1;3440  overflow-y: auto;3441  display: flex;3442  flex-direction: column;3443}34443445.peach-pairing-content {3446  flex: 1;3447  display: flex;3448  flex-direction: column;3449  align-items: center;3450  justify-content: center;3451  gap: 14px;3452  padding: 28px 20px;3453  text-align: center;3454}34553456.peach-pairing-headline {3457  font-family: var(--font-display);3458  font-style: italic;3459  font-weight: 300;3460  font-size: 28px;3461  color: var(--peach-t0);3462  margin: 0;3463  line-height: 1;3464}34653466.peach-pairing-subline {3467  font-size: 12px;3468  color: var(--peach-t2);3469  max-width: 220px;3470  line-height: 1.5;3471  margin: 0;3472}34733474.peach-pairing-subline--center {3475  text-align: center;3476}34773478.peach-pairing-code-display {3479  display: flex;3480  gap: 6px;3481}34823483.peach-pairing-code-digit {3484  display: flex;3485  align-items: center;3486  justify-content: center;3487  width: 36px;3488  height: 48px;3489  background: var(--peach-s2);3490  border: 1px solid var(--peach-t3);3491  border-radius: 6px;3492  font-family: var(--font-mono);3493  font-size: 22px;3494  color: var(--peach-t0);3495  letter-spacing: 0;3496}34973498.peach-pairing-countdown-ring {3499  position: relative;3500  display: inline-flex;3501  align-items: center;3502  justify-content: center;3503}35043505.peach-pairing-countdown-num {3506  position: absolute;3507  font-family: var(--font-mono);3508  font-size: 14px;3509  color: var(--peach-t1);3510}35113512.peach-pairing-ring-track {3513  fill: none;3514  stroke: var(--peach-t3);3515  stroke-width: 2;3516}35173518.peach-pairing-ring-progress {3519  fill: none;3520  stroke: var(--peach-accent);3521  stroke-width: 2;3522  stroke-linecap: round;3523  transform: rotate(-90deg);3524  transform-origin: 50% 50%;3525  transition: stroke-dashoffset 0.5s linear;3526}35273528.peach-pairing-code-inputs {3529  display: flex;3530  gap: 8px;3531}35323533.peach-pairing-code-box {3534  width: 36px;3535  height: 48px;3536  text-align: center;3537  background: var(--peach-s2);3538  border: 1px solid var(--peach-t3);3539  border-radius: 6px;3540  font-family: var(--font-mono);3541  font-size: 20px;3542  color: var(--peach-t0);3543  outline: none;3544  transition: border-color 120ms ease;3545}35463547.peach-pairing-code-box:focus {3548  border-color: var(--peach-accent);3549}35503551.peach-pairing-code-box.has-error {3552  border-color: rgba(220, 80, 60, 0.45);3553}35543555.peach-pairing-status {3556  display: flex;3557  align-items: center;3558  gap: 8px;3559  margin: 0;3560  font-size: 12px;3561  color: var(--peach-t1);3562}35633564.peach-pairing-error {3565  margin: 0;3566  font-size: 11px;3567  color: var(--peach-breach);3568}35693570.peach-pairing-error-msg {3571  color: var(--peach-t1);3572}35733574.peach-pairing-spinner {3575  width: 12px;3576  height: 12px;3577  border: 1.5px solid var(--peach-t3);3578  border-top-color: var(--peach-accent);3579  border-radius: 50%;3580  animation: peach-spin 0.8s linear infinite;3581}35823583.peach-pairing-success-icon,3584.peach-pairing-error-icon,3585.peach-pairing-hero {3586  display: inline-flex;3587  align-items: center;3588  justify-content: center;3589}35903591/* Tag chips */3592.peach-tag-chip {3593  display: inline-flex;3594  align-items: center;3595  gap: 4px;3596  padding: 3px 8px;3597  border-radius: 999px;3598  border: 1px solid rgba(217, 104, 48, 0.28);3599  background: rgba(217, 104, 48, 0.08);3600  color: rgba(240, 232, 216, 0.85);3601  font-family: "IBM Plex Mono", monospace;3602  font-size: 10px;3603  letter-spacing: 0.04em;3604}36053606.peach-tag-chip-remove {3607  background: transparent;3608  border: none;3609  color: inherit;3610  opacity: 0.6;3611  cursor: pointer;3612  padding: 0;3613  font-size: 12px;3614  line-height: 1;3615}36163617.peach-tag-chip-remove:hover {3618  opacity: 1;3619}36203621/* Tag input */3622.peach-tag-input-wrap {3623  border-bottom: 1px solid var(--peach-t3);3624}36253626.peach-tag-suggestions {3627  display: flex;3628  flex-wrap: wrap;3629  gap: 4px;3630  padding: 6px 0;3631}36323633.peach-tag-suggestion {3634  padding: 2px 8px;3635  border-radius: 999px;3636  border: 1px solid var(--peach-t3);3637  background: var(--peach-s2);3638  color: var(--peach-t1);3639  font-family: "IBM Plex Mono", monospace;3640  font-size: 10px;3641  cursor: pointer;3642  transition: border-color 80ms ease, background 80ms ease;3643}36443645.peach-tag-suggestion:hover {3646  border-color: rgba(217, 104, 48, 0.4);3647  background: rgba(217, 104, 48, 0.08);3648}36493650/* Tag filter strip */3651.peach-tag-filter-strip {3652  border-bottom: 1px solid var(--peach-t3);3653  flex-shrink: 0;3654}36553656.peach-tag-filter-chip {3657  display: inline-flex;3658  align-items: center;3659  padding: 4px 10px;3660  border-radius: 999px;3661  border: 1px solid var(--peach-t3);3662  background: transparent;3663  color: var(--peach-t2);3664  font-family: "IBM Plex Mono", monospace;3665  font-size: 9px;3666  letter-spacing: 0.06em;3667  text-transform: uppercase;3668  cursor: pointer;3669  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3670  white-space: nowrap;3671}36723673.peach-tag-filter-chip:hover {3674  border-color: rgba(217, 104, 48, 0.35);3675  color: var(--peach-t1);3676}36773678.peach-tag-filter-chip.is-selected {3679  border-color: rgba(217, 104, 48, 0.5);3680  background: rgba(217, 104, 48, 0.12);3681  color: rgba(240, 232, 216, 0.9);3682}36833684/* ─────────────────────────────────────────────────────────────────────────3685   v1.4.12 additions3686   ─────────────────────────────────────────────────────────────────────── */36873688/* Sort bar */3689.peach-sort-bar {3690  display: flex;3691  align-items: center;3692  gap: 4px;3693  padding: 5px 12px;3694  border-bottom: 1px solid var(--peach-t3);3695  flex-shrink: 0;3696  overflow-x: auto;3697  scrollbar-width: none;3698}36993700.peach-sort-btn {3701  padding: 2px 9px;3702  border-radius: 999px;3703  border: 1px solid transparent;3704  background: transparent;3705  color: var(--peach-t2);3706  font-family: "IBM Plex Mono", monospace;3707  font-size: 9px;3708  letter-spacing: 0.07em;3709  text-transform: uppercase;3710  cursor: pointer;3711  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3712  white-space: nowrap;3713}37143715.peach-sort-btn:hover {3716  border-color: rgba(217, 104, 48, 0.3);3717  color: var(--peach-t1);3718}37193720.peach-sort-btn.is-active {3721  border-color: rgba(217, 104, 48, 0.5);3722  background: rgba(217, 104, 48, 0.12);3723  color: rgba(240, 232, 216, 0.9);3724}37253726.peach-sort-domain-hint {3727  margin-left: auto;3728  font-family: "IBM Plex Mono", monospace;3729  font-size: 9px;3730  color: rgba(217, 104, 48, 0.6);3731  white-space: nowrap;3732  overflow: hidden;3733  text-overflow: ellipsis;3734  max-width: 110px;3735}37363737/* Tab-match badge on entry rows */3738.peach-tab-match-badge {3739  display: inline-block;3740  width: 6px;3741  height: 6px;3742  border-radius: 50%;3743  background: rgba(217, 104, 48, 0.75);3744  margin-left: 5px;3745  vertical-align: middle;3746  flex-shrink: 0;3747  box-shadow: 0 0 4px rgba(217, 104, 48, 0.4);3748}37493750.peach-entry-row.is-tab-match {3751  background: rgba(217, 104, 48, 0.04);3752  border-bottom-color: rgba(217, 104, 48, 0.08);3753}37543755.peach-entry-row.is-tab-match:hover {3756  background: rgba(217, 104, 48, 0.08);3757}37583759/* Entry list stagger entrance */3760@keyframes peach-entry-fadein {3761  from { opacity: 0; transform: translateY(4px); }3762  to   { opacity: 1; transform: translateY(0); }3763}37643765.peach-vault-list .peach-entry-row {3766  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;3767  content-visibility: auto;3768  contain-intrinsic-size: auto 44px;3769}37703771/* Button press micro-interaction */3772.peach-btn:active {3773  transform: scale(0.95);3774  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3775}37763777.peach-sort-btn:active,3778.peach-tag-filter-chip:active {3779  transform: scale(0.93);3780  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3781}37823783/* Password strength bar (Lock view + shared) */3784.peach-password-strength {3785  display: flex;3786  align-items: center;3787  gap: 8px;3788  margin-top: 6px;3789}37903791.peach-strength-bar {3792  flex: 1;3793  height: 3px;3794  border-radius: 2px;3795  background: var(--peach-t3);3796  overflow: hidden;3797}37983799.peach-strength-fill {3800  height: 100%;3801  border-radius: 2px;3802  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),3803              background 300ms ease;3804}38053806.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }3807.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }3808.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }3809.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }38103811.peach-strength-label {3812  font-family: "IBM Plex Mono", monospace;3813  font-style: italic;3814  font-size: 9px;3815  font-weight: 300;3816  letter-spacing: 0.06em;3817  color: var(--peach-t2);3818  min-width: 36px;3819  text-align: right;3820}38213822.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }3823.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }3824.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }3825.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }38263827/* Duress form */3828.peach-duress-status {3829  padding: 2px 8px;3830  border-radius: 999px;3831  border: 1px solid var(--peach-t3);3832  font-family: "IBM Plex Mono", monospace;3833  font-size: 9px;3834  letter-spacing: 0.07em;3835  text-transform: uppercase;3836  color: var(--peach-t2);3837  flex-shrink: 0;3838}38393840.peach-duress-status.is-active {3841  border-color: rgba(217, 104, 48, 0.45);3842  background: rgba(217, 104, 48, 0.1);3843  color: rgba(240, 232, 216, 0.85);3844}38453846.peach-duress-form {3847  padding: 8px 0 4px;3848  display: flex;3849  flex-direction: column;3850  gap: 6px;3851}38523853.peach-duress-form .peach-label {3854  margin-top: 4px;3855}38563857.peach-duress-actions {3858  display: flex;3859  gap: 6px;3860  align-items: center;3861  margin-top: 4px;3862}38633864.peach-duress-actions .peach-btn:first-child {3865  margin-right: auto;3866}38673868/* Improved overlay spring entrance */3869.peach-overlay-view.ov-enter-up {3870  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3871}38723873@keyframes ov-enter-up-spring {3874  from { opacity: 0; transform: translateY(16px) scale(0.98); }3875  to   { opacity: 1; transform: translateY(0) scale(1); }3876}38773878.peach-overlay-view.ov-enter-right {3879  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3880}38813882@keyframes ov-enter-right-spring {3883  from { opacity: 0; transform: translateX(18px) scale(0.98); }3884  to   { opacity: 1; transform: translateX(0) scale(1); }3885}38863887/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */3888/* Used when CJKImportView or MainImportView renders during onboarding3889   (no vault yet). Animates like a lock-screen transition. */3890.peach-lock-view {3891  position: absolute;3892  inset: 0;3893  display: flex;3894  flex-direction: column;3895  background:3896    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),3897    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),3898    var(--peach-bg);3899  z-index: 2;3900  overflow: hidden;3901  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3902}39033904.peach-lock-view-header {3905  display: flex;3906  align-items: center;3907  justify-content: space-between;3908  padding: 16px 18px 12px;3909  flex-shrink: 0;3910}39113912/* ───────── Settings: auto-lock select ───────── */3913.peach-settings-select {3914  font-family: "IBM Plex Mono", monospace;3915  font-size: 11px;3916  background: transparent;3917  border: 1px solid var(--peach-t3);3918  border-radius: 4px;3919  color: var(--peach-t1);3920  padding: 3px 6px;3921  cursor: pointer;3922  outline: none;3923}3924.peach-settings-select:focus {3925  border-color: var(--peach-accent);3926}39273928/* ───────── Duress status pill (new polished) ───────── */3929.peach-duress-status-pill {3930  font-family: "IBM Plex Mono", monospace;3931  font-size: 9px;3932  text-transform: uppercase;3933  letter-spacing: 0.12em;3934  padding: 2px 8px;3935  border-radius: 12px;3936  background: var(--peach-t3);3937  color: var(--peach-t2);3938  flex-shrink: 0;3939}3940.peach-duress-status-pill.is-active {3941  background: rgba(217, 104, 48, 0.15);3942  color: var(--peach-accent);3943}39443945/* ───────── Entry advanced disclosure (canary) ───────── */3946.peach-entry-advanced {3947  margin-top: 12px;3948  border-top: 1px solid var(--peach-t3);3949  padding-top: 10px;3950  position: relative;3951  z-index: 1;3952}3953.peach-entry-advanced-toggle {3954  display: flex;3955  align-items: center;3956  justify-content: space-between;3957  width: 100%;3958  background: transparent;3959  border: none;3960  cursor: pointer;3961  padding: 0;3962  color: var(--peach-t2);3963}3964.peach-canary-section {3965  margin-top: 10px;3966  display: grid;3967  gap: 6px;3968}39693970/* ───────── Import: merge/replace radio choices ───────── */3971.peach-import-choice {3972  display: flex;3973  align-items: flex-start;3974  gap: 10px;3975  padding: 8px 10px;3976  border: 1px solid var(--peach-t3);3977  border-radius: 10px;3978  cursor: pointer;3979  margin-bottom: 6px;3980  transition: border-color 120ms ease, background 120ms ease;3981}3982.peach-import-choice:hover {3983  border-color: var(--peach-accent);3984}3985.peach-import-choice input[type="radio"] {3986  margin-top: 3px;3987  accent-color: var(--peach-accent);3988  flex-shrink: 0;3989}3990.peach-import-choice-main {3991  display: flex;3992  flex-direction: column;3993  gap: 2px;3994  min-width: 0;3995}3996.peach-import-choice-label {3997  font-size: 12px;3998  color: var(--peach-t0);3999}4000.peach-import-choice-sub {4001  font-size: 11px;4002  color: var(--peach-t2);4003  line-height: 1.5;4004}40054006/* ───────── Export: success confirmation strip ───────── */4007.peach-export-success {4008  display: flex;4009  align-items: flex-start;4010  gap: 10px;4011  padding: 12px;4012  border-radius: 12px;4013  border: 1px solid rgba(150, 175, 110, 0.3);4014  background: rgba(150, 175, 110, 0.08);4015  color: var(--peach-t0);4016  font-size: 12px;4017  line-height: 1.55;4018}4019.peach-export-success-check {4020  color: rgba(150, 175, 110, 0.9);4021  font-size: 14px;4022  flex-shrink: 0;4023}40244025/* ── Trash view ──────────────────────────────────────────────────────── */4026.peach-trash-entry-row {4027  display: flex;4028  align-items: center;4029  justify-content: space-between;4030  gap: 8px;4031  padding: 8px 0;4032  border-bottom: 1px solid var(--peach-t3);4033}4034.peach-trash-entry-row:last-child { border-bottom: none; }4035.peach-trash-entry-info {4036  flex: 1;4037  min-width: 0;4038  display: flex;4039  flex-direction: column;4040  gap: 2px;4041}4042.peach-trash-entry-title {4043  font-size: 12px;4044  color: var(--peach-t1);4045  overflow: hidden;4046  text-overflow: ellipsis;4047  white-space: nowrap;4048}4049.peach-trash-entry-meta {4050  font-family: var(--font-mono);4051  font-size: 9px;4052  color: var(--peach-t2);4053  letter-spacing: 0.06em;4054}4055.peach-trash-entry-actions {4056  display: flex;4057  align-items: center;4058  gap: 4px;4059  flex-shrink: 0;4060}40614062/* ── Settings shortcuts grid ─────────────────────────────────────────── */4063.peach-shortcuts-grid {4064  display: grid;4065  grid-template-columns: auto 1fr;4066  gap: 6px 12px;4067  align-items: center;4068  padding: 4px 0;4069}4070.peach-shortcut-key {4071  font-family: var(--font-mono);4072  font-size: 10px;4073  color: var(--peach-t0);4074  background: var(--peach-t3);4075  border-radius: 4px;4076  padding: 2px 6px;4077  white-space: nowrap;4078  text-align: center;4079}4080.peach-shortcut-desc {4081  font-size: 11px;4082  color: var(--peach-t1);4083}40844085/* ── Sort bar trash button ───────────────────────────────────────────── */4086.peach-sort-trash-btn {4087  display: flex;4088  align-items: center;4089  justify-content: center;4090  padding: 3px 5px;4091  background: transparent;4092  border: none;4093  cursor: pointer;4094  color: var(--peach-t2);4095  border-radius: 4px;4096  transition: color 140ms ease, background 140ms ease;4097}4098.peach-sort-trash-btn:hover {4099  color: var(--peach-t1);4100  background: var(--peach-t3);4101}