popup.css

104.0 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/* Quiet inline "+ add X" link in the entry detail body */616.peach-entry-add-link {617  align-self: flex-start;618  margin-top: 8px;619}620621/* Additional URLs editor revealed by clicking the URL field */622.peach-additional-urls {623  display: flex;624  flex-direction: column;625  gap: 6px;626  margin-top: 8px;627}628.peach-additional-urls-label {629  font-size: 9px;630  letter-spacing: 0.1em;631  text-transform: uppercase;632  color: var(--peach-t2);633  margin-bottom: 2px;634}635.peach-additional-url-row {636  display: flex;637  align-items: center;638  gap: 6px;639}640.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }641.peach-additional-url-remove {642  background: transparent;643  border: 1px solid var(--peach-t3);644  color: var(--peach-t2);645  width: 22px;646  height: 22px;647  border-radius: 4px;648  cursor: pointer;649  font-size: 14px;650  line-height: 1;651  display: inline-flex;652  align-items: center;653  justify-content: center;654  flex-shrink: 0;655  transition: color 120ms ease, border-color 120ms ease;656}657.peach-additional-url-remove:hover:not(:disabled) {658  color: var(--peach-accent);659  border-color: var(--peach-border-accent);660}661.peach-additional-urls-add { align-self: flex-start; }662663/* Delete row */664.peach-entry-delete-row {665  display: flex;666  align-items: center;667  gap: 8px;668  padding-top: 18px;669  margin-top: 8px;670  border-top: 1px solid var(--peach-t3);671}672.peach-delete-btn {673  font-size: 11px;674  color: var(--peach-t2);675  padding: 4px 0;676}677.peach-delete-confirm-text {678  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;679  font-size: 11px;680  font-style: italic;681  color: var(--peach-t2);682  flex-shrink: 0;683}684685/* TOTP band */686.peach-totp-band {687  border-top: 1px solid var(--peach-t3);688  padding: 12px 20px 14px;689  position: relative;690  display: grid;691  grid-template-columns: 1fr auto;692  gap: 10px;693}694.peach-totp-main {695  min-width: 0;696  cursor: pointer;697  user-select: none;698}699.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }700.peach-totp-code-row {701  display: flex;702  align-items: flex-end;703  gap: 10px;704  min-width: 0;705}706.peach-totp-code {707  margin: 2px 0 0;708  font-family: "Cormorant Garamond", "Times New Roman", serif;709  font-style: italic;710  font-weight: 300;711  font-size: 38px; color: var(--peach-accent);712  line-height: 0.95; min-height: 1em;713  min-width: 0;714}715.peach-totp-code-text {716  display: inline-flex;717  overflow: hidden;718  text-overflow: ellipsis;719  white-space: nowrap;720}721.peach-totp-copy-btn {722  margin-bottom: 2px;723  flex-shrink: 0;724  border-color: transparent;725}726.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }727.peach-totp-countdown {728  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;729  font-size: 22px; color: var(--peach-t1);730}731.peach-totp-ring { transform: rotate(-90deg); }732.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }733.peach-totp-ring-progress {734  fill: none; stroke: var(--peach-accent); stroke-width: 2;735  stroke-linecap: round;736  transition: stroke-dashoffset 1s linear, stroke 500ms ease;737}738/* Search bar */739.peach-search-wrap {740  border-top: 1px solid var(--peach-t3);741  background: var(--peach-s1);742  min-height: 54px; position: relative;743  box-shadow: inset 0 6px 18px transparent;744  transition: box-shadow 700ms ease;745}746.peach-search-wrap::before {747  content: "";748  position: absolute;749  left: 0;750  top: 0;751  height: 2px;752  width: var(--peach-totp-progress, 0%);753  background: var(--peach-accent);754  opacity: 0;755  transition: width 1s linear, opacity 180ms ease;756  pointer-events: none;757}758.peach-shell[data-totp-active="true"] .peach-search-wrap::before {759  opacity: 0.9;760}761.peach-shell[data-totp-active="true"] .peach-search-wrap {762  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);763}764765@keyframes peach-totp-code-flare {766  0%   { filter: brightness(1); }767  25%  { filter: brightness(1.3); }768  100% { filter: brightness(1); }769}770.peach-totp-code.is-hot {771  animation: peach-totp-code-flare 3000ms ease-in-out both;772}773.peach-search-bar {774  min-height: 54px;775  display: grid;776  grid-template-columns: auto minmax(0, 1fr) auto;777  align-items: center;778  gap: 8px; padding: 0 9px 0 12px;779}780.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }781.peach-search-input {782  border: 0; background: transparent; color: var(--peach-t0);783  font-family: "Cormorant Garamond", "Times New Roman", serif;784  font-style: italic; font-size: 18px;785  outline: none; width: 100%; min-width: 0; padding: 0;786  caret-color: var(--peach-accent);787}788.peach-search-input::placeholder { color: var(--peach-t2); }789.peach-search-meta {790  display: grid;791  grid-auto-flow: column;792  align-items: center;793  justify-content: end;794  gap: 6px;795  min-width: max-content;796}797.peach-search-counter {798  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;799  font-size: 10px; color: var(--peach-t2);800  display: inline-flex;801  align-items: center;802  line-height: 1;803}804.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }805806/* Buttons */807.peach-btn {808  border: 1px solid transparent; border-radius: 12px;809  background: transparent; color: var(--peach-t0);810  font-family: Inter, system-ui, sans-serif;811  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;812  cursor: pointer;813  transition:814    background-color var(--peach-dur-80) var(--peach-curve-arrival),815    color var(--peach-dur-80) var(--peach-curve-arrival),816    border-color var(--peach-dur-150) var(--peach-curve-arrival);817}818.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }819.peach-btn:disabled {820  opacity: 0.45;821  cursor: not-allowed;822}823.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }824.peach-btn--md { min-height: 38px; }825.peach-btn--accent {826  background: var(--peach-accent);827  color: rgba(0,0,0,0.78);828  box-shadow:829    0 1px 0 rgba(255,255,255,0.15) inset,830    0 0 0 1px color-mix(in srgb, var(--peach-accent) 42%, transparent),831    0 4px 22px var(--peach-glow),832    0 0 32px color-mix(in srgb, var(--peach-accent) 20%, transparent);833}834.peach-btn--accent:hover:not(:disabled) {835  background: var(--peach-accent);836  filter: brightness(1.12) saturate(1.07);837  box-shadow:838    0 1px 0 rgba(255,255,255,0.21) inset,839    0 0 0 1px color-mix(in srgb, var(--peach-accent) 50%, transparent),840    0 6px 28px color-mix(in srgb, var(--peach-accent) 42%, transparent),841    0 0 40px color-mix(in srgb, var(--peach-accent) 27%, transparent);842}843.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }844.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }845.peach-icon-btn {846  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;847  display: inline-flex; align-items: center; justify-content: center;848}849850.peach-btn:focus-visible {851  outline: none;852  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);853}854855/* Lock button */856.peach-lock-icon { transform-origin: center; }857.peach-lock-btn.is-locking { color: var(--peach-accent); }858.peach-lock-btn.is-locking .peach-lock-icon {859  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);860}861862/* Copy button */863.peach-copy-btn {864  position: relative; overflow: hidden;865  color: var(--peach-t2); border-color: var(--peach-t3);866}867.peach-copy-icon {868  display: inline-flex; align-items: center; justify-content: center;869  position: relative; z-index: 1;870}871.peach-copy-icon-svg { display: block; }872.peach-copy-sheen {873  position: absolute; inset: 0;874  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%);875  opacity: 0; transform: scaleX(0.15); transform-origin: left center;876}877.peach-copy-btn.is-copied {878  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;879  box-shadow:880    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),881    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),882    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);883}884.peach-copy-btn.is-copied .peach-copy-icon {885  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;886}887.peach-copy-btn.is-copied .peach-copy-sheen {888  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;889}890.peach-copy-btn.is-retreat {891  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;892}893.peach-copy-btn.is-retreat .peach-copy-sheen {894  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;895}896.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }897.peach-copy-drain-bar {898  display: block; width: 100%; height: 100%;899  background: var(--peach-accent); opacity: 0.7;900  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;901}902903/* Unlock screen elements */904.peach-unlock-headline {905  margin: 2px 0 0;906  font-family: "Cormorant Garamond", "Times New Roman", serif;907  font-size: 52px; line-height: 0.95;908  font-style: italic; font-weight: 400;909}910.peach-subline {911  margin: 0;912  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;913  font-size: 10px; color: var(--peach-t2); font-style: italic;914}915.peach-subline--lock {916  max-width: 248px;917  line-height: 1.5;918}919.peach-underline-input {920  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);921  padding: 6px 0; background: transparent; color: var(--peach-t0);922  outline: none;923  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;924  font-size: 13px;925  caret-color: var(--peach-accent);926}927.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }928.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }929.peach-hint {930  margin: 0;931  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;932  font-size: 10px; color: var(--peach-t2);933}934.peach-unlock-footer {935  margin-top: 4px; display: flex; align-items: center; gap: 7px;936  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;937  font-size: 10px; color: var(--peach-t2);938}939.peach-unlock-footer--lock {940  padding-top: 2px;941}942943/* Breach badge */944.peach-breach-badge {945  display: flex;946  position: relative;947  z-index: 1;948  align-items: center;949  gap: 7px;950  font-size: 9px;951  color: var(--peach-breach);952  padding: 5px 10px;953  margin-bottom: 4px;954  border-radius: 8px;955  background: rgba(220, 80, 60, 0.07);956  border: 1px solid rgba(220, 80, 60, 0.18);957  letter-spacing: 0.04em;958}959960.peach-breach-action {961  margin-left: auto;962  font-size: 10px;963  padding: 3px 8px;964}965966.peach-password-value.is-breached {967  color: rgba(220, 80, 60, 0.75);968  border-bottom: 1px solid rgba(220, 80, 60, 0.22);969}970971/* ── Overlay views ─────────────────────────────────────────────────── */972.peach-overlay-view {973  position: absolute;974  inset: 0;975  display: flex;976  flex-direction: column;977  background:978    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),979    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),980    var(--peach-bg);981  z-index: 2;982  overflow: hidden;983  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;984}985@keyframes overlay-in {986  from { opacity: 0; transform: translateY(8px); }987  to   { opacity: 1; transform: translateY(0); }988}989.peach-overlay-view.ov-enter-up {990  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;991}992.peach-overlay-view.ov-exit-up {993  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;994}995.peach-overlay-view.ov-enter-right {996  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;997}998.peach-overlay-view.ov-exit-right {999  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1000}10011002@keyframes ov-enter-up {1003  from { opacity: 0; transform: translateY(18px); }1004  to   { opacity: 1; transform: translateY(0); }1005}1006@keyframes ov-exit-up {1007  from { opacity: 1; transform: translateY(0); }1008  to   { opacity: 0; transform: translateY(-12px); }1009}1010@keyframes ov-enter-right {1011  from { opacity: 0; transform: translateX(20px); }1012  to   { opacity: 1; transform: translateX(0); }1013}1014@keyframes ov-exit-right {1015  from { opacity: 1; transform: translateX(0); }1016  to   { opacity: 0; transform: translateX(20px); }1017}10181019/* Overlay shared header */1020.peach-overlay-header {1021  padding: 10px 12px;1022  display: flex;1023  align-items: center;1024  gap: 8px;1025  border-bottom: 1px solid var(--peach-t3);1026  flex-shrink: 0;1027}1028.peach-overlay-title {1029  font-family: "IBM Plex Mono", monospace;1030  font-size: 9px;1031  text-transform: uppercase;1032  letter-spacing: 0.18em;1033  color: var(--peach-t2);1034  flex: 1;1035  text-align: center;1036}10371038.peach-overlay-card {1039  background: var(--peach-s1);1040  border: 1px solid var(--peach-t3);1041  border-radius: 12px;1042  overflow: hidden;1043  width: 100%;1044}10451046.peach-onboarding-alt-actions {1047  display: flex;1048  flex-direction: column;1049  gap: 4px;1050  padding: 0;1051}10521053.peach-settings-copy {1054  margin: 0 0 10px;1055  font-size: 11px;1056  line-height: 1.5;1057  color: var(--peach-t2);1058}10591060.peach-settings-copy strong {1061  color: var(--peach-t0);1062}10631064.peach-settings-copy--spacious {1065  margin-bottom: 12px;1066}10671068.peach-settings-copy--result {1069  color: var(--peach-accent);1070  font-size: 13px;1071  text-align: center;1072  padding: 8px 0;1073}10741075.peach-settings-copy--danger {1076  color: var(--peach-breach);1077}10781079.peach-settings-copy--success {1080  color: var(--peach-accent);1081}10821083.peach-inline-feedback {1084  font-size: 11px;1085  margin: 10px 0 0;1086}10871088.peach-inline-feedback--ok {1089  color: var(--peach-accent);1090}10911092.peach-inline-feedback--error {1093  color: var(--peach-breach);1094}10951096.peach-inline-feedback--muted {1097  color: var(--peach-t2);1098  font-size: 10px;1099  margin: 4px 0;1100}11011102.peach-inline-feedback--spaced {1103  margin-top: 12px;1104}11051106.peach-settings-actions--row {1107  display: flex;1108  gap: 6px;1109}11101111.peach-settings-actions--end {1112  margin-top: 14px;1113  justify-content: flex-end;1114}11151116.peach-settings-stack {1117  display: flex;1118  flex-direction: column;1119  gap: 6px;1120}11211122.peach-settings-stack--tight {1123  gap: 4px;1124}11251126.peach-settings-stack--spacious {1127  gap: 8px;1128}11291130.peach-settings-input {1131  width: 100%;1132  box-sizing: border-box;1133  padding: 8px 10px;1134  background: var(--peach-s2);1135  border: 1px solid var(--peach-t3);1136  border-radius: 6px;1137  color: var(--peach-t0);1138  font-family: var(--font-ui);1139  font-size: 12px;1140  outline: none;1141  transition: border-color 120ms ease;1142}11431144.peach-settings-input:focus {1145  border-color: var(--peach-accent);1146}11471148.peach-settings-input[type="password"] {1149  font-family: var(--font-mono);1150  letter-spacing: 0.04em;1151}11521153.peach-phrase-textarea {1154  width: 100%;1155  box-sizing: border-box;1156  min-height: 120px;1157  padding: 10px 12px;1158  background: var(--peach-s2);1159  border: 1px solid var(--peach-t3);1160  border-radius: 6px;1161  color: var(--peach-t0);1162  font-size: 12px;1163  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1164  line-height: 1.5;1165  resize: vertical;1166  outline: none;1167}11681169.peach-phrase-textarea:focus {1170  border-color: var(--peach-accent);1171}11721173.peach-hidden-file-input {1174  display: none;1175}11761177.peach-checkbox-note {1178  display: flex;1179  align-items: flex-start;1180  gap: 8px;1181  font-size: 11px;1182  color: var(--peach-t1);1183  cursor: pointer;1184  margin: 12px 0;1185}11861187.peach-checkbox-note input {1188  margin-top: 1px;1189}11901191.peach-cjk-phrase-box {1192  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1193  font-size: 13px;1194  line-height: 1.5;1195  background: var(--peach-s2);1196  border: 1px solid var(--peach-t3);1197  border-radius: 6px;1198  padding: 10px 12px;1199  margin: 0 0 10px;1200  word-break: break-all;1201  white-space: pre-wrap;1202  max-height: 220px;1203  overflow-y: auto;1204  color: var(--peach-t0);1205  user-select: all;1206  scrollbar-width: none;1207  -ms-overflow-style: none;1208}1209.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }12101211.peach-danger-notice {1212  background: rgba(220, 80, 60, 0.08);1213  border: 1px solid rgba(220, 80, 60, 0.2);1214  border-radius: 6px;1215  padding: 9px 11px;1216  font-size: 11px;1217  color: var(--peach-t1);1218  line-height: 1.5;1219}12201221.peach-info-notice {1222  font-size: 11px;1223  color: var(--peach-t2);1224  line-height: 1.5;1225  background: rgba(240, 232, 216, 0.04);1226  border: 1px solid var(--peach-t3);1227  border-radius: 6px;1228  padding: 8px 10px;1229}12301231.peach-strength-row {1232  display: flex;1233  align-items: center;1234  gap: 8px;1235  margin-bottom: 10px;1236}12371238.peach-strength-track {1239  flex: 1;1240  height: 4px;1241  background: var(--peach-s2);1242  border-radius: 2px;1243  overflow: hidden;1244}12451246.peach-strength-fill {1247  height: 100%;1248  border-radius: 2px;1249  transition: width 120ms ease, background 120ms ease;1250}12511252/* ── Type selector tabs ── */1253.peach-type-tabs {1254  display: flex;1255  gap: 0;1256  background: var(--peach-t4);1257  border-radius: 8px;1258  padding: 3px;1259}12601261.peach-type-tab {1262  flex: 1;1263  display: flex;1264  align-items: center;1265  justify-content: center;1266  gap: 6px;1267  padding: 6px 10px;1268  border-radius: 6px;1269  border: none;1270  background: transparent;1271  cursor: pointer;1272  font-family: Inter, system-ui, sans-serif;1273  font-size: 11px;1274  font-weight: 400;1275  letter-spacing: 0.04em;1276  color: var(--peach-t1);1277  transition: background 150ms ease, color 150ms ease;1278}12791280.peach-type-tab.is-active {1281  background: var(--peach-s2);1282  color: var(--peach-t0);1283  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1284}12851286.peach-type-tab:not(.is-active):hover {1287  color: var(--peach-t0);1288}12891290.peach-type-tab svg {1291  opacity: 0.7;1292  flex-shrink: 0;1293}12941295.peach-type-tab.is-active svg {1296  opacity: 1;1297}12981299/* ── List view ───────────────────────────────────────────────────────── */1300.peach-list-top {1301  padding: 0 10px;1302  min-height: 46px;1303  display: flex;1304  align-items: center;1305  gap: 6px;1306  border-bottom: 1px solid var(--peach-t3);1307  flex-shrink: 0;1308  background: var(--peach-s1);1309}1310.peach-vault-list {1311  flex: 1;1312  overflow-y: auto;1313  scrollbar-width: none;1314}1315.peach-vault-list::-webkit-scrollbar { display: none; }13161317/* Scrollbar — vault list */1318.peach-vault-list {1319  scrollbar-width: thin;1320  scrollbar-color: var(--peach-t3) transparent;1321}13221323.peach-vault-list::-webkit-scrollbar {1324  width: 3px;1325}13261327.peach-vault-list::-webkit-scrollbar-thumb {1328  background: var(--peach-t3);1329  border-radius: 2px;1330}13311332.peach-entry-row {1333  width: 100%;1334  display: flex;1335  align-items: center;1336  gap: 10px;1337  padding: 9px 16px;1338  background: transparent;1339  border: none;1340  border-bottom: 1px solid var(--peach-t3);1341  cursor: pointer;1342  color: inherit;1343  text-align: left;1344  transition: background 80ms ease;1345}1346.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1347.peach-entry-row:last-child { border-bottom: none; }1348.peach-entry-row.is-active {1349  box-shadow: inset 2px 0 0 var(--peach-accent);1350  background: rgba(240,232,216,0.03);1351}1352.peach-entry-row:focus-visible {1353  outline: none;1354  box-shadow: 0 0 0 1px var(--peach-border-accent);1355  background: rgba(240,232,216,0.03);1356}1357.peach-entry-row-icon {1358  width: 26px; height: 26px;1359  border-radius: 7px;1360  border: 1px solid var(--peach-t3);1361  display: flex; align-items: center; justify-content: center;1362  color: var(--peach-t2);1363  flex-shrink: 0;1364}1365.peach-entry-row-icon.is-breach {1366  border-color: rgba(220,80,60,0.3);1367  color: rgba(220,80,60,0.7);1368}1369.peach-entry-row-info { flex: 1; min-width: 0; }1370.peach-entry-row-name {1371  display: block;1372  font-family: "Cormorant Garamond", serif;1373  font-size: 17px;1374  font-style: italic;1375  font-weight: 400;1376  color: var(--peach-t0);1377  line-height: 1.2;1378  white-space: nowrap;1379  overflow: hidden;1380  text-overflow: ellipsis;1381}1382.peach-entry-row-meta {1383  display: block;1384  font-family: "IBM Plex Mono", monospace;1385  font-size: 9px;1386  color: var(--peach-t2);1387  margin-top: 1px;1388  letter-spacing: 0.05em;1389}1390.peach-entry-row-dot {1391  width: 5px; height: 5px;1392  border-radius: 50%;1393  background: rgba(220,80,60,0.7);1394  flex-shrink: 0;1395}1396.peach-new-entry-row {1397  display: flex;1398  align-items: center;1399  justify-content: center;1400  gap: 6px;1401  width: 100%;1402  padding: 11px;1403  background: transparent;1404  border: none;1405  border-top: 1px solid var(--peach-t3);1406  color: var(--peach-t2);1407  font-family: "IBM Plex Mono", monospace;1408  font-size: 9px;1409  text-transform: uppercase;1410  letter-spacing: 0.14em;1411  cursor: pointer;1412  flex-shrink: 0;1413  transition: color 120ms ease, background 120ms ease;1414}1415.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14161417/* ── Multi-select mode ─────────────────────────────────────────────── */14181419/* Select-mode trigger button in sort bar — same shape as trash btn */1420.peach-sort-select-btn {1421  display: flex;1422  align-items: center;1423  justify-content: center;1424  padding: 3px 5px;1425  background: transparent;1426  border: none;1427  cursor: pointer;1428  color: var(--peach-t2);1429  border-radius: 4px;1430  transition: color 140ms ease, background 140ms ease;1431}1432.peach-sort-select-btn:hover {1433  color: var(--peach-t1);1434  background: var(--peach-t3);1435}14361437/* Sort bar in select mode */1438.peach-select-cancel-btn {1439  background: transparent;1440  border: none;1441  padding: 0 4px;1442  cursor: pointer;1443  font-family: "IBM Plex Mono", monospace;1444  font-size: 9px;1445  letter-spacing: 0.12em;1446  text-transform: uppercase;1447  color: var(--peach-t2);1448  transition: color 140ms ease;1449  flex-shrink: 0;1450}1451.peach-select-cancel-btn:hover { color: var(--peach-t0); }14521453.peach-select-count-label {1454  flex: 1;1455  text-align: center;1456  font-family: "IBM Plex Mono", monospace;1457  font-size: 9px;1458  letter-spacing: 0.14em;1459  text-transform: uppercase;1460  color: var(--peach-t1);1461}14621463.peach-select-all-btn {1464  background: transparent;1465  border: none;1466  padding: 0 4px;1467  cursor: pointer;1468  font-family: "IBM Plex Mono", monospace;1469  font-size: 9px;1470  letter-spacing: 0.12em;1471  text-transform: uppercase;1472  color: var(--peach-t2);1473  transition: color 140ms ease;1474  flex-shrink: 0;1475}1476.peach-select-all-btn:hover { color: var(--peach-accent); }14771478/* List in select mode */1479.peach-vault-list.is-selecting .peach-entry-row {1480  cursor: default;1481}1482.peach-vault-list.is-selecting .peach-entry-row:hover {1483  background: rgba(240,232,216,0.02);1484}1485.peach-vault-list.is-selecting .peach-entry-row.is-selected {1486  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1487}1488.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1489  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1490}14911492/* Select indicator circles in icon slot */1493.peach-entry-row-icon.is-select-icon {1494  color: var(--peach-t2);1495}1496.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1497  color: var(--peach-accent);1498}14991500/* Delete action bar at bottom (replaces new-entry row) */1501.peach-select-action-bar {1502  display: flex;1503  align-items: center;1504  justify-content: center;1505  gap: 7px;1506  width: 100%;1507  padding: 11px;1508  background: transparent;1509  border: none;1510  border-top: 1px solid var(--peach-t3);1511  color: var(--peach-t1);1512  font-family: "IBM Plex Mono", monospace;1513  font-size: 9px;1514  text-transform: uppercase;1515  letter-spacing: 0.14em;1516  cursor: pointer;1517  flex-shrink: 0;1518  transition: color 120ms ease, background 120ms ease;1519}1520.peach-select-action-bar:not(:disabled):hover {1521  color: var(--peach-t0);1522  background: rgba(220,80,60,0.06);1523}1524.peach-select-action-bar:not(:disabled):hover svg {1525  stroke: rgba(220,80,60,0.8);1526}1527.peach-select-action-bar:disabled,1528.peach-select-action-bar.is-empty {1529  color: var(--peach-t2);1530  cursor: default;1531  opacity: 0.5;1532}1533.peach-search-counter-list {1534  white-space: nowrap;1535  flex-shrink: 0;1536}1537.peach-list-empty {1538  min-height: 180px;1539  display: grid;1540  place-items: center;1541  color: var(--peach-t2);1542  font-family: "IBM Plex Mono", monospace;1543  font-size: 11px;1544}15451546/* ── Settings view ───────────────────────────────────────────────────── */1547.peach-settings-body {1548  flex: 1;1549  overflow-y: auto;1550  min-height: 0;1551  display: flex;1552  flex-direction: column;1553  padding: 2px 0 10px;1554}1555.peach-settings-group {1556  padding: 9px 16px 11px;1557  border-bottom: 1px solid var(--peach-t3);1558}1559.peach-export-intro {1560  padding-bottom: 8px;1561}1562.peach-export-card {1563  display: grid;1564  gap: 10px;1565}1566.peach-export-card--primary {1567  background:1568    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1569}1570.peach-export-card-head {1571  display: flex;1572  align-items: center;1573  justify-content: space-between;1574  gap: 10px;1575}1576.peach-export-card-copy {1577  margin: 0;1578  font-size: 12px;1579  line-height: 1.55;1580  color: var(--peach-t1);1581}1582.peach-export-note {1583  margin: 0;1584  font-size: 10px;1585  line-height: 1.5;1586  color: var(--peach-t2);1587}1588.peach-export-pill {1589  display: inline-flex;1590  align-items: center;1591  padding: 4px 8px;1592  border-radius: 999px;1593  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1594  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1595  color: var(--peach-accent);1596  font-family: "IBM Plex Mono", monospace;1597  font-size: 8px;1598  letter-spacing: 0.12em;1599  text-transform: uppercase;1600  white-space: nowrap;1601}1602.peach-export-pill--danger {1603  border-color: rgba(220,80,60,0.22);1604  background: rgba(220,80,60,0.08);1605  color: var(--peach-breach);1606}1607.peach-export-password-stack {1608  gap: 8px;1609}1610.peach-settings-label {1611  margin: 0 0 6px;1612  font-family: "IBM Plex Mono", monospace;1613  font-size: 8px;1614  text-transform: uppercase;1615  letter-spacing: 0.18em;1616  color: var(--peach-t2);1617}1618.peach-settings-row {1619  display: flex;1620  align-items: center;1621  justify-content: space-between;1622  gap: 12px;1623  min-height: 34px;1624  padding: 6px 0;1625  font-size: 13px;1626  color: var(--peach-t1);1627}1628.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1629.peach-settings-value {1630  font-family: "IBM Plex Mono", monospace;1631  font-size: 10px;1632  color: var(--peach-t2);1633}16341635.peach-settings-value--status {1636  display: flex;1637  align-items: center;1638  gap: 6px;1639}16401641.peach-settings-link {1642  font-family: "IBM Plex Mono", monospace;1643  font-size: 10px;1644  color: var(--peach-accent);1645  text-decoration: none;1646  cursor: pointer;1647}1648.peach-settings-link:hover {1649  text-decoration: underline;1650}16511652.peach-settings-row--stack {1653  flex-direction: column;1654  align-items: stretch;1655  gap: 6px;1656}16571658.peach-settings-row--top {1659  align-items: flex-start;1660}16611662.peach-settings-row-main {1663  display: flex;1664  flex-direction: column;1665  gap: 4px;1666  flex: 1;1667}1668.peach-toggle {1669  width: 28px; height: 16px;1670  border-radius: 999px;1671  background: var(--peach-t3);1672  border: 1px solid var(--peach-t3);1673  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1674  flex-shrink: 0;1675  transition: background 200ms ease, border-color 200ms ease;1676  cursor: pointer;1677}1678.peach-toggle.is-on {1679  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1680  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1681}1682.peach-toggle-knob {1683  width: 10px; height: 10px;1684  border-radius: 50%;1685  background: var(--peach-t2);1686  flex-shrink: 0;1687  transform: translateX(0px);1688  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1689}1690.peach-toggle.is-on .peach-toggle-knob {1691  background: var(--peach-accent);1692  transform: translateX(12px);1693}1694.peach-settings-footer {1695  display: flex;1696  align-items: center;1697  gap: 8px;1698  margin-top: auto;1699  padding: 14px 16px 8px;1700  font-family: "IBM Plex Mono", monospace;1701  font-size: 9px;1702  color: var(--peach-t2);1703}17041705.peach-passkey-badge {1706  margin-left: 8px;1707  font-size: 10px;1708  letter-spacing: 0.06em;1709  text-transform: uppercase;1710  color: var(--peach-t2);1711  font-family: var(--font-ui);1712  vertical-align: middle;1713}17141715.peach-passkey-delete-btn {1716  color: var(--peach-breach);1717  border-color: rgba(229, 85, 85, 0.25);1718}17191720.peach-passkey-delete-confirm {1721  display: flex;1722  align-items: center;1723  gap: 8px;1724  padding: 8px 10px;1725  background: rgba(229, 85, 85, 0.06);1726  border: 1px solid rgba(229, 85, 85, 0.2);1727  border-radius: 6px;1728}17291730.peach-passkey-delete-confirm-copy {1731  flex: 1;1732  font-size: 11px;1733  color: var(--peach-t1);1734}17351736.peach-passkey-delete-btn--confirm {1737  color: var(--peach-breach);1738  border-color: rgba(229, 85, 85, 0.4);1739}17401741.peach-passkey-activity {1742  flex-direction: column;1743  align-items: flex-start;1744  gap: 4px;1745}17461747.peach-passkey-meta {1748  font-size: 11px;1749  color: var(--peach-t2);1750}17511752.peach-passkey-actions {1753  position: relative;1754  z-index: 1;1755  margin-top: 14px;1756  display: flex;1757  flex-direction: column;1758  gap: 8px;1759}17601761.peach-passkey-approval {1762  display: flex;1763  flex-direction: column;1764  align-items: center;1765  padding: 28px 22px 22px;1766  gap: 14px;1767  text-align: center;1768}17691770.peach-passkey-approval-icon {1771  width: 46px;1772  height: 46px;1773  border-radius: 12px;1774  background: var(--peach-s2);1775  border: 1px solid var(--peach-t3);1776  display: flex;1777  align-items: center;1778  justify-content: center;1779  flex-shrink: 0;1780  color: var(--peach-accent);1781}17821783.peach-passkey-approval-icon img,1784.peach-passkey-approval-icon svg {1785  width: 28px;1786  height: 28px;1787  border-radius: 6px;1788}17891790.peach-passkey-approval-rp {1791  font-family: var(--font-ui);1792  font-size: 12px;1793  color: var(--peach-t2);1794  letter-spacing: 0.03em;1795}17961797.peach-passkey-approval-action {1798  font-family: var(--font-display);1799  font-style: italic;1800  font-weight: 300;1801  font-size: 26px;1802  color: var(--peach-t0);1803  line-height: 1;1804}18051806.peach-passkey-approval-user {1807  font-family: var(--font-mono);1808  font-size: 11px;1809  color: var(--peach-t1);1810  background: var(--peach-s2);1811  border: 1px solid var(--peach-t3);1812  border-radius: 4px;1813  padding: 3px 8px;1814}18151816.peach-passkey-approval-notice {1817  font-size: 10px;1818  color: var(--peach-t2);1819  line-height: 1.5;1820  max-width: 220px;1821}18221823.peach-passkey-approval-actions {1824  display: flex;1825  gap: 8px;1826  width: 100%;1827  margin-top: 6px;1828}18291830.peach-passkey-approval-actions .peach-btn {1831  flex: 1;1832}18331834/* ── Inline generator drawer ── */1835.peach-generator-drawer {1836  display: grid;1837  grid-template-rows: 0fr;1838  transition: grid-template-rows 320ms var(--peach-curve-arrival);1839  overflow: hidden;1840}1841.peach-generator-drawer.is-open {1842  grid-template-rows: 1fr;1843}1844.peach-generator-drawer-inner {1845  min-height: 0;1846  overflow: hidden;1847}1848.peach-generator-drawer-content {1849  border-top: 1px solid var(--peach-t3);1850  padding: 8px 0 4px;1851  display: flex;1852  flex-direction: column;1853  gap: 8px;1854}18551856/* ── Compact generator (inside entry edit) ── */1857.peach-generator-drawer-content--compact {1858  border-top: 1px solid var(--peach-t3);1859  padding: 8px 0 2px;1860  gap: 7px;1861}1862.peach-pwgen-compact-display-row {1863  display: flex;1864  align-items: center;1865  gap: 6px;1866}1867.peach-pwgen-compact-output {1868  flex: 1;1869  min-width: 0;1870  font-family: "IBM Plex Mono", monospace;1871  font-size: 11px;1872  font-weight: 400;1873  letter-spacing: 0.04em;1874  color: var(--peach-t0);1875  background: rgba(240, 232, 216, 0.04);1876  border: 1px solid var(--peach-t3);1877  border-radius: 5px;1878  padding: 5px 8px;1879  word-break: break-all;1880  line-height: 1.5;1881}1882.peach-pwgen-compact-controls {1883  display: flex;1884  align-items: center;1885  gap: 6px;1886}1887.peach-pwgen-compact-slider {1888  flex: 1;1889  min-width: 0;1890  height: 2px !important;1891}1892.peach-pwgen-compact-controls .peach-pwgen-len-num {1893  flex-shrink: 0;1894  min-width: 18px;1895  text-align: right;1896}1897.peach-pwgen-compact-pills {1898  display: flex;1899  gap: 3px;1900  flex-shrink: 0;1901}1902.peach-pwgen-compact-pills .peach-pwgen-pill {1903  padding: 2px 7px;1904  font-size: 8px;1905}1906.peach-pwgen-compact-use {1907  flex-shrink: 0;1908  font-size: 10px !important;1909  padding: 3px 9px !important;1910  min-height: 22px !important;1911  border-radius: 5px !important;1912}19131914/* ── Password edit row (input + eye toggle side-by-side) ── */1915.peach-password-edit-row {1916  display: flex;1917  align-items: center;1918  gap: 6px;1919}1920.peach-password-edit-row .peach-inline-input {1921  flex: 1;1922  min-width: 0;1923}19241925/* ── Generate toggle link ── */1926.peach-generate-toggle-link {1927  display: inline-flex;1928  align-items: center;1929  gap: 5px;1930  background: none;1931  border: none;1932  padding: 0;1933  cursor: pointer;1934  font-family: "IBM Plex Mono", monospace;1935  font-size: 10px;1936  color: var(--peach-t2);1937  letter-spacing: 0.04em;1938  transition: color 120ms ease;1939  align-self: flex-start;1940}1941.peach-generate-toggle-link:hover {1942  color: var(--peach-accent);1943}19441945/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1946.peach-entry-body {1947  flex: 1;1948  overflow-y: auto;1949  overflow-x: hidden;1950  scrollbar-width: none;1951  -ms-overflow-style: none;1952  overscroll-behavior: contain;1953  display: grid;1954  gap: 10px;1955  align-content: start;1956  padding: 10px 20px 14px;1957  min-width: 0;1958  min-height: 0;1959}1960.peach-entry-body::-webkit-scrollbar { display: none; }19611962/* Type-toggle pills + inline note toolbar */1963.peach-new-type-row {1964  display: flex;1965  align-items: center;1966  gap: 6px;1967  margin-bottom: 2px;1968}1969.peach-new-type-btn {1970  background: transparent;1971  border: 1px solid var(--peach-t3);1972  border-radius: 12px;1973  padding: 3px 10px;1974  font-family: "IBM Plex Mono", monospace;1975  font-size: 9px;1976  letter-spacing: 0.12em;1977  text-transform: uppercase;1978  color: var(--peach-t2);1979  cursor: pointer;1980  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1981}1982.peach-new-type-btn.is-active {1983  color: var(--peach-t0);1984  border-color: var(--peach-accent);1985  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1986}1987.peach-new-type-btn:not(.is-active):hover {1988  color: var(--peach-t1);1989  border-color: var(--peach-t2);1990}19911992/* Editable title */1993.peach-new-title-wrap { margin: 0 0 2px; }1994.peach-new-title-input {1995  background: transparent;1996  border: none;1997  outline: none;1998  width: 100%;1999  color: var(--peach-t0);2000  font-family: "Cormorant Garamond", Georgia, serif;2001  font-style: italic;2002  font-weight: 400;2003  font-size: 40px;2004  line-height: 0.95;2005  caret-color: var(--peach-accent);2006}2007.peach-new-title-input::placeholder { color: var(--peach-t2); }20082009/* Editable domain field */2010.peach-domain-value--edit {2011  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2012  font-size: 10px;2013  font-style: italic;2014  letter-spacing: 0.12em;2015  color: var(--peach-t1);2016  background: transparent;2017  border: none;2018  border-bottom: 1px solid var(--peach-t3);2019  outline: none;2020  width: 100%;2021  padding: 2px 0;2022  caret-color: var(--peach-accent);2023  transition: border-color 140ms ease, color 140ms ease;2024}2025.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2026.peach-domain-value--edit:focus {2027  border-bottom-color: rgba(240, 232, 216, 0.28);2028  color: var(--peach-t0);2029}20302031/* Editable field values (username, password, totp) */2032.peach-field-value--edit {2033  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2034  font-size: 13px;2035  color: var(--peach-t0);2036  background: transparent;2037  border: none;2038  border-bottom: 1px solid var(--peach-t3);2039  outline: none;2040  flex: 1;2041  min-width: 0;2042  padding: 3px 0;2043  caret-color: var(--peach-accent);2044  transition: border-color 140ms ease, color 140ms ease;2045}2046.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2047.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2048.peach-field-value--edit:focus {2049  border-bottom-color: rgba(240, 232, 216, 0.28);2050  color: var(--peach-t0);2051}20522053/* "+ add optional field" links */2054.peach-entry-add-links {2055  display: flex;2056  gap: 12px;2057  flex-wrap: wrap;2058  margin-top: -2px;2059}2060.peach-add-field-link {2061  background: transparent;2062  border: none;2063  padding: 0;2064  cursor: pointer;2065  font-family: "IBM Plex Mono", monospace;2066  font-size: 9px;2067  letter-spacing: 0.1em;2068  text-transform: uppercase;2069  color: var(--peach-t2);2070  transition: color 140ms ease;2071}2072.peach-add-field-link:hover { color: var(--peach-accent); }20732074/* ── New entry form (legacy classes) ────────────────────────────────── */2075.peach-new-body {2076  flex: 1;2077  overflow-y: auto;2078  padding: 10px 20px 14px;2079}2080.peach-new-name-input {2081  background: transparent;2082  border: none;2083  outline: none;2084  width: 100%;2085  color: var(--peach-t0);2086  font-family: "Cormorant Garamond", Georgia, serif;2087  font-style: italic;2088  font-weight: 400;2089  font-size: 40px;2090  line-height: 0.95;2091  caret-color: var(--peach-accent);2092}2093.peach-new-name-input::placeholder { color: var(--peach-t2); }2094.peach-new-field-input {2095  background: transparent;2096  border: none;2097  outline: none;2098  flex: 1;2099  min-width: 0;2100  caret-color: var(--peach-accent);2101}2102.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }21032104/* ── Canary card ── */2105.peach-canary-card {2106  border: 1px solid rgba(217, 160, 48, 0.2);2107  background: rgba(217, 160, 48, 0.03);2108  border-radius: 8px;2109  padding: 12px;2110}21112112.peach-canary-settings-header {2113  display: flex;2114  align-items: center;2115  justify-content: space-between;2116  cursor: pointer;2117  user-select: none;2118}21192120.peach-canary-card .peach-label {2121  color: rgba(217, 160, 48, 0.85);2122}21232124.peach-canary-card .peach-new-field-input {2125  border-color: rgba(217, 160, 48, 0.25);2126}21272128.peach-canary-card .peach-new-field-input:focus {2129  border-color: rgba(217, 160, 48, 0.5);2130}21312132.peach-canary-body {2133  margin-top: 12px;2134  display: flex;2135  flex-direction: column;2136  gap: 10px;2137}21382139.peach-canary-explainer {2140  display: flex;2141  gap: 10px;2142  padding: 10px 12px;2143  border-radius: 10px;2144  background: rgba(217, 160, 48, 0.06);2145  border: 1px solid rgba(217, 160, 48, 0.22);2146  margin-bottom: 4px;2147}21482149.peach-canary-explainer-icon {2150  font-size: 16px;2151  flex-shrink: 0;2152  line-height: 1.2;2153}21542155.peach-canary-explainer-title {2156  font-family: var(--font-ui);2157  font-size: 11px;2158  font-weight: 500;2159  color: rgba(217, 160, 48, 0.9);2160  margin: 0 0 3px;2161}21622163.peach-canary-explainer-copy {2164  font-family: var(--font-ui);2165  font-size: 10px;2166  color: var(--peach-t2);2167  line-height: 1.55;2168  margin: 0;2169}21702171.peach-canary-hint {2172  font-size: 10px;2173  color: var(--peach-t2);2174  font-family: Inter, system-ui, sans-serif;2175  line-height: 1.5;2176  margin-top: 4px;2177}21782179.peach-canary-actions-row {2180  display: flex;2181  align-items: center;2182  gap: 8px;2183}21842185.peach-canary-test-btn {2186  border-color: rgba(217, 160, 48, 0.3);2187  color: rgba(217, 160, 48, 0.85);2188}21892190.peach-canary-test-result {2191  font-size: 10px;2192  font-family: Inter, system-ui, sans-serif;2193}21942195.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2196.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }21972198.peach-canary-badge {2199  display: flex;2200  position: relative;2201  z-index: 1;2202  align-items: center;2203  gap: 5px;2204  padding: 4px 10px;2205  background: rgba(217, 160, 48, 0.12);2206  border: 1px solid rgba(217, 160, 48, 0.35);2207  border-radius: 6px;2208  margin-bottom: 6px;2209  width: fit-content;2210}22112212.peach-canary-badge-label {2213  font-size: 10px;2214  letter-spacing: 0.06em;2215  color: rgba(217, 160, 48, 0.9);2216  font-family: var(--font-ui);2217  text-transform: uppercase;2218}22192220.peach-canary-badge-icon {2221  font-size: 11px;2222}22232224.peach-canary-suppress-row {2225  display: flex;2226  align-items: center;2227  gap: 8px;2228  padding: 6px 10px;2229  background: rgba(217, 160, 48, 0.08);2230  border-radius: 6px;2231  margin-bottom: 8px;2232}22332234.peach-canary-suppress-label {2235  font-size: 11px;2236  color: rgba(217, 160, 48, 0.85);2237  cursor: pointer;2238  font-family: var(--font-ui);2239  letter-spacing: 0.04em;2240}22412242.peach-regen-panel {2243  position: relative;2244  z-index: 1;2245  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2246  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2247  border-radius: 8px;2248  padding: 12px;2249  margin-bottom: 8px;2250}22512252.peach-regen-panel-header {2253  display: flex;2254  align-items: center;2255  justify-content: space-between;2256  margin-bottom: 10px;2257}22582259.peach-regen-panel-title {2260  font-size: 11px;2261  font-weight: 600;2262  letter-spacing: 0.06em;2263  text-transform: uppercase;2264  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2265}22662267.peach-regen-output {2268  background: rgba(0, 0, 0, 0.2);2269  border-radius: 6px;2270  padding: 10px;2271  margin-bottom: 10px;2272  font-family: var(--font-mono);2273  font-size: 13px;2274  word-break: break-all;2275  color: var(--peach-t1);2276}22772278.peach-regen-actions {2279  display: flex;2280  gap: 6px;2281}22822283.peach-regen-actions--spaced {2284  margin-bottom: 8px;2285}22862287.peach-regen-action-grow {2288  flex: 1;2289}22902291.peach-regen-copy-btn {2292  padding: 0 8px;2293}22942295.peach-regen-success {2296  position: relative;2297  z-index: 1;2298  background: rgba(40, 180, 80, 0.1);2299  border: 1px solid rgba(40, 180, 80, 0.3);2300  border-radius: 8px;2301  padding: 10px 12px;2302  margin-bottom: 8px;2303  display: flex;2304  align-items: center;2305  gap: 8px;2306  font-size: 11px;2307  color: rgba(40, 180, 80, 0.9);2308}23092310/* ── Note editor overlay ── */2311.peach-note-editor {2312  position: absolute;2313  inset: 0;2314  z-index: 200;2315  display: flex;2316  flex-direction: column;2317  background:2318    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2319    var(--peach-bg);2320  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2321}23222323.peach-note-editor-header {2324  display: flex;2325  align-items: center;2326  gap: 10px;2327  padding: 14px 16px 10px;2328  border-bottom: 1px solid var(--peach-t3);2329  flex-shrink: 0;2330}23312332.peach-note-editor-back {2333  background: transparent;2334  border: none;2335  cursor: pointer;2336  color: var(--peach-t2);2337  padding: 4px 6px;2338  border-radius: 6px;2339  display: flex;2340  align-items: center;2341  transition: color 120ms ease, background 120ms ease;2342  flex-shrink: 0;2343}2344.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }23452346.peach-note-editor-label {2347  flex: 1;2348  font-family: "Cormorant Garamond", "Times New Roman", serif;2349  font-style: italic;2350  font-size: 15px;2351  color: var(--peach-t1);2352  letter-spacing: 0.02em;2353}23542355.peach-note-editor-save-btn {2356  background: transparent;2357  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2358  border-radius: 8px;2359  color: var(--peach-accent);2360  font-family: "IBM Plex Mono", monospace;2361  font-size: 10px;2362  letter-spacing: 0.06em;2363  text-transform: uppercase;2364  padding: 3px 10px;2365  cursor: pointer;2366  transition: background 120ms ease, border-color 120ms ease;2367}2368.peach-note-editor-save-btn:hover:not(:disabled) {2369  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2370  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2371}2372.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }23732374.peach-note-toolbar {2375  display: flex;2376  align-items: center;2377  gap: 3px;2378  padding: 6px 14px 5px;2379  border-bottom: 1px solid var(--peach-t3);2380  flex-shrink: 0;2381}23822383.peach-note-tool-btn {2384  background: transparent;2385  border: 1px solid transparent;2386  border-radius: 5px;2387  color: var(--peach-t2);2388  font-family: "IBM Plex Mono", monospace;2389  font-size: 10px;2390  letter-spacing: 0.04em;2391  padding: 2px 8px;2392  cursor: pointer;2393  line-height: 1.6;2394  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2395}2396.peach-note-tool-btn:hover {2397  background: var(--peach-t4);2398  color: var(--peach-t0);2399  border-color: var(--peach-t3);2400}24012402.peach-note-tool-icon {2403  padding: 3px 7px;2404  display: inline-flex;2405  align-items: center;2406  justify-content: center;2407}24082409.peach-note-tool-divider {2410  width: 1px;2411  height: 14px;2412  background: var(--peach-t3);2413  margin: 0 4px;2414  flex-shrink: 0;2415}24162417.peach-note-editor-body {2418  flex: 1;2419  overflow-y: auto;2420  padding: 16px 20px 20px;2421  outline: none;2422  font-family: "Cormorant Garamond", "Times New Roman", serif;2423  font-size: 16px;2424  line-height: 1.75;2425  color: var(--peach-t0);2426  scrollbar-width: none;2427  word-break: break-word;2428}2429.peach-note-editor-body:empty::before {2430  content: "write your note…";2431  color: var(--peach-t3);2432  font-style: italic;2433  pointer-events: none;2434}24352436/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2437.peach-note-editor-inline {2438  display: flex;2439  flex-direction: column;2440  flex: 1;2441  min-height: 0;2442}2443.peach-note-editor-body--inline {2444  flex: 1;2445  min-height: 0;2446  font-size: 15px;2447  padding: 10px 20px 14px;2448}24492450/* Full-width toolbar row inside the body (Add.tsx note type).2451   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2452.peach-note-toolbar-body {2453  display: flex;2454  align-items: center;2455  gap: 3px;2456  padding: 5px 20px 4px;2457  margin: 2px -20px 0;2458  border-bottom: 1px solid var(--peach-t3);2459  flex-shrink: 0;2460}24612462/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2463   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2464   and .peach-note-tool-divider button-level styles. */2465.peach-note-toolbar-inline {2466  display: flex;2467  align-items: center;2468  gap: 3px;2469  margin-left: auto;2470  padding-left: 10px;2471  border-left: 1px solid var(--peach-t3);2472  min-height: 22px;2473}24742475/* Entry.tsx toolbar row (no tabs, toolbar only) */2476.peach-entry-note-toolbar-row {2477  display: flex;2478  align-items: center;2479  margin: 4px 0 6px;2480  position: relative;2481  z-index: 1;2482}2483.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2484  border-left: none;2485  padding-left: 0;2486  margin-left: 0;2487}24882489/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2490.peach-note-body {2491  display: flex;2492  flex-direction: column;2493  flex: 1;2494  min-height: 0;2495  margin: 4px 0 0;2496}2497.peach-entry-body--new .peach-note-body {2498  margin: 8px -20px 0;2499}25002501/* Add.tsx body is a grid by default; swap to a flex column when a note is2502   active so the note body can stretch and pin the tags row to the bottom. */2503.peach-entry-body--new:has(.peach-note-body) {2504  display: flex;2505  flex-direction: column;2506}25072508/* Rich content element styles (editor + display) */2509.peach-note-editor-body h2,2510.peach-note-content h2 {2511  font-family: "Cormorant Garamond", serif;2512  font-size: 20px;2513  font-weight: 600;2514  font-style: italic;2515  color: var(--peach-t0);2516  margin: 6px 0 2px;2517  line-height: 1.3;2518}2519.peach-note-editor-body ul,2520.peach-note-content ul {2521  padding-left: 18px;2522  margin: 3px 0;2523  list-style: disc;2524}2525.peach-note-editor-body ol,2526.peach-note-content ol {2527  padding-left: 18px;2528  margin: 3px 0;2529  list-style: decimal;2530}2531.peach-note-editor-body li,2532.peach-note-content li { margin: 2px 0; }2533.peach-note-editor-body hr,2534.peach-note-content hr {2535  border: none;2536  border-top: 1px solid var(--peach-t3);2537  margin: 10px 0;2538}25392540/* font size elements from execCommand */2541.peach-note-editor-body font[size="1"],2542.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2543.peach-note-editor-body font[size="2"],2544.peach-note-content font[size="2"] { font-size: 13px; }2545.peach-note-editor-body font[size="3"],2546.peach-note-content font[size="3"] { font-size: 16px; }2547.peach-note-editor-body font[size="4"],2548.peach-note-content font[size="4"] { font-size: 20px; }2549.peach-note-editor-body font[size="5"],2550.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }25512552/* bold / italic inside the editor and note display */2553.peach-note-editor-body b, .peach-note-editor-body strong,2554.peach-note-content b, .peach-note-content strong { font-weight: 700; }2555.peach-note-editor-body em, .peach-note-editor-body i,2556.peach-note-content em, .peach-note-content i { font-style: italic; }25572558/* note display — rendered HTML, no pre-wrap */2559.peach-note-content {2560  overflow: auto;2561  max-height: 340px;2562  word-break: break-word;2563}25642565/* ── Note textarea ── */2566.peach-note-textarea {2567  width: 100%;2568  min-height: 180px;2569  max-height: 280px;2570  resize: vertical;2571  background: var(--peach-t4);2572  border: 1px solid var(--peach-t3);2573  border-radius: 8px;2574  padding: 10px 12px;2575  font-family: "IBM Plex Mono", monospace;2576  font-size: 12px;2577  line-height: 1.7;2578  color: var(--peach-t1);2579  outline: none;2580  transition: border-color 150ms ease;2581}25822583.peach-note-textarea:focus {2584  border-color: var(--peach-t2);2585}25862587.peach-note-char-count {2588  font-family: "IBM Plex Mono", monospace;2589  font-size: 9px;2590  color: var(--peach-t3);2591  text-align: right;2592  margin-top: 4px;2593  letter-spacing: 0.1em;2594}25952596/* ── Field input baseline ── */2597.peach-new-field-input {2598  width: 100%;2599  background: transparent;2600  border: none;2601  border-bottom: 1px solid var(--peach-t3);2602  padding: 4px 0;2603  color: var(--peach-t1);2604  font-family: "IBM Plex Mono", monospace;2605  font-size: 13px;2606  outline: none;2607  transition: border-color 150ms ease;2608}26092610.peach-new-field-input:focus {2611  border-bottom-color: var(--peach-t0);2612  color: var(--peach-t0);2613}26142615.peach-new-name-input {2616  width: 100%;2617  background: transparent;2618  border: none;2619  border-bottom: 1px solid var(--peach-t3);2620  padding: 6px 0;2621  font-family: "Cormorant Garamond", Georgia, serif;2622  font-style: italic;2623  font-size: 28px;2624  color: var(--peach-t0);2625  outline: none;2626  transition: border-color 150ms ease;2627}26282629.peach-new-name-input:focus {2630  border-bottom-color: var(--peach-t1);2631}26322633.peach-new-name-input::placeholder {2634  color: var(--peach-t2);2635  font-style: italic;2636}26372638.peach-new-field-input::placeholder {2639  color: var(--peach-t3);2640}26412642/* ── Demo entrance animation ── */2643#hd-shell {2644  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2645}2646@keyframes hd-shell-enter {2647  from { opacity: 0; transform: scale(0.96) translateY(16px); }2648  to   { opacity: 1; transform: scale(1) translateY(0); }2649}26502651/* ── Keyframes ── */2652@keyframes peach-char-enter {2653  from { opacity: 0; transform: translateY(0.22em); }2654  to   { opacity: 1; transform: translateY(0); }2655}2656@keyframes peach-content-enter {2657  from { opacity: 0.96; transform: translateY(4px); }2658  to   { opacity: 1; transform: translateY(0); }2659}2660@keyframes peach-content-exit {2661  from { opacity: 1; transform: translateY(0); }2662  to   { opacity: 0.92; transform: translateY(-3px); }2663}2664@keyframes peach-screen-enter {2665  from { opacity: 0; transform: translateY(14px); }2666  to   { opacity: 1; transform: translateY(0); }2667}2668@keyframes peach-shell-fade-in {2669  from { opacity: 0; }2670  to   { opacity: 1; }2671}2672@keyframes peach-veil-in {2673  from { opacity: 0; }2674  to   { opacity: 1; }2675}2676@keyframes peach-lock-settle {2677  0%   { transform: scale(0.9); }2678  65%  { transform: scale(1.08); }2679  100% { transform: scale(1); }2680}2681@keyframes peach-copy-confirm {2682  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2683  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); }2684}2685@keyframes peach-copy-retreat {2686  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); }2687  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2688}2689@keyframes peach-copy-flood {2690  from { opacity: 0; transform: scaleX(0.15); }2691  to   { opacity: 1; transform: scaleX(1); }2692}2693@keyframes peach-copy-icon-settle {2694  from  { transform: scale(0.84); }2695  70%   { transform: scale(1.08); }2696  to    { transform: scale(1); }2697}2698@keyframes peach-copy-sheen-retreat {2699  from { opacity: 1; transform: scaleX(1); }2700  to   { opacity: 0; transform: scaleX(0.15); }2701}2702@keyframes peach-copy-drain {2703  from { width: 100%; }2704  to   { width: 0; }2705}2706@keyframes peach-shake {2707  0%, 100% { transform: translateX(0); }2708  20%      { transform: translateX(-6px); }2709  40%      { transform: translateX(6px); }2710  60%      { transform: translateX(-4px); }2711  80%      { transform: translateX(4px); }2712}27132714@keyframes pip-pulse {2715  0% { transform: scale(1); }2716  40% { transform: scale(2.2); }2717  100% { transform: scale(1); }2718}271927202721/* ── Password generator ── */2722.peach-pwgen-body {2723  flex: 1; overflow-y: auto;2724  display: flex; flex-direction: column;2725}2726.peach-policy-badge {2727  display: flex; align-items: center;2728  padding: 6px 20px 0;2729  font-size: 10px; font-family: Inter, sans-serif;2730  color: var(--peach-t2); letter-spacing: 0.04em;2731}2732.peach-pwgen-display {2733  padding: 14px 20px 12px;2734  border-bottom: 1px solid var(--peach-t3);2735  display: flex; align-items: flex-start; gap: 10px;2736}2737.peach-pwgen-display-row {2738  display: flex;2739  align-items: flex-start;2740  gap: 8px;2741  padding-bottom: 8px;2742  border-bottom: 1px solid var(--peach-t3);2743}2744.peach-pwgen-output {2745  flex: 1; min-width: 0; margin: 0;2746  font-family: "IBM Plex Mono", monospace;2747  font-size: 13px; color: var(--peach-t0);2748  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2749  white-space: normal;2750  padding: 10px 12px;2751  background: var(--peach-t4);2752  border-radius: 6px;2753  min-height: 36px;2754}2755.peach-pwgen-output-display {2756  flex: 1;2757  min-width: 0;2758  margin: 0;2759  font-family: "Cormorant Garamond", "Times New Roman", serif;2760  font-style: italic;2761  font-weight: 300;2762  font-size: 32px;2763  line-height: 1.05;2764  color: var(--peach-t0);2765  word-break: break-all;2766  overflow-wrap: break-word;2767  white-space: normal;2768  letter-spacing: 0.02em;2769}2770.peach-pwgen-display-actions {2771  display: flex;2772  flex-direction: column;2773  gap: 4px;2774  flex-shrink: 0;2775  margin-top: 2px;2776}2777.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2778.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2779.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2780.peach-pwgen-len-num {2781  font-family: "IBM Plex Mono", monospace;2782  font-size: 12px; color: var(--peach-accent);2783}2784.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2785.peach-pwgen-toggles { display: flex; flex-direction: column; }2786.peach-pwgen-charset-pills {2787  display: flex;2788  gap: 6px;2789  flex-wrap: wrap;2790}2791.peach-pwgen-pill {2792  padding: 4px 11px;2793  border-radius: 999px;2794  border: 1px solid var(--peach-t3);2795  background: transparent;2796  color: var(--peach-t2);2797  font-family: "IBM Plex Mono", monospace;2798  font-size: 9px;2799  letter-spacing: 0.08em;2800  cursor: pointer;2801  transition: all 150ms ease;2802}2803.peach-pwgen-pill.is-on {2804  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2805  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2806  color: var(--peach-accent);2807}2808.peach-pwgen-pill:not(.is-on):hover {2809  color: var(--peach-t1);2810  border-color: var(--peach-t2);2811}2812.peach-pwgen-use-btn {2813  width: 100%;2814  min-height: 34px;2815  border-radius: 8px;2816  margin-top: 2px;2817}2818.peach-pwgen-toggle-row {2819  display: flex; align-items: center; justify-content: space-between;2820  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2821}2822.peach-pwgen-toggle-row:last-child { border-bottom: none; }2823.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }28242825.peach-screen-prelock {2826  z-index: 10;2827}28282829.prelock-form {2830  display: grid;2831  gap: 12px;2832}28332834/* Peach popup should not expose native scrollbars on internal panels. */2835.peach-settings-body,2836.peach-new-body,2837.peach-pwgen-body,2838.lock-screen,2839.peach-import-preview {2840  scrollbar-width: none;2841  -ms-overflow-style: none;2842  overscroll-behavior: contain;2843}2844.peach-settings-body::-webkit-scrollbar,2845.peach-new-body::-webkit-scrollbar,2846.peach-pwgen-body::-webkit-scrollbar,2847.lock-screen::-webkit-scrollbar,2848.peach-import-preview::-webkit-scrollbar {2849  width: 0;2850  height: 0;2851  display: none;2852}28532854.lock-screen {2855  height: 100%;2856  min-height: 100%;2857  overflow-y: auto;2858  padding: 18px 18px 16px;2859  gap: 14px;2860  grid-template-rows: auto auto auto 1fr auto;2861  align-content: stretch;2862  position: relative;2863  isolation: isolate;2864}2865.peach-screen.lock-screen--vault-stage {2866  display: flex;2867  flex-direction: column;2868  justify-content: flex-start;2869  gap: 18px;2870  padding: 20px 18px 18px;2871  overflow: hidden;2872}2873.peach-screen.lock-screen--vault-stage .peach-lock-panel {2874  margin-top: auto;2875}2876.lock-screen--onboarding {2877  display: flex;2878  flex-direction: column;2879  gap: 12px;2880  justify-content: flex-start;2881}28822883.lock-screen::before {2884  content: "";2885  position: absolute;2886  inset: 12px 18px auto auto;2887  width: 160px;2888  height: 160px;2889  border-radius: 999px;2890  background:2891    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%);2892  filter: blur(6px);2893  opacity: 0.7;2894  pointer-events: none;2895  z-index: 0;2896}28972898.lock-screen-header {2899  display: flex;2900  align-items: center;2901  justify-content: space-between;2902  position: relative;2903  z-index: 1;2904}29052906.lock-password-input.shake {2907  animation: peach-shake 300ms ease-in-out;2908}29092910.peach-hint-error {2911  color: rgba(220, 80, 60, 0.92);2912}29132914.peach-onboarding-headline {2915  margin: 0;2916  font-family: "Cormorant Garamond", "Times New Roman", serif;2917  font-size: 35px;2918  line-height: 0.88;2919  font-style: italic;2920  font-weight: 400;2921  max-width: 252px;2922}29232924.peach-lock-copy {2925  display: grid;2926  gap: 8px;2927  position: relative;2928  z-index: 1;2929}29302931.peach-lock-copy--onboarding {2932  gap: 10px;2933}29342935.peach-lock-hero {2936  position: relative;2937  z-index: 1;2938  display: grid;2939  gap: 8px;2940  min-height: 0;2941  padding: 4px 2px 0;2942  border: none;2943  border-radius: 0;2944  background: transparent;2945  box-shadow: none;2946}2947.peach-lock-hero-art {2948  position: absolute;2949  right: -8px;2950  top: -6px;2951  width: 120px;2952  height: 120px;2953  display: flex;2954  align-items: center;2955  justify-content: center;2956  pointer-events: none;2957  opacity: 0.12;2958  filter: saturate(0.9);2959}2960.peach-lock-hero-mark {2961  width: 100%;2962  height: 100%;2963}2964/* Peach body stays brand-peach across every accent — we don't want a2965   green or blue peach when sage/sky is selected. Leaf + stem keep the2966   sage tint because a real peach has a sage leaf. */2967.peach-lock-hero-mark path:nth-child(2),2968.peach-lock-hero-mark path:nth-child(3) {2969  stroke: rgba(123, 144, 96, 0.88);2970  fill: rgba(123, 144, 96, 0.88);2971}2972.peach-lock-hero > *:not(.peach-lock-hero-art) {2973  position: relative;2974  z-index: 1;2975}29762977.peach-lock-eyebrow {2978  display: inline-flex;2979  align-items: center;2980  width: fit-content;2981  padding: 4px 9px;2982  border-radius: 999px;2983  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);2984  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2985  color: var(--peach-t0);2986  font-family: "IBM Plex Mono", monospace;2987  font-size: 8px;2988  letter-spacing: 0.18em;2989  text-transform: uppercase;2990}29912992.peach-lock-label-row {2993  display: flex;2994  align-items: center;2995  justify-content: space-between;2996  margin-bottom: 0;2997}29982999.peach-lock-reveal-btn {3000  display: inline-flex;3001  align-items: center;3002  gap: 4px;3003  background: none;3004  border: none;3005  cursor: pointer;3006  font-family: "IBM Plex Mono", monospace;3007  font-size: 9px;3008  letter-spacing: 0.06em;3009  color: var(--peach-t2);3010  padding: 2px 0;3011  transition: color 150ms ease;3012}30133014.peach-lock-reveal-btn:hover {3015  color: var(--peach-t1);3016}30173018.peach-lock-warning {3019  color: rgba(220, 80, 60, 0.85) !important;3020  line-height: 1.5;3021}30223023.peach-onboarding-cards {3024  display: grid;3025  gap: 8px;3026  position: relative;3027  z-index: 1;3028}30293030.peach-lock-panel {3031  position: relative;3032  z-index: 1;3033  display: grid;3034  gap: 9px;3035  padding: 14px 16px 15px;3036  border-radius: 18px;3037  border: 1px solid var(--peach-t3);3038  background:3039    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3040  box-shadow:3041    inset 0 1px 0 rgba(240, 232, 216, 0.04),3042    0 12px 28px rgba(0, 0, 0, 0.12);3043}30443045.peach-lock-panel--secondary {3046  gap: 12px;3047}30483049.peach-lock-panel-header {3050  display: flex;3051  align-items: baseline;3052  justify-content: space-between;3053  gap: 12px;3054}30553056.peach-lock-option-grid {3057  display: grid;3058  gap: 10px;3059}30603061.peach-lock-option {3062  width: 100%;3063  display: grid;3064  gap: 6px;3065  padding: 14px 15px;3066  border-radius: 16px;3067  border: 1px solid rgba(240, 232, 216, 0.08);3068  background: rgba(240, 232, 216, 0.02);3069  color: var(--peach-t0);3070  text-align: left;3071  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3072}30733074.peach-lock-option:hover {3075  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3076  background: rgba(240, 232, 216, 0.04);3077  transform: translateY(-1px);3078}30793080.peach-lock-option-title {3081  font-size: 12px;3082  color: var(--peach-t0);3083}30843085.peach-lock-option-copy {3086  font-size: 11px;3087  line-height: 1.55;3088  color: var(--peach-t1);3089}30903091.peach-onboarding-stack {3092  margin-top: 2px;3093}3094.peach-lock-panel-footer {3095  display: grid;3096  gap: 6px;3097  margin-top: 2px;3098  padding-top: 10px;3099  border-top: 1px solid rgba(240, 232, 216, 0.06);3100}31013102/* Restore picker panel — method option cards */3103.peach-lock-panel--restore {3104  gap: 10px;3105}3106.peach-lock-option--history {3107  border-color: rgba(240, 232, 216, 0.06);3108  opacity: 0.85;3109}31103111/* Snapshot restore panel */3112.peach-snapshot-panel {3113  gap: 10px;3114  overflow-y: auto;3115  max-height: 340px;3116}3117.peach-snapshot-list {3118  display: flex;3119  flex-direction: column;3120  gap: 4px;3121}3122.peach-snapshot-row {3123  display: flex;3124  align-items: center;3125  justify-content: space-between;3126  width: 100%;3127  padding: 8px 10px;3128  border-radius: 8px;3129  border: 1px solid rgba(240, 232, 216, 0.07);3130  background: transparent;3131  cursor: pointer;3132  transition: border-color 120ms, background 120ms;3133  text-align: left;3134  gap: 8px;3135}3136.peach-snapshot-row:hover {3137  border-color: rgba(240, 232, 216, 0.14);3138  background: rgba(240, 232, 216, 0.03);3139}3140.peach-snapshot-row.is-selected {3141  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3142  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3143}3144.peach-snapshot-time {3145  font-size: 11.5px;3146  color: var(--peach-t0);3147  flex: 1;3148}3149.peach-snapshot-count {3150  font-family: "IBM Plex Mono", monospace;3151  font-size: 10px;3152  color: var(--peach-t2);3153  flex-shrink: 0;3154}3155.peach-snapshot-confirm {3156  display: flex;3157  flex-direction: column;3158  gap: 8px;3159  padding-top: 10px;3160  border-top: 1px solid rgba(240, 232, 216, 0.06);3161}3162.peach-snapshot-warning {3163  display: flex;3164  align-items: flex-start;3165  gap: 6px;3166  font-size: 10.5px;3167  color: rgba(220, 80, 60, 0.85);3168  line-height: 1.55;3169}3170.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3171.peach-snapshot-confirm-row {3172  display: flex;3173  gap: 6px;3174  align-items: center;3175}3176.peach-snapshot-restore-btn {3177  width: 100%;3178}3179.peach-lock-hero--unlock .peach-lock-hero-art {3180  width: 112px;3181  height: 112px;3182  right: 0;3183  top: 2px;3184  opacity: 0.1;3185}31863187.peach-card {3188  border: 1px solid var(--peach-t3);3189  border-radius: 18px;3190  background:3191    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3192  box-shadow:3193    inset 0 0 0 1px var(--peach-border-accent),3194    inset 0 1px 0 rgba(240, 232, 216, 0.04),3195    0 12px 32px rgba(0, 0, 0, 0.14);3196  overflow: hidden;3197}31983199.peach-card-active {3200  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3201  box-shadow:3202    inset 0 1px 0 rgba(240, 232, 216, 0.05),3203    0 16px 38px rgba(0, 0, 0, 0.18),3204    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3205}32063207.peach-card-disabled {3208  opacity: 0.72;3209}32103211.peach-card-header {3212  width: 100%;3213  padding: 13px 16px 11px;3214  background: transparent;3215  color: var(--peach-t0);3216  display: flex;3217  justify-content: space-between;3218  align-items: center;3219  text-align: left;3220  font-size: 12px;3221}32223223.peach-card-body {3224  padding: 0 16px 16px;3225  display: grid;3226  gap: 9px;3227}32283229.peach-card-tag {3230  color: var(--peach-t2);3231  font-family: "IBM Plex Mono", monospace;3232  font-size: 9px;3233  letter-spacing: 0.12em;3234  text-transform: uppercase;3235}32363237.peach-empty-copy {3238  display: grid;3239  gap: 6px;3240  color: var(--peach-t1);3241  font-size: 13px;3242}32433244.peach-lock-submit {3245  width: 100%;3246  box-shadow:3247    0 1px 0 rgba(255,255,255,0.20) inset,3248    0 0 0 1px color-mix(in srgb, var(--peach-accent) 38%, transparent),3249    0 16px 44px color-mix(in srgb, var(--peach-accent) 38%, transparent),3250    0 0 60px color-mix(in srgb, var(--peach-accent) 20%, transparent);3251}32523253.peach-lock-secondary {3254  width: 100%;3255  border-color: var(--peach-t3);3256  background: rgba(240, 232, 216, 0.02);3257}32583259.peach-lock-secondary:hover {3260  background: rgba(240, 232, 216, 0.04);3261}32623263.peach-lock-note {3264  max-width: none;3265  line-height: 1.55;3266  margin: 0;3267}32683269.peach-overlay-action {3270  font-size: 10px;3271  padding: 4px 8px;3272  letter-spacing: 0.06em;3273  min-width: 44px;3274  text-align: center;3275}32763277.peach-overlay-spacer {3278  width: 32px;3279}32803281.peach-inline-action {3282  flex-shrink: 0;3283  font-size: 9px;3284  letter-spacing: 0.1em;3285  text-transform: uppercase;3286  padding: 4px 7px;3287}3288.peach-password-toggle-btn {3289  display: inline-flex;3290  align-items: center;3291  justify-content: center;3292  min-width: 30px;3293  min-height: 26px;3294  padding: 0 7px;3295  border: 1px solid var(--peach-t3);3296  border-radius: 999px;3297  background: rgba(240, 232, 216, 0.04);3298  color: var(--peach-t2);3299  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3300}3301.peach-password-toggle-btn:hover {3302  border-color: var(--peach-t2);3303  color: var(--peach-t0);3304  background: rgba(240, 232, 216, 0.06);3305}33063307.peach-new-textarea {3308  width: 100%;3309  min-height: 88px;3310  resize: vertical;3311  border: 0;3312  outline: none;3313  background: transparent;3314  color: var(--peach-t1);3315  font-family: "IBM Plex Mono", monospace;3316  font-size: 12px;3317  line-height: 1.65;3318  caret-color: var(--peach-accent);3319}33203321.peach-new-textarea::placeholder {3322  color: var(--peach-t2);3323  opacity: 0.7;3324}33253326.peach-settings-actions {3327  display: grid;3328  gap: 8px;3329}33303331.peach-sync-section-label {3332  font-size: 11px;3333  color: var(--peach-t2);3334  text-transform: uppercase;3335  letter-spacing: 0.05em;3336}33373338.peach-sync-device-row {3339  display: flex;3340  justify-content: space-between;3341  align-items: center;3342  padding: 6px 0;3343  border-bottom: 1px solid var(--peach-t3);3344}33453346.peach-sync-device-info {3347  display: flex;3348  flex-direction: column;3349  gap: 2px;3350}33513352.peach-sync-device-name {3353  font-size: 13px;3354  color: var(--peach-t0);3355}33563357.peach-sync-device-meta {3358  font-size: 11px;3359  color: var(--peach-t2);3360}33613362.peach-sync-status-dot {3363  display: inline-block;3364  width: 8px;3365  height: 8px;3366  border-radius: 50%;3367  vertical-align: middle;3368}33693370.peach-sync-remove-btn {3371  color: var(--peach-breach);3372}33733374.peach-import-preview {3375  margin-bottom: 12px;3376  max-height: 152px;3377  overflow-y: auto;3378  border: 1px solid var(--peach-t3);3379  border-radius: 10px;3380  padding: 8px 10px;3381  display: grid;3382  gap: 8px;3383  background: rgba(240, 232, 216, 0.02);3384}33853386.peach-import-preview-row {3387  display: flex;3388  justify-content: space-between;3389  gap: 10px;3390  font-size: 11px;3391  color: var(--peach-t1);3392}33933394.peach-import-preview-title {3395  color: var(--peach-t0);3396  flex: 1;3397  min-width: 0;3398  overflow: hidden;3399  text-overflow: ellipsis;3400  white-space: nowrap;3401}34023403.peach-import-preview-meta {3404  color: var(--peach-t2);3405  flex-shrink: 0;3406  max-width: 42%;3407  overflow: hidden;3408  text-overflow: ellipsis;3409  white-space: nowrap;3410}34113412.peach-import-preview-more {3413  color: var(--peach-t2);3414  font-size: 10px;3415}34163417.peach-restore-copy {3418  margin: 0;3419  color: var(--peach-t1);3420  font-size: 11px;3421  line-height: 1.6;3422}34233424.peach-restore-warning {3425  padding: 10px 12px;3426  border-radius: 12px;3427  border: 1px solid rgba(220, 80, 60, 0.22);3428  background: rgba(220, 80, 60, 0.08);3429  color: rgba(240, 232, 216, 0.86);3430  font-size: 11px;3431  line-height: 1.55;3432}34333434.peach-provider-chips {3435  display: flex;3436  flex-wrap: wrap;3437  gap: 6px;3438}34393440.peach-provider-chip {3441  display: inline-flex;3442  align-items: center;3443  padding: 5px 8px;3444  border-radius: 999px;3445  border: 1px solid var(--peach-t3);3446  background: rgba(240, 232, 216, 0.02);3447  color: var(--peach-t1);3448  font-family: "IBM Plex Mono", monospace;3449  font-size: 8px;3450  letter-spacing: 0.08em;3451  text-transform: uppercase;3452}34533454.peach-restore-file,3455.peach-restore-input {3456  width: 100%;3457  border-radius: 10px;3458  border: 1px solid var(--peach-t3);3459  background: var(--peach-s2);3460  color: var(--peach-t0);3461  font-size: 12px;3462}34633464.peach-restore-file {3465  padding: 9px 10px;3466}34673468.peach-restore-file::file-selector-button {3469  margin-right: 10px;3470  padding: 7px 10px;3471  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3472  border-radius: 999px;3473  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3474  color: var(--peach-t0);3475  font-size: 10px;3476  letter-spacing: 0.08em;3477  text-transform: uppercase;3478  cursor: pointer;3479}34803481.peach-restore-input {3482  padding: 10px 12px;3483}34843485.peach-auth-grid {3486  display: grid;3487  gap: 10px;3488}34893490.peach-import-summary {3491  color: var(--peach-t1);3492  font-size: 12px;3493  line-height: 1.6;3494  margin-bottom: 12px;3495}34963497.peach-restore-error {3498  color: rgba(220, 80, 60, 0.95);3499  font-size: 12px;3500  line-height: 1.55;3501}35023503.peach-cjk-qr-panel {3504  margin-top: 14px;3505  padding: 12px;3506  border-radius: 16px;3507  border: 1px solid var(--peach-t3);3508  background: rgba(240, 232, 216, 0.02);3509  display: grid;3510  gap: 10px;3511}35123513.peach-cjk-qr-frame {3514  display: grid;3515  place-items: center;3516  min-height: 212px;3517  border-radius: 14px;3518  background: #fff;3519  overflow: hidden;3520}35213522.peach-cjk-qr-frame svg {3523  display: block;3524  width: 196px;3525  height: 196px;3526}35273528.peach-cjk-qr-error,3529.peach-cjk-qr-caption {3530  color: var(--peach-t1);3531  font-size: 11px;3532  line-height: 1.55;3533}35343535.peach-cjk-qr-card {3536  max-width: 400px;3537  margin: auto;3538}35393540.peach-cjk-qr-body {3541  padding: 0 20px 20px;3542  text-align: center;3543}35443545.peach-cjk-qr-hint {3546  font-size: 11px;3547  color: var(--peach-t2);3548  margin: 0 0 14px;3549}35503551.peach-cjk-qr-image {3552  border-radius: 4px;3553  display: block;3554  margin: 0 auto;3555  width: 100%;3556  max-width: 320px;3557  height: auto;3558}35593560.peach-pro-badge {3561  padding: 2px 6px;3562  border-radius: 999px;3563  font-family: var(--font-ui);3564  font-size: 10px;3565  letter-spacing: 0.08em;3566  text-transform: uppercase;3567  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3568  color: var(--peach-accent);3569}35703571.peach-loading {3572  position: absolute;3573  inset: 0;3574  display: flex;3575  align-items: center;3576  justify-content: center;3577  background: var(--bg);3578  animation: peach-loading-pulse 1.2s ease-in-out infinite;3579}35803581@keyframes peach-loading-pulse {3582  0%, 100% { opacity: 0.6; }3583  50% { opacity: 1; }3584}35853586/* ── Health Dashboard ─────────────────────────────────────────────────── */3587.peach-health-body {3588  flex: 1;3589  overflow-y: auto;3590  display: flex;3591  flex-direction: column;3592}35933594.peach-health-summary {3595  padding: 10px 16px 6px;3596  font-family: "IBM Plex Mono", monospace;3597  font-size: 11px;3598}3599.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3600.peach-health-summary-ok { color: var(--peach-t2); }36013602.peach-health-check-row {3603  padding: 0 16px 10px;3604}3605.peach-health-check-btn {3606  width: 100%;3607  display: flex;3608  align-items: center;3609  justify-content: center;3610}36113612.peach-health-sections {3613  flex: 1;3614  display: flex;3615  flex-direction: column;3616}36173618.peach-health-section {3619  border-bottom: 1px solid var(--peach-t3);3620}36213622.peach-health-section-header {3623  width: 100%;3624  display: flex;3625  align-items: center;3626  justify-content: space-between;3627  padding: 9px 16px;3628  background: transparent;3629  cursor: pointer;3630  color: var(--peach-t0);3631}36323633.peach-health-section-title-row {3634  display: flex;3635  align-items: center;3636  gap: 8px;3637}36383639.peach-health-count-badge {3640  display: inline-flex;3641  align-items: center;3642  justify-content: center;3643  min-width: 20px;3644  height: 18px;3645  padding: 0 5px;3646  border-radius: 999px;3647  background: rgba(220,80,60,0.15);3648  border: 1px solid rgba(220,80,60,0.25);3649  font-family: "IBM Plex Mono", monospace;3650  font-size: 9px;3651  color: rgba(220,80,60,0.9);3652}36533654.peach-health-section-title {3655  font-family: "IBM Plex Mono", monospace;3656  font-size: 11px;3657  text-transform: uppercase;3658  letter-spacing: 0.1em;3659  color: var(--peach-t1);3660}36613662.peach-health-chevron {3663  color: var(--peach-t2);3664  transition: transform 200ms ease;3665  flex-shrink: 0;3666}3667.peach-health-chevron.is-expanded {3668  transform: rotate(180deg);3669}36703671.peach-health-section-body {3672  padding: 0 16px 10px;3673  display: flex;3674  flex-direction: column;3675  gap: 4px;3676}36773678.peach-health-row {3679  display: flex;3680  align-items: flex-start;3681  justify-content: space-between;3682  gap: 8px;3683  padding: 6px 8px;3684  border-radius: 8px;3685  background: rgba(240,232,216,0.02);3686}36873688.peach-health-row-info {3689  flex: 1;3690  min-width: 0;3691  display: flex;3692  flex-direction: column;3693  gap: 2px;3694}36953696.peach-health-row-name {3697  font-family: "Cormorant Garamond", serif;3698  font-size: 15px;3699  font-style: italic;3700  font-weight: 400;3701  color: var(--peach-t0);3702  white-space: nowrap;3703  overflow: hidden;3704  text-overflow: ellipsis;3705}37063707.peach-health-row-meta {3708  font-family: "IBM Plex Mono", monospace;3709  font-size: 9px;3710  color: var(--peach-t2);3711  letter-spacing: 0.05em;3712}37133714.peach-health-fix-btn {3715  font-size: 9px;3716  letter-spacing: 0.08em;3717  text-transform: uppercase;3718  padding: 4px 7px;3719  flex-shrink: 0;3720  display: flex;3721  align-items: center;3722}37233724.peach-health-empty {3725  font-family: "IBM Plex Mono", monospace;3726  font-size: 10px;3727  color: var(--peach-t2);3728  padding: 6px 0;3729}37303731.peach-health-loading {3732  font-family: "IBM Plex Mono", monospace;3733  font-size: 10px;3734  color: var(--peach-t2);3735  padding: 6px 0;3736  display: flex;3737  align-items: center;3738  gap: 6px;3739}37403741.peach-health-loading::before {3742  content: "";3743  width: 10px;3744  height: 10px;3745  border: 1.5px solid var(--peach-t3);3746  border-top-color: var(--peach-accent);3747  border-radius: 50%;3748  animation: peach-spin 600ms linear infinite;3749}37503751@keyframes peach-spin {3752  to { transform: rotate(360deg); }3753}37543755.peach-spinner {3756  width: 32px;3757  height: 32px;3758  border: 2px solid var(--peach-s2);3759  border-top-color: var(--peach-accent);3760  border-radius: 50%;3761  margin: 0 auto 16px;3762  animation: peach-spin 0.8s linear infinite;3763}37643765.peach-progress-screen {3766  text-align: center;3767  padding: 32px 16px;3768}37693770.peach-progress-screen-title {3771  font-size: 13px;3772  color: var(--peach-t0);3773  margin-bottom: 16px;3774}37753776.peach-progress-screen-stage {3777  font-size: 11px;3778  color: var(--peach-t2);3779  min-height: 14px;3780}37813782.peach-progress-screen-note {3783  font-size: 10px;3784  color: var(--peach-t2);3785  margin-top: 8px;3786}37873788.peach-pairing-body {3789  flex: 1;3790  overflow-y: auto;3791  display: flex;3792  flex-direction: column;3793}37943795.peach-pairing-content {3796  flex: 1;3797  display: flex;3798  flex-direction: column;3799  align-items: center;3800  justify-content: center;3801  gap: 14px;3802  padding: 28px 20px;3803  text-align: center;3804}38053806.peach-pairing-headline {3807  font-family: var(--font-display);3808  font-style: italic;3809  font-weight: 300;3810  font-size: 28px;3811  color: var(--peach-t0);3812  margin: 0;3813  line-height: 1;3814}38153816.peach-pairing-subline {3817  font-size: 12px;3818  color: var(--peach-t2);3819  max-width: 220px;3820  line-height: 1.5;3821  margin: 0;3822}38233824.peach-pairing-subline--center {3825  text-align: center;3826}38273828.peach-pairing-code-display {3829  display: flex;3830  gap: 6px;3831}38323833.peach-pairing-code-digit {3834  display: flex;3835  align-items: center;3836  justify-content: center;3837  width: 36px;3838  height: 48px;3839  background: var(--peach-s2);3840  border: 1px solid var(--peach-t3);3841  border-radius: 6px;3842  font-family: var(--font-mono);3843  font-size: 22px;3844  color: var(--peach-t0);3845  letter-spacing: 0;3846}38473848.peach-pairing-countdown-ring {3849  position: relative;3850  display: inline-flex;3851  align-items: center;3852  justify-content: center;3853}38543855.peach-pairing-countdown-num {3856  position: absolute;3857  font-family: var(--font-mono);3858  font-size: 14px;3859  color: var(--peach-t1);3860}38613862.peach-pairing-ring-track {3863  fill: none;3864  stroke: var(--peach-t3);3865  stroke-width: 2;3866}38673868.peach-pairing-ring-progress {3869  fill: none;3870  stroke: var(--peach-accent);3871  stroke-width: 2;3872  stroke-linecap: round;3873  transform: rotate(-90deg);3874  transform-origin: 50% 50%;3875  transition: stroke-dashoffset 0.5s linear;3876}38773878.peach-pairing-code-inputs {3879  display: flex;3880  gap: 8px;3881}38823883.peach-pairing-code-box {3884  width: 36px;3885  height: 48px;3886  text-align: center;3887  background: var(--peach-s2);3888  border: 1px solid var(--peach-t3);3889  border-radius: 6px;3890  font-family: var(--font-mono);3891  font-size: 20px;3892  color: var(--peach-t0);3893  outline: none;3894  transition: border-color 120ms ease;3895}38963897.peach-pairing-code-box:focus {3898  border-color: var(--peach-accent);3899}39003901.peach-pairing-code-box.has-error {3902  border-color: rgba(220, 80, 60, 0.45);3903}39043905.peach-pairing-status {3906  display: flex;3907  align-items: center;3908  gap: 8px;3909  margin: 0;3910  font-size: 12px;3911  color: var(--peach-t1);3912}39133914.peach-pairing-error {3915  margin: 0;3916  font-size: 11px;3917  color: var(--peach-breach);3918}39193920.peach-pairing-error-msg {3921  color: var(--peach-t1);3922}39233924.peach-pairing-spinner {3925  width: 12px;3926  height: 12px;3927  border: 1.5px solid var(--peach-t3);3928  border-top-color: var(--peach-accent);3929  border-radius: 50%;3930  animation: peach-spin 0.8s linear infinite;3931}39323933.peach-pairing-success-icon,3934.peach-pairing-error-icon,3935.peach-pairing-hero {3936  display: inline-flex;3937  align-items: center;3938  justify-content: center;3939}39403941/* Tag chips */3942.peach-tag-chip {3943  display: inline-flex;3944  align-items: center;3945  gap: 4px;3946  padding: 3px 8px;3947  border-radius: 999px;3948  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3949  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3950  color: rgba(240, 232, 216, 0.85);3951  font-family: "IBM Plex Mono", monospace;3952  font-size: 10px;3953  letter-spacing: 0.04em;3954}39553956.peach-tag-chip-remove {3957  background: transparent;3958  border: none;3959  color: inherit;3960  opacity: 0.6;3961  cursor: pointer;3962  padding: 0;3963  font-size: 12px;3964  line-height: 1;3965}39663967.peach-tag-chip-remove:hover {3968  opacity: 1;3969}39703971/* Tag input */3972.peach-tag-input-wrap {3973  border-bottom: 1px solid var(--peach-t3);3974}39753976.peach-tag-suggestions {3977  display: flex;3978  flex-wrap: wrap;3979  gap: 4px;3980  padding: 6px 0;3981}39823983.peach-tag-suggestion {3984  padding: 2px 8px;3985  border-radius: 999px;3986  border: 1px solid var(--peach-t3);3987  background: var(--peach-s2);3988  color: var(--peach-t1);3989  font-family: "IBM Plex Mono", monospace;3990  font-size: 10px;3991  cursor: pointer;3992  transition: border-color 80ms ease, background 80ms ease;3993}39943995.peach-tag-suggestion:hover {3996  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3997  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3998}39994000/* Tag filter strip */4001.peach-tag-filter-strip {4002  border-bottom: 1px solid var(--peach-t3);4003  flex-shrink: 0;4004}40054006.peach-tag-filter-chip {4007  display: inline-flex;4008  align-items: center;4009  padding: 4px 10px;4010  border-radius: 999px;4011  border: 1px solid var(--peach-t3);4012  background: transparent;4013  color: var(--peach-t2);4014  font-family: "IBM Plex Mono", monospace;4015  font-size: 9px;4016  letter-spacing: 0.06em;4017  text-transform: uppercase;4018  cursor: pointer;4019  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4020  white-space: nowrap;4021}40224023.peach-tag-filter-chip:hover {4024  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4025  color: var(--peach-t1);4026}40274028.peach-tag-filter-chip.is-selected {4029  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4030  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4031  color: rgba(240, 232, 216, 0.9);4032}40334034/* ─────────────────────────────────────────────────────────────────────────4035   v1.4.12 additions4036   ─────────────────────────────────────────────────────────────────────── */40374038/* Sort bar */4039.peach-sort-bar {4040  display: flex;4041  align-items: center;4042  gap: 4px;4043  padding: 5px 12px;4044  border-bottom: 1px solid var(--peach-t3);4045  flex-shrink: 0;4046  overflow-x: auto;4047  scrollbar-width: none;4048}40494050.peach-sort-btn {4051  padding: 2px 9px;4052  border-radius: 999px;4053  border: 1px solid transparent;4054  background: transparent;4055  color: var(--peach-t2);4056  font-family: "IBM Plex Mono", monospace;4057  font-size: 9px;4058  letter-spacing: 0.07em;4059  text-transform: uppercase;4060  cursor: pointer;4061  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4062  white-space: nowrap;4063}40644065.peach-sort-btn:hover {4066  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4067  color: var(--peach-t1);4068}40694070.peach-sort-btn.is-active {4071  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4072  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4073  color: rgba(240, 232, 216, 0.9);4074}40754076.peach-sort-domain-hint {4077  margin-left: auto;4078  font-family: "IBM Plex Mono", monospace;4079  font-size: 9px;4080  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4081  white-space: nowrap;4082  overflow: hidden;4083  text-overflow: ellipsis;4084  max-width: 110px;4085}40864087/* Tab-match badge on entry rows */4088.peach-tab-match-badge {4089  display: inline-block;4090  width: 6px;4091  height: 6px;4092  border-radius: 50%;4093  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4094  margin-left: 5px;4095  vertical-align: middle;4096  flex-shrink: 0;4097  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4098}40994100.peach-entry-row.is-tab-match {4101  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4102  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4103}41044105.peach-entry-row.is-tab-match:hover {4106  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4107}41084109/* Entry list stagger entrance */4110@keyframes peach-entry-fadein {4111  from { opacity: 0; transform: translateY(4px); }4112  to   { opacity: 1; transform: translateY(0); }4113}41144115.peach-vault-list .peach-entry-row {4116  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4117  content-visibility: auto;4118  contain-intrinsic-size: auto 44px;4119}41204121/* Button press micro-interaction */4122.peach-btn:active {4123  transform: scale(0.95);4124  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4125}41264127.peach-sort-btn:active,4128.peach-tag-filter-chip:active {4129  transform: scale(0.93);4130  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4131}41324133/* Password strength bar (Lock view + shared) */4134.peach-password-strength {4135  display: flex;4136  align-items: center;4137  gap: 8px;4138  margin-top: 6px;4139}41404141.peach-strength-bar {4142  flex: 1;4143  height: 3px;4144  border-radius: 2px;4145  background: var(--peach-t3);4146  overflow: hidden;4147}41484149.peach-strength-fill {4150  height: 100%;4151  border-radius: 2px;4152  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4153              background 300ms ease;4154}41554156.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4157.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4158.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4159.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }41604161.peach-strength-label {4162  font-family: "IBM Plex Mono", monospace;4163  font-style: italic;4164  font-size: 9px;4165  font-weight: 300;4166  letter-spacing: 0.06em;4167  color: var(--peach-t2);4168  min-width: 36px;4169  text-align: right;4170}41714172.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4173.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4174.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4175.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }41764177/* Duress form */4178.peach-duress-status {4179  padding: 2px 8px;4180  border-radius: 999px;4181  border: 1px solid var(--peach-t3);4182  font-family: "IBM Plex Mono", monospace;4183  font-size: 9px;4184  letter-spacing: 0.07em;4185  text-transform: uppercase;4186  color: var(--peach-t2);4187  flex-shrink: 0;4188}41894190.peach-duress-status.is-active {4191  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4192  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4193  color: rgba(240, 232, 216, 0.85);4194}41954196.peach-duress-form {4197  padding: 8px 0 4px;4198  display: flex;4199  flex-direction: column;4200  gap: 6px;4201}42024203.peach-duress-form .peach-label {4204  margin-top: 4px;4205}42064207.peach-duress-actions {4208  display: flex;4209  gap: 6px;4210  align-items: center;4211  margin-top: 4px;4212}42134214.peach-duress-actions .peach-btn:first-child {4215  margin-right: auto;4216}42174218/* Improved overlay spring entrance */4219.peach-overlay-view.ov-enter-up {4220  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4221}42224223@keyframes ov-enter-up-spring {4224  from { opacity: 0; transform: translateY(16px) scale(0.98); }4225  to   { opacity: 1; transform: translateY(0) scale(1); }4226}42274228.peach-overlay-view.ov-enter-right {4229  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4230}42314232@keyframes ov-enter-right-spring {4233  from { opacity: 0; transform: translateX(18px) scale(0.98); }4234  to   { opacity: 1; transform: translateX(0) scale(1); }4235}42364237/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4238/* Used when CJKImportView or MainImportView renders during onboarding4239   (no vault yet). Animates like a lock-screen transition. */4240.peach-lock-view {4241  position: absolute;4242  inset: 0;4243  display: flex;4244  flex-direction: column;4245  background:4246    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4247    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4248    var(--peach-bg);4249  z-index: 2;4250  overflow: hidden;4251  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4252}42534254.peach-lock-view-header {4255  display: flex;4256  align-items: center;4257  justify-content: space-between;4258  padding: 16px 18px 12px;4259  flex-shrink: 0;4260}42614262/* ───────── Settings: auto-lock select ───────── */4263.peach-settings-select {4264  font-family: "IBM Plex Mono", monospace;4265  font-size: 11px;4266  background: transparent;4267  border: 1px solid var(--peach-t3);4268  border-radius: 4px;4269  color: var(--peach-t1);4270  padding: 3px 6px;4271  cursor: pointer;4272  outline: none;4273}4274.peach-settings-select:focus {4275  border-color: var(--peach-accent);4276}42774278/* ───────── Duress status pill (new polished) ───────── */4279.peach-duress-status-pill {4280  font-family: "IBM Plex Mono", monospace;4281  font-size: 9px;4282  text-transform: uppercase;4283  letter-spacing: 0.12em;4284  padding: 2px 8px;4285  border-radius: 12px;4286  background: var(--peach-t3);4287  color: var(--peach-t2);4288  flex-shrink: 0;4289}4290.peach-duress-status-pill.is-active {4291  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4292  color: var(--peach-accent);4293}42944295/* ───────── Entry advanced disclosure (canary) ───────── */4296.peach-entry-advanced {4297  margin-top: 12px;4298  border-top: 1px solid var(--peach-t3);4299  padding-top: 10px;4300  position: relative;4301  z-index: 1;4302}4303.peach-entry-advanced-toggle {4304  display: flex;4305  align-items: center;4306  justify-content: space-between;4307  width: 100%;4308  background: transparent;4309  border: none;4310  cursor: pointer;4311  padding: 0;4312  color: var(--peach-t2);4313}4314.peach-canary-section {4315  margin-top: 10px;4316  display: grid;4317  gap: 6px;4318}43194320/* ───────── Import: merge/replace radio choices ───────── */4321.peach-import-choice {4322  display: flex;4323  align-items: flex-start;4324  gap: 10px;4325  padding: 8px 10px;4326  border: 1px solid var(--peach-t3);4327  border-radius: 10px;4328  cursor: pointer;4329  margin-bottom: 6px;4330  transition: border-color 120ms ease, background 120ms ease;4331}4332.peach-import-choice:hover {4333  border-color: var(--peach-accent);4334}4335.peach-import-choice input[type="radio"] {4336  margin-top: 3px;4337  accent-color: var(--peach-accent);4338  flex-shrink: 0;4339}4340.peach-import-choice-main {4341  display: flex;4342  flex-direction: column;4343  gap: 2px;4344  min-width: 0;4345}4346.peach-import-choice-label {4347  font-size: 12px;4348  color: var(--peach-t0);4349}4350.peach-import-choice-sub {4351  font-size: 11px;4352  color: var(--peach-t2);4353  line-height: 1.5;4354}43554356/* ───────── Export: success confirmation strip ───────── */4357.peach-export-success {4358  display: flex;4359  align-items: flex-start;4360  gap: 10px;4361  padding: 12px;4362  border-radius: 12px;4363  border: 1px solid rgba(150, 175, 110, 0.3);4364  background: rgba(150, 175, 110, 0.08);4365  color: var(--peach-t0);4366  font-size: 12px;4367  line-height: 1.55;4368}4369.peach-export-success-check {4370  color: rgba(150, 175, 110, 0.9);4371  font-size: 14px;4372  flex-shrink: 0;4373}43744375/* ── Trash view ──────────────────────────────────────────────────────── */4376.peach-trash-entry-row {4377  display: flex;4378  align-items: center;4379  justify-content: space-between;4380  gap: 8px;4381  padding: 8px 0;4382  border-bottom: 1px solid var(--peach-t3);4383}4384.peach-trash-entry-row:last-child { border-bottom: none; }4385.peach-trash-entry-info {4386  flex: 1;4387  min-width: 0;4388  display: flex;4389  flex-direction: column;4390  gap: 2px;4391}4392.peach-trash-entry-title {4393  font-size: 12px;4394  color: var(--peach-t1);4395  overflow: hidden;4396  text-overflow: ellipsis;4397  white-space: nowrap;4398}4399.peach-trash-entry-meta {4400  font-family: var(--font-mono);4401  font-size: 9px;4402  color: var(--peach-t2);4403  letter-spacing: 0.06em;4404}4405.peach-trash-entry-actions {4406  display: flex;4407  align-items: center;4408  gap: 4px;4409  flex-shrink: 0;4410}44114412/* ── Settings shortcuts grid ─────────────────────────────────────────── */4413.peach-shortcuts-grid {4414  display: grid;4415  grid-template-columns: auto 1fr;4416  gap: 6px 12px;4417  align-items: center;4418  padding: 4px 0;4419}4420.peach-shortcut-key {4421  font-family: var(--font-mono);4422  font-size: 10px;4423  color: var(--peach-t0);4424  background: var(--peach-t3);4425  border-radius: 4px;4426  padding: 2px 6px;4427  white-space: nowrap;4428  text-align: center;4429}4430.peach-shortcut-desc {4431  font-size: 11px;4432  color: var(--peach-t1);4433}44344435/* ── Sort bar trash button ───────────────────────────────────────────── */4436.peach-sort-trash-btn {4437  display: flex;4438  align-items: center;4439  justify-content: center;4440  padding: 3px 5px;4441  background: transparent;4442  border: none;4443  cursor: pointer;4444  color: var(--peach-t2);4445  border-radius: 4px;4446  transition: color 140ms ease, background 140ms ease;4447}4448.peach-sort-trash-btn:hover {4449  color: var(--peach-t1);4450  background: var(--peach-t3);4451}4452.peach-sort-trash-btn.is-active {4453  color: var(--peach-accent);4454}44554456/* Accent color picker */4457.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4458.peach-accent-picker {4459  display: flex;4460  flex-wrap: wrap;4461  gap: 7px;4462  padding: 2px 0;4463}4464.peach-accent-swatch {4465  width: 22px;4466  height: 22px;4467  border-radius: 50%;4468  border: 2px solid transparent;4469  cursor: pointer;4470  padding: 0;4471  transition: transform 100ms;4472  outline-offset: 2px;4473}4474.peach-accent-swatch:hover { transform: scale(1.15); }4475.peach-accent-swatch.is-active {4476  border-color: var(--peach-t0);4477  transform: scale(1.1);4478}44794480/* ── Card entry styles ───────────────────────────────────────── */4481.peach-card-number {4482  font-family: var(--peach-mono);4483  letter-spacing: 0.08em;4484}44854486.peach-card-network-badge {4487  font-size: 10px;4488  padding: 1px 5px;4489  border-radius: 4px;4490  border: 0.5px solid var(--peach-border);4491  color: var(--peach-text-dim);4492  margin-left: 6px;4493  vertical-align: middle;4494}44954496.peach-card-expiry-row {4497  display: flex;4498  align-items: center;4499  gap: 8px;4500}45014502.peach-card-expiry-sep {4503  color: var(--peach-text-dim);4504}