popup.css

92.1 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}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 */461.peach-note-content {462  border-top: 1px solid var(--peach-t3);463  padding-top: 10px;464  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;465  font-size: 11px;466  line-height: 1.75;467  color: var(--peach-t1);468  white-space: pre-wrap;469}470471/* ── Inline editing ─────────────────────────────────────────────────── */472473/* Clickable display values */474.peach-inline-clickable {475  cursor: text;476  border-radius: 3px;477  transition: background 150ms ease;478}479.peach-inline-clickable:hover {480  background: rgba(240, 232, 216, 0.05);481}482483/* Subtle "edit" hint that appears on hover */484.peach-inline-edit-hint {485  font-family: Inter, system-ui, sans-serif;486  font-size: 9px;487  text-transform: uppercase;488  letter-spacing: 0.14em;489  color: var(--peach-t2);490  opacity: 0;491  transition: opacity 120ms ease;492  pointer-events: none;493  margin-left: 6px;494  flex-shrink: 0;495}496.peach-domain-row:hover .peach-inline-edit-hint {497  opacity: 1;498}499500/* Title editing */501.peach-inline-title-wrap {502  display: flex;503  flex-direction: column;504  gap: 6px;505}506.peach-inline-title-input {507  font-family: "Cormorant Garamond", "Times New Roman", serif;508  font-style: italic;509  font-weight: 400;510  font-size: 40px;511  line-height: 0.95;512  color: var(--peach-t0);513  background: transparent;514  border: none;515  border-bottom: 1px solid var(--peach-accent);516  outline: none;517  width: 100%;518  padding: 2px 0;519}520521/* Generic inline field */522.peach-inline-field-wrap {523  display: flex;524  flex-direction: column;525  gap: 6px;526}527.peach-inline-input {528  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;529  font-size: 13px;530  color: var(--peach-t0);531  background: transparent;532  border: none;533  border-bottom: 1px solid var(--peach-accent);534  outline: none;535  width: 100%;536  padding: 3px 0;537}538.peach-inline-textarea {539  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;540  font-size: 11px;541  line-height: 1.7;542  color: var(--peach-t0);543  background: rgba(240, 232, 216, 0.04);544  border: 1px solid var(--peach-accent);545  border-radius: 4px;546  outline: none;547  width: 100%;548  padding: 8px;549  resize: vertical;550  min-height: 80px;551}552553/* Save / cancel row */554.peach-inline-actions {555  display: flex;556  gap: 6px;557  align-items: center;558}559.peach-inline-save-btn,560.peach-inline-cancel-btn {561  display: inline-flex;562  align-items: center;563  justify-content: center;564  width: 26px;565  height: 26px;566  border-radius: 4px;567  border: none;568  cursor: pointer;569  transition: background 140ms ease, opacity 140ms ease;570  flex-shrink: 0;571}572.peach-inline-save-btn {573  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);574  color: var(--peach-accent);575}576.peach-inline-save-btn:hover:not(:disabled) {577  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);578}579.peach-inline-cancel-btn {580  background: rgba(240, 232, 216, 0.06);581  color: var(--peach-t2);582}583.peach-inline-cancel-btn:hover:not(:disabled) {584  background: rgba(240, 232, 216, 0.12);585  color: var(--peach-t1);586}587.peach-inline-save-btn:disabled,588.peach-inline-cancel-btn:disabled {589  opacity: 0.4;590  cursor: not-allowed;591}592593/* Inline password generator wrapper */594.peach-inline-generator-wrap {595  margin-top: 10px;596  padding-top: 10px;597  border-top: 1px solid var(--peach-t3);598  display: flex;599  flex-direction: column;600  gap: 8px;601}602.peach-inline-generator-cancel {603  align-self: flex-start;604  font-size: 11px;605  color: var(--peach-t2);606}607608/* "is-editing" card state */609.peach-field-card.is-editing {610  background: rgba(240, 232, 216, 0.02);611  border-radius: 6px;612  padding: 8px;613  margin: -8px;614}615616/* Add notes button */617.peach-add-notes-btn {618  font-size: 11px;619  color: var(--peach-t2);620  margin-top: 6px;621  align-self: flex-start;622  padding: 4px 0;623}624625/* Delete row */626.peach-entry-delete-row {627  display: flex;628  align-items: center;629  gap: 8px;630  padding-top: 18px;631  margin-top: 8px;632  border-top: 1px solid var(--peach-t3);633}634.peach-delete-btn {635  font-size: 11px;636  color: var(--peach-t2);637  padding: 4px 0;638}639.peach-delete-confirm-text {640  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;641  font-size: 11px;642  font-style: italic;643  color: var(--peach-t2);644  flex-shrink: 0;645}646647/* TOTP band */648.peach-totp-band {649  border-top: 1px solid var(--peach-t3);650  padding: 12px 20px 14px;651  position: relative;652  display: grid;653  grid-template-columns: 1fr auto;654  gap: 10px;655}656.peach-totp-main {657  min-width: 0;658}659.peach-totp-code-row {660  display: flex;661  align-items: flex-end;662  gap: 10px;663  min-width: 0;664}665.peach-totp-code {666  margin: 2px 0 0;667  font-family: "Cormorant Garamond", "Times New Roman", serif;668  font-style: italic;669  font-weight: 300;670  font-size: 38px; color: var(--peach-accent);671  line-height: 0.95; min-height: 1em;672  min-width: 0;673}674.peach-totp-code-text {675  display: inline-flex;676  overflow: hidden;677  text-overflow: ellipsis;678  white-space: nowrap;679}680.peach-totp-copy-btn {681  margin-bottom: 2px;682  flex-shrink: 0;683  border-color: transparent;684}685.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }686.peach-totp-countdown {687  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;688  font-size: 22px; color: var(--peach-t1);689}690.peach-totp-ring { transform: rotate(-90deg); }691.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }692.peach-totp-ring-progress {693  fill: none; stroke: var(--peach-accent); stroke-width: 2;694  stroke-linecap: round;695  transition: stroke-dashoffset 1s linear, stroke 500ms ease;696}697/* Search bar */698.peach-search-wrap {699  border-top: 1px solid var(--peach-t3);700  background: var(--peach-s1);701  min-height: 54px; position: relative;702  box-shadow: inset 0 6px 18px rgba(217, 104, 48, 0);703  transition: box-shadow 700ms ease;704}705.peach-search-wrap::before {706  content: "";707  position: absolute;708  left: 0;709  top: 0;710  height: 2px;711  width: var(--peach-totp-progress, 0%);712  background: var(--peach-accent);713  opacity: 0;714  transition: width 1s linear, opacity 180ms ease;715  pointer-events: none;716}717.peach-shell[data-totp-active="true"] .peach-search-wrap::before {718  opacity: 0.9;719}720.peach-shell[data-totp-active="true"] .peach-search-wrap {721  box-shadow: inset 0 6px 18px rgba(217, 104, 48, 0.09);722}723724@keyframes peach-totp-code-flare {725  0%   { filter: brightness(1); }726  25%  { filter: brightness(1.7); }727  100% { filter: brightness(1); }728}729.peach-totp-code.is-hot {730  animation: peach-totp-code-flare 3000ms ease-in-out both;731}732.peach-search-bar {733  min-height: 54px;734  display: grid;735  grid-template-columns: auto minmax(0, 1fr) auto;736  align-items: center;737  gap: 8px; padding: 0 9px 0 12px;738}739.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }740.peach-search-input {741  border: 0; background: transparent; color: var(--peach-t0);742  font-family: "Cormorant Garamond", "Times New Roman", serif;743  font-style: italic; font-size: 18px;744  outline: none; width: 100%; min-width: 0; padding: 0;745  caret-color: var(--peach-accent);746}747.peach-search-input::placeholder { color: var(--peach-t2); }748.peach-search-meta {749  display: grid;750  grid-auto-flow: column;751  align-items: center;752  justify-content: end;753  gap: 6px;754  min-width: max-content;755}756.peach-search-counter {757  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;758  font-size: 10px; color: var(--peach-t2);759  display: inline-flex;760  align-items: center;761  line-height: 1;762}763.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }764765/* Buttons */766.peach-btn {767  border: 1px solid transparent; border-radius: 12px;768  background: transparent; color: var(--peach-t0);769  font-family: Inter, system-ui, sans-serif;770  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;771  cursor: pointer;772  transition:773    background-color var(--peach-dur-80) var(--peach-curve-arrival),774    color var(--peach-dur-80) var(--peach-curve-arrival),775    border-color var(--peach-dur-150) var(--peach-curve-arrival);776}777.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }778.peach-btn:disabled {779  opacity: 0.45;780  cursor: not-allowed;781}782.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }783.peach-btn--md { min-height: 38px; }784.peach-btn--accent { background: var(--peach-accent); color: rgba(0,0,0,0.75); }785.peach-btn--accent:hover:not(:disabled) { background: var(--peach-accent); filter: brightness(1.12); }786.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }787.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }788.peach-icon-btn {789  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;790  display: inline-flex; align-items: center; justify-content: center;791}792793.peach-btn:focus-visible {794  outline: none;795  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px rgba(217, 104, 48, 0.5);796}797798/* Lock button */799.peach-lock-icon { transform-origin: center; }800.peach-lock-btn.is-locking { color: var(--peach-accent); }801.peach-lock-btn.is-locking .peach-lock-icon {802  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);803}804805/* Copy button */806.peach-copy-btn {807  position: relative; overflow: hidden;808  color: var(--peach-t2); border-color: var(--peach-t3);809}810.peach-copy-icon {811  display: inline-flex; align-items: center; justify-content: center;812  position: relative; z-index: 1;813}814.peach-copy-icon-svg { display: block; }815.peach-copy-sheen {816  position: absolute; inset: 0;817  background: linear-gradient(90deg, rgba(217,104,48,0) 0%, rgba(217,104,48,0.18) 30%, rgba(217,104,48,0.08) 100%);818  opacity: 0; transform: scaleX(0.15); transform-origin: left center;819}820.peach-copy-btn.is-copied {821  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;822  box-shadow:823    0 0 0 1px rgba(217,104,48,0.22),824    0 0 18px rgba(217,104,48,0.2),825    inset 0 0 20px rgba(217,104,48,0.12);826}827.peach-copy-btn.is-copied .peach-copy-icon {828  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;829}830.peach-copy-btn.is-copied .peach-copy-sheen {831  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;832}833.peach-copy-btn.is-retreat {834  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;835}836.peach-copy-btn.is-retreat .peach-copy-sheen {837  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;838}839.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }840.peach-copy-drain-bar {841  display: block; width: 100%; height: 100%;842  background: var(--peach-accent); opacity: 0.7;843  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;844}845846/* Unlock screen elements */847.peach-unlock-headline {848  margin: 2px 0 0;849  font-family: "Cormorant Garamond", "Times New Roman", serif;850  font-size: 52px; line-height: 0.95;851  font-style: italic; font-weight: 400;852}853.peach-subline {854  margin: 0;855  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;856  font-size: 10px; color: var(--peach-t2); font-style: italic;857}858.peach-subline--lock {859  max-width: 248px;860  line-height: 1.5;861}862.peach-underline-input {863  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);864  padding: 6px 0; background: transparent; color: var(--peach-t0);865  outline: none;866  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;867  font-size: 13px;868  caret-color: var(--peach-accent);869}870.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }871.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }872.peach-hint {873  margin: 0;874  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;875  font-size: 10px; color: var(--peach-t2);876}877.peach-unlock-footer {878  margin-top: 4px; display: flex; align-items: center; gap: 7px;879  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;880  font-size: 10px; color: var(--peach-t2);881}882.peach-unlock-footer--lock {883  padding-top: 2px;884}885886/* Breach badge */887.peach-breach-badge {888  display: flex;889  position: relative;890  z-index: 1;891  align-items: center;892  gap: 7px;893  font-size: 9px;894  color: var(--peach-breach);895  padding: 5px 10px;896  margin-bottom: 4px;897  border-radius: 8px;898  background: rgba(220, 80, 60, 0.07);899  border: 1px solid rgba(220, 80, 60, 0.18);900  letter-spacing: 0.04em;901}902903.peach-breach-action {904  margin-left: auto;905  font-size: 10px;906  padding: 3px 8px;907}908909.peach-password-value.is-breached {910  color: rgba(220, 80, 60, 0.75);911  border-bottom: 1px solid rgba(220, 80, 60, 0.22);912}913914/* ── Overlay views ─────────────────────────────────────────────────── */915.peach-overlay-view {916  position: absolute;917  inset: 0;918  display: flex;919  flex-direction: column;920  background:921    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),922    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),923    var(--peach-bg);924  z-index: 2;925  overflow: hidden;926  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;927}928@keyframes overlay-in {929  from { opacity: 0; transform: translateY(8px); }930  to   { opacity: 1; transform: translateY(0); }931}932.peach-overlay-view.ov-enter-up {933  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;934}935.peach-overlay-view.ov-exit-up {936  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;937}938.peach-overlay-view.ov-enter-right {939  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;940}941.peach-overlay-view.ov-exit-right {942  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;943}944945@keyframes ov-enter-up {946  from { opacity: 0; transform: translateY(18px); }947  to   { opacity: 1; transform: translateY(0); }948}949@keyframes ov-exit-up {950  from { opacity: 1; transform: translateY(0); }951  to   { opacity: 0; transform: translateY(-12px); }952}953@keyframes ov-enter-right {954  from { opacity: 0; transform: translateX(20px); }955  to   { opacity: 1; transform: translateX(0); }956}957@keyframes ov-exit-right {958  from { opacity: 1; transform: translateX(0); }959  to   { opacity: 0; transform: translateX(20px); }960}961962/* Overlay shared header */963.peach-overlay-header {964  padding: 10px 12px;965  display: flex;966  align-items: center;967  gap: 8px;968  border-bottom: 1px solid var(--peach-t3);969  flex-shrink: 0;970}971.peach-overlay-title {972  font-family: "IBM Plex Mono", monospace;973  font-size: 9px;974  text-transform: uppercase;975  letter-spacing: 0.18em;976  color: var(--peach-t2);977  flex: 1;978  text-align: center;979}980981.peach-overlay-card {982  background: var(--peach-s1);983  border: 1px solid var(--peach-t3);984  border-radius: 12px;985  overflow: hidden;986  width: 100%;987}988989.peach-onboarding-alt-actions {990  display: flex;991  flex-direction: column;992  gap: 4px;993  padding: 0;994}995996.peach-settings-copy {997  margin: 0 0 10px;998  font-size: 11px;999  line-height: 1.5;1000  color: var(--peach-t2);1001}10021003.peach-settings-copy strong {1004  color: var(--peach-t0);1005}10061007.peach-settings-copy--spacious {1008  margin-bottom: 12px;1009}10101011.peach-settings-copy--result {1012  color: var(--peach-accent);1013  font-size: 13px;1014  text-align: center;1015  padding: 8px 0;1016}10171018.peach-settings-copy--danger {1019  color: var(--peach-breach);1020}10211022.peach-settings-copy--success {1023  color: var(--peach-accent);1024}10251026.peach-inline-feedback {1027  font-size: 11px;1028  margin: 10px 0 0;1029}10301031.peach-inline-feedback--ok {1032  color: var(--peach-accent);1033}10341035.peach-inline-feedback--error {1036  color: var(--peach-breach);1037}10381039.peach-inline-feedback--muted {1040  color: var(--peach-t2);1041  font-size: 10px;1042  margin: 4px 0;1043}10441045.peach-inline-feedback--spaced {1046  margin-top: 12px;1047}10481049.peach-settings-actions--row {1050  display: flex;1051  gap: 6px;1052}10531054.peach-settings-actions--end {1055  margin-top: 14px;1056  justify-content: flex-end;1057}10581059.peach-settings-stack {1060  display: flex;1061  flex-direction: column;1062  gap: 6px;1063}10641065.peach-settings-stack--tight {1066  gap: 4px;1067}10681069.peach-settings-stack--spacious {1070  gap: 8px;1071}10721073.peach-settings-input {1074  width: 100%;1075  box-sizing: border-box;1076  padding: 8px 10px;1077  background: var(--peach-s2);1078  border: 1px solid var(--peach-t3);1079  border-radius: 6px;1080  color: var(--peach-t0);1081  font-family: var(--font-ui);1082  font-size: 12px;1083  outline: none;1084  transition: border-color 120ms ease;1085}10861087.peach-settings-input:focus {1088  border-color: var(--peach-accent);1089}10901091.peach-settings-input[type="password"] {1092  font-family: var(--font-mono);1093  letter-spacing: 0.04em;1094}10951096.peach-phrase-textarea {1097  width: 100%;1098  box-sizing: border-box;1099  min-height: 120px;1100  padding: 10px 12px;1101  background: var(--peach-s2);1102  border: 1px solid var(--peach-t3);1103  border-radius: 6px;1104  color: var(--peach-t0);1105  font-size: 12px;1106  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1107  line-height: 1.5;1108  resize: vertical;1109  outline: none;1110}11111112.peach-phrase-textarea:focus {1113  border-color: var(--peach-accent);1114}11151116.peach-hidden-file-input {1117  display: none;1118}11191120.peach-checkbox-note {1121  display: flex;1122  align-items: flex-start;1123  gap: 8px;1124  font-size: 11px;1125  color: var(--peach-t1);1126  cursor: pointer;1127  margin: 12px 0;1128}11291130.peach-checkbox-note input {1131  margin-top: 1px;1132}11331134.peach-cjk-phrase-box {1135  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1136  font-size: 13px;1137  line-height: 1.5;1138  background: var(--peach-s2);1139  border: 1px solid var(--peach-t3);1140  border-radius: 6px;1141  padding: 10px 12px;1142  margin: 0 0 10px;1143  word-break: break-all;1144  white-space: pre-wrap;1145  max-height: 220px;1146  overflow-y: auto;1147  color: var(--peach-t0);1148  user-select: all;1149  scrollbar-width: none;1150  -ms-overflow-style: none;1151}1152.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }11531154.peach-danger-notice {1155  background: rgba(220, 80, 60, 0.08);1156  border: 1px solid rgba(220, 80, 60, 0.2);1157  border-radius: 6px;1158  padding: 9px 11px;1159  font-size: 11px;1160  color: var(--peach-t1);1161  line-height: 1.5;1162}11631164.peach-info-notice {1165  font-size: 11px;1166  color: var(--peach-t2);1167  line-height: 1.5;1168  background: rgba(240, 232, 216, 0.04);1169  border: 1px solid var(--peach-t3);1170  border-radius: 6px;1171  padding: 8px 10px;1172}11731174.peach-strength-row {1175  display: flex;1176  align-items: center;1177  gap: 8px;1178  margin-bottom: 10px;1179}11801181.peach-strength-track {1182  flex: 1;1183  height: 4px;1184  background: var(--peach-s2);1185  border-radius: 2px;1186  overflow: hidden;1187}11881189.peach-strength-fill {1190  height: 100%;1191  border-radius: 2px;1192  transition: width 120ms ease, background 120ms ease;1193}11941195/* ── Type selector tabs ── */1196.peach-type-tabs {1197  display: flex;1198  gap: 0;1199  background: var(--peach-t4);1200  border-radius: 8px;1201  padding: 3px;1202}12031204.peach-type-tab {1205  flex: 1;1206  display: flex;1207  align-items: center;1208  justify-content: center;1209  gap: 6px;1210  padding: 6px 10px;1211  border-radius: 6px;1212  border: none;1213  background: transparent;1214  cursor: pointer;1215  font-family: Inter, system-ui, sans-serif;1216  font-size: 11px;1217  font-weight: 400;1218  letter-spacing: 0.04em;1219  color: var(--peach-t1);1220  transition: background 150ms ease, color 150ms ease;1221}12221223.peach-type-tab.is-active {1224  background: var(--peach-s2);1225  color: var(--peach-t0);1226  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1227}12281229.peach-type-tab:not(.is-active):hover {1230  color: var(--peach-t0);1231}12321233.peach-type-tab svg {1234  opacity: 0.7;1235  flex-shrink: 0;1236}12371238.peach-type-tab.is-active svg {1239  opacity: 1;1240}12411242/* ── List view ───────────────────────────────────────────────────────── */1243.peach-list-top {1244  padding: 0 10px;1245  min-height: 46px;1246  display: flex;1247  align-items: center;1248  gap: 6px;1249  border-bottom: 1px solid var(--peach-t3);1250  flex-shrink: 0;1251  background: var(--peach-s1);1252}1253.peach-vault-list {1254  flex: 1;1255  overflow-y: auto;1256  scrollbar-width: none;1257}1258.peach-vault-list::-webkit-scrollbar { display: none; }12591260/* Scrollbar — vault list */1261.peach-vault-list {1262  scrollbar-width: thin;1263  scrollbar-color: var(--peach-t3) transparent;1264}12651266.peach-vault-list::-webkit-scrollbar {1267  width: 3px;1268}12691270.peach-vault-list::-webkit-scrollbar-thumb {1271  background: var(--peach-t3);1272  border-radius: 2px;1273}12741275.peach-entry-row {1276  width: 100%;1277  display: flex;1278  align-items: center;1279  gap: 10px;1280  padding: 9px 16px;1281  background: transparent;1282  border: none;1283  border-bottom: 1px solid var(--peach-t3);1284  cursor: pointer;1285  color: inherit;1286  text-align: left;1287  transition: background 80ms ease;1288}1289.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1290.peach-entry-row:last-child { border-bottom: none; }1291.peach-entry-row.is-active {1292  box-shadow: inset 2px 0 0 var(--peach-accent);1293  background: rgba(240,232,216,0.03);1294}1295.peach-entry-row-icon {1296  width: 26px; height: 26px;1297  border-radius: 7px;1298  border: 1px solid var(--peach-t3);1299  display: flex; align-items: center; justify-content: center;1300  color: var(--peach-t2);1301  flex-shrink: 0;1302}1303.peach-entry-row-icon.is-breach {1304  border-color: rgba(220,80,60,0.3);1305  color: rgba(220,80,60,0.7);1306}1307.peach-entry-row-info { flex: 1; min-width: 0; }1308.peach-entry-row-name {1309  display: block;1310  font-family: "Cormorant Garamond", serif;1311  font-size: 17px;1312  font-style: italic;1313  font-weight: 400;1314  color: var(--peach-t0);1315  line-height: 1.2;1316  white-space: nowrap;1317  overflow: hidden;1318  text-overflow: ellipsis;1319}1320.peach-entry-row-meta {1321  display: block;1322  font-family: "IBM Plex Mono", monospace;1323  font-size: 9px;1324  color: var(--peach-t2);1325  margin-top: 1px;1326  letter-spacing: 0.05em;1327}1328.peach-entry-row-dot {1329  width: 5px; height: 5px;1330  border-radius: 50%;1331  background: rgba(220,80,60,0.7);1332  flex-shrink: 0;1333}1334.peach-new-entry-row {1335  display: flex;1336  align-items: center;1337  justify-content: center;1338  gap: 6px;1339  width: 100%;1340  padding: 11px;1341  background: transparent;1342  border: none;1343  border-top: 1px solid var(--peach-t3);1344  color: var(--peach-t2);1345  font-family: "IBM Plex Mono", monospace;1346  font-size: 9px;1347  text-transform: uppercase;1348  letter-spacing: 0.14em;1349  cursor: pointer;1350  flex-shrink: 0;1351  transition: color 120ms ease, background 120ms ease;1352}1353.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13541355/* ── Multi-select mode ─────────────────────────────────────────────── */13561357/* Select-mode trigger button in sort bar — same shape as trash btn */1358.peach-sort-select-btn {1359  display: flex;1360  align-items: center;1361  justify-content: center;1362  padding: 3px 5px;1363  background: transparent;1364  border: none;1365  cursor: pointer;1366  color: var(--peach-t2);1367  border-radius: 4px;1368  transition: color 140ms ease, background 140ms ease;1369}1370.peach-sort-select-btn:hover {1371  color: var(--peach-t1);1372  background: var(--peach-t3);1373}13741375/* Sort bar in select mode */1376.peach-select-cancel-btn {1377  background: transparent;1378  border: none;1379  padding: 0 4px;1380  cursor: pointer;1381  font-family: "IBM Plex Mono", monospace;1382  font-size: 9px;1383  letter-spacing: 0.12em;1384  text-transform: uppercase;1385  color: var(--peach-t2);1386  transition: color 140ms ease;1387  flex-shrink: 0;1388}1389.peach-select-cancel-btn:hover { color: var(--peach-t0); }13901391.peach-select-count-label {1392  flex: 1;1393  text-align: center;1394  font-family: "IBM Plex Mono", monospace;1395  font-size: 9px;1396  letter-spacing: 0.14em;1397  text-transform: uppercase;1398  color: var(--peach-t1);1399}14001401.peach-select-all-btn {1402  background: transparent;1403  border: none;1404  padding: 0 4px;1405  cursor: pointer;1406  font-family: "IBM Plex Mono", monospace;1407  font-size: 9px;1408  letter-spacing: 0.12em;1409  text-transform: uppercase;1410  color: var(--peach-t2);1411  transition: color 140ms ease;1412  flex-shrink: 0;1413}1414.peach-select-all-btn:hover { color: var(--peach-accent); }14151416/* List in select mode */1417.peach-vault-list.is-selecting .peach-entry-row {1418  cursor: default;1419}1420.peach-vault-list.is-selecting .peach-entry-row:hover {1421  background: rgba(240,232,216,0.02);1422}1423.peach-vault-list.is-selecting .peach-entry-row.is-selected {1424  background: rgba(217,104,48,0.06);1425}1426.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1427  background: rgba(217,104,48,0.1);1428}14291430/* Select indicator circles in icon slot */1431.peach-entry-row-icon.is-select-icon {1432  color: var(--peach-t2);1433}1434.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1435  color: var(--peach-accent);1436}14371438/* Delete action bar at bottom (replaces new-entry row) */1439.peach-select-action-bar {1440  display: flex;1441  align-items: center;1442  justify-content: center;1443  gap: 7px;1444  width: 100%;1445  padding: 11px;1446  background: transparent;1447  border: none;1448  border-top: 1px solid var(--peach-t3);1449  color: var(--peach-t1);1450  font-family: "IBM Plex Mono", monospace;1451  font-size: 9px;1452  text-transform: uppercase;1453  letter-spacing: 0.14em;1454  cursor: pointer;1455  flex-shrink: 0;1456  transition: color 120ms ease, background 120ms ease;1457}1458.peach-select-action-bar:not(:disabled):hover {1459  color: var(--peach-t0);1460  background: rgba(220,80,60,0.06);1461}1462.peach-select-action-bar:not(:disabled):hover svg {1463  stroke: rgba(220,80,60,0.8);1464}1465.peach-select-action-bar:disabled,1466.peach-select-action-bar.is-empty {1467  color: var(--peach-t2);1468  cursor: default;1469  opacity: 0.5;1470}1471.peach-search-counter-list {1472  white-space: nowrap;1473  flex-shrink: 0;1474}1475.peach-list-empty {1476  min-height: 180px;1477  display: grid;1478  place-items: center;1479  color: var(--peach-t2);1480  font-family: "IBM Plex Mono", monospace;1481  font-size: 11px;1482}14831484/* ── Settings view ───────────────────────────────────────────────────── */1485.peach-settings-body {1486  flex: 1;1487  overflow-y: auto;1488  min-height: 0;1489  display: flex;1490  flex-direction: column;1491  padding: 2px 0 10px;1492}1493.peach-settings-group {1494  padding: 9px 16px 11px;1495  border-bottom: 1px solid var(--peach-t3);1496}1497.peach-export-intro {1498  padding-bottom: 8px;1499}1500.peach-export-card {1501  display: grid;1502  gap: 10px;1503}1504.peach-export-card--primary {1505  background:1506    linear-gradient(180deg, rgba(217,104,48,0.08), rgba(217,104,48,0.02));1507}1508.peach-export-card-head {1509  display: flex;1510  align-items: center;1511  justify-content: space-between;1512  gap: 10px;1513}1514.peach-export-card-copy {1515  margin: 0;1516  font-size: 12px;1517  line-height: 1.55;1518  color: var(--peach-t1);1519}1520.peach-export-note {1521  margin: 0;1522  font-size: 10px;1523  line-height: 1.5;1524  color: var(--peach-t2);1525}1526.peach-export-pill {1527  display: inline-flex;1528  align-items: center;1529  padding: 4px 8px;1530  border-radius: 999px;1531  border: 1px solid rgba(217,104,48,0.22);1532  background: rgba(217,104,48,0.08);1533  color: var(--peach-accent);1534  font-family: "IBM Plex Mono", monospace;1535  font-size: 8px;1536  letter-spacing: 0.12em;1537  text-transform: uppercase;1538  white-space: nowrap;1539}1540.peach-export-pill--danger {1541  border-color: rgba(220,80,60,0.22);1542  background: rgba(220,80,60,0.08);1543  color: var(--peach-breach);1544}1545.peach-export-password-stack {1546  gap: 8px;1547}1548.peach-settings-label {1549  margin: 0 0 6px;1550  font-family: "IBM Plex Mono", monospace;1551  font-size: 8px;1552  text-transform: uppercase;1553  letter-spacing: 0.18em;1554  color: var(--peach-t2);1555}1556.peach-settings-row {1557  display: flex;1558  align-items: center;1559  justify-content: space-between;1560  gap: 12px;1561  min-height: 34px;1562  padding: 6px 0;1563  font-size: 13px;1564  color: var(--peach-t1);1565}1566.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1567.peach-settings-value {1568  font-family: "IBM Plex Mono", monospace;1569  font-size: 10px;1570  color: var(--peach-t2);1571}15721573.peach-settings-value--status {1574  display: flex;1575  align-items: center;1576  gap: 6px;1577}15781579.peach-settings-row--stack {1580  flex-direction: column;1581  align-items: stretch;1582  gap: 6px;1583}15841585.peach-settings-row--top {1586  align-items: flex-start;1587}15881589.peach-settings-row-main {1590  display: flex;1591  flex-direction: column;1592  gap: 4px;1593  flex: 1;1594}1595.peach-toggle {1596  width: 28px; height: 16px;1597  border-radius: 999px;1598  background: var(--peach-t3);1599  border: 1px solid var(--peach-t3);1600  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1601  flex-shrink: 0;1602  transition: background 200ms ease, border-color 200ms ease;1603  cursor: pointer;1604}1605.peach-toggle.is-on {1606  background: rgba(217,104,48,0.22);1607  border-color: rgba(217,104,48,0.4);1608}1609.peach-toggle-knob {1610  width: 10px; height: 10px;1611  border-radius: 50%;1612  background: var(--peach-t2);1613  flex-shrink: 0;1614  transform: translateX(0px);1615  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1616}1617.peach-toggle.is-on .peach-toggle-knob {1618  background: var(--peach-accent);1619  transform: translateX(12px);1620}1621.peach-settings-footer {1622  display: flex;1623  align-items: center;1624  gap: 8px;1625  margin-top: auto;1626  padding: 14px 16px 8px;1627  font-family: "IBM Plex Mono", monospace;1628  font-size: 9px;1629  color: var(--peach-t2);1630}16311632.peach-passkey-badge {1633  margin-left: 8px;1634  font-size: 10px;1635  letter-spacing: 0.06em;1636  text-transform: uppercase;1637  color: var(--peach-t2);1638  font-family: var(--font-ui);1639  vertical-align: middle;1640}16411642.peach-passkey-delete-btn {1643  color: var(--peach-breach);1644  border-color: rgba(229, 85, 85, 0.25);1645}16461647.peach-passkey-delete-confirm {1648  display: flex;1649  align-items: center;1650  gap: 8px;1651  padding: 8px 10px;1652  background: rgba(229, 85, 85, 0.06);1653  border: 1px solid rgba(229, 85, 85, 0.2);1654  border-radius: 6px;1655}16561657.peach-passkey-delete-confirm-copy {1658  flex: 1;1659  font-size: 11px;1660  color: var(--peach-t1);1661}16621663.peach-passkey-delete-btn--confirm {1664  color: var(--peach-breach);1665  border-color: rgba(229, 85, 85, 0.4);1666}16671668.peach-passkey-activity {1669  flex-direction: column;1670  align-items: flex-start;1671  gap: 4px;1672}16731674.peach-passkey-meta {1675  font-size: 11px;1676  color: var(--peach-t2);1677}16781679.peach-passkey-actions {1680  position: relative;1681  z-index: 1;1682  margin-top: 14px;1683  display: flex;1684  flex-direction: column;1685  gap: 8px;1686}16871688.peach-passkey-approval {1689  display: flex;1690  flex-direction: column;1691  align-items: center;1692  padding: 28px 22px 22px;1693  gap: 14px;1694  text-align: center;1695}16961697.peach-passkey-approval-icon {1698  width: 46px;1699  height: 46px;1700  border-radius: 12px;1701  background: var(--peach-s2);1702  border: 1px solid var(--peach-t3);1703  display: flex;1704  align-items: center;1705  justify-content: center;1706  flex-shrink: 0;1707  color: var(--peach-accent);1708}17091710.peach-passkey-approval-icon img,1711.peach-passkey-approval-icon svg {1712  width: 28px;1713  height: 28px;1714  border-radius: 6px;1715}17161717.peach-passkey-approval-rp {1718  font-family: var(--font-ui);1719  font-size: 12px;1720  color: var(--peach-t2);1721  letter-spacing: 0.03em;1722}17231724.peach-passkey-approval-action {1725  font-family: var(--font-display);1726  font-style: italic;1727  font-weight: 300;1728  font-size: 26px;1729  color: var(--peach-t0);1730  line-height: 1;1731}17321733.peach-passkey-approval-user {1734  font-family: var(--font-mono);1735  font-size: 11px;1736  color: var(--peach-t1);1737  background: var(--peach-s2);1738  border: 1px solid var(--peach-t3);1739  border-radius: 4px;1740  padding: 3px 8px;1741}17421743.peach-passkey-approval-notice {1744  font-size: 10px;1745  color: var(--peach-t2);1746  line-height: 1.5;1747  max-width: 220px;1748}17491750.peach-passkey-approval-actions {1751  display: flex;1752  gap: 8px;1753  width: 100%;1754  margin-top: 6px;1755}17561757.peach-passkey-approval-actions .peach-btn {1758  flex: 1;1759}17601761/* ── Inline generator drawer ── */1762.peach-generator-drawer {1763  display: grid;1764  grid-template-rows: 0fr;1765  transition: grid-template-rows 320ms var(--peach-curve-arrival);1766  overflow: hidden;1767}1768.peach-generator-drawer.is-open {1769  grid-template-rows: 1fr;1770}1771.peach-generator-drawer-inner {1772  min-height: 0;1773  overflow: hidden;1774}1775.peach-generator-drawer-content {1776  border-top: 1px solid var(--peach-t3);1777  padding: 8px 0 4px;1778  display: flex;1779  flex-direction: column;1780  gap: 8px;1781}17821783/* ── Compact generator (inside entry edit) ── */1784.peach-generator-drawer-content--compact {1785  border-top: 1px solid var(--peach-t3);1786  padding: 8px 0 2px;1787  gap: 7px;1788}1789.peach-pwgen-compact-display-row {1790  display: flex;1791  align-items: center;1792  gap: 6px;1793}1794.peach-pwgen-compact-output {1795  flex: 1;1796  min-width: 0;1797  font-family: "IBM Plex Mono", monospace;1798  font-size: 11px;1799  font-weight: 400;1800  letter-spacing: 0.04em;1801  color: var(--peach-t0);1802  background: rgba(240, 232, 216, 0.04);1803  border: 1px solid var(--peach-t3);1804  border-radius: 5px;1805  padding: 5px 8px;1806  word-break: break-all;1807  line-height: 1.5;1808}1809.peach-pwgen-compact-controls {1810  display: flex;1811  align-items: center;1812  gap: 6px;1813}1814.peach-pwgen-compact-slider {1815  flex: 1;1816  min-width: 0;1817  height: 2px !important;1818}1819.peach-pwgen-compact-controls .peach-pwgen-len-num {1820  flex-shrink: 0;1821  min-width: 18px;1822  text-align: right;1823}1824.peach-pwgen-compact-pills {1825  display: flex;1826  gap: 3px;1827  flex-shrink: 0;1828}1829.peach-pwgen-compact-pills .peach-pwgen-pill {1830  padding: 2px 7px;1831  font-size: 8px;1832}1833.peach-pwgen-compact-use {1834  flex-shrink: 0;1835  font-size: 10px !important;1836  padding: 3px 9px !important;1837  min-height: 22px !important;1838  border-radius: 5px !important;1839}18401841/* ── Password edit row (input + eye toggle side-by-side) ── */1842.peach-password-edit-row {1843  display: flex;1844  align-items: center;1845  gap: 6px;1846}1847.peach-password-edit-row .peach-inline-input {1848  flex: 1;1849  min-width: 0;1850}18511852/* ── Generate toggle link ── */1853.peach-generate-toggle-link {1854  display: inline-flex;1855  align-items: center;1856  gap: 5px;1857  background: none;1858  border: none;1859  padding: 0;1860  cursor: pointer;1861  font-family: "IBM Plex Mono", monospace;1862  font-size: 10px;1863  color: var(--peach-t2);1864  letter-spacing: 0.04em;1865  transition: color 120ms ease;1866  align-self: flex-start;1867}1868.peach-generate-toggle-link:hover {1869  color: var(--peach-accent);1870}18711872/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1873.peach-entry-body {1874  flex: 1;1875  overflow-y: auto;1876  overflow-x: hidden;1877  scrollbar-width: none;1878  -ms-overflow-style: none;1879  overscroll-behavior: contain;1880  display: grid;1881  gap: 10px;1882  align-content: start;1883  padding: 10px 20px 14px;1884  min-width: 0;1885  min-height: 0;1886}1887.peach-entry-body::-webkit-scrollbar { display: none; }18881889/* Type-toggle pills (new entry only) */1890.peach-new-type-row {1891  display: flex;1892  gap: 6px;1893  margin-bottom: 2px;1894}1895.peach-new-type-btn {1896  background: transparent;1897  border: 1px solid var(--peach-t3);1898  border-radius: 12px;1899  padding: 3px 10px;1900  font-family: "IBM Plex Mono", monospace;1901  font-size: 9px;1902  letter-spacing: 0.12em;1903  text-transform: uppercase;1904  color: var(--peach-t2);1905  cursor: pointer;1906  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1907}1908.peach-new-type-btn.is-active {1909  color: var(--peach-t0);1910  border-color: var(--peach-accent);1911  background: rgba(217, 104, 48, 0.08);1912}1913.peach-new-type-btn:not(.is-active):hover {1914  color: var(--peach-t1);1915  border-color: var(--peach-t2);1916}19171918/* Editable title */1919.peach-new-title-wrap { margin: 0 0 2px; }1920.peach-new-title-input {1921  background: transparent;1922  border: none;1923  outline: none;1924  width: 100%;1925  color: var(--peach-t0);1926  font-family: "Cormorant Garamond", Georgia, serif;1927  font-style: italic;1928  font-weight: 400;1929  font-size: 40px;1930  line-height: 0.95;1931  caret-color: var(--peach-accent);1932}1933.peach-new-title-input::placeholder { color: var(--peach-t2); }19341935/* Editable domain field */1936.peach-domain-value--edit {1937  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1938  font-size: 10px;1939  font-style: italic;1940  letter-spacing: 0.12em;1941  color: var(--peach-t1);1942  background: transparent;1943  border: none;1944  border-bottom: 1px solid var(--peach-t3);1945  outline: none;1946  width: 100%;1947  padding: 2px 0;1948  caret-color: var(--peach-accent);1949  transition: border-color 140ms ease, color 140ms ease;1950}1951.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1952.peach-domain-value--edit:focus {1953  border-bottom-color: rgba(240, 232, 216, 0.28);1954  color: var(--peach-t0);1955}19561957/* Editable field values (username, password, totp) */1958.peach-field-value--edit {1959  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1960  font-size: 13px;1961  color: var(--peach-t0);1962  background: transparent;1963  border: none;1964  border-bottom: 1px solid var(--peach-t3);1965  outline: none;1966  flex: 1;1967  min-width: 0;1968  padding: 3px 0;1969  caret-color: var(--peach-accent);1970  transition: border-color 140ms ease, color 140ms ease;1971}1972.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1973.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }1974.peach-field-value--edit:focus {1975  border-bottom-color: rgba(240, 232, 216, 0.28);1976  color: var(--peach-t0);1977}19781979/* "+ add optional field" links */1980.peach-entry-add-links {1981  display: flex;1982  gap: 12px;1983  flex-wrap: wrap;1984  margin-top: -2px;1985}1986.peach-add-field-link {1987  background: transparent;1988  border: none;1989  padding: 0;1990  cursor: pointer;1991  font-family: "IBM Plex Mono", monospace;1992  font-size: 9px;1993  letter-spacing: 0.1em;1994  text-transform: uppercase;1995  color: var(--peach-t2);1996  transition: color 140ms ease;1997}1998.peach-add-field-link:hover { color: var(--peach-accent); }19992000/* ── New entry form (legacy classes) ────────────────────────────────── */2001.peach-new-body {2002  flex: 1;2003  overflow-y: auto;2004  padding: 10px 20px 14px;2005}2006.peach-new-name-input {2007  background: transparent;2008  border: none;2009  outline: none;2010  width: 100%;2011  color: var(--peach-t0);2012  font-family: "Cormorant Garamond", Georgia, serif;2013  font-style: italic;2014  font-weight: 400;2015  font-size: 40px;2016  line-height: 0.95;2017  caret-color: var(--peach-accent);2018}2019.peach-new-name-input::placeholder { color: var(--peach-t2); }2020.peach-new-field-input {2021  background: transparent;2022  border: none;2023  outline: none;2024  flex: 1;2025  min-width: 0;2026  caret-color: var(--peach-accent);2027}2028.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }20292030/* ── Canary card ── */2031.peach-canary-card {2032  border: 1px solid rgba(217, 160, 48, 0.2);2033  background: rgba(217, 160, 48, 0.03);2034  border-radius: 8px;2035  padding: 12px;2036}20372038.peach-canary-settings-header {2039  display: flex;2040  align-items: center;2041  justify-content: space-between;2042  cursor: pointer;2043  user-select: none;2044}20452046.peach-canary-card .peach-label {2047  color: rgba(217, 160, 48, 0.85);2048}20492050.peach-canary-card .peach-new-field-input {2051  border-color: rgba(217, 160, 48, 0.25);2052}20532054.peach-canary-card .peach-new-field-input:focus {2055  border-color: rgba(217, 160, 48, 0.5);2056}20572058.peach-canary-body {2059  margin-top: 12px;2060  display: flex;2061  flex-direction: column;2062  gap: 10px;2063}20642065.peach-canary-explainer {2066  display: flex;2067  gap: 10px;2068  padding: 10px 12px;2069  border-radius: 10px;2070  background: rgba(217, 160, 48, 0.06);2071  border: 1px solid rgba(217, 160, 48, 0.22);2072  margin-bottom: 4px;2073}20742075.peach-canary-explainer-icon {2076  font-size: 16px;2077  flex-shrink: 0;2078  line-height: 1.2;2079}20802081.peach-canary-explainer-title {2082  font-family: var(--font-ui);2083  font-size: 11px;2084  font-weight: 500;2085  color: rgba(217, 160, 48, 0.9);2086  margin: 0 0 3px;2087}20882089.peach-canary-explainer-copy {2090  font-family: var(--font-ui);2091  font-size: 10px;2092  color: var(--peach-t2);2093  line-height: 1.55;2094  margin: 0;2095}20962097.peach-canary-hint {2098  font-size: 10px;2099  color: var(--peach-t2);2100  font-family: Inter, system-ui, sans-serif;2101  line-height: 1.5;2102  margin-top: 4px;2103}21042105.peach-canary-actions-row {2106  display: flex;2107  align-items: center;2108  gap: 8px;2109}21102111.peach-canary-test-btn {2112  border-color: rgba(217, 160, 48, 0.3);2113  color: rgba(217, 160, 48, 0.85);2114}21152116.peach-canary-test-result {2117  font-size: 10px;2118  font-family: Inter, system-ui, sans-serif;2119}21202121.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2122.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }21232124.peach-canary-badge {2125  display: flex;2126  position: relative;2127  z-index: 1;2128  align-items: center;2129  gap: 5px;2130  padding: 4px 10px;2131  background: rgba(217, 160, 48, 0.12);2132  border: 1px solid rgba(217, 160, 48, 0.35);2133  border-radius: 6px;2134  margin-bottom: 6px;2135  width: fit-content;2136}21372138.peach-canary-badge-label {2139  font-size: 10px;2140  letter-spacing: 0.06em;2141  color: rgba(217, 160, 48, 0.9);2142  font-family: var(--font-ui);2143  text-transform: uppercase;2144}21452146.peach-canary-badge-icon {2147  font-size: 11px;2148}21492150.peach-canary-suppress-row {2151  display: flex;2152  align-items: center;2153  gap: 8px;2154  padding: 6px 10px;2155  background: rgba(217, 160, 48, 0.08);2156  border-radius: 6px;2157  margin-bottom: 8px;2158}21592160.peach-canary-suppress-label {2161  font-size: 11px;2162  color: rgba(217, 160, 48, 0.85);2163  cursor: pointer;2164  font-family: var(--font-ui);2165  letter-spacing: 0.04em;2166}21672168.peach-regen-panel {2169  position: relative;2170  z-index: 1;2171  background: rgba(217, 104, 48, 0.08);2172  border: 1px solid rgba(217, 104, 48, 0.25);2173  border-radius: 8px;2174  padding: 12px;2175  margin-bottom: 8px;2176}21772178.peach-regen-panel-header {2179  display: flex;2180  align-items: center;2181  justify-content: space-between;2182  margin-bottom: 10px;2183}21842185.peach-regen-panel-title {2186  font-size: 11px;2187  font-weight: 600;2188  letter-spacing: 0.06em;2189  text-transform: uppercase;2190  color: rgba(217, 104, 48, 0.9);2191}21922193.peach-regen-output {2194  background: rgba(0, 0, 0, 0.2);2195  border-radius: 6px;2196  padding: 10px;2197  margin-bottom: 10px;2198  font-family: var(--font-mono);2199  font-size: 13px;2200  word-break: break-all;2201  color: var(--peach-t1);2202}22032204.peach-regen-actions {2205  display: flex;2206  gap: 6px;2207}22082209.peach-regen-actions--spaced {2210  margin-bottom: 8px;2211}22122213.peach-regen-action-grow {2214  flex: 1;2215}22162217.peach-regen-copy-btn {2218  padding: 0 8px;2219}22202221.peach-regen-success {2222  position: relative;2223  z-index: 1;2224  background: rgba(40, 180, 80, 0.1);2225  border: 1px solid rgba(40, 180, 80, 0.3);2226  border-radius: 8px;2227  padding: 10px 12px;2228  margin-bottom: 8px;2229  display: flex;2230  align-items: center;2231  gap: 8px;2232  font-size: 11px;2233  color: rgba(40, 180, 80, 0.9);2234}22352236/* ── Note textarea ── */2237.peach-note-textarea {2238  width: 100%;2239  min-height: 180px;2240  max-height: 280px;2241  resize: vertical;2242  background: var(--peach-t4);2243  border: 1px solid var(--peach-t3);2244  border-radius: 8px;2245  padding: 10px 12px;2246  font-family: "IBM Plex Mono", monospace;2247  font-size: 12px;2248  line-height: 1.7;2249  color: var(--peach-t1);2250  outline: none;2251  transition: border-color 150ms ease;2252}22532254.peach-note-textarea:focus {2255  border-color: var(--peach-t2);2256}22572258.peach-note-char-count {2259  font-family: "IBM Plex Mono", monospace;2260  font-size: 9px;2261  color: var(--peach-t3);2262  text-align: right;2263  margin-top: 4px;2264  letter-spacing: 0.1em;2265}22662267/* ── Field input baseline ── */2268.peach-new-field-input {2269  width: 100%;2270  background: transparent;2271  border: none;2272  border-bottom: 1px solid var(--peach-t3);2273  padding: 4px 0;2274  color: var(--peach-t1);2275  font-family: "IBM Plex Mono", monospace;2276  font-size: 13px;2277  outline: none;2278  transition: border-color 150ms ease;2279}22802281.peach-new-field-input:focus {2282  border-bottom-color: var(--peach-t0);2283  color: var(--peach-t0);2284}22852286.peach-new-name-input {2287  width: 100%;2288  background: transparent;2289  border: none;2290  border-bottom: 1px solid var(--peach-t3);2291  padding: 6px 0;2292  font-family: "Cormorant Garamond", Georgia, serif;2293  font-style: italic;2294  font-size: 28px;2295  color: var(--peach-t0);2296  outline: none;2297  transition: border-color 150ms ease;2298}22992300.peach-new-name-input:focus {2301  border-bottom-color: var(--peach-t1);2302}23032304.peach-new-name-input::placeholder {2305  color: var(--peach-t2);2306  font-style: italic;2307}23082309.peach-new-field-input::placeholder {2310  color: var(--peach-t3);2311}23122313/* ── Demo entrance animation ── */2314#hd-shell {2315  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2316}2317@keyframes hd-shell-enter {2318  from { opacity: 0; transform: scale(0.96) translateY(16px); }2319  to   { opacity: 1; transform: scale(1) translateY(0); }2320}23212322/* ── Keyframes ── */2323@keyframes peach-char-enter {2324  from { opacity: 0; transform: translateY(0.22em); }2325  to   { opacity: 1; transform: translateY(0); }2326}2327@keyframes peach-content-enter {2328  from { opacity: 0.96; transform: translateY(4px); }2329  to   { opacity: 1; transform: translateY(0); }2330}2331@keyframes peach-content-exit {2332  from { opacity: 1; transform: translateY(0); }2333  to   { opacity: 0.92; transform: translateY(-3px); }2334}2335@keyframes peach-screen-enter {2336  from { opacity: 0; transform: translateY(14px); }2337  to   { opacity: 1; transform: translateY(0); }2338}2339@keyframes peach-shell-fade-in {2340  from { opacity: 0; }2341  to   { opacity: 1; }2342}2343@keyframes peach-veil-in {2344  from { opacity: 0; }2345  to   { opacity: 1; }2346}2347@keyframes peach-lock-settle {2348  0%   { transform: scale(0.9); }2349  65%  { transform: scale(1.08); }2350  100% { transform: scale(1); }2351}2352@keyframes peach-copy-confirm {2353  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2354  to   { color: var(--peach-accent); border-color: rgba(217,104,48,0.42); background-color: rgba(217,104,48,0.09); box-shadow: 0 0 18px rgba(217,104,48,0.22), inset 0 0 18px rgba(217,104,48,0.12); }2355}2356@keyframes peach-copy-retreat {2357  from { color: var(--peach-accent); border-color: rgba(217,104,48,0.42); background-color: rgba(217,104,48,0.09); box-shadow: 0 0 18px rgba(217,104,48,0.22), inset 0 0 18px rgba(217,104,48,0.12); }2358  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2359}2360@keyframes peach-copy-flood {2361  from { opacity: 0; transform: scaleX(0.15); }2362  to   { opacity: 1; transform: scaleX(1); }2363}2364@keyframes peach-copy-icon-settle {2365  from  { transform: scale(0.84); }2366  70%   { transform: scale(1.08); }2367  to    { transform: scale(1); }2368}2369@keyframes peach-copy-sheen-retreat {2370  from { opacity: 1; transform: scaleX(1); }2371  to   { opacity: 0; transform: scaleX(0.15); }2372}2373@keyframes peach-copy-drain {2374  from { width: 100%; }2375  to   { width: 0; }2376}2377@keyframes peach-shake {2378  0%, 100% { transform: translateX(0); }2379  20%      { transform: translateX(-6px); }2380  40%      { transform: translateX(6px); }2381  60%      { transform: translateX(-4px); }2382  80%      { transform: translateX(4px); }2383}23842385@keyframes pip-pulse {2386  0% { transform: scale(1); }2387  40% { transform: scale(2.2); }2388  100% { transform: scale(1); }2389}239023912392/* ── Password generator ── */2393.peach-pwgen-body {2394  flex: 1; overflow-y: auto;2395  display: flex; flex-direction: column;2396}2397.peach-policy-badge {2398  display: flex; align-items: center;2399  padding: 6px 20px 0;2400  font-size: 10px; font-family: Inter, sans-serif;2401  color: var(--peach-t2); letter-spacing: 0.04em;2402}2403.peach-pwgen-display {2404  padding: 14px 20px 12px;2405  border-bottom: 1px solid var(--peach-t3);2406  display: flex; align-items: flex-start; gap: 10px;2407}2408.peach-pwgen-display-row {2409  display: flex;2410  align-items: flex-start;2411  gap: 8px;2412  padding-bottom: 8px;2413  border-bottom: 1px solid var(--peach-t3);2414}2415.peach-pwgen-output {2416  flex: 1; min-width: 0; margin: 0;2417  font-family: "IBM Plex Mono", monospace;2418  font-size: 13px; color: var(--peach-t0);2419  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2420  white-space: normal;2421  padding: 10px 12px;2422  background: var(--peach-t4);2423  border-radius: 6px;2424  min-height: 36px;2425}2426.peach-pwgen-output-display {2427  flex: 1;2428  min-width: 0;2429  margin: 0;2430  font-family: "Cormorant Garamond", "Times New Roman", serif;2431  font-style: italic;2432  font-weight: 300;2433  font-size: 32px;2434  line-height: 1.05;2435  color: var(--peach-t0);2436  word-break: break-all;2437  overflow-wrap: break-word;2438  white-space: normal;2439  letter-spacing: 0.02em;2440}2441.peach-pwgen-display-actions {2442  display: flex;2443  flex-direction: column;2444  gap: 4px;2445  flex-shrink: 0;2446  margin-top: 2px;2447}2448.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2449.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2450.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2451.peach-pwgen-len-num {2452  font-family: "IBM Plex Mono", monospace;2453  font-size: 12px; color: var(--peach-accent);2454}2455.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2456.peach-pwgen-toggles { display: flex; flex-direction: column; }2457.peach-pwgen-charset-pills {2458  display: flex;2459  gap: 6px;2460  flex-wrap: wrap;2461}2462.peach-pwgen-pill {2463  padding: 4px 11px;2464  border-radius: 999px;2465  border: 1px solid var(--peach-t3);2466  background: transparent;2467  color: var(--peach-t2);2468  font-family: "IBM Plex Mono", monospace;2469  font-size: 9px;2470  letter-spacing: 0.08em;2471  cursor: pointer;2472  transition: all 150ms ease;2473}2474.peach-pwgen-pill.is-on {2475  border-color: rgba(217, 104, 48, 0.5);2476  background: rgba(217, 104, 48, 0.1);2477  color: var(--peach-accent);2478}2479.peach-pwgen-pill:not(.is-on):hover {2480  color: var(--peach-t1);2481  border-color: var(--peach-t2);2482}2483.peach-pwgen-use-btn {2484  width: 100%;2485  min-height: 34px;2486  border-radius: 8px;2487  margin-top: 2px;2488}2489.peach-pwgen-toggle-row {2490  display: flex; align-items: center; justify-content: space-between;2491  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2492}2493.peach-pwgen-toggle-row:last-child { border-bottom: none; }2494.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }24952496.peach-screen-prelock {2497  z-index: 10;2498}24992500.prelock-form {2501  display: grid;2502  gap: 12px;2503}25042505/* Peach popup should not expose native scrollbars on internal panels. */2506.peach-settings-body,2507.peach-new-body,2508.peach-pwgen-body,2509.lock-screen,2510.peach-import-preview {2511  scrollbar-width: none;2512  -ms-overflow-style: none;2513  overscroll-behavior: contain;2514}2515.peach-settings-body::-webkit-scrollbar,2516.peach-new-body::-webkit-scrollbar,2517.peach-pwgen-body::-webkit-scrollbar,2518.lock-screen::-webkit-scrollbar,2519.peach-import-preview::-webkit-scrollbar {2520  width: 0;2521  height: 0;2522  display: none;2523}25242525.lock-screen {2526  height: 100%;2527  min-height: 100%;2528  overflow-y: auto;2529  padding: 18px 18px 16px;2530  gap: 14px;2531  grid-template-rows: auto auto auto 1fr auto;2532  align-content: stretch;2533  position: relative;2534  isolation: isolate;2535}2536.peach-screen.lock-screen--vault-stage {2537  display: flex;2538  flex-direction: column;2539  justify-content: flex-start;2540  gap: 18px;2541  padding: 20px 18px 18px;2542  overflow: hidden;2543}2544.peach-screen.lock-screen--vault-stage .peach-lock-panel {2545  margin-top: auto;2546}2547.lock-screen--onboarding {2548  display: flex;2549  flex-direction: column;2550  gap: 12px;2551  justify-content: flex-start;2552}25532554.lock-screen::before {2555  content: "";2556  position: absolute;2557  inset: 12px 18px auto auto;2558  width: 160px;2559  height: 160px;2560  border-radius: 999px;2561  background:2562    radial-gradient(circle at 50% 50%, rgba(217, 104, 48, 0.18) 0%, rgba(217, 104, 48, 0.06) 42%, transparent 72%);2563  filter: blur(6px);2564  opacity: 0.7;2565  pointer-events: none;2566  z-index: 0;2567}25682569.lock-screen-header {2570  display: flex;2571  align-items: center;2572  justify-content: space-between;2573  position: relative;2574  z-index: 1;2575}25762577.lock-password-input.shake {2578  animation: peach-shake 300ms ease-in-out;2579}25802581.peach-hint-error {2582  color: rgba(220, 80, 60, 0.92);2583}25842585.peach-onboarding-headline {2586  margin: 0;2587  font-family: "Cormorant Garamond", "Times New Roman", serif;2588  font-size: 35px;2589  line-height: 0.88;2590  font-style: italic;2591  font-weight: 400;2592  max-width: 252px;2593}25942595.peach-lock-copy {2596  display: grid;2597  gap: 8px;2598  position: relative;2599  z-index: 1;2600}26012602.peach-lock-copy--onboarding {2603  gap: 10px;2604}26052606.peach-lock-hero {2607  position: relative;2608  z-index: 1;2609  display: grid;2610  gap: 8px;2611  min-height: 0;2612  padding: 4px 2px 0;2613  border: none;2614  border-radius: 0;2615  background: transparent;2616  box-shadow: none;2617}2618.peach-lock-hero-art {2619  position: absolute;2620  right: -8px;2621  top: -6px;2622  width: 120px;2623  height: 120px;2624  display: flex;2625  align-items: center;2626  justify-content: center;2627  pointer-events: none;2628  opacity: 0.12;2629  filter: saturate(0.9);2630}2631.peach-lock-hero-mark {2632  width: 100%;2633  height: 100%;2634}2635.peach-lock-hero-mark path:first-child {2636  fill: rgba(217, 104, 48, 0.92);2637}2638.peach-lock-hero-mark path:nth-child(2),2639.peach-lock-hero-mark path:nth-child(3) {2640  stroke: rgba(123, 144, 96, 0.88);2641  fill: rgba(123, 144, 96, 0.88);2642}2643.peach-lock-hero > *:not(.peach-lock-hero-art) {2644  position: relative;2645  z-index: 1;2646}26472648.peach-lock-eyebrow {2649  display: inline-flex;2650  align-items: center;2651  width: fit-content;2652  padding: 4px 9px;2653  border-radius: 999px;2654  border: 1px solid rgba(217, 104, 48, 0.22);2655  background: rgba(217, 104, 48, 0.08);2656  color: var(--peach-t0);2657  font-family: "IBM Plex Mono", monospace;2658  font-size: 8px;2659  letter-spacing: 0.18em;2660  text-transform: uppercase;2661}26622663.peach-lock-label-row {2664  display: flex;2665  align-items: center;2666  justify-content: space-between;2667  margin-bottom: 0;2668}26692670.peach-lock-reveal-btn {2671  display: inline-flex;2672  align-items: center;2673  gap: 4px;2674  background: none;2675  border: none;2676  cursor: pointer;2677  font-family: "IBM Plex Mono", monospace;2678  font-size: 9px;2679  letter-spacing: 0.06em;2680  color: var(--peach-t2);2681  padding: 2px 0;2682  transition: color 150ms ease;2683}26842685.peach-lock-reveal-btn:hover {2686  color: var(--peach-t1);2687}26882689.peach-lock-warning {2690  color: rgba(220, 80, 60, 0.85) !important;2691  line-height: 1.5;2692}26932694.peach-onboarding-cards {2695  display: grid;2696  gap: 8px;2697  position: relative;2698  z-index: 1;2699}27002701.peach-lock-panel {2702  position: relative;2703  z-index: 1;2704  display: grid;2705  gap: 9px;2706  padding: 14px 16px 15px;2707  border-radius: 18px;2708  border: 1px solid var(--peach-t3);2709  background:2710    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));2711  box-shadow:2712    inset 0 1px 0 rgba(240, 232, 216, 0.04),2713    0 12px 28px rgba(0, 0, 0, 0.12);2714}27152716.peach-lock-panel--secondary {2717  gap: 12px;2718}27192720.peach-lock-panel-header {2721  display: flex;2722  align-items: baseline;2723  justify-content: space-between;2724  gap: 12px;2725}27262727.peach-lock-option-grid {2728  display: grid;2729  gap: 10px;2730}27312732.peach-lock-option {2733  width: 100%;2734  display: grid;2735  gap: 6px;2736  padding: 14px 15px;2737  border-radius: 16px;2738  border: 1px solid rgba(240, 232, 216, 0.08);2739  background: rgba(240, 232, 216, 0.02);2740  color: var(--peach-t0);2741  text-align: left;2742  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;2743}27442745.peach-lock-option:hover {2746  border-color: rgba(217, 104, 48, 0.28);2747  background: rgba(240, 232, 216, 0.04);2748  transform: translateY(-1px);2749}27502751.peach-lock-option-title {2752  font-size: 12px;2753  color: var(--peach-t0);2754}27552756.peach-lock-option-copy {2757  font-size: 11px;2758  line-height: 1.55;2759  color: var(--peach-t1);2760}27612762.peach-onboarding-stack {2763  margin-top: 2px;2764}2765.peach-lock-panel-footer {2766  display: grid;2767  gap: 6px;2768  margin-top: 2px;2769  padding-top: 10px;2770  border-top: 1px solid rgba(240, 232, 216, 0.06);2771}27722773/* Restore picker panel — method option cards */2774.peach-lock-panel--restore {2775  gap: 10px;2776}2777.peach-lock-option--history {2778  border-color: rgba(240, 232, 216, 0.06);2779  opacity: 0.85;2780}27812782/* Snapshot restore panel */2783.peach-snapshot-panel {2784  gap: 10px;2785  overflow-y: auto;2786  max-height: 340px;2787}2788.peach-snapshot-list {2789  display: flex;2790  flex-direction: column;2791  gap: 4px;2792}2793.peach-snapshot-row {2794  display: flex;2795  align-items: center;2796  justify-content: space-between;2797  width: 100%;2798  padding: 8px 10px;2799  border-radius: 8px;2800  border: 1px solid rgba(240, 232, 216, 0.07);2801  background: transparent;2802  cursor: pointer;2803  transition: border-color 120ms, background 120ms;2804  text-align: left;2805  gap: 8px;2806}2807.peach-snapshot-row:hover {2808  border-color: rgba(240, 232, 216, 0.14);2809  background: rgba(240, 232, 216, 0.03);2810}2811.peach-snapshot-row.is-selected {2812  border-color: rgba(217, 104, 48, 0.4);2813  background: rgba(217, 104, 48, 0.07);2814}2815.peach-snapshot-time {2816  font-size: 11.5px;2817  color: var(--peach-t0);2818  flex: 1;2819}2820.peach-snapshot-count {2821  font-family: "IBM Plex Mono", monospace;2822  font-size: 10px;2823  color: var(--peach-t2);2824  flex-shrink: 0;2825}2826.peach-snapshot-confirm {2827  display: flex;2828  flex-direction: column;2829  gap: 8px;2830  padding-top: 10px;2831  border-top: 1px solid rgba(240, 232, 216, 0.06);2832}2833.peach-snapshot-warning {2834  display: flex;2835  align-items: flex-start;2836  gap: 6px;2837  font-size: 10.5px;2838  color: rgba(220, 80, 60, 0.85);2839  line-height: 1.55;2840}2841.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }2842.peach-snapshot-confirm-row {2843  display: flex;2844  gap: 6px;2845  align-items: center;2846}2847.peach-snapshot-restore-btn {2848  width: 100%;2849}2850.peach-lock-hero--unlock .peach-lock-hero-art {2851  width: 112px;2852  height: 112px;2853  right: 0;2854  top: 2px;2855  opacity: 0.1;2856}28572858.peach-card {2859  border: 1px solid var(--peach-t3);2860  border-radius: 18px;2861  background:2862    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);2863  box-shadow:2864    inset 0 1px 0 rgba(240, 232, 216, 0.04),2865    0 12px 32px rgba(0, 0, 0, 0.14);2866  overflow: hidden;2867}28682869.peach-card-active {2870  border-color: rgba(217, 104, 48, 0.35);2871  box-shadow:2872    inset 0 1px 0 rgba(240, 232, 216, 0.05),2873    0 16px 38px rgba(0, 0, 0, 0.18),2874    0 0 0 1px rgba(217, 104, 48, 0.08);2875}28762877.peach-card-disabled {2878  opacity: 0.72;2879}28802881.peach-card-header {2882  width: 100%;2883  padding: 13px 16px 11px;2884  background: transparent;2885  color: var(--peach-t0);2886  display: flex;2887  justify-content: space-between;2888  align-items: center;2889  text-align: left;2890  font-size: 12px;2891}28922893.peach-card-body {2894  padding: 0 16px 16px;2895  display: grid;2896  gap: 9px;2897}28982899.peach-card-tag {2900  color: var(--peach-t2);2901  font-family: "IBM Plex Mono", monospace;2902  font-size: 9px;2903  letter-spacing: 0.12em;2904  text-transform: uppercase;2905}29062907.peach-empty-copy {2908  display: grid;2909  gap: 6px;2910  color: var(--peach-t1);2911  font-size: 13px;2912}29132914.peach-lock-submit {2915  width: 100%;2916  box-shadow: 0 14px 36px rgba(217, 104, 48, 0.22);2917}29182919.peach-lock-secondary {2920  width: 100%;2921  border-color: var(--peach-t3);2922  background: rgba(240, 232, 216, 0.02);2923}29242925.peach-lock-secondary:hover {2926  background: rgba(240, 232, 216, 0.04);2927}29282929.peach-lock-note {2930  max-width: none;2931  line-height: 1.55;2932  margin: 0;2933}29342935.peach-overlay-action {2936  font-size: 10px;2937  padding: 4px 8px;2938  letter-spacing: 0.06em;2939  min-width: 44px;2940  text-align: center;2941}29422943.peach-overlay-spacer {2944  width: 32px;2945}29462947.peach-inline-action {2948  flex-shrink: 0;2949  font-size: 9px;2950  letter-spacing: 0.1em;2951  text-transform: uppercase;2952  padding: 4px 7px;2953}2954.peach-password-toggle-btn {2955  display: inline-flex;2956  align-items: center;2957  justify-content: center;2958  min-width: 30px;2959  min-height: 26px;2960  padding: 0 7px;2961  border: 1px solid var(--peach-t3);2962  border-radius: 999px;2963  background: rgba(240, 232, 216, 0.04);2964  color: var(--peach-t2);2965  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;2966}2967.peach-password-toggle-btn:hover {2968  border-color: var(--peach-t2);2969  color: var(--peach-t0);2970  background: rgba(240, 232, 216, 0.06);2971}29722973.peach-new-textarea {2974  width: 100%;2975  min-height: 88px;2976  resize: vertical;2977  border: 0;2978  outline: none;2979  background: transparent;2980  color: var(--peach-t1);2981  font-family: "IBM Plex Mono", monospace;2982  font-size: 12px;2983  line-height: 1.65;2984  caret-color: var(--peach-accent);2985}29862987.peach-new-textarea::placeholder {2988  color: var(--peach-t2);2989  opacity: 0.7;2990}29912992.peach-settings-actions {2993  display: grid;2994  gap: 8px;2995}29962997.peach-sync-section-label {2998  font-size: 11px;2999  color: var(--peach-t2);3000  text-transform: uppercase;3001  letter-spacing: 0.05em;3002}30033004.peach-sync-device-row {3005  display: flex;3006  justify-content: space-between;3007  align-items: center;3008  padding: 6px 0;3009  border-bottom: 1px solid var(--peach-t3);3010}30113012.peach-sync-device-info {3013  display: flex;3014  flex-direction: column;3015  gap: 2px;3016}30173018.peach-sync-device-name {3019  font-size: 13px;3020  color: var(--peach-t0);3021}30223023.peach-sync-device-meta {3024  font-size: 11px;3025  color: var(--peach-t2);3026}30273028.peach-sync-status-dot {3029  display: inline-block;3030  width: 8px;3031  height: 8px;3032  border-radius: 50%;3033  vertical-align: middle;3034}30353036.peach-sync-remove-btn {3037  color: var(--peach-breach);3038}30393040.peach-import-preview {3041  margin-bottom: 12px;3042  max-height: 152px;3043  overflow-y: auto;3044  border: 1px solid var(--peach-t3);3045  border-radius: 10px;3046  padding: 8px 10px;3047  display: grid;3048  gap: 8px;3049  background: rgba(240, 232, 216, 0.02);3050}30513052.peach-import-preview-row {3053  display: flex;3054  justify-content: space-between;3055  gap: 10px;3056  font-size: 11px;3057  color: var(--peach-t1);3058}30593060.peach-import-preview-title {3061  color: var(--peach-t0);3062  flex: 1;3063  min-width: 0;3064  overflow: hidden;3065  text-overflow: ellipsis;3066  white-space: nowrap;3067}30683069.peach-import-preview-meta {3070  color: var(--peach-t2);3071  flex-shrink: 0;3072  max-width: 42%;3073  overflow: hidden;3074  text-overflow: ellipsis;3075  white-space: nowrap;3076}30773078.peach-import-preview-more {3079  color: var(--peach-t2);3080  font-size: 10px;3081}30823083.peach-restore-copy {3084  margin: 0;3085  color: var(--peach-t1);3086  font-size: 11px;3087  line-height: 1.6;3088}30893090.peach-restore-warning {3091  padding: 10px 12px;3092  border-radius: 12px;3093  border: 1px solid rgba(220, 80, 60, 0.22);3094  background: rgba(220, 80, 60, 0.08);3095  color: rgba(240, 232, 216, 0.86);3096  font-size: 11px;3097  line-height: 1.55;3098}30993100.peach-provider-chips {3101  display: flex;3102  flex-wrap: wrap;3103  gap: 6px;3104}31053106.peach-provider-chip {3107  display: inline-flex;3108  align-items: center;3109  padding: 5px 8px;3110  border-radius: 999px;3111  border: 1px solid var(--peach-t3);3112  background: rgba(240, 232, 216, 0.02);3113  color: var(--peach-t1);3114  font-family: "IBM Plex Mono", monospace;3115  font-size: 8px;3116  letter-spacing: 0.08em;3117  text-transform: uppercase;3118}31193120.peach-restore-file,3121.peach-restore-input {3122  width: 100%;3123  border-radius: 10px;3124  border: 1px solid var(--peach-t3);3125  background: var(--peach-s2);3126  color: var(--peach-t0);3127  font-size: 12px;3128}31293130.peach-restore-file {3131  padding: 9px 10px;3132}31333134.peach-restore-file::file-selector-button {3135  margin-right: 10px;3136  padding: 7px 10px;3137  border: 1px solid rgba(217, 104, 48, 0.28);3138  border-radius: 999px;3139  background: rgba(217, 104, 48, 0.08);3140  color: var(--peach-t0);3141  font-size: 10px;3142  letter-spacing: 0.08em;3143  text-transform: uppercase;3144  cursor: pointer;3145}31463147.peach-restore-input {3148  padding: 10px 12px;3149}31503151.peach-auth-grid {3152  display: grid;3153  gap: 10px;3154}31553156.peach-import-summary {3157  color: var(--peach-t1);3158  font-size: 12px;3159  line-height: 1.6;3160  margin-bottom: 12px;3161}31623163.peach-restore-error {3164  color: rgba(220, 80, 60, 0.95);3165  font-size: 12px;3166  line-height: 1.55;3167}31683169.peach-cjk-qr-panel {3170  margin-top: 14px;3171  padding: 12px;3172  border-radius: 16px;3173  border: 1px solid var(--peach-t3);3174  background: rgba(240, 232, 216, 0.02);3175  display: grid;3176  gap: 10px;3177}31783179.peach-cjk-qr-frame {3180  display: grid;3181  place-items: center;3182  min-height: 212px;3183  border-radius: 14px;3184  background: #fff;3185  overflow: hidden;3186}31873188.peach-cjk-qr-frame svg {3189  display: block;3190  width: 196px;3191  height: 196px;3192}31933194.peach-cjk-qr-error,3195.peach-cjk-qr-caption {3196  color: var(--peach-t1);3197  font-size: 11px;3198  line-height: 1.55;3199}32003201.peach-cjk-qr-card {3202  max-width: 400px;3203  margin: auto;3204}32053206.peach-cjk-qr-body {3207  padding: 0 20px 20px;3208  text-align: center;3209}32103211.peach-cjk-qr-hint {3212  font-size: 11px;3213  color: var(--peach-t2);3214  margin: 0 0 14px;3215}32163217.peach-cjk-qr-image {3218  border-radius: 4px;3219  display: block;3220  margin: 0 auto;3221  width: 100%;3222  max-width: 320px;3223  height: auto;3224}32253226.peach-pro-badge {3227  padding: 2px 6px;3228  border-radius: 999px;3229  font-family: var(--font-ui);3230  font-size: 10px;3231  letter-spacing: 0.08em;3232  text-transform: uppercase;3233  background: rgba(217, 104, 48, 0.14);3234  color: var(--peach-accent);3235}32363237.peach-loading {3238  position: absolute;3239  inset: 0;3240  display: flex;3241  align-items: center;3242  justify-content: center;3243  background: var(--bg);3244  animation: peach-loading-pulse 1.2s ease-in-out infinite;3245}32463247@keyframes peach-loading-pulse {3248  0%, 100% { opacity: 0.6; }3249  50% { opacity: 1; }3250}32513252/* ── Health Dashboard ─────────────────────────────────────────────────── */3253.peach-health-body {3254  flex: 1;3255  overflow-y: auto;3256  display: flex;3257  flex-direction: column;3258}32593260.peach-health-summary {3261  padding: 10px 16px 6px;3262  font-family: "IBM Plex Mono", monospace;3263  font-size: 11px;3264}3265.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3266.peach-health-summary-ok { color: var(--peach-t2); }32673268.peach-health-check-row {3269  padding: 0 16px 10px;3270}3271.peach-health-check-btn {3272  width: 100%;3273  display: flex;3274  align-items: center;3275  justify-content: center;3276}32773278.peach-health-sections {3279  flex: 1;3280  display: flex;3281  flex-direction: column;3282}32833284.peach-health-section {3285  border-bottom: 1px solid var(--peach-t3);3286}32873288.peach-health-section-header {3289  width: 100%;3290  display: flex;3291  align-items: center;3292  justify-content: space-between;3293  padding: 9px 16px;3294  background: transparent;3295  cursor: pointer;3296  color: var(--peach-t0);3297}32983299.peach-health-section-title-row {3300  display: flex;3301  align-items: center;3302  gap: 8px;3303}33043305.peach-health-count-badge {3306  display: inline-flex;3307  align-items: center;3308  justify-content: center;3309  min-width: 20px;3310  height: 18px;3311  padding: 0 5px;3312  border-radius: 999px;3313  background: rgba(220,80,60,0.15);3314  border: 1px solid rgba(220,80,60,0.25);3315  font-family: "IBM Plex Mono", monospace;3316  font-size: 9px;3317  color: rgba(220,80,60,0.9);3318}33193320.peach-health-section-title {3321  font-family: "IBM Plex Mono", monospace;3322  font-size: 11px;3323  text-transform: uppercase;3324  letter-spacing: 0.1em;3325  color: var(--peach-t1);3326}33273328.peach-health-chevron {3329  color: var(--peach-t2);3330  transition: transform 200ms ease;3331  flex-shrink: 0;3332}3333.peach-health-chevron.is-expanded {3334  transform: rotate(180deg);3335}33363337.peach-health-section-body {3338  padding: 0 16px 10px;3339  display: flex;3340  flex-direction: column;3341  gap: 4px;3342}33433344.peach-health-row {3345  display: flex;3346  align-items: flex-start;3347  justify-content: space-between;3348  gap: 8px;3349  padding: 6px 8px;3350  border-radius: 8px;3351  background: rgba(240,232,216,0.02);3352}33533354.peach-health-row-info {3355  flex: 1;3356  min-width: 0;3357  display: flex;3358  flex-direction: column;3359  gap: 2px;3360}33613362.peach-health-row-name {3363  font-family: "Cormorant Garamond", serif;3364  font-size: 15px;3365  font-style: italic;3366  font-weight: 400;3367  color: var(--peach-t0);3368  white-space: nowrap;3369  overflow: hidden;3370  text-overflow: ellipsis;3371}33723373.peach-health-row-meta {3374  font-family: "IBM Plex Mono", monospace;3375  font-size: 9px;3376  color: var(--peach-t2);3377  letter-spacing: 0.05em;3378}33793380.peach-health-fix-btn {3381  font-size: 9px;3382  letter-spacing: 0.08em;3383  text-transform: uppercase;3384  padding: 4px 7px;3385  flex-shrink: 0;3386  display: flex;3387  align-items: center;3388}33893390.peach-health-empty {3391  font-family: "IBM Plex Mono", monospace;3392  font-size: 10px;3393  color: var(--peach-t2);3394  padding: 6px 0;3395}33963397.peach-health-loading {3398  font-family: "IBM Plex Mono", monospace;3399  font-size: 10px;3400  color: var(--peach-t2);3401  padding: 6px 0;3402  display: flex;3403  align-items: center;3404  gap: 6px;3405}34063407.peach-health-loading::before {3408  content: "";3409  width: 10px;3410  height: 10px;3411  border: 1.5px solid var(--peach-t3);3412  border-top-color: var(--peach-accent);3413  border-radius: 50%;3414  animation: peach-spin 600ms linear infinite;3415}34163417@keyframes peach-spin {3418  to { transform: rotate(360deg); }3419}34203421.peach-spinner {3422  width: 32px;3423  height: 32px;3424  border: 2px solid var(--peach-s2);3425  border-top-color: var(--peach-accent);3426  border-radius: 50%;3427  margin: 0 auto 16px;3428  animation: peach-spin 0.8s linear infinite;3429}34303431.peach-progress-screen {3432  text-align: center;3433  padding: 32px 16px;3434}34353436.peach-progress-screen-title {3437  font-size: 13px;3438  color: var(--peach-t0);3439  margin-bottom: 16px;3440}34413442.peach-progress-screen-stage {3443  font-size: 11px;3444  color: var(--peach-t2);3445  min-height: 14px;3446}34473448.peach-progress-screen-note {3449  font-size: 10px;3450  color: var(--peach-t2);3451  margin-top: 8px;3452}34533454.peach-pairing-body {3455  flex: 1;3456  overflow-y: auto;3457  display: flex;3458  flex-direction: column;3459}34603461.peach-pairing-content {3462  flex: 1;3463  display: flex;3464  flex-direction: column;3465  align-items: center;3466  justify-content: center;3467  gap: 14px;3468  padding: 28px 20px;3469  text-align: center;3470}34713472.peach-pairing-headline {3473  font-family: var(--font-display);3474  font-style: italic;3475  font-weight: 300;3476  font-size: 28px;3477  color: var(--peach-t0);3478  margin: 0;3479  line-height: 1;3480}34813482.peach-pairing-subline {3483  font-size: 12px;3484  color: var(--peach-t2);3485  max-width: 220px;3486  line-height: 1.5;3487  margin: 0;3488}34893490.peach-pairing-subline--center {3491  text-align: center;3492}34933494.peach-pairing-code-display {3495  display: flex;3496  gap: 6px;3497}34983499.peach-pairing-code-digit {3500  display: flex;3501  align-items: center;3502  justify-content: center;3503  width: 36px;3504  height: 48px;3505  background: var(--peach-s2);3506  border: 1px solid var(--peach-t3);3507  border-radius: 6px;3508  font-family: var(--font-mono);3509  font-size: 22px;3510  color: var(--peach-t0);3511  letter-spacing: 0;3512}35133514.peach-pairing-countdown-ring {3515  position: relative;3516  display: inline-flex;3517  align-items: center;3518  justify-content: center;3519}35203521.peach-pairing-countdown-num {3522  position: absolute;3523  font-family: var(--font-mono);3524  font-size: 14px;3525  color: var(--peach-t1);3526}35273528.peach-pairing-ring-track {3529  fill: none;3530  stroke: var(--peach-t3);3531  stroke-width: 2;3532}35333534.peach-pairing-ring-progress {3535  fill: none;3536  stroke: var(--peach-accent);3537  stroke-width: 2;3538  stroke-linecap: round;3539  transform: rotate(-90deg);3540  transform-origin: 50% 50%;3541  transition: stroke-dashoffset 0.5s linear;3542}35433544.peach-pairing-code-inputs {3545  display: flex;3546  gap: 8px;3547}35483549.peach-pairing-code-box {3550  width: 36px;3551  height: 48px;3552  text-align: center;3553  background: var(--peach-s2);3554  border: 1px solid var(--peach-t3);3555  border-radius: 6px;3556  font-family: var(--font-mono);3557  font-size: 20px;3558  color: var(--peach-t0);3559  outline: none;3560  transition: border-color 120ms ease;3561}35623563.peach-pairing-code-box:focus {3564  border-color: var(--peach-accent);3565}35663567.peach-pairing-code-box.has-error {3568  border-color: rgba(220, 80, 60, 0.45);3569}35703571.peach-pairing-status {3572  display: flex;3573  align-items: center;3574  gap: 8px;3575  margin: 0;3576  font-size: 12px;3577  color: var(--peach-t1);3578}35793580.peach-pairing-error {3581  margin: 0;3582  font-size: 11px;3583  color: var(--peach-breach);3584}35853586.peach-pairing-error-msg {3587  color: var(--peach-t1);3588}35893590.peach-pairing-spinner {3591  width: 12px;3592  height: 12px;3593  border: 1.5px solid var(--peach-t3);3594  border-top-color: var(--peach-accent);3595  border-radius: 50%;3596  animation: peach-spin 0.8s linear infinite;3597}35983599.peach-pairing-success-icon,3600.peach-pairing-error-icon,3601.peach-pairing-hero {3602  display: inline-flex;3603  align-items: center;3604  justify-content: center;3605}36063607/* Tag chips */3608.peach-tag-chip {3609  display: inline-flex;3610  align-items: center;3611  gap: 4px;3612  padding: 3px 8px;3613  border-radius: 999px;3614  border: 1px solid rgba(217, 104, 48, 0.28);3615  background: rgba(217, 104, 48, 0.08);3616  color: rgba(240, 232, 216, 0.85);3617  font-family: "IBM Plex Mono", monospace;3618  font-size: 10px;3619  letter-spacing: 0.04em;3620}36213622.peach-tag-chip-remove {3623  background: transparent;3624  border: none;3625  color: inherit;3626  opacity: 0.6;3627  cursor: pointer;3628  padding: 0;3629  font-size: 12px;3630  line-height: 1;3631}36323633.peach-tag-chip-remove:hover {3634  opacity: 1;3635}36363637/* Tag input */3638.peach-tag-input-wrap {3639  border-bottom: 1px solid var(--peach-t3);3640}36413642.peach-tag-suggestions {3643  display: flex;3644  flex-wrap: wrap;3645  gap: 4px;3646  padding: 6px 0;3647}36483649.peach-tag-suggestion {3650  padding: 2px 8px;3651  border-radius: 999px;3652  border: 1px solid var(--peach-t3);3653  background: var(--peach-s2);3654  color: var(--peach-t1);3655  font-family: "IBM Plex Mono", monospace;3656  font-size: 10px;3657  cursor: pointer;3658  transition: border-color 80ms ease, background 80ms ease;3659}36603661.peach-tag-suggestion:hover {3662  border-color: rgba(217, 104, 48, 0.4);3663  background: rgba(217, 104, 48, 0.08);3664}36653666/* Tag filter strip */3667.peach-tag-filter-strip {3668  border-bottom: 1px solid var(--peach-t3);3669  flex-shrink: 0;3670}36713672.peach-tag-filter-chip {3673  display: inline-flex;3674  align-items: center;3675  padding: 4px 10px;3676  border-radius: 999px;3677  border: 1px solid var(--peach-t3);3678  background: transparent;3679  color: var(--peach-t2);3680  font-family: "IBM Plex Mono", monospace;3681  font-size: 9px;3682  letter-spacing: 0.06em;3683  text-transform: uppercase;3684  cursor: pointer;3685  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3686  white-space: nowrap;3687}36883689.peach-tag-filter-chip:hover {3690  border-color: rgba(217, 104, 48, 0.35);3691  color: var(--peach-t1);3692}36933694.peach-tag-filter-chip.is-selected {3695  border-color: rgba(217, 104, 48, 0.5);3696  background: rgba(217, 104, 48, 0.12);3697  color: rgba(240, 232, 216, 0.9);3698}36993700/* ─────────────────────────────────────────────────────────────────────────3701   v1.4.12 additions3702   ─────────────────────────────────────────────────────────────────────── */37033704/* Sort bar */3705.peach-sort-bar {3706  display: flex;3707  align-items: center;3708  gap: 4px;3709  padding: 5px 12px;3710  border-bottom: 1px solid var(--peach-t3);3711  flex-shrink: 0;3712  overflow-x: auto;3713  scrollbar-width: none;3714}37153716.peach-sort-btn {3717  padding: 2px 9px;3718  border-radius: 999px;3719  border: 1px solid transparent;3720  background: transparent;3721  color: var(--peach-t2);3722  font-family: "IBM Plex Mono", monospace;3723  font-size: 9px;3724  letter-spacing: 0.07em;3725  text-transform: uppercase;3726  cursor: pointer;3727  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3728  white-space: nowrap;3729}37303731.peach-sort-btn:hover {3732  border-color: rgba(217, 104, 48, 0.3);3733  color: var(--peach-t1);3734}37353736.peach-sort-btn.is-active {3737  border-color: rgba(217, 104, 48, 0.5);3738  background: rgba(217, 104, 48, 0.12);3739  color: rgba(240, 232, 216, 0.9);3740}37413742.peach-sort-domain-hint {3743  margin-left: auto;3744  font-family: "IBM Plex Mono", monospace;3745  font-size: 9px;3746  color: rgba(217, 104, 48, 0.6);3747  white-space: nowrap;3748  overflow: hidden;3749  text-overflow: ellipsis;3750  max-width: 110px;3751}37523753/* Tab-match badge on entry rows */3754.peach-tab-match-badge {3755  display: inline-block;3756  width: 6px;3757  height: 6px;3758  border-radius: 50%;3759  background: rgba(217, 104, 48, 0.75);3760  margin-left: 5px;3761  vertical-align: middle;3762  flex-shrink: 0;3763  box-shadow: 0 0 4px rgba(217, 104, 48, 0.4);3764}37653766.peach-entry-row.is-tab-match {3767  background: rgba(217, 104, 48, 0.04);3768  border-bottom-color: rgba(217, 104, 48, 0.08);3769}37703771.peach-entry-row.is-tab-match:hover {3772  background: rgba(217, 104, 48, 0.08);3773}37743775/* Entry list stagger entrance */3776@keyframes peach-entry-fadein {3777  from { opacity: 0; transform: translateY(4px); }3778  to   { opacity: 1; transform: translateY(0); }3779}37803781.peach-vault-list .peach-entry-row {3782  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;3783  content-visibility: auto;3784  contain-intrinsic-size: auto 44px;3785}37863787/* Button press micro-interaction */3788.peach-btn:active {3789  transform: scale(0.95);3790  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3791}37923793.peach-sort-btn:active,3794.peach-tag-filter-chip:active {3795  transform: scale(0.93);3796  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3797}37983799/* Password strength bar (Lock view + shared) */3800.peach-password-strength {3801  display: flex;3802  align-items: center;3803  gap: 8px;3804  margin-top: 6px;3805}38063807.peach-strength-bar {3808  flex: 1;3809  height: 3px;3810  border-radius: 2px;3811  background: var(--peach-t3);3812  overflow: hidden;3813}38143815.peach-strength-fill {3816  height: 100%;3817  border-radius: 2px;3818  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),3819              background 300ms ease;3820}38213822.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }3823.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }3824.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }3825.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }38263827.peach-strength-label {3828  font-family: "IBM Plex Mono", monospace;3829  font-style: italic;3830  font-size: 9px;3831  font-weight: 300;3832  letter-spacing: 0.06em;3833  color: var(--peach-t2);3834  min-width: 36px;3835  text-align: right;3836}38373838.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }3839.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }3840.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }3841.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }38423843/* Duress form */3844.peach-duress-status {3845  padding: 2px 8px;3846  border-radius: 999px;3847  border: 1px solid var(--peach-t3);3848  font-family: "IBM Plex Mono", monospace;3849  font-size: 9px;3850  letter-spacing: 0.07em;3851  text-transform: uppercase;3852  color: var(--peach-t2);3853  flex-shrink: 0;3854}38553856.peach-duress-status.is-active {3857  border-color: rgba(217, 104, 48, 0.45);3858  background: rgba(217, 104, 48, 0.1);3859  color: rgba(240, 232, 216, 0.85);3860}38613862.peach-duress-form {3863  padding: 8px 0 4px;3864  display: flex;3865  flex-direction: column;3866  gap: 6px;3867}38683869.peach-duress-form .peach-label {3870  margin-top: 4px;3871}38723873.peach-duress-actions {3874  display: flex;3875  gap: 6px;3876  align-items: center;3877  margin-top: 4px;3878}38793880.peach-duress-actions .peach-btn:first-child {3881  margin-right: auto;3882}38833884/* Improved overlay spring entrance */3885.peach-overlay-view.ov-enter-up {3886  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3887}38883889@keyframes ov-enter-up-spring {3890  from { opacity: 0; transform: translateY(16px) scale(0.98); }3891  to   { opacity: 1; transform: translateY(0) scale(1); }3892}38933894.peach-overlay-view.ov-enter-right {3895  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3896}38973898@keyframes ov-enter-right-spring {3899  from { opacity: 0; transform: translateX(18px) scale(0.98); }3900  to   { opacity: 1; transform: translateX(0) scale(1); }3901}39023903/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */3904/* Used when CJKImportView or MainImportView renders during onboarding3905   (no vault yet). Animates like a lock-screen transition. */3906.peach-lock-view {3907  position: absolute;3908  inset: 0;3909  display: flex;3910  flex-direction: column;3911  background:3912    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),3913    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),3914    var(--peach-bg);3915  z-index: 2;3916  overflow: hidden;3917  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3918}39193920.peach-lock-view-header {3921  display: flex;3922  align-items: center;3923  justify-content: space-between;3924  padding: 16px 18px 12px;3925  flex-shrink: 0;3926}39273928/* ───────── Settings: auto-lock select ───────── */3929.peach-settings-select {3930  font-family: "IBM Plex Mono", monospace;3931  font-size: 11px;3932  background: transparent;3933  border: 1px solid var(--peach-t3);3934  border-radius: 4px;3935  color: var(--peach-t1);3936  padding: 3px 6px;3937  cursor: pointer;3938  outline: none;3939}3940.peach-settings-select:focus {3941  border-color: var(--peach-accent);3942}39433944/* ───────── Duress status pill (new polished) ───────── */3945.peach-duress-status-pill {3946  font-family: "IBM Plex Mono", monospace;3947  font-size: 9px;3948  text-transform: uppercase;3949  letter-spacing: 0.12em;3950  padding: 2px 8px;3951  border-radius: 12px;3952  background: var(--peach-t3);3953  color: var(--peach-t2);3954  flex-shrink: 0;3955}3956.peach-duress-status-pill.is-active {3957  background: rgba(217, 104, 48, 0.15);3958  color: var(--peach-accent);3959}39603961/* ───────── Entry advanced disclosure (canary) ───────── */3962.peach-entry-advanced {3963  margin-top: 12px;3964  border-top: 1px solid var(--peach-t3);3965  padding-top: 10px;3966  position: relative;3967  z-index: 1;3968}3969.peach-entry-advanced-toggle {3970  display: flex;3971  align-items: center;3972  justify-content: space-between;3973  width: 100%;3974  background: transparent;3975  border: none;3976  cursor: pointer;3977  padding: 0;3978  color: var(--peach-t2);3979}3980.peach-canary-section {3981  margin-top: 10px;3982  display: grid;3983  gap: 6px;3984}39853986/* ───────── Import: merge/replace radio choices ───────── */3987.peach-import-choice {3988  display: flex;3989  align-items: flex-start;3990  gap: 10px;3991  padding: 8px 10px;3992  border: 1px solid var(--peach-t3);3993  border-radius: 10px;3994  cursor: pointer;3995  margin-bottom: 6px;3996  transition: border-color 120ms ease, background 120ms ease;3997}3998.peach-import-choice:hover {3999  border-color: var(--peach-accent);4000}4001.peach-import-choice input[type="radio"] {4002  margin-top: 3px;4003  accent-color: var(--peach-accent);4004  flex-shrink: 0;4005}4006.peach-import-choice-main {4007  display: flex;4008  flex-direction: column;4009  gap: 2px;4010  min-width: 0;4011}4012.peach-import-choice-label {4013  font-size: 12px;4014  color: var(--peach-t0);4015}4016.peach-import-choice-sub {4017  font-size: 11px;4018  color: var(--peach-t2);4019  line-height: 1.5;4020}40214022/* ───────── Export: success confirmation strip ───────── */4023.peach-export-success {4024  display: flex;4025  align-items: flex-start;4026  gap: 10px;4027  padding: 12px;4028  border-radius: 12px;4029  border: 1px solid rgba(150, 175, 110, 0.3);4030  background: rgba(150, 175, 110, 0.08);4031  color: var(--peach-t0);4032  font-size: 12px;4033  line-height: 1.55;4034}4035.peach-export-success-check {4036  color: rgba(150, 175, 110, 0.9);4037  font-size: 14px;4038  flex-shrink: 0;4039}40404041/* ── Trash view ──────────────────────────────────────────────────────── */4042.peach-trash-entry-row {4043  display: flex;4044  align-items: center;4045  justify-content: space-between;4046  gap: 8px;4047  padding: 8px 0;4048  border-bottom: 1px solid var(--peach-t3);4049}4050.peach-trash-entry-row:last-child { border-bottom: none; }4051.peach-trash-entry-info {4052  flex: 1;4053  min-width: 0;4054  display: flex;4055  flex-direction: column;4056  gap: 2px;4057}4058.peach-trash-entry-title {4059  font-size: 12px;4060  color: var(--peach-t1);4061  overflow: hidden;4062  text-overflow: ellipsis;4063  white-space: nowrap;4064}4065.peach-trash-entry-meta {4066  font-family: var(--font-mono);4067  font-size: 9px;4068  color: var(--peach-t2);4069  letter-spacing: 0.06em;4070}4071.peach-trash-entry-actions {4072  display: flex;4073  align-items: center;4074  gap: 4px;4075  flex-shrink: 0;4076}40774078/* ── Settings shortcuts grid ─────────────────────────────────────────── */4079.peach-shortcuts-grid {4080  display: grid;4081  grid-template-columns: auto 1fr;4082  gap: 6px 12px;4083  align-items: center;4084  padding: 4px 0;4085}4086.peach-shortcut-key {4087  font-family: var(--font-mono);4088  font-size: 10px;4089  color: var(--peach-t0);4090  background: var(--peach-t3);4091  border-radius: 4px;4092  padding: 2px 6px;4093  white-space: nowrap;4094  text-align: center;4095}4096.peach-shortcut-desc {4097  font-size: 11px;4098  color: var(--peach-t1);4099}41004101/* ── Sort bar trash button ───────────────────────────────────────────── */4102.peach-sort-trash-btn {4103  display: flex;4104  align-items: center;4105  justify-content: center;4106  padding: 3px 5px;4107  background: transparent;4108  border: none;4109  cursor: pointer;4110  color: var(--peach-t2);4111  border-radius: 4px;4112  transition: color 140ms ease, background 140ms ease;4113}4114.peach-sort-trash-btn:hover {4115  color: var(--peach-t1);4116  background: var(--peach-t3);4117}