popup.css

104.1 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 10px;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: "Cormorant Garamond", "Times New Roman", serif;168  font-size: 15px;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }209.peach-status-pip {210  width: 5px;211  height: 5px;212  border-radius: 50%;213  background: var(--peach-t3);214  display: inline-flex;215  flex-shrink: 0;216  transition: background 400ms ease, box-shadow 400ms ease;217}218.peach-chrome-actions { display: flex; gap: 6px; }219220/* Shell body */221.peach-shell-body {222  position: relative;223  display: grid;224  grid-template-rows: 1fr auto;225  min-height: 0;226  min-width: 0;227  width: 100%;228  overflow: hidden;229  height: 100%;230}231.peach-shell-veil {232  position: absolute; inset: 0;233  background: #000; opacity: 0;234  pointer-events: none; z-index: 1;235}236.peach-shell[data-motion-phase="enter"] .peach-shell-body {237  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;238}239.peach-shell[data-motion-phase="exit"] .peach-shell-veil {240  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;241}242243/* Content frame */244.peach-content-frame {245  display: grid;246  grid-template-rows: 1fr auto;247  grid-template-columns: minmax(0, 1fr);248  align-content: start;249  min-height: 0;250  min-width: 0;251  overflow: hidden;252  transition: opacity 80ms ease, transform 80ms ease;253}254.peach-content-frame.navigating {255  opacity: 0.93;256  transform: translateX(2px);257}258.peach-content-frame[data-content-phase="enter"] {259  animation: peach-content-enter 135ms ease-out both;260}261.peach-content-frame[data-content-phase="exit"] {262  animation: peach-content-exit 95ms ease-in forwards;263}264.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }265266/* Stage */267.peach-stage {268  padding: 10px 20px 12px;269  display: grid;270  gap: 12px;271  align-content: start;272  min-width: 0;273  min-height: 0;274  max-width: 100%;275  overflow-y: auto;276  overflow-x: hidden;277  scrollbar-width: none;278  -ms-overflow-style: none;279  overscroll-behavior: contain;280}281.peach-stage::-webkit-scrollbar { display: none; }282283/* Entry name */284.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }285.peach-entry-header {286  position: relative;287  z-index: 1;288  display: flex;289  align-items: flex-start;290  gap: 6px;291  min-width: 0;292}293.peach-entry-header-name {294  flex: 1;295  min-width: 0;296}297.peach-entry-name {298  margin: 0;299  font-family: "Cormorant Garamond", "Times New Roman", serif;300  font-style: italic; font-weight: 400;301  font-size: 44px; line-height: 0.95;302  color: var(--peach-t0);303  display: -webkit-box;304  -webkit-line-clamp: 2;305  -webkit-box-orient: vertical;306  overflow: hidden;307  text-wrap: balance;308}309.peach-entry-name--lg { font-size: 40px; }310.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }311.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }312.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; }313314/* Trash icon in entry header */315.peach-entry-trash-btn {316  flex-shrink: 0;317  padding: 4px;318  margin-top: 4px;319  background: transparent;320  border: none;321  cursor: pointer;322  color: var(--peach-t2);323  border-radius: 4px;324  transition: color 140ms ease, background 140ms ease;325  display: flex;326  align-items: center;327  justify-content: center;328}329.peach-entry-trash-btn:hover {330  color: var(--peach-t1);331  background: var(--peach-t3);332}333.peach-entry-trash-confirm {334  display: flex;335  align-items: center;336  gap: 6px;337  flex-shrink: 0;338  margin-top: 6px;339  flex-wrap: nowrap;340}341.peach-entry-trash-confirm-label {342  font-family: var(--font-mono);343  font-size: 9px;344  letter-spacing: 0.1em;345  color: var(--peach-t2);346  white-space: nowrap;347}348.peach-entry-name-button {349  padding: 0;350  background: transparent;351  text-align: left;352  cursor: pointer;353  max-width: 100%;354  overflow: hidden;355  display: block;356}357.peach-entry-name-char {358  display: inline-block;359  white-space: pre;360  opacity: 0;361  transform: translateY(0.22em);362  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;363  animation-delay: calc(var(--char-index, 0) * 20ms);364}365366/* Domain */367.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }368.peach-domain-row {369  width: 100%; border: 0; background: transparent; color: inherit;370  padding: 0; display: flex; justify-content: space-between; align-items: baseline;371  cursor: default;372}373.peach-domain-value {374  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;375  font-size: 10px; font-style: italic;376  letter-spacing: 0.12em; color: var(--peach-t1);377}378379/* Fields */380.peach-fields { display: grid; gap: 10px; }381.peach-field-card { display: grid; gap: 7px; }382.peach-label {383  font-family: Inter, system-ui, sans-serif;384  text-transform: uppercase; letter-spacing: 0.2em;385  font-size: 8px; color: var(--peach-t2);386}387.peach-field-value-row {388  display: flex; justify-content: space-between;389  align-items: center; gap: 8px;390  min-width: 0;391}392.peach-field-value {393  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;394  font-size: 13px; color: var(--peach-t1);395  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;396  flex: 1;397  min-width: 0;398}399.peach-password-value {400  display: inline-flex;401  align-items: center;402  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;403  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);404  overflow: hidden;405  text-overflow: ellipsis;406  white-space: nowrap;407  flex: 1;408  min-width: 0;409  max-width: 100%;410}411.peach-password-value.is-revealed {412  font-size: 14px;413  letter-spacing: 0.08em;414}415.peach-password-text,416.peach-password-mask {417  display: block;418  width: 100%;419  overflow: hidden;420  text-overflow: ellipsis;421  white-space: nowrap;422}423.peach-field-actions { display: flex; gap: 4px; align-items: center; }424.peach-password-strength { display: flex; align-items: center; gap: 8px; }425.peach-strength-bar { display: flex; gap: 3px; }426.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }427.peach-strength-label {428  font-family: "IBM Plex Mono", monospace;429  font-style: italic;430  font-size: 9px;431  font-weight: 300;432  min-width: 36px;433  text-align: right;434  color: var(--peach-t2);435  letter-spacing: 0.06em;436}437438.peach-strength-hairline {439  display: flex;440  align-items: center;441  gap: 10px;442  margin-top: -2px;443}444445.peach-strength-hairline-track {446  flex: 1;447  height: 3px;448  border-radius: 2px;449  background: var(--peach-s2);450  overflow: hidden;451}452453.peach-strength-hairline-fill {454  height: 100%;455  border-radius: 2px;456  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),457    background 400ms ease;458}459460/* Note content (display) */461.peach-note-content {462  border-top: 1px solid var(--peach-t3);463  padding-top: 10px;464  font-family: "Cormorant Garamond", "Times New Roman", serif;465  font-size: 15px;466  line-height: 1.75;467  color: var(--peach-t1);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/* Inline tag editor on Entry detail view */616.peach-inline-tag-editor {617  display: flex;618  flex-direction: column;619  gap: 6px;620}621622/* Quiet inline "+ add X" link in the entry detail body */623.peach-entry-add-link {624  justify-self: start;625  margin-top: 8px;626}627628/* Additional URLs editor revealed by clicking the URL field */629.peach-additional-urls {630  display: flex;631  flex-direction: column;632  gap: 6px;633  margin-top: 8px;634}635.peach-additional-urls-label {636  font-size: 9px;637  letter-spacing: 0.1em;638  text-transform: uppercase;639  color: var(--peach-t2);640  margin-bottom: 2px;641}642.peach-additional-url-row {643  display: flex;644  align-items: center;645  gap: 6px;646}647.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }648.peach-additional-url-remove {649  background: transparent;650  border: 1px solid var(--peach-t3);651  color: var(--peach-t2);652  width: 22px;653  height: 22px;654  border-radius: 4px;655  cursor: pointer;656  font-size: 14px;657  line-height: 1;658  display: inline-flex;659  align-items: center;660  justify-content: center;661  flex-shrink: 0;662  transition: color 120ms ease, border-color 120ms ease;663}664.peach-additional-url-remove:hover:not(:disabled) {665  color: var(--peach-accent);666  border-color: var(--peach-border-accent);667}668.peach-additional-urls-add { align-self: flex-start; }669670/* Delete row */671.peach-entry-delete-row {672  display: flex;673  align-items: center;674  gap: 8px;675  padding-top: 18px;676  margin-top: 8px;677  border-top: 1px solid var(--peach-t3);678}679.peach-delete-btn {680  font-size: 11px;681  color: var(--peach-t2);682  padding: 4px 0;683}684.peach-delete-confirm-text {685  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;686  font-size: 11px;687  font-style: italic;688  color: var(--peach-t2);689  flex-shrink: 0;690}691692/* TOTP band */693.peach-totp-band {694  border-top: 1px solid var(--peach-t3);695  padding: 12px 20px 14px;696  position: relative;697  display: grid;698  grid-template-columns: 1fr auto;699  gap: 10px;700}701.peach-totp-main {702  min-width: 0;703  cursor: pointer;704  user-select: none;705}706.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }707.peach-totp-code-row {708  display: flex;709  align-items: flex-end;710  gap: 10px;711  min-width: 0;712}713.peach-totp-code {714  margin: 2px 0 0;715  font-family: "Cormorant Garamond", "Times New Roman", serif;716  font-style: italic;717  font-weight: 300;718  font-size: 38px; color: var(--peach-accent);719  line-height: 0.95; min-height: 1em;720  min-width: 0;721}722.peach-totp-code-text {723  display: inline-flex;724  overflow: hidden;725  text-overflow: ellipsis;726  white-space: nowrap;727}728.peach-totp-copy-btn {729  margin-bottom: 2px;730  flex-shrink: 0;731  border-color: transparent;732}733.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }734.peach-totp-countdown {735  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;736  font-size: 22px; color: var(--peach-t1);737}738.peach-totp-ring { transform: rotate(-90deg); }739.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }740.peach-totp-ring-progress {741  fill: none; stroke: var(--peach-accent); stroke-width: 2;742  stroke-linecap: round;743  transition: stroke-dashoffset 1s linear, stroke 500ms ease;744}745/* Search bar */746.peach-search-wrap {747  border-top: 1px solid var(--peach-t3);748  background: var(--peach-s1);749  min-height: 54px; position: relative;750  box-shadow: inset 0 6px 18px transparent;751  transition: box-shadow 700ms ease;752}753.peach-search-wrap::before {754  content: "";755  position: absolute;756  left: 0;757  top: 0;758  height: 2px;759  width: var(--peach-totp-progress, 0%);760  background: var(--peach-accent);761  opacity: 0;762  transition: width 1s linear, opacity 180ms ease;763  pointer-events: none;764}765.peach-shell[data-totp-active="true"] .peach-search-wrap::before {766  opacity: 0.9;767}768.peach-shell[data-totp-active="true"] .peach-search-wrap {769  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);770}771772@keyframes peach-totp-code-flare {773  0%   { filter: brightness(1); }774  25%  { filter: brightness(1.3); }775  100% { filter: brightness(1); }776}777.peach-totp-code.is-hot {778  animation: peach-totp-code-flare 3000ms ease-in-out both;779}780.peach-search-bar {781  min-height: 54px;782  display: grid;783  grid-template-columns: auto minmax(0, 1fr) auto;784  align-items: center;785  gap: 8px; padding: 0 9px 0 12px;786}787.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }788.peach-search-input {789  border: 0; background: transparent; color: var(--peach-t0);790  font-family: "Cormorant Garamond", "Times New Roman", serif;791  font-style: italic; font-size: 18px;792  outline: none; width: 100%; min-width: 0; padding: 0;793  caret-color: var(--peach-accent);794}795.peach-search-input::placeholder { color: var(--peach-t2); }796.peach-search-meta {797  display: grid;798  grid-auto-flow: column;799  align-items: center;800  justify-content: end;801  gap: 6px;802  min-width: max-content;803}804.peach-search-counter {805  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;806  font-size: 10px; color: var(--peach-t2);807  display: inline-flex;808  align-items: center;809  line-height: 1;810}811.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }812813/* Buttons */814.peach-btn {815  border: 1px solid transparent; border-radius: 12px;816  background: transparent; color: var(--peach-t0);817  font-family: Inter, system-ui, sans-serif;818  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;819  cursor: pointer;820  transition:821    background-color var(--peach-dur-80) var(--peach-curve-arrival),822    color var(--peach-dur-80) var(--peach-curve-arrival),823    border-color var(--peach-dur-150) var(--peach-curve-arrival);824}825.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }826.peach-btn:disabled {827  opacity: 0.45;828  cursor: not-allowed;829}830.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }831.peach-btn--md { min-height: 38px; }832.peach-btn--accent {833  background: var(--peach-accent);834  color: rgba(0,0,0,0.78);835  box-shadow:836    0 1px 0 rgba(255,255,255,0.08) inset,837    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),838    0 3px 16px var(--peach-glow),839    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);840}841.peach-btn--accent:hover:not(:disabled) {842  background: var(--peach-accent);843  filter: brightness(1.10) saturate(1.05);844  box-shadow:845    0 1px 0 rgba(255,255,255,0.10) inset,846    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),847    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),848    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);849}850.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }851.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }852.peach-icon-btn {853  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;854  display: inline-flex; align-items: center; justify-content: center;855}856857.peach-btn:focus-visible {858  outline: none;859  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);860}861862/* Lock button */863.peach-lock-icon { transform-origin: center; }864.peach-lock-btn.is-locking { color: var(--peach-accent); }865.peach-lock-btn.is-locking .peach-lock-icon {866  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);867}868869/* Copy button */870.peach-copy-btn {871  position: relative; overflow: hidden;872  color: var(--peach-t2); border-color: var(--peach-t3);873}874.peach-copy-icon {875  display: inline-flex; align-items: center; justify-content: center;876  position: relative; z-index: 1;877}878.peach-copy-icon-svg { display: block; }879.peach-copy-sheen {880  position: absolute; inset: 0;881  background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 30%, color-mix(in srgb, var(--peach-accent) 8%, transparent) 100%);882  opacity: 0; transform: scaleX(0.15); transform-origin: left center;883}884.peach-copy-btn.is-copied {885  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;886  box-shadow:887    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),888    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),889    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);890}891.peach-copy-btn.is-copied .peach-copy-icon {892  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;893}894.peach-copy-btn.is-copied .peach-copy-sheen {895  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;896}897.peach-copy-btn.is-retreat {898  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;899}900.peach-copy-btn.is-retreat .peach-copy-sheen {901  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;902}903.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }904.peach-copy-drain-bar {905  display: block; width: 100%; height: 100%;906  background: var(--peach-accent); opacity: 0.7;907  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;908}909910/* Unlock screen elements */911.peach-unlock-headline {912  margin: 2px 0 0;913  font-family: "Cormorant Garamond", "Times New Roman", serif;914  font-size: 52px; line-height: 0.95;915  font-style: italic; font-weight: 400;916}917.peach-subline {918  margin: 0;919  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;920  font-size: 10px; color: var(--peach-t2); font-style: italic;921}922.peach-subline--lock {923  max-width: 248px;924  line-height: 1.5;925}926.peach-underline-input {927  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);928  padding: 6px 0; background: transparent; color: var(--peach-t0);929  outline: none;930  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;931  font-size: 13px;932  caret-color: var(--peach-accent);933}934.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }935.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }936.peach-hint {937  margin: 0;938  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;939  font-size: 10px; color: var(--peach-t2);940}941.peach-unlock-footer {942  margin-top: 4px; display: flex; align-items: center; gap: 7px;943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;944  font-size: 10px; color: var(--peach-t2);945}946.peach-unlock-footer--lock {947  padding-top: 2px;948}949950/* Breach badge */951.peach-breach-badge {952  display: flex;953  position: relative;954  z-index: 1;955  align-items: center;956  gap: 7px;957  font-size: 9px;958  color: var(--peach-breach);959  padding: 5px 10px;960  margin-bottom: 4px;961  border-radius: 8px;962  background: rgba(220, 80, 60, 0.07);963  border: 1px solid rgba(220, 80, 60, 0.18);964  letter-spacing: 0.04em;965}966967.peach-breach-action {968  margin-left: auto;969  font-size: 10px;970  padding: 3px 8px;971}972973.peach-password-value.is-breached {974  color: rgba(220, 80, 60, 0.75);975  border-bottom: 1px solid rgba(220, 80, 60, 0.22);976}977978/* ── Overlay views ─────────────────────────────────────────────────── */979.peach-overlay-view {980  position: absolute;981  inset: 0;982  display: flex;983  flex-direction: column;984  background:985    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),986    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),987    var(--peach-bg);988  z-index: 2;989  overflow: hidden;990  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;991}992@keyframes overlay-in {993  from { opacity: 0; transform: translateY(8px); }994  to   { opacity: 1; transform: translateY(0); }995}996.peach-overlay-view.ov-enter-up {997  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;998}999.peach-overlay-view.ov-exit-up {1000  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1001}1002.peach-overlay-view.ov-enter-right {1003  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1004}1005.peach-overlay-view.ov-exit-right {1006  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1007}10081009@keyframes ov-enter-up {1010  from { opacity: 0; transform: translateY(18px); }1011  to   { opacity: 1; transform: translateY(0); }1012}1013@keyframes ov-exit-up {1014  from { opacity: 1; transform: translateY(0); }1015  to   { opacity: 0; transform: translateY(-12px); }1016}1017@keyframes ov-enter-right {1018  from { opacity: 0; transform: translateX(20px); }1019  to   { opacity: 1; transform: translateX(0); }1020}1021@keyframes ov-exit-right {1022  from { opacity: 1; transform: translateX(0); }1023  to   { opacity: 0; transform: translateX(20px); }1024}10251026/* Overlay shared header */1027.peach-overlay-header {1028  padding: 10px 12px;1029  display: flex;1030  align-items: center;1031  gap: 8px;1032  border-bottom: 1px solid var(--peach-t3);1033  flex-shrink: 0;1034}1035.peach-overlay-title {1036  font-family: "IBM Plex Mono", monospace;1037  font-size: 9px;1038  text-transform: uppercase;1039  letter-spacing: 0.18em;1040  color: var(--peach-t2);1041  flex: 1;1042  text-align: center;1043}10441045.peach-overlay-card {1046  background: var(--peach-s1);1047  border: 1px solid var(--peach-t3);1048  border-radius: 12px;1049  overflow: hidden;1050  width: 100%;1051}10521053.peach-onboarding-alt-actions {1054  display: flex;1055  flex-direction: column;1056  gap: 4px;1057  padding: 0;1058}10591060.peach-settings-copy {1061  margin: 0 0 10px;1062  font-size: 11px;1063  line-height: 1.5;1064  color: var(--peach-t2);1065}10661067.peach-settings-copy strong {1068  color: var(--peach-t0);1069}10701071.peach-settings-copy--spacious {1072  margin-bottom: 12px;1073}10741075.peach-settings-copy--result {1076  color: var(--peach-accent);1077  font-size: 13px;1078  text-align: center;1079  padding: 8px 0;1080}10811082.peach-settings-copy--danger {1083  color: var(--peach-breach);1084}10851086.peach-settings-copy--success {1087  color: var(--peach-accent);1088}10891090.peach-inline-feedback {1091  font-size: 11px;1092  margin: 10px 0 0;1093}10941095.peach-inline-feedback--ok {1096  color: var(--peach-accent);1097}10981099.peach-inline-feedback--error {1100  color: var(--peach-breach);1101}11021103.peach-inline-feedback--muted {1104  color: var(--peach-t2);1105  font-size: 10px;1106  margin: 4px 0;1107}11081109.peach-inline-feedback--spaced {1110  margin-top: 12px;1111}11121113.peach-settings-actions--row {1114  display: flex;1115  gap: 6px;1116}11171118.peach-settings-actions--end {1119  margin-top: 14px;1120  justify-content: flex-end;1121}11221123.peach-settings-stack {1124  display: flex;1125  flex-direction: column;1126  gap: 6px;1127}11281129.peach-settings-stack--tight {1130  gap: 4px;1131}11321133.peach-settings-stack--spacious {1134  gap: 8px;1135}11361137.peach-settings-input {1138  width: 100%;1139  box-sizing: border-box;1140  padding: 8px 10px;1141  background: var(--peach-s2);1142  border: 1px solid var(--peach-t3);1143  border-radius: 6px;1144  color: var(--peach-t0);1145  font-family: var(--font-ui);1146  font-size: 12px;1147  outline: none;1148  transition: border-color 120ms ease;1149}11501151.peach-settings-input:focus {1152  border-color: var(--peach-accent);1153}11541155.peach-settings-input[type="password"] {1156  font-family: var(--font-mono);1157  letter-spacing: 0.04em;1158}11591160.peach-phrase-textarea {1161  width: 100%;1162  box-sizing: border-box;1163  min-height: 120px;1164  padding: 10px 12px;1165  background: var(--peach-s2);1166  border: 1px solid var(--peach-t3);1167  border-radius: 6px;1168  color: var(--peach-t0);1169  font-size: 12px;1170  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1171  line-height: 1.5;1172  resize: vertical;1173  outline: none;1174}11751176.peach-phrase-textarea:focus {1177  border-color: var(--peach-accent);1178}11791180.peach-hidden-file-input {1181  display: none;1182}11831184.peach-checkbox-note {1185  display: flex;1186  align-items: flex-start;1187  gap: 8px;1188  font-size: 11px;1189  color: var(--peach-t1);1190  cursor: pointer;1191  margin: 12px 0;1192}11931194.peach-checkbox-note input {1195  margin-top: 1px;1196}11971198.peach-cjk-phrase-box {1199  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1200  font-size: 13px;1201  line-height: 1.5;1202  background: var(--peach-s2);1203  border: 1px solid var(--peach-t3);1204  border-radius: 6px;1205  padding: 10px 12px;1206  margin: 0 0 10px;1207  word-break: break-all;1208  white-space: pre-wrap;1209  max-height: 220px;1210  overflow-y: auto;1211  color: var(--peach-t0);1212  user-select: all;1213  scrollbar-width: none;1214  -ms-overflow-style: none;1215}1216.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }12171218.peach-danger-notice {1219  background: rgba(220, 80, 60, 0.08);1220  border: 1px solid rgba(220, 80, 60, 0.2);1221  border-radius: 6px;1222  padding: 9px 11px;1223  font-size: 11px;1224  color: var(--peach-t1);1225  line-height: 1.5;1226}12271228.peach-info-notice {1229  font-size: 11px;1230  color: var(--peach-t2);1231  line-height: 1.5;1232  background: rgba(240, 232, 216, 0.04);1233  border: 1px solid var(--peach-t3);1234  border-radius: 6px;1235  padding: 8px 10px;1236}12371238.peach-strength-row {1239  display: flex;1240  align-items: center;1241  gap: 8px;1242  margin-bottom: 10px;1243}12441245.peach-strength-track {1246  flex: 1;1247  height: 4px;1248  background: var(--peach-s2);1249  border-radius: 2px;1250  overflow: hidden;1251}12521253.peach-strength-fill {1254  height: 100%;1255  border-radius: 2px;1256  transition: width 120ms ease, background 120ms ease;1257}12581259/* ── Type selector tabs ── */1260.peach-type-tabs {1261  display: flex;1262  gap: 0;1263  background: var(--peach-t4);1264  border-radius: 8px;1265  padding: 3px;1266}12671268.peach-type-tab {1269  flex: 1;1270  display: flex;1271  align-items: center;1272  justify-content: center;1273  gap: 6px;1274  padding: 6px 10px;1275  border-radius: 6px;1276  border: none;1277  background: transparent;1278  cursor: pointer;1279  font-family: Inter, system-ui, sans-serif;1280  font-size: 11px;1281  font-weight: 400;1282  letter-spacing: 0.04em;1283  color: var(--peach-t1);1284  transition: background 150ms ease, color 150ms ease;1285}12861287.peach-type-tab.is-active {1288  background: var(--peach-s2);1289  color: var(--peach-t0);1290  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1291}12921293.peach-type-tab:not(.is-active):hover {1294  color: var(--peach-t0);1295}12961297.peach-type-tab svg {1298  opacity: 0.7;1299  flex-shrink: 0;1300}13011302.peach-type-tab.is-active svg {1303  opacity: 1;1304}13051306/* ── List view ───────────────────────────────────────────────────────── */1307.peach-list-top {1308  padding: 0 10px;1309  min-height: 46px;1310  display: flex;1311  align-items: center;1312  gap: 6px;1313  border-bottom: 1px solid var(--peach-t3);1314  flex-shrink: 0;1315  background: var(--peach-s1);1316}1317.peach-vault-list {1318  flex: 1;1319  overflow-y: auto;1320  scrollbar-width: none;1321}1322.peach-vault-list::-webkit-scrollbar { display: none; }13231324/* Scrollbar — vault list */1325.peach-vault-list {1326  scrollbar-width: thin;1327  scrollbar-color: var(--peach-t3) transparent;1328}13291330.peach-vault-list::-webkit-scrollbar {1331  width: 3px;1332}13331334.peach-vault-list::-webkit-scrollbar-thumb {1335  background: var(--peach-t3);1336  border-radius: 2px;1337}13381339.peach-entry-row {1340  width: 100%;1341  display: flex;1342  align-items: center;1343  gap: 10px;1344  padding: 9px 16px;1345  background: transparent;1346  border: none;1347  border-bottom: 1px solid var(--peach-t3);1348  cursor: pointer;1349  color: inherit;1350  text-align: left;1351  transition: background 80ms ease;1352}1353.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1354.peach-entry-row:last-child { border-bottom: none; }1355.peach-entry-row.is-active {1356  box-shadow: inset 2px 0 0 var(--peach-accent);1357  background: rgba(240,232,216,0.03);1358}1359.peach-entry-row:focus-visible {1360  outline: none;1361  box-shadow: 0 0 0 1px var(--peach-border-accent);1362  background: rgba(240,232,216,0.03);1363}1364.peach-entry-row-icon {1365  width: 26px; height: 26px;1366  border-radius: 7px;1367  border: 1px solid var(--peach-t3);1368  display: flex; align-items: center; justify-content: center;1369  color: var(--peach-t2);1370  flex-shrink: 0;1371}1372.peach-entry-row-icon.is-breach {1373  border-color: rgba(220,80,60,0.3);1374  color: rgba(220,80,60,0.7);1375}1376.peach-entry-row-info { flex: 1; min-width: 0; }1377.peach-entry-row-name {1378  display: block;1379  font-family: "Cormorant Garamond", serif;1380  font-size: 17px;1381  font-style: italic;1382  font-weight: 400;1383  color: var(--peach-t0);1384  line-height: 1.2;1385  white-space: nowrap;1386  overflow: hidden;1387  text-overflow: ellipsis;1388}1389.peach-entry-row-meta {1390  display: block;1391  font-family: "IBM Plex Mono", monospace;1392  font-size: 9px;1393  color: var(--peach-t2);1394  margin-top: 1px;1395  letter-spacing: 0.05em;1396}1397.peach-entry-row-dot {1398  width: 5px; height: 5px;1399  border-radius: 50%;1400  background: rgba(220,80,60,0.7);1401  flex-shrink: 0;1402}1403.peach-new-entry-row {1404  display: flex;1405  align-items: center;1406  justify-content: center;1407  gap: 6px;1408  width: 100%;1409  padding: 11px;1410  background: transparent;1411  border: none;1412  border-top: 1px solid var(--peach-t3);1413  color: var(--peach-t2);1414  font-family: "IBM Plex Mono", monospace;1415  font-size: 9px;1416  text-transform: uppercase;1417  letter-spacing: 0.14em;1418  cursor: pointer;1419  flex-shrink: 0;1420  transition: color 120ms ease, background 120ms ease;1421}1422.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14231424/* ── Multi-select mode ─────────────────────────────────────────────── */14251426/* Select-mode trigger button in sort bar — same shape as trash btn */1427.peach-sort-select-btn {1428  display: flex;1429  align-items: center;1430  justify-content: center;1431  padding: 3px 5px;1432  background: transparent;1433  border: none;1434  cursor: pointer;1435  color: var(--peach-t2);1436  border-radius: 4px;1437  transition: color 140ms ease, background 140ms ease;1438}1439.peach-sort-select-btn:hover {1440  color: var(--peach-t1);1441  background: var(--peach-t3);1442}14431444/* Sort bar in select mode */1445.peach-select-cancel-btn {1446  background: transparent;1447  border: none;1448  padding: 0 4px;1449  cursor: pointer;1450  font-family: "IBM Plex Mono", monospace;1451  font-size: 9px;1452  letter-spacing: 0.12em;1453  text-transform: uppercase;1454  color: var(--peach-t2);1455  transition: color 140ms ease;1456  flex-shrink: 0;1457}1458.peach-select-cancel-btn:hover { color: var(--peach-t0); }14591460.peach-select-count-label {1461  flex: 1;1462  text-align: center;1463  font-family: "IBM Plex Mono", monospace;1464  font-size: 9px;1465  letter-spacing: 0.14em;1466  text-transform: uppercase;1467  color: var(--peach-t1);1468}14691470.peach-select-all-btn {1471  background: transparent;1472  border: none;1473  padding: 0 4px;1474  cursor: pointer;1475  font-family: "IBM Plex Mono", monospace;1476  font-size: 9px;1477  letter-spacing: 0.12em;1478  text-transform: uppercase;1479  color: var(--peach-t2);1480  transition: color 140ms ease;1481  flex-shrink: 0;1482}1483.peach-select-all-btn:hover { color: var(--peach-accent); }14841485/* List in select mode */1486.peach-vault-list.is-selecting .peach-entry-row {1487  cursor: default;1488}1489.peach-vault-list.is-selecting .peach-entry-row:hover {1490  background: rgba(240,232,216,0.02);1491}1492.peach-vault-list.is-selecting .peach-entry-row.is-selected {1493  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1494}1495.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1496  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1497}14981499/* Select indicator circles in icon slot */1500.peach-entry-row-icon.is-select-icon {1501  color: var(--peach-t2);1502}1503.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1504  color: var(--peach-accent);1505}15061507/* Delete action bar at bottom (replaces new-entry row) */1508.peach-select-action-bar {1509  display: flex;1510  align-items: center;1511  justify-content: center;1512  gap: 7px;1513  width: 100%;1514  padding: 11px;1515  background: transparent;1516  border: none;1517  border-top: 1px solid var(--peach-t3);1518  color: var(--peach-t1);1519  font-family: "IBM Plex Mono", monospace;1520  font-size: 9px;1521  text-transform: uppercase;1522  letter-spacing: 0.14em;1523  cursor: pointer;1524  flex-shrink: 0;1525  transition: color 120ms ease, background 120ms ease;1526}1527.peach-select-action-bar:not(:disabled):hover {1528  color: var(--peach-t0);1529  background: rgba(220,80,60,0.06);1530}1531.peach-select-action-bar:not(:disabled):hover svg {1532  stroke: rgba(220,80,60,0.8);1533}1534.peach-select-action-bar:disabled,1535.peach-select-action-bar.is-empty {1536  color: var(--peach-t2);1537  cursor: default;1538  opacity: 0.5;1539}1540.peach-search-counter-list {1541  white-space: nowrap;1542  flex-shrink: 0;1543}1544.peach-list-empty {1545  min-height: 180px;1546  display: grid;1547  place-items: center;1548  color: var(--peach-t2);1549  font-family: "IBM Plex Mono", monospace;1550  font-size: 11px;1551}15521553/* ── Settings view ───────────────────────────────────────────────────── */1554.peach-settings-body {1555  flex: 1;1556  overflow-y: auto;1557  min-height: 0;1558  display: flex;1559  flex-direction: column;1560  padding: 2px 0 10px;1561}1562.peach-settings-group {1563  padding: 9px 16px 11px;1564  border-bottom: 1px solid var(--peach-t3);1565}1566.peach-export-intro {1567  padding-bottom: 8px;1568}1569.peach-export-card {1570  display: grid;1571  gap: 10px;1572}1573.peach-export-card--primary {1574  background:1575    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1576}1577.peach-export-card-head {1578  display: flex;1579  align-items: center;1580  justify-content: space-between;1581  gap: 10px;1582}1583.peach-export-card-copy {1584  margin: 0;1585  font-size: 12px;1586  line-height: 1.55;1587  color: var(--peach-t1);1588}1589.peach-export-note {1590  margin: 0;1591  font-size: 10px;1592  line-height: 1.5;1593  color: var(--peach-t2);1594}1595.peach-export-pill {1596  display: inline-flex;1597  align-items: center;1598  padding: 4px 8px;1599  border-radius: 999px;1600  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1601  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1602  color: var(--peach-accent);1603  font-family: "IBM Plex Mono", monospace;1604  font-size: 8px;1605  letter-spacing: 0.12em;1606  text-transform: uppercase;1607  white-space: nowrap;1608}1609.peach-export-pill--danger {1610  border-color: rgba(220,80,60,0.22);1611  background: rgba(220,80,60,0.08);1612  color: var(--peach-breach);1613}1614.peach-export-password-stack {1615  gap: 8px;1616}1617.peach-settings-label {1618  margin: 0 0 6px;1619  font-family: "IBM Plex Mono", monospace;1620  font-size: 8px;1621  text-transform: uppercase;1622  letter-spacing: 0.18em;1623  color: var(--peach-t2);1624}1625.peach-settings-row {1626  display: flex;1627  align-items: center;1628  justify-content: space-between;1629  gap: 12px;1630  min-height: 34px;1631  padding: 6px 0;1632  font-size: 13px;1633  color: var(--peach-t1);1634}1635.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1636.peach-settings-value {1637  font-family: "IBM Plex Mono", monospace;1638  font-size: 10px;1639  color: var(--peach-t2);1640}16411642.peach-settings-value--status {1643  display: flex;1644  align-items: center;1645  gap: 6px;1646}16471648.peach-settings-link {1649  font-family: "IBM Plex Mono", monospace;1650  font-size: 10px;1651  color: var(--peach-accent);1652  text-decoration: none;1653  cursor: pointer;1654}1655.peach-settings-link:hover {1656  text-decoration: underline;1657}16581659.peach-settings-row--stack {1660  flex-direction: column;1661  align-items: stretch;1662  gap: 6px;1663}16641665.peach-settings-row--top {1666  align-items: flex-start;1667}16681669.peach-settings-row-main {1670  display: flex;1671  flex-direction: column;1672  gap: 4px;1673  flex: 1;1674}1675.peach-toggle {1676  width: 28px; height: 16px;1677  border-radius: 999px;1678  background: var(--peach-t3);1679  border: 1px solid var(--peach-t3);1680  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1681  flex-shrink: 0;1682  transition: background 200ms ease, border-color 200ms ease;1683  cursor: pointer;1684}1685.peach-toggle.is-on {1686  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1687  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1688}1689.peach-toggle-knob {1690  width: 10px; height: 10px;1691  border-radius: 50%;1692  background: var(--peach-t2);1693  flex-shrink: 0;1694  transform: translateX(0px);1695  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1696}1697.peach-toggle.is-on .peach-toggle-knob {1698  background: var(--peach-accent);1699  transform: translateX(12px);1700}1701.peach-settings-footer {1702  display: flex;1703  align-items: center;1704  gap: 8px;1705  margin-top: auto;1706  padding: 14px 16px 8px;1707  font-family: "IBM Plex Mono", monospace;1708  font-size: 9px;1709  color: var(--peach-t2);1710}17111712.peach-passkey-badge {1713  margin-left: 8px;1714  font-size: 10px;1715  letter-spacing: 0.06em;1716  text-transform: uppercase;1717  color: var(--peach-t2);1718  font-family: var(--font-ui);1719  vertical-align: middle;1720}17211722.peach-passkey-delete-btn {1723  color: var(--peach-breach);1724  border-color: rgba(229, 85, 85, 0.25);1725}17261727.peach-passkey-delete-confirm {1728  display: flex;1729  align-items: center;1730  gap: 8px;1731  padding: 8px 10px;1732  background: rgba(229, 85, 85, 0.06);1733  border: 1px solid rgba(229, 85, 85, 0.2);1734  border-radius: 6px;1735}17361737.peach-passkey-delete-confirm-copy {1738  flex: 1;1739  font-size: 11px;1740  color: var(--peach-t1);1741}17421743.peach-passkey-delete-btn--confirm {1744  color: var(--peach-breach);1745  border-color: rgba(229, 85, 85, 0.4);1746}17471748.peach-passkey-activity {1749  flex-direction: column;1750  align-items: flex-start;1751  gap: 4px;1752}17531754.peach-passkey-meta {1755  font-size: 11px;1756  color: var(--peach-t2);1757}17581759.peach-passkey-actions {1760  position: relative;1761  z-index: 1;1762  margin-top: 14px;1763  display: flex;1764  flex-direction: column;1765  gap: 8px;1766}17671768.peach-passkey-approval {1769  display: flex;1770  flex-direction: column;1771  align-items: center;1772  padding: 28px 22px 22px;1773  gap: 14px;1774  text-align: center;1775}17761777.peach-passkey-approval-icon {1778  width: 46px;1779  height: 46px;1780  border-radius: 12px;1781  background: var(--peach-s2);1782  border: 1px solid var(--peach-t3);1783  display: flex;1784  align-items: center;1785  justify-content: center;1786  flex-shrink: 0;1787  color: var(--peach-accent);1788}17891790.peach-passkey-approval-icon img,1791.peach-passkey-approval-icon svg {1792  width: 28px;1793  height: 28px;1794  border-radius: 6px;1795}17961797.peach-passkey-approval-rp {1798  font-family: var(--font-ui);1799  font-size: 12px;1800  color: var(--peach-t2);1801  letter-spacing: 0.03em;1802}18031804.peach-passkey-approval-action {1805  font-family: var(--font-display);1806  font-style: italic;1807  font-weight: 300;1808  font-size: 26px;1809  color: var(--peach-t0);1810  line-height: 1;1811}18121813.peach-passkey-approval-user {1814  font-family: var(--font-mono);1815  font-size: 11px;1816  color: var(--peach-t1);1817  background: var(--peach-s2);1818  border: 1px solid var(--peach-t3);1819  border-radius: 4px;1820  padding: 3px 8px;1821}18221823.peach-passkey-approval-notice {1824  font-size: 10px;1825  color: var(--peach-t2);1826  line-height: 1.5;1827  max-width: 220px;1828}18291830.peach-passkey-approval-actions {1831  display: flex;1832  gap: 8px;1833  width: 100%;1834  margin-top: 6px;1835}18361837.peach-passkey-approval-actions .peach-btn {1838  flex: 1;1839}18401841/* ── Inline generator drawer ── */1842.peach-generator-drawer {1843  display: grid;1844  grid-template-rows: 0fr;1845  transition: grid-template-rows 320ms var(--peach-curve-arrival);1846  overflow: hidden;1847}1848.peach-generator-drawer.is-open {1849  grid-template-rows: 1fr;1850}1851.peach-generator-drawer-inner {1852  min-height: 0;1853  overflow: hidden;1854}1855.peach-generator-drawer-content {1856  border-top: 1px solid var(--peach-t3);1857  padding: 8px 0 4px;1858  display: flex;1859  flex-direction: column;1860  gap: 8px;1861}18621863/* ── Compact generator (inside entry edit) ── */1864.peach-generator-drawer-content--compact {1865  border-top: 1px solid var(--peach-t3);1866  padding: 8px 0 2px;1867  gap: 7px;1868}1869.peach-pwgen-compact-display-row {1870  display: flex;1871  align-items: center;1872  gap: 6px;1873}1874.peach-pwgen-compact-output {1875  flex: 1;1876  min-width: 0;1877  font-family: "IBM Plex Mono", monospace;1878  font-size: 11px;1879  font-weight: 400;1880  letter-spacing: 0.04em;1881  color: var(--peach-t0);1882  background: rgba(240, 232, 216, 0.04);1883  border: 1px solid var(--peach-t3);1884  border-radius: 5px;1885  padding: 5px 8px;1886  word-break: break-all;1887  line-height: 1.5;1888}1889.peach-pwgen-compact-controls {1890  display: flex;1891  align-items: center;1892  gap: 6px;1893}1894.peach-pwgen-compact-slider {1895  flex: 1;1896  min-width: 0;1897  height: 2px !important;1898}1899.peach-pwgen-compact-controls .peach-pwgen-len-num {1900  flex-shrink: 0;1901  min-width: 18px;1902  text-align: right;1903}1904.peach-pwgen-compact-pills {1905  display: flex;1906  gap: 3px;1907  flex-shrink: 0;1908}1909.peach-pwgen-compact-pills .peach-pwgen-pill {1910  padding: 2px 7px;1911  font-size: 8px;1912}1913.peach-pwgen-compact-use {1914  flex-shrink: 0;1915  font-size: 10px !important;1916  padding: 3px 9px !important;1917  min-height: 22px !important;1918  border-radius: 5px !important;1919}19201921/* ── Password edit row (input + eye toggle side-by-side) ── */1922.peach-password-edit-row {1923  display: flex;1924  align-items: center;1925  gap: 6px;1926}1927.peach-password-edit-row .peach-inline-input {1928  flex: 1;1929  min-width: 0;1930}19311932/* ── Generate toggle link ── */1933.peach-generate-toggle-link {1934  display: inline-flex;1935  align-items: center;1936  gap: 5px;1937  background: none;1938  border: none;1939  padding: 0;1940  cursor: pointer;1941  font-family: "IBM Plex Mono", monospace;1942  font-size: 10px;1943  color: var(--peach-t2);1944  letter-spacing: 0.04em;1945  transition: color 120ms ease;1946  align-self: flex-start;1947}1948.peach-generate-toggle-link:hover {1949  color: var(--peach-accent);1950}19511952/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1953.peach-entry-body {1954  flex: 1;1955  overflow-y: auto;1956  overflow-x: hidden;1957  scrollbar-width: none;1958  -ms-overflow-style: none;1959  overscroll-behavior: contain;1960  display: grid;1961  gap: 10px;1962  align-content: start;1963  padding: 10px 20px 14px;1964  min-width: 0;1965  min-height: 0;1966}1967.peach-entry-body::-webkit-scrollbar { display: none; }19681969/* Type-toggle pills + inline note toolbar */1970.peach-new-type-row {1971  display: flex;1972  align-items: center;1973  gap: 6px;1974  margin-bottom: 2px;1975}1976.peach-new-type-btn {1977  background: transparent;1978  border: 1px solid var(--peach-t3);1979  border-radius: 12px;1980  padding: 3px 10px;1981  font-family: "IBM Plex Mono", monospace;1982  font-size: 9px;1983  letter-spacing: 0.12em;1984  text-transform: uppercase;1985  color: var(--peach-t2);1986  cursor: pointer;1987  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1988}1989.peach-new-type-btn.is-active {1990  color: var(--peach-t0);1991  border-color: var(--peach-accent);1992  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1993}1994.peach-new-type-btn:not(.is-active):hover {1995  color: var(--peach-t1);1996  border-color: var(--peach-t2);1997}19981999/* Editable title */2000.peach-new-title-wrap { margin: 0 0 2px; }2001.peach-new-title-input {2002  background: transparent;2003  border: none;2004  outline: none;2005  width: 100%;2006  color: var(--peach-t0);2007  font-family: "Cormorant Garamond", Georgia, serif;2008  font-style: italic;2009  font-weight: 400;2010  font-size: 40px;2011  line-height: 0.95;2012  caret-color: var(--peach-accent);2013}2014.peach-new-title-input::placeholder { color: var(--peach-t2); }20152016/* Editable domain field */2017.peach-domain-value--edit {2018  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2019  font-size: 10px;2020  font-style: italic;2021  letter-spacing: 0.12em;2022  color: var(--peach-t1);2023  background: transparent;2024  border: none;2025  border-bottom: 1px solid var(--peach-t3);2026  outline: none;2027  width: 100%;2028  padding: 2px 0;2029  caret-color: var(--peach-accent);2030  transition: border-color 140ms ease, color 140ms ease;2031}2032.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2033.peach-domain-value--edit:focus {2034  border-bottom-color: rgba(240, 232, 216, 0.28);2035  color: var(--peach-t0);2036}20372038/* Editable field values (username, password, totp) */2039.peach-field-value--edit {2040  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2041  font-size: 13px;2042  color: var(--peach-t0);2043  background: transparent;2044  border: none;2045  border-bottom: 1px solid var(--peach-t3);2046  outline: none;2047  flex: 1;2048  min-width: 0;2049  padding: 3px 0;2050  caret-color: var(--peach-accent);2051  transition: border-color 140ms ease, color 140ms ease;2052}2053.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2054.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2055.peach-field-value--edit:focus {2056  border-bottom-color: rgba(240, 232, 216, 0.28);2057  color: var(--peach-t0);2058}20592060/* "+ add optional field" links */2061.peach-entry-add-links {2062  display: flex;2063  gap: 12px;2064  flex-wrap: wrap;2065  margin-top: -2px;2066}2067.peach-add-field-link {2068  background: transparent;2069  border: none;2070  padding: 0;2071  cursor: pointer;2072  font-family: "IBM Plex Mono", monospace;2073  font-size: 9px;2074  letter-spacing: 0.1em;2075  text-transform: uppercase;2076  color: var(--peach-t2);2077  transition: color 140ms ease;2078}2079.peach-add-field-link:hover { color: var(--peach-accent); }20802081/* ── New entry form (legacy classes) ────────────────────────────────── */2082.peach-new-body {2083  flex: 1;2084  overflow-y: auto;2085  padding: 10px 20px 14px;2086}2087.peach-new-name-input {2088  background: transparent;2089  border: none;2090  outline: none;2091  width: 100%;2092  color: var(--peach-t0);2093  font-family: "Cormorant Garamond", Georgia, serif;2094  font-style: italic;2095  font-weight: 400;2096  font-size: 40px;2097  line-height: 0.95;2098  caret-color: var(--peach-accent);2099}2100.peach-new-name-input::placeholder { color: var(--peach-t2); }2101.peach-new-field-input {2102  background: transparent;2103  border: none;2104  outline: none;2105  flex: 1;2106  min-width: 0;2107  caret-color: var(--peach-accent);2108}2109.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }21102111/* ── Canary card ── */2112.peach-canary-card {2113  border: 1px solid rgba(217, 160, 48, 0.2);2114  background: rgba(217, 160, 48, 0.03);2115  border-radius: 8px;2116  padding: 12px;2117}21182119.peach-canary-settings-header {2120  display: flex;2121  align-items: center;2122  justify-content: space-between;2123  cursor: pointer;2124  user-select: none;2125}21262127.peach-canary-card .peach-label {2128  color: rgba(217, 160, 48, 0.85);2129}21302131.peach-canary-card .peach-new-field-input {2132  border-color: rgba(217, 160, 48, 0.25);2133}21342135.peach-canary-card .peach-new-field-input:focus {2136  border-color: rgba(217, 160, 48, 0.5);2137}21382139.peach-canary-body {2140  margin-top: 12px;2141  display: flex;2142  flex-direction: column;2143  gap: 10px;2144}21452146.peach-canary-explainer {2147  display: flex;2148  gap: 10px;2149  padding: 10px 12px;2150  border-radius: 10px;2151  background: rgba(217, 160, 48, 0.06);2152  border: 1px solid rgba(217, 160, 48, 0.22);2153  margin-bottom: 4px;2154}21552156.peach-canary-explainer-icon {2157  font-size: 16px;2158  flex-shrink: 0;2159  line-height: 1.2;2160}21612162.peach-canary-explainer-title {2163  font-family: var(--font-ui);2164  font-size: 11px;2165  font-weight: 500;2166  color: rgba(217, 160, 48, 0.9);2167  margin: 0 0 3px;2168}21692170.peach-canary-explainer-copy {2171  font-family: var(--font-ui);2172  font-size: 10px;2173  color: var(--peach-t2);2174  line-height: 1.55;2175  margin: 0;2176}21772178.peach-canary-hint {2179  font-size: 10px;2180  color: var(--peach-t2);2181  font-family: Inter, system-ui, sans-serif;2182  line-height: 1.5;2183  margin-top: 4px;2184}21852186.peach-canary-actions-row {2187  display: flex;2188  align-items: center;2189  gap: 8px;2190}21912192.peach-canary-test-btn {2193  border-color: rgba(217, 160, 48, 0.3);2194  color: rgba(217, 160, 48, 0.85);2195}21962197.peach-canary-test-result {2198  font-size: 10px;2199  font-family: Inter, system-ui, sans-serif;2200}22012202.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2203.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }22042205.peach-canary-badge {2206  display: flex;2207  position: relative;2208  z-index: 1;2209  align-items: center;2210  gap: 5px;2211  padding: 4px 10px;2212  background: rgba(217, 160, 48, 0.12);2213  border: 1px solid rgba(217, 160, 48, 0.35);2214  border-radius: 6px;2215  margin-bottom: 6px;2216  width: fit-content;2217}22182219.peach-canary-badge-label {2220  font-size: 10px;2221  letter-spacing: 0.06em;2222  color: rgba(217, 160, 48, 0.9);2223  font-family: var(--font-ui);2224  text-transform: uppercase;2225}22262227.peach-canary-badge-icon {2228  font-size: 11px;2229}22302231.peach-canary-suppress-row {2232  display: flex;2233  align-items: center;2234  gap: 8px;2235  padding: 6px 10px;2236  background: rgba(217, 160, 48, 0.08);2237  border-radius: 6px;2238  margin-bottom: 8px;2239}22402241.peach-canary-suppress-label {2242  font-size: 11px;2243  color: rgba(217, 160, 48, 0.85);2244  cursor: pointer;2245  font-family: var(--font-ui);2246  letter-spacing: 0.04em;2247}22482249.peach-regen-panel {2250  position: relative;2251  z-index: 1;2252  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2253  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2254  border-radius: 8px;2255  padding: 12px;2256  margin-bottom: 8px;2257}22582259.peach-regen-panel-header {2260  display: flex;2261  align-items: center;2262  justify-content: space-between;2263  margin-bottom: 10px;2264}22652266.peach-regen-panel-title {2267  font-size: 11px;2268  font-weight: 600;2269  letter-spacing: 0.06em;2270  text-transform: uppercase;2271  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2272}22732274.peach-regen-output {2275  background: rgba(0, 0, 0, 0.2);2276  border-radius: 6px;2277  padding: 10px;2278  margin-bottom: 10px;2279  font-family: var(--font-mono);2280  font-size: 13px;2281  word-break: break-all;2282  color: var(--peach-t1);2283}22842285.peach-regen-actions {2286  display: flex;2287  gap: 6px;2288}22892290.peach-regen-actions--spaced {2291  margin-bottom: 8px;2292}22932294.peach-regen-action-grow {2295  flex: 1;2296}22972298.peach-regen-copy-btn {2299  padding: 0 8px;2300}23012302.peach-regen-success {2303  position: relative;2304  z-index: 1;2305  background: rgba(40, 180, 80, 0.1);2306  border: 1px solid rgba(40, 180, 80, 0.3);2307  border-radius: 8px;2308  padding: 10px 12px;2309  margin-bottom: 8px;2310  display: flex;2311  align-items: center;2312  gap: 8px;2313  font-size: 11px;2314  color: rgba(40, 180, 80, 0.9);2315}23162317/* ── Note editor overlay ── */2318.peach-note-editor {2319  position: absolute;2320  inset: 0;2321  z-index: 200;2322  display: flex;2323  flex-direction: column;2324  background:2325    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2326    var(--peach-bg);2327  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2328}23292330.peach-note-editor-header {2331  display: flex;2332  align-items: center;2333  gap: 10px;2334  padding: 14px 16px 10px;2335  border-bottom: 1px solid var(--peach-t3);2336  flex-shrink: 0;2337}23382339.peach-note-editor-back {2340  background: transparent;2341  border: none;2342  cursor: pointer;2343  color: var(--peach-t2);2344  padding: 4px 6px;2345  border-radius: 6px;2346  display: flex;2347  align-items: center;2348  transition: color 120ms ease, background 120ms ease;2349  flex-shrink: 0;2350}2351.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }23522353.peach-note-editor-label {2354  flex: 1;2355  font-family: "Cormorant Garamond", "Times New Roman", serif;2356  font-style: italic;2357  font-size: 15px;2358  color: var(--peach-t1);2359  letter-spacing: 0.02em;2360}23612362.peach-note-editor-save-btn {2363  background: transparent;2364  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2365  border-radius: 8px;2366  color: var(--peach-accent);2367  font-family: "IBM Plex Mono", monospace;2368  font-size: 10px;2369  letter-spacing: 0.06em;2370  text-transform: uppercase;2371  padding: 3px 10px;2372  cursor: pointer;2373  transition: background 120ms ease, border-color 120ms ease;2374}2375.peach-note-editor-save-btn:hover:not(:disabled) {2376  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2377  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2378}2379.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }23802381.peach-note-toolbar {2382  display: flex;2383  align-items: center;2384  gap: 3px;2385  padding: 6px 14px 5px;2386  border-bottom: 1px solid var(--peach-t3);2387  flex-shrink: 0;2388}23892390.peach-note-tool-btn {2391  background: transparent;2392  border: 1px solid transparent;2393  border-radius: 5px;2394  color: var(--peach-t2);2395  font-family: "IBM Plex Mono", monospace;2396  font-size: 10px;2397  letter-spacing: 0.04em;2398  padding: 2px 8px;2399  cursor: pointer;2400  line-height: 1.6;2401  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2402}2403.peach-note-tool-btn:hover {2404  background: var(--peach-t4);2405  color: var(--peach-t0);2406  border-color: var(--peach-t3);2407}24082409.peach-note-tool-icon {2410  padding: 3px 7px;2411  display: inline-flex;2412  align-items: center;2413  justify-content: center;2414}24152416.peach-note-tool-divider {2417  width: 1px;2418  height: 14px;2419  background: var(--peach-t3);2420  margin: 0 4px;2421  flex-shrink: 0;2422}24232424.peach-note-editor-body {2425  flex: 1;2426  overflow-y: auto;2427  padding: 16px 20px 20px;2428  outline: none;2429  font-family: "Cormorant Garamond", "Times New Roman", serif;2430  font-size: 16px;2431  line-height: 1.75;2432  color: var(--peach-t0);2433  scrollbar-width: none;2434  word-break: break-word;2435}2436.peach-note-editor-body:empty::before {2437  content: "write your note…";2438  color: var(--peach-t3);2439  font-style: italic;2440  pointer-events: none;2441}24422443/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2444.peach-note-editor-inline {2445  display: flex;2446  flex-direction: column;2447  flex: 1;2448  min-height: 0;2449}2450.peach-note-editor-body--inline {2451  flex: 1;2452  min-height: 0;2453  font-size: 15px;2454  padding: 10px 20px 14px;2455}24562457/* Full-width toolbar row inside the body (Add.tsx note type).2458   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2459.peach-note-toolbar-body {2460  display: flex;2461  align-items: center;2462  gap: 3px;2463  padding: 5px 20px 4px;2464  margin: 2px -20px 0;2465  border-bottom: 1px solid var(--peach-t3);2466  flex-shrink: 0;2467}24682469/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2470   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2471   and .peach-note-tool-divider button-level styles. */2472.peach-note-toolbar-inline {2473  display: flex;2474  align-items: center;2475  gap: 3px;2476  margin-left: auto;2477  padding-left: 10px;2478  border-left: 1px solid var(--peach-t3);2479  min-height: 22px;2480}24812482/* Entry.tsx toolbar row (no tabs, toolbar only) */2483.peach-entry-note-toolbar-row {2484  display: flex;2485  align-items: center;2486  margin: 4px 0 6px;2487  position: relative;2488  z-index: 1;2489}2490.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2491  border-left: none;2492  padding-left: 0;2493  margin-left: 0;2494}24952496/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2497.peach-note-body {2498  display: flex;2499  flex-direction: column;2500  flex: 1;2501  min-height: 0;2502  margin: 4px 0 0;2503}2504.peach-entry-body--new .peach-note-body {2505  margin: 8px -20px 0;2506}25072508/* Add.tsx body is a grid by default; swap to a flex column when a note is2509   active so the note body can stretch and pin the tags row to the bottom. */2510.peach-entry-body--new:has(.peach-note-body) {2511  display: flex;2512  flex-direction: column;2513}25142515/* Rich content element styles (editor + display) */2516.peach-note-editor-body h2,2517.peach-note-content h2 {2518  font-family: "Cormorant Garamond", serif;2519  font-size: 20px;2520  font-weight: 600;2521  font-style: italic;2522  color: var(--peach-t0);2523  margin: 6px 0 2px;2524  line-height: 1.3;2525}2526.peach-note-editor-body ul,2527.peach-note-content ul {2528  padding-left: 18px;2529  margin: 3px 0;2530  list-style: disc;2531}2532.peach-note-editor-body ol,2533.peach-note-content ol {2534  padding-left: 18px;2535  margin: 3px 0;2536  list-style: decimal;2537}2538.peach-note-editor-body li,2539.peach-note-content li { margin: 2px 0; }2540.peach-note-editor-body hr,2541.peach-note-content hr {2542  border: none;2543  border-top: 1px solid var(--peach-t3);2544  margin: 10px 0;2545}25462547/* font size elements from execCommand */2548.peach-note-editor-body font[size="1"],2549.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2550.peach-note-editor-body font[size="2"],2551.peach-note-content font[size="2"] { font-size: 13px; }2552.peach-note-editor-body font[size="3"],2553.peach-note-content font[size="3"] { font-size: 16px; }2554.peach-note-editor-body font[size="4"],2555.peach-note-content font[size="4"] { font-size: 20px; }2556.peach-note-editor-body font[size="5"],2557.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }25582559/* bold / italic inside the editor and note display */2560.peach-note-editor-body b, .peach-note-editor-body strong,2561.peach-note-content b, .peach-note-content strong { font-weight: 700; }2562.peach-note-editor-body em, .peach-note-editor-body i,2563.peach-note-content em, .peach-note-content i { font-style: italic; }25642565/* note display — rendered HTML, no pre-wrap */2566.peach-note-content {2567  overflow: auto;2568  max-height: 340px;2569  word-break: break-word;2570}25712572/* ── Note textarea ── */2573.peach-note-textarea {2574  width: 100%;2575  min-height: 180px;2576  max-height: 280px;2577  resize: vertical;2578  background: var(--peach-t4);2579  border: 1px solid var(--peach-t3);2580  border-radius: 8px;2581  padding: 10px 12px;2582  font-family: "IBM Plex Mono", monospace;2583  font-size: 12px;2584  line-height: 1.7;2585  color: var(--peach-t1);2586  outline: none;2587  transition: border-color 150ms ease;2588}25892590.peach-note-textarea:focus {2591  border-color: var(--peach-t2);2592}25932594.peach-note-char-count {2595  font-family: "IBM Plex Mono", monospace;2596  font-size: 9px;2597  color: var(--peach-t3);2598  text-align: right;2599  margin-top: 4px;2600  letter-spacing: 0.1em;2601}26022603/* ── Field input baseline ── */2604.peach-new-field-input {2605  width: 100%;2606  background: transparent;2607  border: none;2608  border-bottom: 1px solid var(--peach-t3);2609  padding: 4px 0;2610  color: var(--peach-t1);2611  font-family: "IBM Plex Mono", monospace;2612  font-size: 13px;2613  outline: none;2614  transition: border-color 150ms ease;2615}26162617.peach-new-field-input:focus {2618  border-bottom-color: var(--peach-t0);2619  color: var(--peach-t0);2620}26212622.peach-new-name-input {2623  width: 100%;2624  background: transparent;2625  border: none;2626  border-bottom: 1px solid var(--peach-t3);2627  padding: 6px 0;2628  font-family: "Cormorant Garamond", Georgia, serif;2629  font-style: italic;2630  font-size: 28px;2631  color: var(--peach-t0);2632  outline: none;2633  transition: border-color 150ms ease;2634}26352636.peach-new-name-input:focus {2637  border-bottom-color: var(--peach-t1);2638}26392640.peach-new-name-input::placeholder {2641  color: var(--peach-t2);2642  font-style: italic;2643}26442645.peach-new-field-input::placeholder {2646  color: var(--peach-t3);2647}26482649/* ── Demo entrance animation ── */2650#hd-shell {2651  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2652}2653@keyframes hd-shell-enter {2654  from { opacity: 0; transform: scale(0.96) translateY(16px); }2655  to   { opacity: 1; transform: scale(1) translateY(0); }2656}26572658/* ── Keyframes ── */2659@keyframes peach-char-enter {2660  from { opacity: 0; transform: translateY(0.22em); }2661  to   { opacity: 1; transform: translateY(0); }2662}2663@keyframes peach-content-enter {2664  from { opacity: 0.96; transform: translateY(4px); }2665  to   { opacity: 1; transform: translateY(0); }2666}2667@keyframes peach-content-exit {2668  from { opacity: 1; transform: translateY(0); }2669  to   { opacity: 0.92; transform: translateY(-3px); }2670}2671@keyframes peach-screen-enter {2672  from { opacity: 0; transform: translateY(14px); }2673  to   { opacity: 1; transform: translateY(0); }2674}2675@keyframes peach-shell-fade-in {2676  from { opacity: 0; }2677  to   { opacity: 1; }2678}2679@keyframes peach-veil-in {2680  from { opacity: 0; }2681  to   { opacity: 1; }2682}2683@keyframes peach-lock-settle {2684  0%   { transform: scale(0.9); }2685  65%  { transform: scale(1.08); }2686  100% { transform: scale(1); }2687}2688@keyframes peach-copy-confirm {2689  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2690  to   { color: var(--peach-accent); border-color: color-mix(in srgb, var(--peach-accent) 42%, transparent); background-color: color-mix(in srgb, var(--peach-accent) 9%, transparent); box-shadow: 0 0 18px color-mix(in srgb, var(--peach-accent) 22%, transparent), inset 0 0 18px color-mix(in srgb, var(--peach-accent) 12%, transparent); }2691}2692@keyframes peach-copy-retreat {2693  from { color: var(--peach-accent); border-color: color-mix(in srgb, var(--peach-accent) 42%, transparent); background-color: color-mix(in srgb, var(--peach-accent) 9%, transparent); box-shadow: 0 0 18px color-mix(in srgb, var(--peach-accent) 22%, transparent), inset 0 0 18px color-mix(in srgb, var(--peach-accent) 12%, transparent); }2694  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2695}2696@keyframes peach-copy-flood {2697  from { opacity: 0; transform: scaleX(0.15); }2698  to   { opacity: 1; transform: scaleX(1); }2699}2700@keyframes peach-copy-icon-settle {2701  from  { transform: scale(0.84); }2702  70%   { transform: scale(1.08); }2703  to    { transform: scale(1); }2704}2705@keyframes peach-copy-sheen-retreat {2706  from { opacity: 1; transform: scaleX(1); }2707  to   { opacity: 0; transform: scaleX(0.15); }2708}2709@keyframes peach-copy-drain {2710  from { width: 100%; }2711  to   { width: 0; }2712}2713@keyframes peach-shake {2714  0%, 100% { transform: translateX(0); }2715  20%      { transform: translateX(-6px); }2716  40%      { transform: translateX(6px); }2717  60%      { transform: translateX(-4px); }2718  80%      { transform: translateX(4px); }2719}27202721@keyframes pip-pulse {2722  0% { transform: scale(1); }2723  40% { transform: scale(2.2); }2724  100% { transform: scale(1); }2725}272627272728/* ── Password generator ── */2729.peach-pwgen-body {2730  flex: 1; overflow-y: auto;2731  display: flex; flex-direction: column;2732}2733.peach-policy-badge {2734  display: flex; align-items: center;2735  padding: 6px 20px 0;2736  font-size: 10px; font-family: Inter, sans-serif;2737  color: var(--peach-t2); letter-spacing: 0.04em;2738}2739.peach-pwgen-display {2740  padding: 14px 20px 12px;2741  border-bottom: 1px solid var(--peach-t3);2742  display: flex; align-items: flex-start; gap: 10px;2743}2744.peach-pwgen-display-row {2745  display: flex;2746  align-items: flex-start;2747  gap: 8px;2748  padding-bottom: 8px;2749  border-bottom: 1px solid var(--peach-t3);2750}2751.peach-pwgen-output {2752  flex: 1; min-width: 0; margin: 0;2753  font-family: "IBM Plex Mono", monospace;2754  font-size: 13px; color: var(--peach-t0);2755  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2756  white-space: normal;2757  padding: 10px 12px;2758  background: var(--peach-t4);2759  border-radius: 6px;2760  min-height: 36px;2761}2762.peach-pwgen-output-display {2763  flex: 1;2764  min-width: 0;2765  margin: 0;2766  font-family: "Cormorant Garamond", "Times New Roman", serif;2767  font-style: italic;2768  font-weight: 300;2769  font-size: 32px;2770  line-height: 1.05;2771  color: var(--peach-t0);2772  word-break: break-all;2773  overflow-wrap: break-word;2774  white-space: normal;2775  letter-spacing: 0.02em;2776}2777.peach-pwgen-display-actions {2778  display: flex;2779  flex-direction: column;2780  gap: 4px;2781  flex-shrink: 0;2782  margin-top: 2px;2783}2784.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2785.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2786.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2787.peach-pwgen-len-num {2788  font-family: "IBM Plex Mono", monospace;2789  font-size: 12px; color: var(--peach-accent);2790}2791.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2792.peach-pwgen-toggles { display: flex; flex-direction: column; }2793.peach-pwgen-charset-pills {2794  display: flex;2795  gap: 6px;2796  flex-wrap: wrap;2797}2798.peach-pwgen-pill {2799  padding: 4px 11px;2800  border-radius: 999px;2801  border: 1px solid var(--peach-t3);2802  background: transparent;2803  color: var(--peach-t2);2804  font-family: "IBM Plex Mono", monospace;2805  font-size: 9px;2806  letter-spacing: 0.08em;2807  cursor: pointer;2808  transition: all 150ms ease;2809}2810.peach-pwgen-pill.is-on {2811  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2812  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2813  color: var(--peach-accent);2814}2815.peach-pwgen-pill:not(.is-on):hover {2816  color: var(--peach-t1);2817  border-color: var(--peach-t2);2818}2819.peach-pwgen-use-btn {2820  width: 100%;2821  min-height: 34px;2822  border-radius: 8px;2823  margin-top: 2px;2824}2825.peach-pwgen-toggle-row {2826  display: flex; align-items: center; justify-content: space-between;2827  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2828}2829.peach-pwgen-toggle-row:last-child { border-bottom: none; }2830.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }28312832.peach-screen-prelock {2833  z-index: 10;2834}28352836.prelock-form {2837  display: grid;2838  gap: 12px;2839}28402841/* Peach popup should not expose native scrollbars on internal panels. */2842.peach-settings-body,2843.peach-new-body,2844.peach-pwgen-body,2845.lock-screen,2846.peach-import-preview {2847  scrollbar-width: none;2848  -ms-overflow-style: none;2849  overscroll-behavior: contain;2850}2851.peach-settings-body::-webkit-scrollbar,2852.peach-new-body::-webkit-scrollbar,2853.peach-pwgen-body::-webkit-scrollbar,2854.lock-screen::-webkit-scrollbar,2855.peach-import-preview::-webkit-scrollbar {2856  width: 0;2857  height: 0;2858  display: none;2859}28602861.lock-screen {2862  height: 100%;2863  min-height: 100%;2864  overflow-y: auto;2865  padding: 18px 18px 16px;2866  gap: 14px;2867  grid-template-rows: auto auto auto 1fr auto;2868  align-content: stretch;2869  position: relative;2870  isolation: isolate;2871}2872.peach-screen.lock-screen--vault-stage {2873  display: flex;2874  flex-direction: column;2875  justify-content: flex-start;2876  gap: 18px;2877  padding: 20px 18px 18px;2878  overflow: hidden;2879}2880.peach-screen.lock-screen--vault-stage .peach-lock-panel {2881  margin-top: auto;2882}2883.lock-screen--onboarding {2884  display: flex;2885  flex-direction: column;2886  gap: 12px;2887  justify-content: flex-start;2888}28892890.lock-screen::before {2891  content: "";2892  position: absolute;2893  inset: 12px 18px auto auto;2894  width: 160px;2895  height: 160px;2896  border-radius: 999px;2897  background:2898    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 42%, transparent 72%);2899  filter: blur(6px);2900  opacity: 0.7;2901  pointer-events: none;2902  z-index: 0;2903}29042905.lock-screen-header {2906  display: flex;2907  align-items: center;2908  justify-content: space-between;2909  position: relative;2910  z-index: 1;2911}29122913.lock-password-input.shake {2914  animation: peach-shake 300ms ease-in-out;2915}29162917.peach-hint-error {2918  color: rgba(220, 80, 60, 0.92);2919}29202921.peach-onboarding-headline {2922  margin: 0;2923  font-family: "Cormorant Garamond", "Times New Roman", serif;2924  font-size: 35px;2925  line-height: 0.88;2926  font-style: italic;2927  font-weight: 400;2928  max-width: 252px;2929}29302931.peach-lock-copy {2932  display: grid;2933  gap: 8px;2934  position: relative;2935  z-index: 1;2936}29372938.peach-lock-copy--onboarding {2939  gap: 10px;2940}29412942.peach-lock-hero {2943  position: relative;2944  z-index: 1;2945  display: grid;2946  gap: 8px;2947  min-height: 0;2948  padding: 4px 2px 0;2949  border: none;2950  border-radius: 0;2951  background: transparent;2952  box-shadow: none;2953}2954.peach-lock-hero-art {2955  position: absolute;2956  right: -8px;2957  top: -6px;2958  width: 120px;2959  height: 120px;2960  display: flex;2961  align-items: center;2962  justify-content: center;2963  pointer-events: none;2964  opacity: 0.12;2965  filter: saturate(0.9);2966}2967.peach-lock-hero-mark {2968  width: 100%;2969  height: 100%;2970}2971/* Peach body stays brand-peach across every accent — we don't want a2972   green or blue peach when sage/sky is selected. Leaf + stem keep the2973   sage tint because a real peach has a sage leaf. */2974.peach-lock-hero-mark path:nth-child(2),2975.peach-lock-hero-mark path:nth-child(3) {2976  stroke: rgba(123, 144, 96, 0.88);2977  fill: rgba(123, 144, 96, 0.88);2978}2979.peach-lock-hero > *:not(.peach-lock-hero-art) {2980  position: relative;2981  z-index: 1;2982}29832984.peach-lock-eyebrow {2985  display: inline-flex;2986  align-items: center;2987  width: fit-content;2988  padding: 4px 9px;2989  border-radius: 999px;2990  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);2991  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2992  color: var(--peach-t0);2993  font-family: "IBM Plex Mono", monospace;2994  font-size: 8px;2995  letter-spacing: 0.18em;2996  text-transform: uppercase;2997}29982999.peach-lock-label-row {3000  display: flex;3001  align-items: center;3002  justify-content: space-between;3003  margin-bottom: 0;3004}30053006.peach-lock-reveal-btn {3007  display: inline-flex;3008  align-items: center;3009  gap: 4px;3010  background: none;3011  border: none;3012  cursor: pointer;3013  font-family: "IBM Plex Mono", monospace;3014  font-size: 9px;3015  letter-spacing: 0.06em;3016  color: var(--peach-t2);3017  padding: 2px 0;3018  transition: color 150ms ease;3019}30203021.peach-lock-reveal-btn:hover {3022  color: var(--peach-t1);3023}30243025.peach-lock-warning {3026  color: rgba(220, 80, 60, 0.85) !important;3027  line-height: 1.5;3028}30293030.peach-onboarding-cards {3031  display: grid;3032  gap: 8px;3033  position: relative;3034  z-index: 1;3035}30363037.peach-lock-panel {3038  position: relative;3039  z-index: 1;3040  display: grid;3041  gap: 9px;3042  padding: 14px 16px 15px;3043  border-radius: 18px;3044  border: 1px solid var(--peach-t3);3045  background:3046    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3047  box-shadow:3048    inset 0 1px 0 rgba(240, 232, 216, 0.04),3049    0 12px 28px rgba(0, 0, 0, 0.12);3050}30513052.peach-lock-panel--secondary {3053  gap: 12px;3054}30553056.peach-lock-panel-header {3057  display: flex;3058  align-items: baseline;3059  justify-content: space-between;3060  gap: 12px;3061}30623063.peach-lock-option-grid {3064  display: grid;3065  gap: 10px;3066}30673068.peach-lock-option {3069  width: 100%;3070  display: grid;3071  gap: 6px;3072  padding: 14px 15px;3073  border-radius: 16px;3074  border: 1px solid rgba(240, 232, 216, 0.08);3075  background: rgba(240, 232, 216, 0.02);3076  color: var(--peach-t0);3077  text-align: left;3078  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3079}30803081.peach-lock-option:hover {3082  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3083  background: rgba(240, 232, 216, 0.04);3084  transform: translateY(-1px);3085}30863087.peach-lock-option-title {3088  font-size: 12px;3089  color: var(--peach-t0);3090}30913092.peach-lock-option-copy {3093  font-size: 11px;3094  line-height: 1.55;3095  color: var(--peach-t1);3096}30973098.peach-onboarding-stack {3099  margin-top: 2px;3100}3101.peach-lock-panel-footer {3102  display: grid;3103  gap: 6px;3104  margin-top: 2px;3105  padding-top: 10px;3106  border-top: 1px solid rgba(240, 232, 216, 0.06);3107}31083109/* Restore picker panel — method option cards */3110.peach-lock-panel--restore {3111  gap: 10px;3112}3113.peach-lock-option--history {3114  border-color: rgba(240, 232, 216, 0.06);3115  opacity: 0.85;3116}31173118/* Snapshot restore panel */3119.peach-snapshot-panel {3120  gap: 10px;3121  overflow-y: auto;3122  max-height: 340px;3123}3124.peach-snapshot-list {3125  display: flex;3126  flex-direction: column;3127  gap: 4px;3128}3129.peach-snapshot-row {3130  display: flex;3131  align-items: center;3132  justify-content: space-between;3133  width: 100%;3134  padding: 8px 10px;3135  border-radius: 8px;3136  border: 1px solid rgba(240, 232, 216, 0.07);3137  background: transparent;3138  cursor: pointer;3139  transition: border-color 120ms, background 120ms;3140  text-align: left;3141  gap: 8px;3142}3143.peach-snapshot-row:hover {3144  border-color: rgba(240, 232, 216, 0.14);3145  background: rgba(240, 232, 216, 0.03);3146}3147.peach-snapshot-row.is-selected {3148  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3149  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3150}3151.peach-snapshot-time {3152  font-size: 11.5px;3153  color: var(--peach-t0);3154  flex: 1;3155}3156.peach-snapshot-count {3157  font-family: "IBM Plex Mono", monospace;3158  font-size: 10px;3159  color: var(--peach-t2);3160  flex-shrink: 0;3161}3162.peach-snapshot-confirm {3163  display: flex;3164  flex-direction: column;3165  gap: 8px;3166  padding-top: 10px;3167  border-top: 1px solid rgba(240, 232, 216, 0.06);3168}3169.peach-snapshot-warning {3170  display: flex;3171  align-items: flex-start;3172  gap: 6px;3173  font-size: 10.5px;3174  color: rgba(220, 80, 60, 0.85);3175  line-height: 1.55;3176}3177.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3178.peach-snapshot-confirm-row {3179  display: flex;3180  gap: 6px;3181  align-items: center;3182}3183.peach-snapshot-restore-btn {3184  width: 100%;3185}3186.peach-lock-hero--unlock .peach-lock-hero-art {3187  width: 112px;3188  height: 112px;3189  right: 0;3190  top: 2px;3191  opacity: 0.1;3192}31933194.peach-card {3195  border: 1px solid var(--peach-t3);3196  border-radius: 18px;3197  background:3198    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3199  box-shadow:3200    inset 0 0 0 1px var(--peach-border-accent),3201    inset 0 1px 0 rgba(240, 232, 216, 0.04),3202    0 12px 32px rgba(0, 0, 0, 0.14);3203  overflow: hidden;3204}32053206.peach-card-active {3207  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3208  box-shadow:3209    inset 0 1px 0 rgba(240, 232, 216, 0.05),3210    0 16px 38px rgba(0, 0, 0, 0.18),3211    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3212}32133214.peach-card-disabled {3215  opacity: 0.72;3216}32173218.peach-card-header {3219  width: 100%;3220  padding: 13px 16px 11px;3221  background: transparent;3222  color: var(--peach-t0);3223  display: flex;3224  justify-content: space-between;3225  align-items: center;3226  text-align: left;3227  font-size: 12px;3228}32293230.peach-card-body {3231  padding: 0 16px 16px;3232  display: grid;3233  gap: 9px;3234}32353236.peach-card-tag {3237  color: var(--peach-t2);3238  font-family: "IBM Plex Mono", monospace;3239  font-size: 9px;3240  letter-spacing: 0.12em;3241  text-transform: uppercase;3242}32433244.peach-empty-copy {3245  display: grid;3246  gap: 6px;3247  color: var(--peach-t1);3248  font-size: 13px;3249}32503251.peach-lock-submit {3252  width: 100%;3253  box-shadow:3254    0 1px 0 rgba(255,255,255,0.10) inset,3255    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3256    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3257    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3258}32593260.peach-lock-secondary {3261  width: 100%;3262  border-color: var(--peach-t3);3263  background: rgba(240, 232, 216, 0.02);3264}32653266.peach-lock-secondary:hover {3267  background: rgba(240, 232, 216, 0.04);3268}32693270.peach-lock-note {3271  max-width: none;3272  line-height: 1.55;3273  margin: 0;3274}32753276.peach-overlay-action {3277  font-size: 10px;3278  padding: 4px 8px;3279  letter-spacing: 0.06em;3280  min-width: 44px;3281  text-align: center;3282}32833284.peach-overlay-spacer {3285  width: 32px;3286}32873288.peach-inline-action {3289  flex-shrink: 0;3290  font-size: 9px;3291  letter-spacing: 0.1em;3292  text-transform: uppercase;3293  padding: 4px 7px;3294}3295.peach-password-toggle-btn {3296  display: inline-flex;3297  align-items: center;3298  justify-content: center;3299  min-width: 30px;3300  min-height: 26px;3301  padding: 0 7px;3302  border: 1px solid var(--peach-t3);3303  border-radius: 999px;3304  background: rgba(240, 232, 216, 0.04);3305  color: var(--peach-t2);3306  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3307}3308.peach-password-toggle-btn:hover {3309  border-color: var(--peach-t2);3310  color: var(--peach-t0);3311  background: rgba(240, 232, 216, 0.06);3312}33133314.peach-new-textarea {3315  width: 100%;3316  min-height: 88px;3317  resize: vertical;3318  border: 0;3319  outline: none;3320  background: transparent;3321  color: var(--peach-t1);3322  font-family: "IBM Plex Mono", monospace;3323  font-size: 12px;3324  line-height: 1.65;3325  caret-color: var(--peach-accent);3326}33273328.peach-new-textarea::placeholder {3329  color: var(--peach-t2);3330  opacity: 0.7;3331}33323333.peach-settings-actions {3334  display: grid;3335  gap: 8px;3336}33373338.peach-sync-section-label {3339  font-size: 11px;3340  color: var(--peach-t2);3341  text-transform: uppercase;3342  letter-spacing: 0.05em;3343}33443345.peach-sync-device-row {3346  display: flex;3347  justify-content: space-between;3348  align-items: center;3349  padding: 6px 0;3350  border-bottom: 1px solid var(--peach-t3);3351}33523353.peach-sync-device-info {3354  display: flex;3355  flex-direction: column;3356  gap: 2px;3357}33583359.peach-sync-device-name {3360  font-size: 13px;3361  color: var(--peach-t0);3362}33633364.peach-sync-device-meta {3365  font-size: 11px;3366  color: var(--peach-t2);3367}33683369.peach-sync-status-dot {3370  display: inline-block;3371  width: 8px;3372  height: 8px;3373  border-radius: 50%;3374  vertical-align: middle;3375}33763377.peach-sync-remove-btn {3378  color: var(--peach-breach);3379}33803381.peach-import-preview {3382  margin-bottom: 12px;3383  max-height: 152px;3384  overflow-y: auto;3385  border: 1px solid var(--peach-t3);3386  border-radius: 10px;3387  padding: 8px 10px;3388  display: grid;3389  gap: 8px;3390  background: rgba(240, 232, 216, 0.02);3391}33923393.peach-import-preview-row {3394  display: flex;3395  justify-content: space-between;3396  gap: 10px;3397  font-size: 11px;3398  color: var(--peach-t1);3399}34003401.peach-import-preview-title {3402  color: var(--peach-t0);3403  flex: 1;3404  min-width: 0;3405  overflow: hidden;3406  text-overflow: ellipsis;3407  white-space: nowrap;3408}34093410.peach-import-preview-meta {3411  color: var(--peach-t2);3412  flex-shrink: 0;3413  max-width: 42%;3414  overflow: hidden;3415  text-overflow: ellipsis;3416  white-space: nowrap;3417}34183419.peach-import-preview-more {3420  color: var(--peach-t2);3421  font-size: 10px;3422}34233424.peach-restore-copy {3425  margin: 0;3426  color: var(--peach-t1);3427  font-size: 11px;3428  line-height: 1.6;3429}34303431.peach-restore-warning {3432  padding: 10px 12px;3433  border-radius: 12px;3434  border: 1px solid rgba(220, 80, 60, 0.22);3435  background: rgba(220, 80, 60, 0.08);3436  color: rgba(240, 232, 216, 0.86);3437  font-size: 11px;3438  line-height: 1.55;3439}34403441.peach-provider-chips {3442  display: flex;3443  flex-wrap: wrap;3444  gap: 6px;3445}34463447.peach-provider-chip {3448  display: inline-flex;3449  align-items: center;3450  padding: 5px 8px;3451  border-radius: 999px;3452  border: 1px solid var(--peach-t3);3453  background: rgba(240, 232, 216, 0.02);3454  color: var(--peach-t1);3455  font-family: "IBM Plex Mono", monospace;3456  font-size: 8px;3457  letter-spacing: 0.08em;3458  text-transform: uppercase;3459}34603461.peach-restore-file,3462.peach-restore-input {3463  width: 100%;3464  border-radius: 10px;3465  border: 1px solid var(--peach-t3);3466  background: var(--peach-s2);3467  color: var(--peach-t0);3468  font-size: 12px;3469}34703471.peach-restore-file {3472  padding: 9px 10px;3473}34743475.peach-restore-file::file-selector-button {3476  margin-right: 10px;3477  padding: 7px 10px;3478  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3479  border-radius: 999px;3480  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3481  color: var(--peach-t0);3482  font-size: 10px;3483  letter-spacing: 0.08em;3484  text-transform: uppercase;3485  cursor: pointer;3486}34873488.peach-restore-input {3489  padding: 10px 12px;3490}34913492.peach-auth-grid {3493  display: grid;3494  gap: 10px;3495}34963497.peach-import-summary {3498  color: var(--peach-t1);3499  font-size: 12px;3500  line-height: 1.6;3501  margin-bottom: 12px;3502}35033504.peach-restore-error {3505  color: rgba(220, 80, 60, 0.95);3506  font-size: 12px;3507  line-height: 1.55;3508}35093510.peach-cjk-qr-panel {3511  margin-top: 14px;3512  padding: 12px;3513  border-radius: 16px;3514  border: 1px solid var(--peach-t3);3515  background: rgba(240, 232, 216, 0.02);3516  display: grid;3517  gap: 10px;3518}35193520.peach-cjk-qr-frame {3521  display: grid;3522  place-items: center;3523  min-height: 212px;3524  border-radius: 14px;3525  background: #fff;3526  overflow: hidden;3527}35283529.peach-cjk-qr-frame svg {3530  display: block;3531  width: 196px;3532  height: 196px;3533}35343535.peach-cjk-qr-error,3536.peach-cjk-qr-caption {3537  color: var(--peach-t1);3538  font-size: 11px;3539  line-height: 1.55;3540}35413542.peach-cjk-qr-card {3543  max-width: 400px;3544  margin: auto;3545}35463547.peach-cjk-qr-body {3548  padding: 0 20px 20px;3549  text-align: center;3550}35513552.peach-cjk-qr-hint {3553  font-size: 11px;3554  color: var(--peach-t2);3555  margin: 0 0 14px;3556}35573558.peach-cjk-qr-image {3559  border-radius: 4px;3560  display: block;3561  margin: 0 auto;3562  width: 100%;3563  max-width: 320px;3564  height: auto;3565}35663567.peach-pro-badge {3568  padding: 2px 6px;3569  border-radius: 999px;3570  font-family: var(--font-ui);3571  font-size: 10px;3572  letter-spacing: 0.08em;3573  text-transform: uppercase;3574  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3575  color: var(--peach-accent);3576}35773578.peach-loading {3579  position: absolute;3580  inset: 0;3581  display: flex;3582  align-items: center;3583  justify-content: center;3584  background: var(--bg);3585  animation: peach-loading-pulse 1.2s ease-in-out infinite;3586}35873588@keyframes peach-loading-pulse {3589  0%, 100% { opacity: 0.6; }3590  50% { opacity: 1; }3591}35923593/* ── Health Dashboard ─────────────────────────────────────────────────── */3594.peach-health-body {3595  flex: 1;3596  overflow-y: auto;3597  display: flex;3598  flex-direction: column;3599}36003601.peach-health-summary {3602  padding: 10px 16px 6px;3603  font-family: "IBM Plex Mono", monospace;3604  font-size: 11px;3605}3606.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3607.peach-health-summary-ok { color: var(--peach-t2); }36083609.peach-health-check-row {3610  padding: 0 16px 10px;3611}3612.peach-health-check-btn {3613  width: 100%;3614  display: flex;3615  align-items: center;3616  justify-content: center;3617}36183619.peach-health-sections {3620  flex: 1;3621  display: flex;3622  flex-direction: column;3623}36243625.peach-health-section {3626  border-bottom: 1px solid var(--peach-t3);3627}36283629.peach-health-section-header {3630  width: 100%;3631  display: flex;3632  align-items: center;3633  justify-content: space-between;3634  padding: 9px 16px;3635  background: transparent;3636  cursor: pointer;3637  color: var(--peach-t0);3638}36393640.peach-health-section-title-row {3641  display: flex;3642  align-items: center;3643  gap: 8px;3644}36453646.peach-health-count-badge {3647  display: inline-flex;3648  align-items: center;3649  justify-content: center;3650  min-width: 20px;3651  height: 18px;3652  padding: 0 5px;3653  border-radius: 999px;3654  background: rgba(220,80,60,0.15);3655  border: 1px solid rgba(220,80,60,0.25);3656  font-family: "IBM Plex Mono", monospace;3657  font-size: 9px;3658  color: rgba(220,80,60,0.9);3659}36603661.peach-health-section-title {3662  font-family: "IBM Plex Mono", monospace;3663  font-size: 11px;3664  text-transform: uppercase;3665  letter-spacing: 0.1em;3666  color: var(--peach-t1);3667}36683669.peach-health-chevron {3670  color: var(--peach-t2);3671  transition: transform 200ms ease;3672  flex-shrink: 0;3673}3674.peach-health-chevron.is-expanded {3675  transform: rotate(180deg);3676}36773678.peach-health-section-body {3679  padding: 0 16px 10px;3680  display: flex;3681  flex-direction: column;3682  gap: 4px;3683}36843685.peach-health-row {3686  display: flex;3687  align-items: flex-start;3688  justify-content: space-between;3689  gap: 8px;3690  padding: 6px 8px;3691  border-radius: 8px;3692  background: rgba(240,232,216,0.02);3693}36943695.peach-health-row-info {3696  flex: 1;3697  min-width: 0;3698  display: flex;3699  flex-direction: column;3700  gap: 2px;3701}37023703.peach-health-row-name {3704  font-family: "Cormorant Garamond", serif;3705  font-size: 15px;3706  font-style: italic;3707  font-weight: 400;3708  color: var(--peach-t0);3709  white-space: nowrap;3710  overflow: hidden;3711  text-overflow: ellipsis;3712}37133714.peach-health-row-meta {3715  font-family: "IBM Plex Mono", monospace;3716  font-size: 9px;3717  color: var(--peach-t2);3718  letter-spacing: 0.05em;3719}37203721.peach-health-fix-btn {3722  font-size: 9px;3723  letter-spacing: 0.08em;3724  text-transform: uppercase;3725  padding: 4px 7px;3726  flex-shrink: 0;3727  display: flex;3728  align-items: center;3729}37303731.peach-health-empty {3732  font-family: "IBM Plex Mono", monospace;3733  font-size: 10px;3734  color: var(--peach-t2);3735  padding: 6px 0;3736}37373738.peach-health-loading {3739  font-family: "IBM Plex Mono", monospace;3740  font-size: 10px;3741  color: var(--peach-t2);3742  padding: 6px 0;3743  display: flex;3744  align-items: center;3745  gap: 6px;3746}37473748.peach-health-loading::before {3749  content: "";3750  width: 10px;3751  height: 10px;3752  border: 1.5px solid var(--peach-t3);3753  border-top-color: var(--peach-accent);3754  border-radius: 50%;3755  animation: peach-spin 600ms linear infinite;3756}37573758@keyframes peach-spin {3759  to { transform: rotate(360deg); }3760}37613762.peach-spinner {3763  width: 32px;3764  height: 32px;3765  border: 2px solid var(--peach-s2);3766  border-top-color: var(--peach-accent);3767  border-radius: 50%;3768  margin: 0 auto 16px;3769  animation: peach-spin 0.8s linear infinite;3770}37713772.peach-progress-screen {3773  text-align: center;3774  padding: 32px 16px;3775}37763777.peach-progress-screen-title {3778  font-size: 13px;3779  color: var(--peach-t0);3780  margin-bottom: 16px;3781}37823783.peach-progress-screen-stage {3784  font-size: 11px;3785  color: var(--peach-t2);3786  min-height: 14px;3787}37883789.peach-progress-screen-note {3790  font-size: 10px;3791  color: var(--peach-t2);3792  margin-top: 8px;3793}37943795.peach-pairing-body {3796  flex: 1;3797  overflow-y: auto;3798  display: flex;3799  flex-direction: column;3800}38013802.peach-pairing-content {3803  flex: 1;3804  display: flex;3805  flex-direction: column;3806  align-items: center;3807  justify-content: center;3808  gap: 14px;3809  padding: 28px 20px;3810  text-align: center;3811}38123813.peach-pairing-headline {3814  font-family: var(--font-display);3815  font-style: italic;3816  font-weight: 300;3817  font-size: 28px;3818  color: var(--peach-t0);3819  margin: 0;3820  line-height: 1;3821}38223823.peach-pairing-subline {3824  font-size: 12px;3825  color: var(--peach-t2);3826  max-width: 220px;3827  line-height: 1.5;3828  margin: 0;3829}38303831.peach-pairing-subline--center {3832  text-align: center;3833}38343835.peach-pairing-code-display {3836  display: flex;3837  gap: 6px;3838}38393840.peach-pairing-code-digit {3841  display: flex;3842  align-items: center;3843  justify-content: center;3844  width: 36px;3845  height: 48px;3846  background: var(--peach-s2);3847  border: 1px solid var(--peach-t3);3848  border-radius: 6px;3849  font-family: var(--font-mono);3850  font-size: 22px;3851  color: var(--peach-t0);3852  letter-spacing: 0;3853}38543855.peach-pairing-countdown-ring {3856  position: relative;3857  display: inline-flex;3858  align-items: center;3859  justify-content: center;3860}38613862.peach-pairing-countdown-num {3863  position: absolute;3864  font-family: var(--font-mono);3865  font-size: 14px;3866  color: var(--peach-t1);3867}38683869.peach-pairing-ring-track {3870  fill: none;3871  stroke: var(--peach-t3);3872  stroke-width: 2;3873}38743875.peach-pairing-ring-progress {3876  fill: none;3877  stroke: var(--peach-accent);3878  stroke-width: 2;3879  stroke-linecap: round;3880  transform: rotate(-90deg);3881  transform-origin: 50% 50%;3882  transition: stroke-dashoffset 0.5s linear;3883}38843885.peach-pairing-code-inputs {3886  display: flex;3887  gap: 8px;3888}38893890.peach-pairing-code-box {3891  width: 36px;3892  height: 48px;3893  text-align: center;3894  background: var(--peach-s2);3895  border: 1px solid var(--peach-t3);3896  border-radius: 6px;3897  font-family: var(--font-mono);3898  font-size: 20px;3899  color: var(--peach-t0);3900  outline: none;3901  transition: border-color 120ms ease;3902}39033904.peach-pairing-code-box:focus {3905  border-color: var(--peach-accent);3906}39073908.peach-pairing-code-box.has-error {3909  border-color: rgba(220, 80, 60, 0.45);3910}39113912.peach-pairing-status {3913  display: flex;3914  align-items: center;3915  gap: 8px;3916  margin: 0;3917  font-size: 12px;3918  color: var(--peach-t1);3919}39203921.peach-pairing-error {3922  margin: 0;3923  font-size: 11px;3924  color: var(--peach-breach);3925}39263927.peach-pairing-error-msg {3928  color: var(--peach-t1);3929}39303931.peach-pairing-spinner {3932  width: 12px;3933  height: 12px;3934  border: 1.5px solid var(--peach-t3);3935  border-top-color: var(--peach-accent);3936  border-radius: 50%;3937  animation: peach-spin 0.8s linear infinite;3938}39393940.peach-pairing-success-icon,3941.peach-pairing-error-icon,3942.peach-pairing-hero {3943  display: inline-flex;3944  align-items: center;3945  justify-content: center;3946}39473948/* Tag chips */3949.peach-tag-chip {3950  display: inline-flex;3951  align-items: center;3952  gap: 4px;3953  padding: 3px 8px;3954  border-radius: 999px;3955  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3956  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3957  color: rgba(240, 232, 216, 0.85);3958  font-family: "IBM Plex Mono", monospace;3959  font-size: 10px;3960  letter-spacing: 0.04em;3961}39623963.peach-tag-chip-remove {3964  background: transparent;3965  border: none;3966  color: inherit;3967  opacity: 0.6;3968  cursor: pointer;3969  padding: 0;3970  font-size: 12px;3971  line-height: 1;3972}39733974.peach-tag-chip-remove:hover {3975  opacity: 1;3976}39773978/* Tag input */3979.peach-tag-input-wrap {3980  border-bottom: 1px solid var(--peach-t3);3981}39823983.peach-tag-suggestions {3984  display: flex;3985  flex-wrap: wrap;3986  gap: 4px;3987  padding: 6px 0;3988}39893990.peach-tag-suggestion {3991  padding: 2px 8px;3992  border-radius: 999px;3993  border: 1px solid var(--peach-t3);3994  background: var(--peach-s2);3995  color: var(--peach-t1);3996  font-family: "IBM Plex Mono", monospace;3997  font-size: 10px;3998  cursor: pointer;3999  transition: border-color 80ms ease, background 80ms ease;4000}40014002.peach-tag-suggestion:hover {4003  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4004  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4005}40064007/* Tag filter strip */4008.peach-tag-filter-strip {4009  border-bottom: 1px solid var(--peach-t3);4010  flex-shrink: 0;4011}40124013.peach-tag-filter-chip {4014  display: inline-flex;4015  align-items: center;4016  padding: 4px 10px;4017  border-radius: 999px;4018  border: 1px solid var(--peach-t3);4019  background: transparent;4020  color: var(--peach-t2);4021  font-family: "IBM Plex Mono", monospace;4022  font-size: 9px;4023  letter-spacing: 0.06em;4024  text-transform: uppercase;4025  cursor: pointer;4026  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4027  white-space: nowrap;4028}40294030.peach-tag-filter-chip:hover {4031  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4032  color: var(--peach-t1);4033}40344035.peach-tag-filter-chip.is-selected {4036  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4037  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4038  color: rgba(240, 232, 216, 0.9);4039}40404041/* ─────────────────────────────────────────────────────────────────────────4042   v1.4.12 additions4043   ─────────────────────────────────────────────────────────────────────── */40444045/* Sort bar */4046.peach-sort-bar {4047  display: flex;4048  align-items: center;4049  gap: 4px;4050  padding: 5px 12px;4051  border-bottom: 1px solid var(--peach-t3);4052  flex-shrink: 0;4053  overflow-x: auto;4054  scrollbar-width: none;4055}40564057.peach-sort-btn {4058  padding: 2px 9px;4059  border-radius: 999px;4060  border: 1px solid transparent;4061  background: transparent;4062  color: var(--peach-t2);4063  font-family: "IBM Plex Mono", monospace;4064  font-size: 9px;4065  letter-spacing: 0.07em;4066  text-transform: uppercase;4067  cursor: pointer;4068  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4069  white-space: nowrap;4070}40714072.peach-sort-btn:hover {4073  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4074  color: var(--peach-t1);4075}40764077.peach-sort-btn.is-active {4078  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4079  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4080  color: rgba(240, 232, 216, 0.9);4081}40824083.peach-sort-domain-hint {4084  margin-left: auto;4085  font-family: "IBM Plex Mono", monospace;4086  font-size: 9px;4087  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4088  white-space: nowrap;4089  overflow: hidden;4090  text-overflow: ellipsis;4091  max-width: 110px;4092}40934094/* Tab-match badge on entry rows */4095.peach-tab-match-badge {4096  display: inline-block;4097  width: 6px;4098  height: 6px;4099  border-radius: 50%;4100  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4101  margin-left: 5px;4102  vertical-align: middle;4103  flex-shrink: 0;4104  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4105}41064107.peach-entry-row.is-tab-match {4108  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4109  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4110}41114112.peach-entry-row.is-tab-match:hover {4113  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4114}41154116/* Entry list stagger entrance */4117@keyframes peach-entry-fadein {4118  from { opacity: 0; transform: translateY(4px); }4119  to   { opacity: 1; transform: translateY(0); }4120}41214122.peach-vault-list .peach-entry-row {4123  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4124  content-visibility: auto;4125  contain-intrinsic-size: auto 44px;4126}41274128/* Button press micro-interaction */4129.peach-btn:active {4130  transform: scale(0.95);4131  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4132}41334134.peach-sort-btn:active,4135.peach-tag-filter-chip:active {4136  transform: scale(0.93);4137  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4138}41394140/* Password strength bar (Lock view + shared) */4141.peach-password-strength {4142  display: flex;4143  align-items: center;4144  gap: 8px;4145  margin-top: 6px;4146}41474148.peach-strength-bar {4149  flex: 1;4150  height: 3px;4151  border-radius: 2px;4152  background: var(--peach-t3);4153  overflow: hidden;4154}41554156.peach-strength-fill {4157  height: 100%;4158  border-radius: 2px;4159  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4160              background 300ms ease;4161}41624163.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4164.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4165.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4166.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }41674168.peach-strength-label {4169  font-family: "IBM Plex Mono", monospace;4170  font-style: italic;4171  font-size: 9px;4172  font-weight: 300;4173  letter-spacing: 0.06em;4174  color: var(--peach-t2);4175  min-width: 36px;4176  text-align: right;4177}41784179.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4180.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4181.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4182.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }41834184/* Duress form */4185.peach-duress-status {4186  padding: 2px 8px;4187  border-radius: 999px;4188  border: 1px solid var(--peach-t3);4189  font-family: "IBM Plex Mono", monospace;4190  font-size: 9px;4191  letter-spacing: 0.07em;4192  text-transform: uppercase;4193  color: var(--peach-t2);4194  flex-shrink: 0;4195}41964197.peach-duress-status.is-active {4198  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4199  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4200  color: rgba(240, 232, 216, 0.85);4201}42024203.peach-duress-form {4204  padding: 8px 0 4px;4205  display: flex;4206  flex-direction: column;4207  gap: 6px;4208}42094210.peach-duress-form .peach-label {4211  margin-top: 4px;4212}42134214.peach-duress-actions {4215  display: flex;4216  gap: 6px;4217  align-items: center;4218  margin-top: 4px;4219}42204221.peach-duress-actions .peach-btn:first-child {4222  margin-right: auto;4223}42244225/* Improved overlay spring entrance */4226.peach-overlay-view.ov-enter-up {4227  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4228}42294230@keyframes ov-enter-up-spring {4231  from { opacity: 0; transform: translateY(16px) scale(0.98); }4232  to   { opacity: 1; transform: translateY(0) scale(1); }4233}42344235.peach-overlay-view.ov-enter-right {4236  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4237}42384239@keyframes ov-enter-right-spring {4240  from { opacity: 0; transform: translateX(18px) scale(0.98); }4241  to   { opacity: 1; transform: translateX(0) scale(1); }4242}42434244/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4245/* Used when CJKImportView or MainImportView renders during onboarding4246   (no vault yet). Animates like a lock-screen transition. */4247.peach-lock-view {4248  position: absolute;4249  inset: 0;4250  display: flex;4251  flex-direction: column;4252  background:4253    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4254    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4255    var(--peach-bg);4256  z-index: 2;4257  overflow: hidden;4258  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4259}42604261.peach-lock-view-header {4262  display: flex;4263  align-items: center;4264  justify-content: space-between;4265  padding: 16px 18px 12px;4266  flex-shrink: 0;4267}42684269/* ───────── Settings: auto-lock select ───────── */4270.peach-settings-select {4271  font-family: "IBM Plex Mono", monospace;4272  font-size: 11px;4273  background: transparent;4274  border: 1px solid var(--peach-t3);4275  border-radius: 4px;4276  color: var(--peach-t1);4277  padding: 3px 6px;4278  cursor: pointer;4279  outline: none;4280}4281.peach-settings-select:focus {4282  border-color: var(--peach-accent);4283}42844285/* ───────── Duress status pill (new polished) ───────── */4286.peach-duress-status-pill {4287  font-family: "IBM Plex Mono", monospace;4288  font-size: 9px;4289  text-transform: uppercase;4290  letter-spacing: 0.12em;4291  padding: 2px 8px;4292  border-radius: 12px;4293  background: var(--peach-t3);4294  color: var(--peach-t2);4295  flex-shrink: 0;4296}4297.peach-duress-status-pill.is-active {4298  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4299  color: var(--peach-accent);4300}43014302/* ───────── Entry advanced disclosure (canary) ───────── */4303.peach-entry-advanced {4304  margin-top: 12px;4305  border-top: 1px solid var(--peach-t3);4306  padding-top: 10px;4307  position: relative;4308  z-index: 1;4309}4310.peach-entry-advanced-toggle {4311  display: flex;4312  align-items: center;4313  justify-content: space-between;4314  width: 100%;4315  background: transparent;4316  border: none;4317  cursor: pointer;4318  padding: 0;4319  color: var(--peach-t2);4320}4321.peach-canary-section {4322  margin-top: 10px;4323  display: grid;4324  gap: 6px;4325}43264327/* ───────── Import: merge/replace radio choices ───────── */4328.peach-import-choice {4329  display: flex;4330  align-items: flex-start;4331  gap: 10px;4332  padding: 8px 10px;4333  border: 1px solid var(--peach-t3);4334  border-radius: 10px;4335  cursor: pointer;4336  margin-bottom: 6px;4337  transition: border-color 120ms ease, background 120ms ease;4338}4339.peach-import-choice:hover {4340  border-color: var(--peach-accent);4341}4342.peach-import-choice input[type="radio"] {4343  margin-top: 3px;4344  accent-color: var(--peach-accent);4345  flex-shrink: 0;4346}4347.peach-import-choice-main {4348  display: flex;4349  flex-direction: column;4350  gap: 2px;4351  min-width: 0;4352}4353.peach-import-choice-label {4354  font-size: 12px;4355  color: var(--peach-t0);4356}4357.peach-import-choice-sub {4358  font-size: 11px;4359  color: var(--peach-t2);4360  line-height: 1.5;4361}43624363/* ───────── Export: success confirmation strip ───────── */4364.peach-export-success {4365  display: flex;4366  align-items: flex-start;4367  gap: 10px;4368  padding: 12px;4369  border-radius: 12px;4370  border: 1px solid rgba(150, 175, 110, 0.3);4371  background: rgba(150, 175, 110, 0.08);4372  color: var(--peach-t0);4373  font-size: 12px;4374  line-height: 1.55;4375}4376.peach-export-success-check {4377  color: rgba(150, 175, 110, 0.9);4378  font-size: 14px;4379  flex-shrink: 0;4380}43814382/* ── Trash view ──────────────────────────────────────────────────────── */4383.peach-trash-entry-row {4384  display: flex;4385  align-items: center;4386  justify-content: space-between;4387  gap: 8px;4388  padding: 8px 0;4389  border-bottom: 1px solid var(--peach-t3);4390}4391.peach-trash-entry-row:last-child { border-bottom: none; }4392.peach-trash-entry-info {4393  flex: 1;4394  min-width: 0;4395  display: flex;4396  flex-direction: column;4397  gap: 2px;4398}4399.peach-trash-entry-title {4400  font-size: 12px;4401  color: var(--peach-t1);4402  overflow: hidden;4403  text-overflow: ellipsis;4404  white-space: nowrap;4405}4406.peach-trash-entry-meta {4407  font-family: var(--font-mono);4408  font-size: 9px;4409  color: var(--peach-t2);4410  letter-spacing: 0.06em;4411}4412.peach-trash-entry-actions {4413  display: flex;4414  align-items: center;4415  gap: 4px;4416  flex-shrink: 0;4417}44184419/* ── Settings shortcuts grid ─────────────────────────────────────────── */4420.peach-shortcuts-grid {4421  display: grid;4422  grid-template-columns: auto 1fr;4423  gap: 6px 12px;4424  align-items: center;4425  padding: 4px 0;4426}4427.peach-shortcut-key {4428  font-family: var(--font-mono);4429  font-size: 10px;4430  color: var(--peach-t0);4431  background: var(--peach-t3);4432  border-radius: 4px;4433  padding: 2px 6px;4434  white-space: nowrap;4435  text-align: center;4436}4437.peach-shortcut-desc {4438  font-size: 11px;4439  color: var(--peach-t1);4440}44414442/* ── Sort bar trash button ───────────────────────────────────────────── */4443.peach-sort-trash-btn {4444  display: flex;4445  align-items: center;4446  justify-content: center;4447  padding: 3px 5px;4448  background: transparent;4449  border: none;4450  cursor: pointer;4451  color: var(--peach-t2);4452  border-radius: 4px;4453  transition: color 140ms ease, background 140ms ease;4454}4455.peach-sort-trash-btn:hover {4456  color: var(--peach-t1);4457  background: var(--peach-t3);4458}4459.peach-sort-trash-btn.is-active {4460  color: var(--peach-accent);4461}44624463/* Accent color picker */4464.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4465.peach-accent-picker {4466  display: flex;4467  flex-wrap: wrap;4468  gap: 7px;4469  padding: 2px 0;4470}4471.peach-accent-swatch {4472  width: 22px;4473  height: 22px;4474  border-radius: 50%;4475  border: 2px solid transparent;4476  cursor: pointer;4477  padding: 0;4478  transition: transform 100ms;4479  outline-offset: 2px;4480}4481.peach-accent-swatch:hover { transform: scale(1.15); }4482.peach-accent-swatch.is-active {4483  border-color: var(--peach-t0);4484  transform: scale(1.1);4485}44864487/* ── Card entry styles ───────────────────────────────────────── */4488.peach-card-number {4489  font-family: var(--peach-mono);4490  letter-spacing: 0.08em;4491}44924493.peach-card-network-badge {4494  font-size: 10px;4495  padding: 1px 5px;4496  border-radius: 4px;4497  border: 0.5px solid var(--peach-border);4498  color: var(--peach-text-dim);4499  margin-left: 6px;4500  vertical-align: middle;4501}45024503.peach-card-expiry-row {4504  display: flex;4505  align-items: center;4506  gap: 8px;4507}45084509.peach-card-expiry-sep {4510  color: var(--peach-text-dim);4511}