popup.css

92.4 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99.peach-shell::after {100  content: "";101  position: absolute;102  inset: 0;103  border: 2px solid rgba(217, 104, 48, 0);104  box-shadow: 0 0 0 rgba(217, 104, 48, 0);105  border-radius: inherit;106  opacity: 0;107  pointer-events: none;108  z-index: 20;109}110.peach-shell.peach-shell--totp-ring::after {111  animation: peach-edge-ring-breath 780ms cubic-bezier(0.18, 0.8, 0.24, 1) both;112}113.peach-shell[data-surface="extension"] {114  width: min(320px, 100vw);115  border-radius: 0;116  height: 520px;117  max-height: 520px;118  overflow: hidden;119}120121/* ── Lock screen – full-window lock/create stage ── */122.lock-screen--vault-stage {123  display: flex;124  flex-direction: column;125  gap: 18px;126  padding: 20px 18px 18px;127  justify-content: flex-start;128}129.lock-screen--vault-stage .peach-lock-panel {130  margin-top: auto;131}132.peach-lock-headline--unlock {133  max-width: 220px;134}135.peach-lock-hero--unlock {136  padding-top: 14px;137}138.peach-lock-panel--unlock {139  gap: 10px;140}141142.peach-lock-restore-link {143  background: transparent;144  border: none;145  cursor: pointer;146  font-family: var(--font-mono);147  font-size: 10px;148  letter-spacing: 0.08em;149  color: var(--t1);150  padding: 5px 0;151  text-align: left;152  transition: color 150ms ease;153}154155.peach-lock-restore-link:hover {156  color: var(--t0);157}158.peach-shell[data-surface="extension"] .peach-stage {159  min-height: 250px;160}161162/* Screen (unlock) */163.peach-screen {164  width: min(320px, 100vw);165  min-height: 100%;166  height: 100%;167  border-radius: 0;168  padding: 16px 20px 18px;169  display: grid;170  gap: 14px;171}172.peach-screen[data-motion-phase="enter"] {173  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;174}175.peach-screen-header { min-height: 20px; }176177/* Wordmark */178.peach-wordmark {179  margin: 0;180  font-family: "Cormorant Garamond", "Times New Roman", serif;181  font-size: 15px;182  font-style: italic;183  letter-spacing: 0.03em;184  color: var(--peach-t0);185  display: inline-flex;186  min-height: 1em;187}188189/* Motion text / char animation */190.peach-motion-text { display: inline-flex; min-height: 1em; }191.peach-motion-char {192  display: inline-block;193  white-space: pre;194  opacity: 0;195  transform: translateY(0.22em);196  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;197  animation-delay: calc(var(--peach-char-index, 0) * 20ms);198}199200/* Chrome */201.peach-chrome {202  position: relative;203  z-index: 10;204  padding: 16px 20px 0;205  display: flex;206  justify-content: space-between;207  align-items: center;208  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense209     fallback) per §15 regression guard. Without pointer-events:none, the210     empty header strip also sits above `.peach-overlay-view` (z-index:2)211     and swallows clicks meant for an overlay's back button / top search. */212  pointer-events: none;213}214.peach-chrome .peach-btn { pointer-events: auto; }215.peach-chrome.is-hidden-for-overlay,216.peach-search-wrap.is-hidden-for-overlay {217  opacity: 0;218  visibility: hidden;219  pointer-events: none;220}221.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }222.peach-status-pip {223  width: 5px;224  height: 5px;225  border-radius: 50%;226  background: var(--peach-t3);227  display: inline-flex;228  flex-shrink: 0;229  transition: background 400ms ease, box-shadow 400ms ease;230}231.peach-chrome-actions { display: flex; gap: 6px; }232233/* Shell body */234.peach-shell-body {235  position: relative;236  display: grid;237  grid-template-rows: 1fr auto;238  min-height: 0;239  min-width: 0;240  width: 100%;241  overflow: hidden;242  height: 100%;243}244.peach-shell-veil {245  position: absolute; inset: 0;246  background: #000; opacity: 0;247  pointer-events: none; z-index: 1;248}249.peach-shell[data-motion-phase="enter"] .peach-shell-body {250  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;251}252.peach-shell[data-motion-phase="exit"] .peach-shell-veil {253  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;254}255256/* Content frame */257.peach-content-frame {258  display: grid;259  grid-template-rows: 1fr auto;260  grid-template-columns: minmax(0, 1fr);261  align-content: start;262  min-height: 0;263  min-width: 0;264  overflow: hidden;265  transition: opacity 80ms ease, transform 80ms ease;266}267.peach-content-frame.navigating {268  opacity: 0.93;269  transform: translateX(2px);270}271.peach-content-frame[data-content-phase="enter"] {272  animation: peach-content-enter 135ms ease-out both;273}274.peach-content-frame[data-content-phase="exit"] {275  animation: peach-content-exit 95ms ease-in forwards;276}277.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }278279/* Stage */280.peach-stage {281  padding: 10px 20px 12px;282  display: grid;283  gap: 12px;284  align-content: start;285  min-width: 0;286  min-height: 0;287  max-width: 100%;288  overflow-y: auto;289  overflow-x: hidden;290  scrollbar-width: none;291  -ms-overflow-style: none;292  overscroll-behavior: contain;293}294.peach-stage::-webkit-scrollbar { display: none; }295296/* Entry name */297.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }298.peach-entry-header {299  position: relative;300  z-index: 1;301  display: flex;302  align-items: flex-start;303  gap: 6px;304  min-width: 0;305}306.peach-entry-header-name {307  flex: 1;308  min-width: 0;309}310.peach-entry-name {311  margin: 0;312  font-family: "Cormorant Garamond", "Times New Roman", serif;313  font-style: italic; font-weight: 400;314  font-size: 44px; line-height: 0.95;315  color: var(--peach-t0);316  display: -webkit-box;317  -webkit-line-clamp: 2;318  -webkit-box-orient: vertical;319  overflow: hidden;320  text-wrap: balance;321}322.peach-entry-name--lg { font-size: 40px; }323.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }324.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }325.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; }326327/* Trash icon in entry header */328.peach-entry-trash-btn {329  flex-shrink: 0;330  padding: 4px;331  margin-top: 4px;332  background: transparent;333  border: none;334  cursor: pointer;335  color: var(--peach-t2);336  border-radius: 4px;337  transition: color 140ms ease, background 140ms ease;338  display: flex;339  align-items: center;340  justify-content: center;341}342.peach-entry-trash-btn:hover {343  color: var(--peach-t1);344  background: var(--peach-t3);345}346.peach-entry-trash-confirm {347  display: flex;348  align-items: center;349  gap: 6px;350  flex-shrink: 0;351  margin-top: 6px;352  flex-wrap: nowrap;353}354.peach-entry-trash-confirm-label {355  font-family: var(--font-mono);356  font-size: 9px;357  letter-spacing: 0.1em;358  color: var(--peach-t2);359  white-space: nowrap;360}361.peach-entry-name-button {362  padding: 0;363  background: transparent;364  text-align: left;365  cursor: pointer;366  max-width: 100%;367  overflow: hidden;368  display: block;369}370.peach-entry-name-char {371  display: inline-block;372  white-space: pre;373  opacity: 0;374  transform: translateY(0.22em);375  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;376  animation-delay: calc(var(--char-index, 0) * 20ms);377}378379/* Domain */380.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }381.peach-domain-row {382  width: 100%; border: 0; background: transparent; color: inherit;383  padding: 0; display: flex; justify-content: space-between; align-items: baseline;384  cursor: default;385}386.peach-domain-value {387  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;388  font-size: 10px; font-style: italic;389  letter-spacing: 0.12em; color: var(--peach-t1);390}391392/* Fields */393.peach-fields { display: grid; gap: 10px; }394.peach-field-card { display: grid; gap: 7px; }395.peach-label {396  font-family: Inter, system-ui, sans-serif;397  text-transform: uppercase; letter-spacing: 0.2em;398  font-size: 8px; color: var(--peach-t2);399}400.peach-field-value-row {401  display: flex; justify-content: space-between;402  align-items: center; gap: 8px;403  min-width: 0;404}405.peach-field-value {406  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;407  font-size: 13px; color: var(--peach-t1);408  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;409  flex: 1;410  min-width: 0;411}412.peach-password-value {413  display: inline-flex;414  align-items: center;415  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;416  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);417  overflow: hidden;418  text-overflow: ellipsis;419  white-space: nowrap;420  flex: 1;421  min-width: 0;422  max-width: 100%;423}424.peach-password-value.is-revealed {425  font-size: 14px;426  letter-spacing: 0.08em;427}428.peach-password-text,429.peach-password-mask {430  display: block;431  width: 100%;432  overflow: hidden;433  text-overflow: ellipsis;434  white-space: nowrap;435}436.peach-field-actions { display: flex; gap: 4px; align-items: center; }437.peach-password-strength { display: flex; align-items: center; gap: 8px; }438.peach-strength-bar { display: flex; gap: 3px; }439.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }440.peach-strength-label {441  font-family: "IBM Plex Mono", monospace;442  font-style: italic;443  font-size: 9px;444  font-weight: 300;445  min-width: 36px;446  text-align: right;447  color: var(--peach-t2);448  letter-spacing: 0.06em;449}450451.peach-strength-hairline {452  display: flex;453  align-items: center;454  gap: 10px;455  margin-top: -2px;456}457458.peach-strength-hairline-track {459  flex: 1;460  height: 3px;461  border-radius: 2px;462  background: var(--peach-s2);463  overflow: hidden;464}465466.peach-strength-hairline-fill {467  height: 100%;468  border-radius: 2px;469  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),470    background 400ms ease;471}472473/* Note content */474.peach-note-content {475  border-top: 1px solid var(--peach-t3);476  padding-top: 10px;477  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;478  font-size: 11px;479  line-height: 1.75;480  color: var(--peach-t1);481  white-space: pre-wrap;482}483484/* ── Inline editing ─────────────────────────────────────────────────── */485486/* Clickable display values */487.peach-inline-clickable {488  cursor: text;489  border-radius: 3px;490  transition: background 150ms ease;491}492.peach-inline-clickable:hover {493  background: rgba(240, 232, 216, 0.05);494}495496/* Subtle "edit" hint that appears on hover */497.peach-inline-edit-hint {498  font-family: Inter, system-ui, sans-serif;499  font-size: 9px;500  text-transform: uppercase;501  letter-spacing: 0.14em;502  color: var(--peach-t2);503  opacity: 0;504  transition: opacity 120ms ease;505  pointer-events: none;506  margin-left: 6px;507  flex-shrink: 0;508}509.peach-domain-row:hover .peach-inline-edit-hint {510  opacity: 1;511}512513/* Title editing */514.peach-inline-title-wrap {515  display: flex;516  flex-direction: column;517  gap: 6px;518}519.peach-inline-title-input {520  font-family: "Cormorant Garamond", "Times New Roman", serif;521  font-style: italic;522  font-weight: 400;523  font-size: 40px;524  line-height: 0.95;525  color: var(--peach-t0);526  background: transparent;527  border: none;528  border-bottom: 1px solid var(--peach-accent);529  outline: none;530  width: 100%;531  padding: 2px 0;532}533534/* Generic inline field */535.peach-inline-field-wrap {536  display: flex;537  flex-direction: column;538  gap: 6px;539}540.peach-inline-input {541  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;542  font-size: 13px;543  color: var(--peach-t0);544  background: transparent;545  border: none;546  border-bottom: 1px solid var(--peach-accent);547  outline: none;548  width: 100%;549  padding: 3px 0;550}551.peach-inline-textarea {552  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;553  font-size: 11px;554  line-height: 1.7;555  color: var(--peach-t0);556  background: rgba(240, 232, 216, 0.04);557  border: 1px solid var(--peach-accent);558  border-radius: 4px;559  outline: none;560  width: 100%;561  padding: 8px;562  resize: vertical;563  min-height: 80px;564}565566/* Save / cancel row */567.peach-inline-actions {568  display: flex;569  gap: 6px;570  align-items: center;571}572.peach-inline-save-btn,573.peach-inline-cancel-btn {574  display: inline-flex;575  align-items: center;576  justify-content: center;577  width: 26px;578  height: 26px;579  border-radius: 4px;580  border: none;581  cursor: pointer;582  transition: background 140ms ease, opacity 140ms ease;583  flex-shrink: 0;584}585.peach-inline-save-btn {586  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);587  color: var(--peach-accent);588}589.peach-inline-save-btn:hover:not(:disabled) {590  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);591}592.peach-inline-cancel-btn {593  background: rgba(240, 232, 216, 0.06);594  color: var(--peach-t2);595}596.peach-inline-cancel-btn:hover:not(:disabled) {597  background: rgba(240, 232, 216, 0.12);598  color: var(--peach-t1);599}600.peach-inline-save-btn:disabled,601.peach-inline-cancel-btn:disabled {602  opacity: 0.4;603  cursor: not-allowed;604}605606/* Inline password generator wrapper */607.peach-inline-generator-wrap {608  margin-top: 10px;609  padding-top: 10px;610  border-top: 1px solid var(--peach-t3);611  display: flex;612  flex-direction: column;613  gap: 8px;614}615.peach-inline-generator-cancel {616  align-self: flex-start;617  font-size: 11px;618  color: var(--peach-t2);619}620621/* "is-editing" card state */622.peach-field-card.is-editing {623  background: rgba(240, 232, 216, 0.02);624  border-radius: 6px;625  padding: 8px;626  margin: -8px;627}628629/* Add notes button */630.peach-add-notes-btn {631  font-size: 11px;632  color: var(--peach-t2);633  margin-top: 6px;634  align-self: flex-start;635  padding: 4px 0;636}637638/* Delete row */639.peach-entry-delete-row {640  display: flex;641  align-items: center;642  gap: 8px;643  padding-top: 18px;644  margin-top: 8px;645  border-top: 1px solid var(--peach-t3);646}647.peach-delete-btn {648  font-size: 11px;649  color: var(--peach-t2);650  padding: 4px 0;651}652.peach-delete-confirm-text {653  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;654  font-size: 11px;655  font-style: italic;656  color: var(--peach-t2);657  flex-shrink: 0;658}659660/* TOTP band */661.peach-totp-band {662  border-top: 1px solid var(--peach-t3);663  padding: 12px 20px 14px;664  position: relative;665  display: grid;666  grid-template-columns: 1fr auto;667  gap: 10px;668}669.peach-totp-main {670  min-width: 0;671}672.peach-totp-code-row {673  display: flex;674  align-items: flex-end;675  gap: 10px;676  min-width: 0;677}678.peach-totp-code {679  margin: 2px 0 0;680  font-family: "Cormorant Garamond", "Times New Roman", serif;681  font-style: italic;682  font-weight: 300;683  font-size: 38px; color: var(--peach-accent);684  line-height: 0.95; min-height: 1em;685  min-width: 0;686}687.peach-totp-code-text {688  display: inline-flex;689  overflow: hidden;690  text-overflow: ellipsis;691  white-space: nowrap;692}693.peach-totp-copy-btn {694  margin-bottom: 2px;695  flex-shrink: 0;696}697.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }698.peach-totp-countdown {699  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;700  font-size: 22px; color: var(--peach-t1);701}702.peach-totp-ring { transform: rotate(-90deg); }703.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }704.peach-totp-ring-progress {705  fill: none; stroke: var(--peach-accent); stroke-width: 2;706  stroke-linecap: round;707  transition: stroke-dashoffset 1s linear, stroke 500ms ease;708}709/* Search bar */710.peach-search-wrap {711  border-top: 1px solid var(--peach-t3);712  background: var(--peach-s1);713  min-height: 54px; position: relative;714}715.peach-search-wrap::before {716  content: "";717  position: absolute;718  left: 0;719  top: 0;720  height: 2px;721  width: var(--peach-totp-progress, 0%);722  background: var(--peach-accent);723  opacity: 0;724  transition: width 1s linear, opacity 180ms ease;725  pointer-events: none;726}727.peach-shell[data-totp-active="true"] .peach-search-wrap::before {728  opacity: 0.9;729}730731@keyframes peach-edge-ring-breath {732  0% {733    opacity: 0;734    border-color: rgba(217, 104, 48, 0);735    box-shadow: 0 0 0 rgba(217, 104, 48, 0);736  }737  32% {738    opacity: 1;739    border-color: rgba(217, 104, 48, 0.74);740    box-shadow: 0 0 0 1px rgba(217, 104, 48, 0.28), 0 0 18px rgba(217, 104, 48, 0.18);741  }742  100% {743    opacity: 0;744    border-color: rgba(217, 104, 48, 0);745    box-shadow: 0 0 0 rgba(217, 104, 48, 0);746  }747}748.peach-search-bar {749  min-height: 54px;750  display: grid;751  grid-template-columns: auto minmax(0, 1fr) auto;752  align-items: center;753  gap: 8px; padding: 0 9px 0 12px;754}755.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }756.peach-search-input {757  border: 0; background: transparent; color: var(--peach-t0);758  font-family: "Cormorant Garamond", "Times New Roman", serif;759  font-style: italic; font-size: 18px;760  outline: none; width: 100%; min-width: 0; padding: 0;761  caret-color: var(--peach-accent);762}763.peach-search-input::placeholder { color: var(--peach-t2); }764.peach-search-meta {765  display: grid;766  grid-auto-flow: column;767  align-items: center;768  justify-content: end;769  gap: 6px;770  min-width: max-content;771}772.peach-search-counter {773  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;774  font-size: 10px; color: var(--peach-t2);775  display: inline-flex;776  align-items: center;777  line-height: 1;778}779.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }780781/* Buttons */782.peach-btn {783  border: 1px solid transparent; border-radius: 12px;784  background: transparent; color: var(--peach-t0);785  font-family: Inter, system-ui, sans-serif;786  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;787  cursor: pointer;788  transition:789    background-color var(--peach-dur-80) var(--peach-curve-arrival),790    color var(--peach-dur-80) var(--peach-curve-arrival),791    border-color var(--peach-dur-150) var(--peach-curve-arrival);792}793.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }794.peach-btn:disabled {795  opacity: 0.45;796  cursor: not-allowed;797}798.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }799.peach-btn--md { min-height: 38px; }800.peach-btn--accent { background: var(--peach-accent); color: rgba(0,0,0,0.75); }801.peach-btn--accent:hover:not(:disabled) { background: var(--peach-accent); filter: brightness(1.12); }802.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }803.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }804.peach-icon-btn {805  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;806  display: inline-flex; align-items: center; justify-content: center;807}808809.peach-btn:focus-visible {810  outline: none;811  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px rgba(217, 104, 48, 0.5);812}813814/* Lock button */815.peach-lock-icon { transform-origin: center; }816.peach-lock-btn.is-locking { color: var(--peach-accent); }817.peach-lock-btn.is-locking .peach-lock-icon {818  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);819}820821/* Copy button */822.peach-copy-btn {823  position: relative; overflow: hidden;824  color: var(--peach-t2); border-color: var(--peach-t3);825}826.peach-copy-icon {827  display: inline-flex; align-items: center; justify-content: center;828  position: relative; z-index: 1;829}830.peach-copy-icon-svg { display: block; }831.peach-copy-sheen {832  position: absolute; inset: 0;833  background: linear-gradient(90deg, rgba(217,104,48,0) 0%, rgba(217,104,48,0.18) 30%, rgba(217,104,48,0.08) 100%);834  opacity: 0; transform: scaleX(0.15); transform-origin: left center;835}836.peach-copy-btn.is-copied {837  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;838  box-shadow:839    0 0 0 1px rgba(217,104,48,0.22),840    0 0 18px rgba(217,104,48,0.2),841    inset 0 0 20px rgba(217,104,48,0.12);842}843.peach-copy-btn.is-copied .peach-copy-icon {844  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;845}846.peach-copy-btn.is-copied .peach-copy-sheen {847  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;848}849.peach-copy-btn.is-retreat {850  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;851}852.peach-copy-btn.is-retreat .peach-copy-sheen {853  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;854}855.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }856.peach-copy-drain-bar {857  display: block; width: 100%; height: 100%;858  background: var(--peach-accent); opacity: 0.7;859  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;860}861862/* Unlock screen elements */863.peach-unlock-headline {864  margin: 2px 0 0;865  font-family: "Cormorant Garamond", "Times New Roman", serif;866  font-size: 52px; line-height: 0.95;867  font-style: italic; font-weight: 400;868}869.peach-subline {870  margin: 0;871  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;872  font-size: 10px; color: var(--peach-t2); font-style: italic;873}874.peach-subline--lock {875  max-width: 248px;876  line-height: 1.5;877}878.peach-underline-input {879  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);880  padding: 6px 0; background: transparent; color: var(--peach-t0);881  outline: none;882  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;883  font-size: 13px;884  caret-color: var(--peach-accent);885}886.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }887.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }888.peach-hint {889  margin: 0;890  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;891  font-size: 10px; color: var(--peach-t2);892}893.peach-unlock-footer {894  margin-top: 4px; display: flex; align-items: center; gap: 7px;895  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;896  font-size: 10px; color: var(--peach-t2);897}898.peach-unlock-footer--lock {899  padding-top: 2px;900}901902/* Breach badge */903.peach-breach-badge {904  display: flex;905  position: relative;906  z-index: 1;907  align-items: center;908  gap: 7px;909  font-size: 9px;910  color: var(--peach-breach);911  padding: 5px 10px;912  margin-bottom: 4px;913  border-radius: 8px;914  background: rgba(220, 80, 60, 0.07);915  border: 1px solid rgba(220, 80, 60, 0.18);916  letter-spacing: 0.04em;917}918919.peach-breach-action {920  margin-left: auto;921  font-size: 10px;922  padding: 3px 8px;923}924925.peach-password-value.is-breached {926  color: rgba(220, 80, 60, 0.75);927  border-bottom: 1px solid rgba(220, 80, 60, 0.22);928}929930/* ── Overlay views ─────────────────────────────────────────────────── */931.peach-overlay-view {932  position: absolute;933  inset: 0;934  display: flex;935  flex-direction: column;936  background:937    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),938    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),939    var(--peach-bg);940  z-index: 2;941  overflow: hidden;942  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;943}944@keyframes overlay-in {945  from { opacity: 0; transform: translateY(8px); }946  to   { opacity: 1; transform: translateY(0); }947}948.peach-overlay-view.ov-enter-up {949  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;950}951.peach-overlay-view.ov-exit-up {952  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;953}954.peach-overlay-view.ov-enter-right {955  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;956}957.peach-overlay-view.ov-exit-right {958  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;959}960961@keyframes ov-enter-up {962  from { opacity: 0; transform: translateY(18px); }963  to   { opacity: 1; transform: translateY(0); }964}965@keyframes ov-exit-up {966  from { opacity: 1; transform: translateY(0); }967  to   { opacity: 0; transform: translateY(-12px); }968}969@keyframes ov-enter-right {970  from { opacity: 0; transform: translateX(20px); }971  to   { opacity: 1; transform: translateX(0); }972}973@keyframes ov-exit-right {974  from { opacity: 1; transform: translateX(0); }975  to   { opacity: 0; transform: translateX(20px); }976}977978/* Overlay shared header */979.peach-overlay-header {980  padding: 10px 12px;981  display: flex;982  align-items: center;983  gap: 8px;984  border-bottom: 1px solid var(--peach-t3);985  flex-shrink: 0;986}987.peach-overlay-title {988  font-family: "IBM Plex Mono", monospace;989  font-size: 9px;990  text-transform: uppercase;991  letter-spacing: 0.18em;992  color: var(--peach-t2);993  flex: 1;994  text-align: center;995}996997.peach-overlay-card {998  background: var(--peach-s1);999  border: 1px solid var(--peach-t3);1000  border-radius: 12px;1001  overflow: hidden;1002  width: 100%;1003}10041005.peach-onboarding-alt-actions {1006  display: flex;1007  flex-direction: column;1008  gap: 4px;1009  padding: 0;1010}10111012.peach-settings-copy {1013  margin: 0 0 10px;1014  font-size: 11px;1015  line-height: 1.5;1016  color: var(--peach-t2);1017}10181019.peach-settings-copy strong {1020  color: var(--peach-t0);1021}10221023.peach-settings-copy--spacious {1024  margin-bottom: 12px;1025}10261027.peach-settings-copy--result {1028  color: var(--peach-accent);1029  font-size: 13px;1030  text-align: center;1031  padding: 8px 0;1032}10331034.peach-settings-copy--danger {1035  color: var(--peach-breach);1036}10371038.peach-settings-copy--success {1039  color: var(--peach-accent);1040}10411042.peach-inline-feedback {1043  font-size: 11px;1044  margin: 10px 0 0;1045}10461047.peach-inline-feedback--ok {1048  color: var(--peach-accent);1049}10501051.peach-inline-feedback--error {1052  color: var(--peach-breach);1053}10541055.peach-inline-feedback--muted {1056  color: var(--peach-t2);1057  font-size: 10px;1058  margin: 4px 0;1059}10601061.peach-inline-feedback--spaced {1062  margin-top: 12px;1063}10641065.peach-settings-actions--row {1066  display: flex;1067  gap: 6px;1068}10691070.peach-settings-actions--end {1071  margin-top: 14px;1072  justify-content: flex-end;1073}10741075.peach-settings-stack {1076  display: flex;1077  flex-direction: column;1078  gap: 6px;1079}10801081.peach-settings-stack--tight {1082  gap: 4px;1083}10841085.peach-settings-stack--spacious {1086  gap: 8px;1087}10881089.peach-settings-input {1090  width: 100%;1091  box-sizing: border-box;1092  padding: 8px 10px;1093  background: var(--peach-s2);1094  border: 1px solid var(--peach-t3);1095  border-radius: 6px;1096  color: var(--peach-t0);1097  font-family: var(--font-ui);1098  font-size: 12px;1099  outline: none;1100  transition: border-color 120ms ease;1101}11021103.peach-settings-input:focus {1104  border-color: var(--peach-accent);1105}11061107.peach-settings-input[type="password"] {1108  font-family: var(--font-mono);1109  letter-spacing: 0.04em;1110}11111112.peach-phrase-textarea {1113  width: 100%;1114  box-sizing: border-box;1115  min-height: 120px;1116  padding: 10px 12px;1117  background: var(--peach-s2);1118  border: 1px solid var(--peach-t3);1119  border-radius: 6px;1120  color: var(--peach-t0);1121  font-size: 12px;1122  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1123  line-height: 1.5;1124  resize: vertical;1125  outline: none;1126}11271128.peach-phrase-textarea:focus {1129  border-color: var(--peach-accent);1130}11311132.peach-hidden-file-input {1133  display: none;1134}11351136.peach-checkbox-note {1137  display: flex;1138  align-items: flex-start;1139  gap: 8px;1140  font-size: 11px;1141  color: var(--peach-t1);1142  cursor: pointer;1143  margin: 12px 0;1144}11451146.peach-checkbox-note input {1147  margin-top: 1px;1148}11491150.peach-cjk-phrase-box {1151  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1152  font-size: 13px;1153  line-height: 1.5;1154  background: var(--peach-s2);1155  border: 1px solid var(--peach-t3);1156  border-radius: 6px;1157  padding: 10px 12px;1158  margin: 0 0 10px;1159  word-break: break-all;1160  white-space: pre-wrap;1161  max-height: 220px;1162  overflow-y: auto;1163  color: var(--peach-t0);1164  user-select: all;1165  scrollbar-width: none;1166  -ms-overflow-style: none;1167}1168.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }11691170.peach-danger-notice {1171  background: rgba(220, 80, 60, 0.08);1172  border: 1px solid rgba(220, 80, 60, 0.2);1173  border-radius: 6px;1174  padding: 9px 11px;1175  font-size: 11px;1176  color: var(--peach-t1);1177  line-height: 1.5;1178}11791180.peach-info-notice {1181  font-size: 11px;1182  color: var(--peach-t2);1183  line-height: 1.5;1184  background: rgba(240, 232, 216, 0.04);1185  border: 1px solid var(--peach-t3);1186  border-radius: 6px;1187  padding: 8px 10px;1188}11891190.peach-strength-row {1191  display: flex;1192  align-items: center;1193  gap: 8px;1194  margin-bottom: 10px;1195}11961197.peach-strength-track {1198  flex: 1;1199  height: 4px;1200  background: var(--peach-s2);1201  border-radius: 2px;1202  overflow: hidden;1203}12041205.peach-strength-fill {1206  height: 100%;1207  border-radius: 2px;1208  transition: width 120ms ease, background 120ms ease;1209}12101211/* ── Type selector tabs ── */1212.peach-type-tabs {1213  display: flex;1214  gap: 0;1215  background: var(--peach-t4);1216  border-radius: 8px;1217  padding: 3px;1218}12191220.peach-type-tab {1221  flex: 1;1222  display: flex;1223  align-items: center;1224  justify-content: center;1225  gap: 6px;1226  padding: 6px 10px;1227  border-radius: 6px;1228  border: none;1229  background: transparent;1230  cursor: pointer;1231  font-family: Inter, system-ui, sans-serif;1232  font-size: 11px;1233  font-weight: 400;1234  letter-spacing: 0.04em;1235  color: var(--peach-t1);1236  transition: background 150ms ease, color 150ms ease;1237}12381239.peach-type-tab.is-active {1240  background: var(--peach-s2);1241  color: var(--peach-t0);1242  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1243}12441245.peach-type-tab:not(.is-active):hover {1246  color: var(--peach-t0);1247}12481249.peach-type-tab svg {1250  opacity: 0.7;1251  flex-shrink: 0;1252}12531254.peach-type-tab.is-active svg {1255  opacity: 1;1256}12571258/* ── List view ───────────────────────────────────────────────────────── */1259.peach-list-top {1260  padding: 0 10px;1261  min-height: 46px;1262  display: flex;1263  align-items: center;1264  gap: 6px;1265  border-bottom: 1px solid var(--peach-t3);1266  flex-shrink: 0;1267  background: var(--peach-s1);1268}1269.peach-vault-list {1270  flex: 1;1271  overflow-y: auto;1272  scrollbar-width: none;1273}1274.peach-vault-list::-webkit-scrollbar { display: none; }12751276/* Scrollbar — vault list */1277.peach-vault-list {1278  scrollbar-width: thin;1279  scrollbar-color: var(--peach-t3) transparent;1280}12811282.peach-vault-list::-webkit-scrollbar {1283  width: 3px;1284}12851286.peach-vault-list::-webkit-scrollbar-thumb {1287  background: var(--peach-t3);1288  border-radius: 2px;1289}12901291.peach-entry-row {1292  width: 100%;1293  display: flex;1294  align-items: center;1295  gap: 10px;1296  padding: 9px 16px;1297  background: transparent;1298  border: none;1299  border-bottom: 1px solid var(--peach-t3);1300  cursor: pointer;1301  color: inherit;1302  text-align: left;1303  transition: background 80ms ease;1304}1305.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1306.peach-entry-row:last-child { border-bottom: none; }1307.peach-entry-row.is-active {1308  box-shadow: inset 2px 0 0 var(--peach-accent);1309  background: rgba(240,232,216,0.03);1310}1311.peach-entry-row-icon {1312  width: 26px; height: 26px;1313  border-radius: 7px;1314  border: 1px solid var(--peach-t3);1315  display: flex; align-items: center; justify-content: center;1316  color: var(--peach-t2);1317  flex-shrink: 0;1318}1319.peach-entry-row-icon.is-breach {1320  border-color: rgba(220,80,60,0.3);1321  color: rgba(220,80,60,0.7);1322}1323.peach-entry-row-info { flex: 1; min-width: 0; }1324.peach-entry-row-name {1325  display: block;1326  font-family: "Cormorant Garamond", serif;1327  font-size: 17px;1328  font-style: italic;1329  font-weight: 400;1330  color: var(--peach-t0);1331  line-height: 1.2;1332  white-space: nowrap;1333  overflow: hidden;1334  text-overflow: ellipsis;1335}1336.peach-entry-row-meta {1337  display: block;1338  font-family: "IBM Plex Mono", monospace;1339  font-size: 9px;1340  color: var(--peach-t2);1341  margin-top: 1px;1342  letter-spacing: 0.05em;1343}1344.peach-entry-row-dot {1345  width: 5px; height: 5px;1346  border-radius: 50%;1347  background: rgba(220,80,60,0.7);1348  flex-shrink: 0;1349}1350.peach-new-entry-row {1351  display: flex;1352  align-items: center;1353  justify-content: center;1354  gap: 6px;1355  width: 100%;1356  padding: 11px;1357  background: transparent;1358  border: none;1359  border-top: 1px solid var(--peach-t3);1360  color: var(--peach-t2);1361  font-family: "IBM Plex Mono", monospace;1362  font-size: 9px;1363  text-transform: uppercase;1364  letter-spacing: 0.14em;1365  cursor: pointer;1366  flex-shrink: 0;1367  transition: color 120ms ease, background 120ms ease;1368}1369.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13701371/* ── Multi-select mode ─────────────────────────────────────────────── */13721373/* Select-mode trigger button in sort bar — same shape as trash btn */1374.peach-sort-select-btn {1375  display: flex;1376  align-items: center;1377  justify-content: center;1378  padding: 3px 5px;1379  background: transparent;1380  border: none;1381  cursor: pointer;1382  color: var(--peach-t2);1383  border-radius: 4px;1384  transition: color 140ms ease, background 140ms ease;1385}1386.peach-sort-select-btn:hover {1387  color: var(--peach-t1);1388  background: var(--peach-t3);1389}13901391/* Sort bar in select mode */1392.peach-select-cancel-btn {1393  background: transparent;1394  border: none;1395  padding: 0 4px;1396  cursor: pointer;1397  font-family: "IBM Plex Mono", monospace;1398  font-size: 9px;1399  letter-spacing: 0.12em;1400  text-transform: uppercase;1401  color: var(--peach-t2);1402  transition: color 140ms ease;1403  flex-shrink: 0;1404}1405.peach-select-cancel-btn:hover { color: var(--peach-t0); }14061407.peach-select-count-label {1408  flex: 1;1409  text-align: center;1410  font-family: "IBM Plex Mono", monospace;1411  font-size: 9px;1412  letter-spacing: 0.14em;1413  text-transform: uppercase;1414  color: var(--peach-t1);1415}14161417.peach-select-all-btn {1418  background: transparent;1419  border: none;1420  padding: 0 4px;1421  cursor: pointer;1422  font-family: "IBM Plex Mono", monospace;1423  font-size: 9px;1424  letter-spacing: 0.12em;1425  text-transform: uppercase;1426  color: var(--peach-t2);1427  transition: color 140ms ease;1428  flex-shrink: 0;1429}1430.peach-select-all-btn:hover { color: var(--peach-accent); }14311432/* List in select mode */1433.peach-vault-list.is-selecting .peach-entry-row {1434  cursor: default;1435}1436.peach-vault-list.is-selecting .peach-entry-row:hover {1437  background: rgba(240,232,216,0.02);1438}1439.peach-vault-list.is-selecting .peach-entry-row.is-selected {1440  background: rgba(217,104,48,0.06);1441}1442.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1443  background: rgba(217,104,48,0.1);1444}14451446/* Select indicator circles in icon slot */1447.peach-entry-row-icon.is-select-icon {1448  color: var(--peach-t2);1449}1450.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1451  color: var(--peach-accent);1452}14531454/* Delete action bar at bottom (replaces new-entry row) */1455.peach-select-action-bar {1456  display: flex;1457  align-items: center;1458  justify-content: center;1459  gap: 7px;1460  width: 100%;1461  padding: 11px;1462  background: transparent;1463  border: none;1464  border-top: 1px solid var(--peach-t3);1465  color: var(--peach-t1);1466  font-family: "IBM Plex Mono", monospace;1467  font-size: 9px;1468  text-transform: uppercase;1469  letter-spacing: 0.14em;1470  cursor: pointer;1471  flex-shrink: 0;1472  transition: color 120ms ease, background 120ms ease;1473}1474.peach-select-action-bar:not(:disabled):hover {1475  color: var(--peach-t0);1476  background: rgba(220,80,60,0.06);1477}1478.peach-select-action-bar:not(:disabled):hover svg {1479  stroke: rgba(220,80,60,0.8);1480}1481.peach-select-action-bar:disabled,1482.peach-select-action-bar.is-empty {1483  color: var(--peach-t2);1484  cursor: default;1485  opacity: 0.5;1486}1487.peach-search-counter-list {1488  white-space: nowrap;1489  flex-shrink: 0;1490}1491.peach-list-empty {1492  min-height: 180px;1493  display: grid;1494  place-items: center;1495  color: var(--peach-t2);1496  font-family: "IBM Plex Mono", monospace;1497  font-size: 11px;1498}14991500/* ── Settings view ───────────────────────────────────────────────────── */1501.peach-settings-body {1502  flex: 1;1503  overflow-y: auto;1504  min-height: 0;1505  display: flex;1506  flex-direction: column;1507  padding: 2px 0 10px;1508}1509.peach-settings-group {1510  padding: 9px 16px 11px;1511  border-bottom: 1px solid var(--peach-t3);1512}1513.peach-export-intro {1514  padding-bottom: 8px;1515}1516.peach-export-card {1517  display: grid;1518  gap: 10px;1519}1520.peach-export-card--primary {1521  background:1522    linear-gradient(180deg, rgba(217,104,48,0.08), rgba(217,104,48,0.02));1523}1524.peach-export-card-head {1525  display: flex;1526  align-items: center;1527  justify-content: space-between;1528  gap: 10px;1529}1530.peach-export-card-copy {1531  margin: 0;1532  font-size: 12px;1533  line-height: 1.55;1534  color: var(--peach-t1);1535}1536.peach-export-note {1537  margin: 0;1538  font-size: 10px;1539  line-height: 1.5;1540  color: var(--peach-t2);1541}1542.peach-export-pill {1543  display: inline-flex;1544  align-items: center;1545  padding: 4px 8px;1546  border-radius: 999px;1547  border: 1px solid rgba(217,104,48,0.22);1548  background: rgba(217,104,48,0.08);1549  color: var(--peach-accent);1550  font-family: "IBM Plex Mono", monospace;1551  font-size: 8px;1552  letter-spacing: 0.12em;1553  text-transform: uppercase;1554  white-space: nowrap;1555}1556.peach-export-pill--danger {1557  border-color: rgba(220,80,60,0.22);1558  background: rgba(220,80,60,0.08);1559  color: var(--peach-breach);1560}1561.peach-export-password-stack {1562  gap: 8px;1563}1564.peach-settings-label {1565  margin: 0 0 6px;1566  font-family: "IBM Plex Mono", monospace;1567  font-size: 8px;1568  text-transform: uppercase;1569  letter-spacing: 0.18em;1570  color: var(--peach-t2);1571}1572.peach-settings-row {1573  display: flex;1574  align-items: center;1575  justify-content: space-between;1576  gap: 12px;1577  min-height: 34px;1578  padding: 6px 0;1579  font-size: 13px;1580  color: var(--peach-t1);1581}1582.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1583.peach-settings-value {1584  font-family: "IBM Plex Mono", monospace;1585  font-size: 10px;1586  color: var(--peach-t2);1587}15881589.peach-settings-value--status {1590  display: flex;1591  align-items: center;1592  gap: 6px;1593}15941595.peach-settings-row--stack {1596  flex-direction: column;1597  align-items: stretch;1598  gap: 6px;1599}16001601.peach-settings-row--top {1602  align-items: flex-start;1603}16041605.peach-settings-row-main {1606  display: flex;1607  flex-direction: column;1608  gap: 4px;1609  flex: 1;1610}1611.peach-toggle {1612  width: 28px; height: 16px;1613  border-radius: 999px;1614  background: var(--peach-t3);1615  border: 1px solid var(--peach-t3);1616  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1617  flex-shrink: 0;1618  transition: background 200ms ease, border-color 200ms ease;1619  cursor: pointer;1620}1621.peach-toggle.is-on {1622  background: rgba(217,104,48,0.22);1623  border-color: rgba(217,104,48,0.4);1624}1625.peach-toggle-knob {1626  width: 10px; height: 10px;1627  border-radius: 50%;1628  background: var(--peach-t2);1629  flex-shrink: 0;1630  transform: translateX(0px);1631  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1632}1633.peach-toggle.is-on .peach-toggle-knob {1634  background: var(--peach-accent);1635  transform: translateX(12px);1636}1637.peach-settings-footer {1638  display: flex;1639  align-items: center;1640  gap: 8px;1641  margin-top: auto;1642  padding: 14px 16px 8px;1643  font-family: "IBM Plex Mono", monospace;1644  font-size: 9px;1645  color: var(--peach-t2);1646}16471648.peach-passkey-badge {1649  margin-left: 8px;1650  font-size: 10px;1651  letter-spacing: 0.06em;1652  text-transform: uppercase;1653  color: var(--peach-t2);1654  font-family: var(--font-ui);1655  vertical-align: middle;1656}16571658.peach-passkey-delete-btn {1659  color: var(--peach-breach);1660  border-color: rgba(229, 85, 85, 0.25);1661}16621663.peach-passkey-delete-confirm {1664  display: flex;1665  align-items: center;1666  gap: 8px;1667  padding: 8px 10px;1668  background: rgba(229, 85, 85, 0.06);1669  border: 1px solid rgba(229, 85, 85, 0.2);1670  border-radius: 6px;1671}16721673.peach-passkey-delete-confirm-copy {1674  flex: 1;1675  font-size: 11px;1676  color: var(--peach-t1);1677}16781679.peach-passkey-delete-btn--confirm {1680  color: var(--peach-breach);1681  border-color: rgba(229, 85, 85, 0.4);1682}16831684.peach-passkey-activity {1685  flex-direction: column;1686  align-items: flex-start;1687  gap: 4px;1688}16891690.peach-passkey-meta {1691  font-size: 11px;1692  color: var(--peach-t2);1693}16941695.peach-passkey-actions {1696  position: relative;1697  z-index: 1;1698  margin-top: 14px;1699  display: flex;1700  flex-direction: column;1701  gap: 8px;1702}17031704.peach-passkey-approval {1705  display: flex;1706  flex-direction: column;1707  align-items: center;1708  padding: 28px 22px 22px;1709  gap: 14px;1710  text-align: center;1711}17121713.peach-passkey-approval-icon {1714  width: 46px;1715  height: 46px;1716  border-radius: 12px;1717  background: var(--peach-s2);1718  border: 1px solid var(--peach-t3);1719  display: flex;1720  align-items: center;1721  justify-content: center;1722  flex-shrink: 0;1723  color: var(--peach-accent);1724}17251726.peach-passkey-approval-icon img,1727.peach-passkey-approval-icon svg {1728  width: 28px;1729  height: 28px;1730  border-radius: 6px;1731}17321733.peach-passkey-approval-rp {1734  font-family: var(--font-ui);1735  font-size: 12px;1736  color: var(--peach-t2);1737  letter-spacing: 0.03em;1738}17391740.peach-passkey-approval-action {1741  font-family: var(--font-display);1742  font-style: italic;1743  font-weight: 300;1744  font-size: 26px;1745  color: var(--peach-t0);1746  line-height: 1;1747}17481749.peach-passkey-approval-user {1750  font-family: var(--font-mono);1751  font-size: 11px;1752  color: var(--peach-t1);1753  background: var(--peach-s2);1754  border: 1px solid var(--peach-t3);1755  border-radius: 4px;1756  padding: 3px 8px;1757}17581759.peach-passkey-approval-notice {1760  font-size: 10px;1761  color: var(--peach-t2);1762  line-height: 1.5;1763  max-width: 220px;1764}17651766.peach-passkey-approval-actions {1767  display: flex;1768  gap: 8px;1769  width: 100%;1770  margin-top: 6px;1771}17721773.peach-passkey-approval-actions .peach-btn {1774  flex: 1;1775}17761777/* ── Inline generator drawer ── */1778.peach-generator-drawer {1779  display: grid;1780  grid-template-rows: 0fr;1781  transition: grid-template-rows 320ms var(--peach-curve-arrival);1782  overflow: hidden;1783}1784.peach-generator-drawer.is-open {1785  grid-template-rows: 1fr;1786}1787.peach-generator-drawer-inner {1788  min-height: 0;1789  overflow: hidden;1790}1791.peach-generator-drawer-content {1792  border-top: 1px solid var(--peach-t3);1793  padding: 8px 0 4px;1794  display: flex;1795  flex-direction: column;1796  gap: 8px;1797}17981799/* ── Compact generator (inside entry edit) ── */1800.peach-generator-drawer-content--compact {1801  border-top: 1px solid var(--peach-t3);1802  padding: 8px 0 2px;1803  gap: 7px;1804}1805.peach-pwgen-compact-display-row {1806  display: flex;1807  align-items: center;1808  gap: 6px;1809}1810.peach-pwgen-compact-output {1811  flex: 1;1812  min-width: 0;1813  font-family: "IBM Plex Mono", monospace;1814  font-size: 11px;1815  font-weight: 400;1816  letter-spacing: 0.04em;1817  color: var(--peach-t0);1818  background: rgba(240, 232, 216, 0.04);1819  border: 1px solid var(--peach-t3);1820  border-radius: 5px;1821  padding: 5px 8px;1822  word-break: break-all;1823  line-height: 1.5;1824}1825.peach-pwgen-compact-controls {1826  display: flex;1827  align-items: center;1828  gap: 6px;1829}1830.peach-pwgen-compact-slider {1831  flex: 1;1832  min-width: 0;1833  height: 2px !important;1834}1835.peach-pwgen-compact-controls .peach-pwgen-len-num {1836  flex-shrink: 0;1837  min-width: 18px;1838  text-align: right;1839}1840.peach-pwgen-compact-pills {1841  display: flex;1842  gap: 3px;1843  flex-shrink: 0;1844}1845.peach-pwgen-compact-pills .peach-pwgen-pill {1846  padding: 2px 7px;1847  font-size: 8px;1848}1849.peach-pwgen-compact-use {1850  flex-shrink: 0;1851  font-size: 10px !important;1852  padding: 3px 9px !important;1853  min-height: 22px !important;1854  border-radius: 5px !important;1855}18561857/* ── Password edit row (input + eye toggle side-by-side) ── */1858.peach-password-edit-row {1859  display: flex;1860  align-items: center;1861  gap: 6px;1862}1863.peach-password-edit-row .peach-inline-input {1864  flex: 1;1865  min-width: 0;1866}18671868/* ── Generate toggle link ── */1869.peach-generate-toggle-link {1870  display: inline-flex;1871  align-items: center;1872  gap: 5px;1873  background: none;1874  border: none;1875  padding: 0;1876  cursor: pointer;1877  font-family: "IBM Plex Mono", monospace;1878  font-size: 10px;1879  color: var(--peach-t2);1880  letter-spacing: 0.04em;1881  transition: color 120ms ease;1882  align-self: flex-start;1883}1884.peach-generate-toggle-link:hover {1885  color: var(--peach-accent);1886}18871888/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1889.peach-entry-body {1890  flex: 1;1891  overflow-y: auto;1892  overflow-x: hidden;1893  scrollbar-width: none;1894  -ms-overflow-style: none;1895  overscroll-behavior: contain;1896  display: grid;1897  gap: 10px;1898  align-content: start;1899  padding: 10px 20px 14px;1900  min-width: 0;1901  min-height: 0;1902}1903.peach-entry-body::-webkit-scrollbar { display: none; }19041905/* Type-toggle pills (new entry only) */1906.peach-new-type-row {1907  display: flex;1908  gap: 6px;1909  margin-bottom: 2px;1910}1911.peach-new-type-btn {1912  background: transparent;1913  border: 1px solid var(--peach-t3);1914  border-radius: 12px;1915  padding: 3px 10px;1916  font-family: "IBM Plex Mono", monospace;1917  font-size: 9px;1918  letter-spacing: 0.12em;1919  text-transform: uppercase;1920  color: var(--peach-t2);1921  cursor: pointer;1922  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1923}1924.peach-new-type-btn.is-active {1925  color: var(--peach-t0);1926  border-color: var(--peach-accent);1927  background: rgba(217, 104, 48, 0.08);1928}1929.peach-new-type-btn:not(.is-active):hover {1930  color: var(--peach-t1);1931  border-color: var(--peach-t2);1932}19331934/* Editable title */1935.peach-new-title-wrap { margin: 0 0 2px; }1936.peach-new-title-input {1937  background: transparent;1938  border: none;1939  outline: none;1940  width: 100%;1941  color: var(--peach-t0);1942  font-family: "Cormorant Garamond", Georgia, serif;1943  font-style: italic;1944  font-weight: 400;1945  font-size: 40px;1946  line-height: 0.95;1947  caret-color: var(--peach-accent);1948}1949.peach-new-title-input::placeholder { color: var(--peach-t2); }19501951/* Editable domain field */1952.peach-domain-value--edit {1953  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1954  font-size: 10px;1955  font-style: italic;1956  letter-spacing: 0.12em;1957  color: var(--peach-t1);1958  background: transparent;1959  border: none;1960  border-bottom: 1px solid var(--peach-t3);1961  outline: none;1962  width: 100%;1963  padding: 2px 0;1964  caret-color: var(--peach-accent);1965  transition: border-color 140ms ease, color 140ms ease;1966}1967.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1968.peach-domain-value--edit:focus {1969  border-bottom-color: rgba(240, 232, 216, 0.28);1970  color: var(--peach-t0);1971}19721973/* Editable field values (username, password, totp) */1974.peach-field-value--edit {1975  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1976  font-size: 13px;1977  color: var(--peach-t0);1978  background: transparent;1979  border: none;1980  border-bottom: 1px solid var(--peach-t3);1981  outline: none;1982  flex: 1;1983  min-width: 0;1984  padding: 3px 0;1985  caret-color: var(--peach-accent);1986  transition: border-color 140ms ease, color 140ms ease;1987}1988.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1989.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }1990.peach-field-value--edit:focus {1991  border-bottom-color: rgba(240, 232, 216, 0.28);1992  color: var(--peach-t0);1993}19941995/* "+ add optional field" links */1996.peach-entry-add-links {1997  display: flex;1998  gap: 12px;1999  flex-wrap: wrap;2000  margin-top: -2px;2001}2002.peach-add-field-link {2003  background: transparent;2004  border: none;2005  padding: 0;2006  cursor: pointer;2007  font-family: "IBM Plex Mono", monospace;2008  font-size: 9px;2009  letter-spacing: 0.1em;2010  text-transform: uppercase;2011  color: var(--peach-t2);2012  transition: color 140ms ease;2013}2014.peach-add-field-link:hover { color: var(--peach-accent); }20152016/* ── New entry form (legacy classes) ────────────────────────────────── */2017.peach-new-body {2018  flex: 1;2019  overflow-y: auto;2020  padding: 10px 20px 14px;2021}2022.peach-new-name-input {2023  background: transparent;2024  border: none;2025  outline: none;2026  width: 100%;2027  color: var(--peach-t0);2028  font-family: "Cormorant Garamond", Georgia, serif;2029  font-style: italic;2030  font-weight: 400;2031  font-size: 40px;2032  line-height: 0.95;2033  caret-color: var(--peach-accent);2034}2035.peach-new-name-input::placeholder { color: var(--peach-t2); }2036.peach-new-field-input {2037  background: transparent;2038  border: none;2039  outline: none;2040  flex: 1;2041  min-width: 0;2042  caret-color: var(--peach-accent);2043}2044.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }20452046/* ── Canary card ── */2047.peach-canary-card {2048  border: 1px solid rgba(217, 160, 48, 0.2);2049  background: rgba(217, 160, 48, 0.03);2050  border-radius: 8px;2051  padding: 12px;2052}20532054.peach-canary-settings-header {2055  display: flex;2056  align-items: center;2057  justify-content: space-between;2058  cursor: pointer;2059  user-select: none;2060}20612062.peach-canary-card .peach-label {2063  color: rgba(217, 160, 48, 0.85);2064}20652066.peach-canary-card .peach-new-field-input {2067  border-color: rgba(217, 160, 48, 0.25);2068}20692070.peach-canary-card .peach-new-field-input:focus {2071  border-color: rgba(217, 160, 48, 0.5);2072}20732074.peach-canary-body {2075  margin-top: 12px;2076  display: flex;2077  flex-direction: column;2078  gap: 10px;2079}20802081.peach-canary-explainer {2082  display: flex;2083  gap: 10px;2084  padding: 10px 12px;2085  border-radius: 10px;2086  background: rgba(217, 160, 48, 0.06);2087  border: 1px solid rgba(217, 160, 48, 0.22);2088  margin-bottom: 4px;2089}20902091.peach-canary-explainer-icon {2092  font-size: 16px;2093  flex-shrink: 0;2094  line-height: 1.2;2095}20962097.peach-canary-explainer-title {2098  font-family: var(--font-ui);2099  font-size: 11px;2100  font-weight: 500;2101  color: rgba(217, 160, 48, 0.9);2102  margin: 0 0 3px;2103}21042105.peach-canary-explainer-copy {2106  font-family: var(--font-ui);2107  font-size: 10px;2108  color: var(--peach-t2);2109  line-height: 1.55;2110  margin: 0;2111}21122113.peach-canary-hint {2114  font-size: 10px;2115  color: var(--peach-t2);2116  font-family: Inter, system-ui, sans-serif;2117  line-height: 1.5;2118  margin-top: 4px;2119}21202121.peach-canary-actions-row {2122  display: flex;2123  align-items: center;2124  gap: 8px;2125}21262127.peach-canary-test-btn {2128  border-color: rgba(217, 160, 48, 0.3);2129  color: rgba(217, 160, 48, 0.85);2130}21312132.peach-canary-test-result {2133  font-size: 10px;2134  font-family: Inter, system-ui, sans-serif;2135}21362137.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2138.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }21392140.peach-canary-badge {2141  display: flex;2142  position: relative;2143  z-index: 1;2144  align-items: center;2145  gap: 5px;2146  padding: 4px 10px;2147  background: rgba(217, 160, 48, 0.12);2148  border: 1px solid rgba(217, 160, 48, 0.35);2149  border-radius: 6px;2150  margin-bottom: 6px;2151  width: fit-content;2152}21532154.peach-canary-badge-label {2155  font-size: 10px;2156  letter-spacing: 0.06em;2157  color: rgba(217, 160, 48, 0.9);2158  font-family: var(--font-ui);2159  text-transform: uppercase;2160}21612162.peach-canary-badge-icon {2163  font-size: 11px;2164}21652166.peach-canary-suppress-row {2167  display: flex;2168  align-items: center;2169  gap: 8px;2170  padding: 6px 10px;2171  background: rgba(217, 160, 48, 0.08);2172  border-radius: 6px;2173  margin-bottom: 8px;2174}21752176.peach-canary-suppress-label {2177  font-size: 11px;2178  color: rgba(217, 160, 48, 0.85);2179  cursor: pointer;2180  font-family: var(--font-ui);2181  letter-spacing: 0.04em;2182}21832184.peach-regen-panel {2185  position: relative;2186  z-index: 1;2187  background: rgba(217, 104, 48, 0.08);2188  border: 1px solid rgba(217, 104, 48, 0.25);2189  border-radius: 8px;2190  padding: 12px;2191  margin-bottom: 8px;2192}21932194.peach-regen-panel-header {2195  display: flex;2196  align-items: center;2197  justify-content: space-between;2198  margin-bottom: 10px;2199}22002201.peach-regen-panel-title {2202  font-size: 11px;2203  font-weight: 600;2204  letter-spacing: 0.06em;2205  text-transform: uppercase;2206  color: rgba(217, 104, 48, 0.9);2207}22082209.peach-regen-output {2210  background: rgba(0, 0, 0, 0.2);2211  border-radius: 6px;2212  padding: 10px;2213  margin-bottom: 10px;2214  font-family: var(--font-mono);2215  font-size: 13px;2216  word-break: break-all;2217  color: var(--peach-t1);2218}22192220.peach-regen-actions {2221  display: flex;2222  gap: 6px;2223}22242225.peach-regen-actions--spaced {2226  margin-bottom: 8px;2227}22282229.peach-regen-action-grow {2230  flex: 1;2231}22322233.peach-regen-copy-btn {2234  padding: 0 8px;2235}22362237.peach-regen-success {2238  position: relative;2239  z-index: 1;2240  background: rgba(40, 180, 80, 0.1);2241  border: 1px solid rgba(40, 180, 80, 0.3);2242  border-radius: 8px;2243  padding: 10px 12px;2244  margin-bottom: 8px;2245  display: flex;2246  align-items: center;2247  gap: 8px;2248  font-size: 11px;2249  color: rgba(40, 180, 80, 0.9);2250}22512252/* ── Note textarea ── */2253.peach-note-textarea {2254  width: 100%;2255  min-height: 180px;2256  max-height: 280px;2257  resize: vertical;2258  background: var(--peach-t4);2259  border: 1px solid var(--peach-t3);2260  border-radius: 8px;2261  padding: 10px 12px;2262  font-family: "IBM Plex Mono", monospace;2263  font-size: 12px;2264  line-height: 1.7;2265  color: var(--peach-t1);2266  outline: none;2267  transition: border-color 150ms ease;2268}22692270.peach-note-textarea:focus {2271  border-color: var(--peach-t2);2272}22732274.peach-note-char-count {2275  font-family: "IBM Plex Mono", monospace;2276  font-size: 9px;2277  color: var(--peach-t3);2278  text-align: right;2279  margin-top: 4px;2280  letter-spacing: 0.1em;2281}22822283/* ── Field input baseline ── */2284.peach-new-field-input {2285  width: 100%;2286  background: transparent;2287  border: none;2288  border-bottom: 1px solid var(--peach-t3);2289  padding: 4px 0;2290  color: var(--peach-t1);2291  font-family: "IBM Plex Mono", monospace;2292  font-size: 13px;2293  outline: none;2294  transition: border-color 150ms ease;2295}22962297.peach-new-field-input:focus {2298  border-bottom-color: var(--peach-t0);2299  color: var(--peach-t0);2300}23012302.peach-new-name-input {2303  width: 100%;2304  background: transparent;2305  border: none;2306  border-bottom: 1px solid var(--peach-t3);2307  padding: 6px 0;2308  font-family: "Cormorant Garamond", Georgia, serif;2309  font-style: italic;2310  font-size: 28px;2311  color: var(--peach-t0);2312  outline: none;2313  transition: border-color 150ms ease;2314}23152316.peach-new-name-input:focus {2317  border-bottom-color: var(--peach-t1);2318}23192320.peach-new-name-input::placeholder {2321  color: var(--peach-t2);2322  font-style: italic;2323}23242325.peach-new-field-input::placeholder {2326  color: var(--peach-t3);2327}23282329/* ── Demo entrance animation ── */2330#hd-shell {2331  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2332}2333@keyframes hd-shell-enter {2334  from { opacity: 0; transform: scale(0.96) translateY(16px); }2335  to   { opacity: 1; transform: scale(1) translateY(0); }2336}23372338/* ── Keyframes ── */2339@keyframes peach-char-enter {2340  from { opacity: 0; transform: translateY(0.22em); }2341  to   { opacity: 1; transform: translateY(0); }2342}2343@keyframes peach-content-enter {2344  from { opacity: 0.96; transform: translateY(4px); }2345  to   { opacity: 1; transform: translateY(0); }2346}2347@keyframes peach-content-exit {2348  from { opacity: 1; transform: translateY(0); }2349  to   { opacity: 0.92; transform: translateY(-3px); }2350}2351@keyframes peach-screen-enter {2352  from { opacity: 0; transform: translateY(14px); }2353  to   { opacity: 1; transform: translateY(0); }2354}2355@keyframes peach-shell-fade-in {2356  from { opacity: 0; }2357  to   { opacity: 1; }2358}2359@keyframes peach-veil-in {2360  from { opacity: 0; }2361  to   { opacity: 1; }2362}2363@keyframes peach-lock-settle {2364  0%   { transform: scale(0.9); }2365  65%  { transform: scale(1.08); }2366  100% { transform: scale(1); }2367}2368@keyframes peach-copy-confirm {2369  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2370  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); }2371}2372@keyframes peach-copy-retreat {2373  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); }2374  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2375}2376@keyframes peach-copy-flood {2377  from { opacity: 0; transform: scaleX(0.15); }2378  to   { opacity: 1; transform: scaleX(1); }2379}2380@keyframes peach-copy-icon-settle {2381  from  { transform: scale(0.84); }2382  70%   { transform: scale(1.08); }2383  to    { transform: scale(1); }2384}2385@keyframes peach-copy-sheen-retreat {2386  from { opacity: 1; transform: scaleX(1); }2387  to   { opacity: 0; transform: scaleX(0.15); }2388}2389@keyframes peach-copy-drain {2390  from { width: 100%; }2391  to   { width: 0; }2392}2393@keyframes peach-shake {2394  0%, 100% { transform: translateX(0); }2395  20%      { transform: translateX(-6px); }2396  40%      { transform: translateX(6px); }2397  60%      { transform: translateX(-4px); }2398  80%      { transform: translateX(4px); }2399}24002401@keyframes pip-pulse {2402  0% { transform: scale(1); }2403  40% { transform: scale(2.2); }2404  100% { transform: scale(1); }2405}240624072408/* ── Password generator ── */2409.peach-pwgen-body {2410  flex: 1; overflow-y: auto;2411  display: flex; flex-direction: column;2412}2413.peach-policy-badge {2414  display: flex; align-items: center;2415  padding: 6px 20px 0;2416  font-size: 10px; font-family: Inter, sans-serif;2417  color: var(--peach-t2); letter-spacing: 0.04em;2418}2419.peach-pwgen-display {2420  padding: 14px 20px 12px;2421  border-bottom: 1px solid var(--peach-t3);2422  display: flex; align-items: flex-start; gap: 10px;2423}2424.peach-pwgen-display-row {2425  display: flex;2426  align-items: flex-start;2427  gap: 8px;2428  padding-bottom: 8px;2429  border-bottom: 1px solid var(--peach-t3);2430}2431.peach-pwgen-output {2432  flex: 1; min-width: 0; margin: 0;2433  font-family: "IBM Plex Mono", monospace;2434  font-size: 13px; color: var(--peach-t0);2435  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2436  white-space: normal;2437  padding: 10px 12px;2438  background: var(--peach-t4);2439  border-radius: 6px;2440  min-height: 36px;2441}2442.peach-pwgen-output-display {2443  flex: 1;2444  min-width: 0;2445  margin: 0;2446  font-family: "Cormorant Garamond", "Times New Roman", serif;2447  font-style: italic;2448  font-weight: 300;2449  font-size: 32px;2450  line-height: 1.05;2451  color: var(--peach-t0);2452  word-break: break-all;2453  overflow-wrap: break-word;2454  white-space: normal;2455  letter-spacing: 0.02em;2456}2457.peach-pwgen-display-actions {2458  display: flex;2459  flex-direction: column;2460  gap: 4px;2461  flex-shrink: 0;2462  margin-top: 2px;2463}2464.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2465.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2466.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2467.peach-pwgen-len-num {2468  font-family: "IBM Plex Mono", monospace;2469  font-size: 12px; color: var(--peach-accent);2470}2471.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2472.peach-pwgen-toggles { display: flex; flex-direction: column; }2473.peach-pwgen-charset-pills {2474  display: flex;2475  gap: 6px;2476  flex-wrap: wrap;2477}2478.peach-pwgen-pill {2479  padding: 4px 11px;2480  border-radius: 999px;2481  border: 1px solid var(--peach-t3);2482  background: transparent;2483  color: var(--peach-t2);2484  font-family: "IBM Plex Mono", monospace;2485  font-size: 9px;2486  letter-spacing: 0.08em;2487  cursor: pointer;2488  transition: all 150ms ease;2489}2490.peach-pwgen-pill.is-on {2491  border-color: rgba(217, 104, 48, 0.5);2492  background: rgba(217, 104, 48, 0.1);2493  color: var(--peach-accent);2494}2495.peach-pwgen-pill:not(.is-on):hover {2496  color: var(--peach-t1);2497  border-color: var(--peach-t2);2498}2499.peach-pwgen-use-btn {2500  width: 100%;2501  min-height: 34px;2502  border-radius: 8px;2503  margin-top: 2px;2504}2505.peach-pwgen-toggle-row {2506  display: flex; align-items: center; justify-content: space-between;2507  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2508}2509.peach-pwgen-toggle-row:last-child { border-bottom: none; }2510.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }25112512.peach-screen-prelock {2513  z-index: 10;2514}25152516.prelock-form {2517  display: grid;2518  gap: 12px;2519}25202521/* Peach popup should not expose native scrollbars on internal panels. */2522.peach-settings-body,2523.peach-new-body,2524.peach-pwgen-body,2525.lock-screen,2526.peach-import-preview {2527  scrollbar-width: none;2528  -ms-overflow-style: none;2529  overscroll-behavior: contain;2530}2531.peach-settings-body::-webkit-scrollbar,2532.peach-new-body::-webkit-scrollbar,2533.peach-pwgen-body::-webkit-scrollbar,2534.lock-screen::-webkit-scrollbar,2535.peach-import-preview::-webkit-scrollbar {2536  width: 0;2537  height: 0;2538  display: none;2539}25402541.lock-screen {2542  height: 100%;2543  min-height: 100%;2544  overflow-y: auto;2545  padding: 18px 18px 16px;2546  gap: 14px;2547  grid-template-rows: auto auto auto 1fr auto;2548  align-content: stretch;2549  position: relative;2550  isolation: isolate;2551}2552.peach-screen.lock-screen--vault-stage {2553  display: flex;2554  flex-direction: column;2555  justify-content: flex-start;2556  gap: 18px;2557  padding: 20px 18px 18px;2558  overflow: hidden;2559}2560.peach-screen.lock-screen--vault-stage .peach-lock-panel {2561  margin-top: auto;2562}2563.lock-screen--onboarding {2564  display: flex;2565  flex-direction: column;2566  gap: 12px;2567  justify-content: flex-start;2568}25692570.lock-screen::before {2571  content: "";2572  position: absolute;2573  inset: 12px 18px auto auto;2574  width: 160px;2575  height: 160px;2576  border-radius: 999px;2577  background:2578    radial-gradient(circle at 50% 50%, rgba(217, 104, 48, 0.18) 0%, rgba(217, 104, 48, 0.06) 42%, transparent 72%);2579  filter: blur(6px);2580  opacity: 0.7;2581  pointer-events: none;2582  z-index: 0;2583}25842585.lock-screen-header {2586  display: flex;2587  align-items: center;2588  justify-content: space-between;2589  position: relative;2590  z-index: 1;2591}25922593.lock-password-input.shake {2594  animation: peach-shake 300ms ease-in-out;2595}25962597.peach-hint-error {2598  color: rgba(220, 80, 60, 0.92);2599}26002601.peach-onboarding-headline {2602  margin: 0;2603  font-family: "Cormorant Garamond", "Times New Roman", serif;2604  font-size: 35px;2605  line-height: 0.88;2606  font-style: italic;2607  font-weight: 400;2608  max-width: 252px;2609}26102611.peach-lock-copy {2612  display: grid;2613  gap: 8px;2614  position: relative;2615  z-index: 1;2616}26172618.peach-lock-copy--onboarding {2619  gap: 10px;2620}26212622.peach-lock-hero {2623  position: relative;2624  z-index: 1;2625  display: grid;2626  gap: 8px;2627  min-height: 0;2628  padding: 4px 2px 0;2629  border: none;2630  border-radius: 0;2631  background: transparent;2632  box-shadow: none;2633}2634.peach-lock-hero-art {2635  position: absolute;2636  right: -8px;2637  top: -6px;2638  width: 120px;2639  height: 120px;2640  display: flex;2641  align-items: center;2642  justify-content: center;2643  pointer-events: none;2644  opacity: 0.12;2645  filter: saturate(0.9);2646}2647.peach-lock-hero-mark {2648  width: 100%;2649  height: 100%;2650}2651.peach-lock-hero-mark path:first-child {2652  fill: rgba(217, 104, 48, 0.92);2653}2654.peach-lock-hero-mark path:nth-child(2),2655.peach-lock-hero-mark path:nth-child(3) {2656  stroke: rgba(123, 144, 96, 0.88);2657  fill: rgba(123, 144, 96, 0.88);2658}2659.peach-lock-hero > *:not(.peach-lock-hero-art) {2660  position: relative;2661  z-index: 1;2662}26632664.peach-lock-eyebrow {2665  display: inline-flex;2666  align-items: center;2667  width: fit-content;2668  padding: 4px 9px;2669  border-radius: 999px;2670  border: 1px solid rgba(217, 104, 48, 0.22);2671  background: rgba(217, 104, 48, 0.08);2672  color: var(--peach-t0);2673  font-family: "IBM Plex Mono", monospace;2674  font-size: 8px;2675  letter-spacing: 0.18em;2676  text-transform: uppercase;2677}26782679.peach-lock-label-row {2680  display: flex;2681  align-items: center;2682  justify-content: space-between;2683  margin-bottom: 0;2684}26852686.peach-lock-reveal-btn {2687  display: inline-flex;2688  align-items: center;2689  gap: 4px;2690  background: none;2691  border: none;2692  cursor: pointer;2693  font-family: "IBM Plex Mono", monospace;2694  font-size: 9px;2695  letter-spacing: 0.06em;2696  color: var(--peach-t2);2697  padding: 2px 0;2698  transition: color 150ms ease;2699}27002701.peach-lock-reveal-btn:hover {2702  color: var(--peach-t1);2703}27042705.peach-lock-warning {2706  color: rgba(220, 80, 60, 0.85) !important;2707  line-height: 1.5;2708}27092710.peach-onboarding-cards {2711  display: grid;2712  gap: 8px;2713  position: relative;2714  z-index: 1;2715}27162717.peach-lock-panel {2718  position: relative;2719  z-index: 1;2720  display: grid;2721  gap: 9px;2722  padding: 14px 16px 15px;2723  border-radius: 18px;2724  border: 1px solid var(--peach-t3);2725  background:2726    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));2727  box-shadow:2728    inset 0 1px 0 rgba(240, 232, 216, 0.04),2729    0 12px 28px rgba(0, 0, 0, 0.12);2730}27312732.peach-lock-panel--secondary {2733  gap: 12px;2734}27352736.peach-lock-panel-header {2737  display: flex;2738  align-items: baseline;2739  justify-content: space-between;2740  gap: 12px;2741}27422743.peach-lock-option-grid {2744  display: grid;2745  gap: 10px;2746}27472748.peach-lock-option {2749  width: 100%;2750  display: grid;2751  gap: 6px;2752  padding: 14px 15px;2753  border-radius: 16px;2754  border: 1px solid rgba(240, 232, 216, 0.08);2755  background: rgba(240, 232, 216, 0.02);2756  color: var(--peach-t0);2757  text-align: left;2758  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;2759}27602761.peach-lock-option:hover {2762  border-color: rgba(217, 104, 48, 0.28);2763  background: rgba(240, 232, 216, 0.04);2764  transform: translateY(-1px);2765}27662767.peach-lock-option-title {2768  font-size: 12px;2769  color: var(--peach-t0);2770}27712772.peach-lock-option-copy {2773  font-size: 11px;2774  line-height: 1.55;2775  color: var(--peach-t1);2776}27772778.peach-onboarding-stack {2779  margin-top: 2px;2780}2781.peach-lock-panel-footer {2782  display: grid;2783  gap: 6px;2784  margin-top: 2px;2785  padding-top: 10px;2786  border-top: 1px solid rgba(240, 232, 216, 0.06);2787}27882789/* Restore picker panel — method option cards */2790.peach-lock-panel--restore {2791  gap: 10px;2792}2793.peach-lock-option--history {2794  border-color: rgba(240, 232, 216, 0.06);2795  opacity: 0.85;2796}27972798/* Snapshot restore panel */2799.peach-snapshot-panel {2800  gap: 10px;2801  overflow-y: auto;2802  max-height: 340px;2803}2804.peach-snapshot-list {2805  display: flex;2806  flex-direction: column;2807  gap: 4px;2808}2809.peach-snapshot-row {2810  display: flex;2811  align-items: center;2812  justify-content: space-between;2813  width: 100%;2814  padding: 8px 10px;2815  border-radius: 8px;2816  border: 1px solid rgba(240, 232, 216, 0.07);2817  background: transparent;2818  cursor: pointer;2819  transition: border-color 120ms, background 120ms;2820  text-align: left;2821  gap: 8px;2822}2823.peach-snapshot-row:hover {2824  border-color: rgba(240, 232, 216, 0.14);2825  background: rgba(240, 232, 216, 0.03);2826}2827.peach-snapshot-row.is-selected {2828  border-color: rgba(217, 104, 48, 0.4);2829  background: rgba(217, 104, 48, 0.07);2830}2831.peach-snapshot-time {2832  font-size: 11.5px;2833  color: var(--peach-t0);2834  flex: 1;2835}2836.peach-snapshot-count {2837  font-family: "IBM Plex Mono", monospace;2838  font-size: 10px;2839  color: var(--peach-t2);2840  flex-shrink: 0;2841}2842.peach-snapshot-confirm {2843  display: flex;2844  flex-direction: column;2845  gap: 8px;2846  padding-top: 10px;2847  border-top: 1px solid rgba(240, 232, 216, 0.06);2848}2849.peach-snapshot-warning {2850  display: flex;2851  align-items: flex-start;2852  gap: 6px;2853  font-size: 10.5px;2854  color: rgba(220, 80, 60, 0.85);2855  line-height: 1.55;2856}2857.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }2858.peach-snapshot-confirm-row {2859  display: flex;2860  gap: 6px;2861  align-items: center;2862}2863.peach-snapshot-restore-btn {2864  width: 100%;2865}2866.peach-lock-hero--unlock .peach-lock-hero-art {2867  width: 112px;2868  height: 112px;2869  right: 0;2870  top: 2px;2871  opacity: 0.1;2872}28732874.peach-card {2875  border: 1px solid var(--peach-t3);2876  border-radius: 18px;2877  background:2878    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);2879  box-shadow:2880    inset 0 1px 0 rgba(240, 232, 216, 0.04),2881    0 12px 32px rgba(0, 0, 0, 0.14);2882  overflow: hidden;2883}28842885.peach-card-active {2886  border-color: rgba(217, 104, 48, 0.35);2887  box-shadow:2888    inset 0 1px 0 rgba(240, 232, 216, 0.05),2889    0 16px 38px rgba(0, 0, 0, 0.18),2890    0 0 0 1px rgba(217, 104, 48, 0.08);2891}28922893.peach-card-disabled {2894  opacity: 0.72;2895}28962897.peach-card-header {2898  width: 100%;2899  padding: 13px 16px 11px;2900  background: transparent;2901  color: var(--peach-t0);2902  display: flex;2903  justify-content: space-between;2904  align-items: center;2905  text-align: left;2906  font-size: 12px;2907}29082909.peach-card-body {2910  padding: 0 16px 16px;2911  display: grid;2912  gap: 9px;2913}29142915.peach-card-tag {2916  color: var(--peach-t2);2917  font-family: "IBM Plex Mono", monospace;2918  font-size: 9px;2919  letter-spacing: 0.12em;2920  text-transform: uppercase;2921}29222923.peach-empty-copy {2924  display: grid;2925  gap: 6px;2926  color: var(--peach-t1);2927  font-size: 13px;2928}29292930.peach-lock-submit {2931  width: 100%;2932  box-shadow: 0 14px 36px rgba(217, 104, 48, 0.22);2933}29342935.peach-lock-secondary {2936  width: 100%;2937  border-color: var(--peach-t3);2938  background: rgba(240, 232, 216, 0.02);2939}29402941.peach-lock-secondary:hover {2942  background: rgba(240, 232, 216, 0.04);2943}29442945.peach-lock-note {2946  max-width: none;2947  line-height: 1.55;2948  margin: 0;2949}29502951.peach-overlay-action {2952  font-size: 10px;2953  padding: 4px 8px;2954  letter-spacing: 0.06em;2955  min-width: 44px;2956  text-align: center;2957}29582959.peach-overlay-spacer {2960  width: 32px;2961}29622963.peach-inline-action {2964  flex-shrink: 0;2965  font-size: 9px;2966  letter-spacing: 0.1em;2967  text-transform: uppercase;2968  padding: 4px 7px;2969}2970.peach-password-toggle-btn {2971  display: inline-flex;2972  align-items: center;2973  justify-content: center;2974  min-width: 30px;2975  min-height: 26px;2976  padding: 0 7px;2977  border: 1px solid var(--peach-t3);2978  border-radius: 999px;2979  background: rgba(240, 232, 216, 0.04);2980  color: var(--peach-t2);2981  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;2982}2983.peach-password-toggle-btn:hover {2984  border-color: var(--peach-t2);2985  color: var(--peach-t0);2986  background: rgba(240, 232, 216, 0.06);2987}29882989.peach-new-textarea {2990  width: 100%;2991  min-height: 88px;2992  resize: vertical;2993  border: 0;2994  outline: none;2995  background: transparent;2996  color: var(--peach-t1);2997  font-family: "IBM Plex Mono", monospace;2998  font-size: 12px;2999  line-height: 1.65;3000  caret-color: var(--peach-accent);3001}30023003.peach-new-textarea::placeholder {3004  color: var(--peach-t2);3005  opacity: 0.7;3006}30073008.peach-settings-actions {3009  display: grid;3010  gap: 8px;3011}30123013.peach-sync-section-label {3014  font-size: 11px;3015  color: var(--peach-t2);3016  text-transform: uppercase;3017  letter-spacing: 0.05em;3018}30193020.peach-sync-device-row {3021  display: flex;3022  justify-content: space-between;3023  align-items: center;3024  padding: 6px 0;3025  border-bottom: 1px solid var(--peach-t3);3026}30273028.peach-sync-device-info {3029  display: flex;3030  flex-direction: column;3031  gap: 2px;3032}30333034.peach-sync-device-name {3035  font-size: 13px;3036  color: var(--peach-t0);3037}30383039.peach-sync-device-meta {3040  font-size: 11px;3041  color: var(--peach-t2);3042}30433044.peach-sync-status-dot {3045  display: inline-block;3046  width: 8px;3047  height: 8px;3048  border-radius: 50%;3049  vertical-align: middle;3050}30513052.peach-sync-remove-btn {3053  color: var(--peach-breach);3054}30553056.peach-import-preview {3057  margin-bottom: 12px;3058  max-height: 152px;3059  overflow-y: auto;3060  border: 1px solid var(--peach-t3);3061  border-radius: 10px;3062  padding: 8px 10px;3063  display: grid;3064  gap: 8px;3065  background: rgba(240, 232, 216, 0.02);3066}30673068.peach-import-preview-row {3069  display: flex;3070  justify-content: space-between;3071  gap: 10px;3072  font-size: 11px;3073  color: var(--peach-t1);3074}30753076.peach-import-preview-title {3077  color: var(--peach-t0);3078  flex: 1;3079  min-width: 0;3080  overflow: hidden;3081  text-overflow: ellipsis;3082  white-space: nowrap;3083}30843085.peach-import-preview-meta {3086  color: var(--peach-t2);3087  flex-shrink: 0;3088  max-width: 42%;3089  overflow: hidden;3090  text-overflow: ellipsis;3091  white-space: nowrap;3092}30933094.peach-import-preview-more {3095  color: var(--peach-t2);3096  font-size: 10px;3097}30983099.peach-restore-copy {3100  margin: 0;3101  color: var(--peach-t1);3102  font-size: 11px;3103  line-height: 1.6;3104}31053106.peach-restore-warning {3107  padding: 10px 12px;3108  border-radius: 12px;3109  border: 1px solid rgba(220, 80, 60, 0.22);3110  background: rgba(220, 80, 60, 0.08);3111  color: rgba(240, 232, 216, 0.86);3112  font-size: 11px;3113  line-height: 1.55;3114}31153116.peach-provider-chips {3117  display: flex;3118  flex-wrap: wrap;3119  gap: 6px;3120}31213122.peach-provider-chip {3123  display: inline-flex;3124  align-items: center;3125  padding: 5px 8px;3126  border-radius: 999px;3127  border: 1px solid var(--peach-t3);3128  background: rgba(240, 232, 216, 0.02);3129  color: var(--peach-t1);3130  font-family: "IBM Plex Mono", monospace;3131  font-size: 8px;3132  letter-spacing: 0.08em;3133  text-transform: uppercase;3134}31353136.peach-restore-file,3137.peach-restore-input {3138  width: 100%;3139  border-radius: 10px;3140  border: 1px solid var(--peach-t3);3141  background: var(--peach-s2);3142  color: var(--peach-t0);3143  font-size: 12px;3144}31453146.peach-restore-file {3147  padding: 9px 10px;3148}31493150.peach-restore-file::file-selector-button {3151  margin-right: 10px;3152  padding: 7px 10px;3153  border: 1px solid rgba(217, 104, 48, 0.28);3154  border-radius: 999px;3155  background: rgba(217, 104, 48, 0.08);3156  color: var(--peach-t0);3157  font-size: 10px;3158  letter-spacing: 0.08em;3159  text-transform: uppercase;3160  cursor: pointer;3161}31623163.peach-restore-input {3164  padding: 10px 12px;3165}31663167.peach-auth-grid {3168  display: grid;3169  gap: 10px;3170}31713172.peach-import-summary {3173  color: var(--peach-t1);3174  font-size: 12px;3175  line-height: 1.6;3176  margin-bottom: 12px;3177}31783179.peach-restore-error {3180  color: rgba(220, 80, 60, 0.95);3181  font-size: 12px;3182  line-height: 1.55;3183}31843185.peach-cjk-qr-panel {3186  margin-top: 14px;3187  padding: 12px;3188  border-radius: 16px;3189  border: 1px solid var(--peach-t3);3190  background: rgba(240, 232, 216, 0.02);3191  display: grid;3192  gap: 10px;3193}31943195.peach-cjk-qr-frame {3196  display: grid;3197  place-items: center;3198  min-height: 212px;3199  border-radius: 14px;3200  background: #fff;3201  overflow: hidden;3202}32033204.peach-cjk-qr-frame svg {3205  display: block;3206  width: 196px;3207  height: 196px;3208}32093210.peach-cjk-qr-error,3211.peach-cjk-qr-caption {3212  color: var(--peach-t1);3213  font-size: 11px;3214  line-height: 1.55;3215}32163217.peach-cjk-qr-card {3218  max-width: 400px;3219  margin: auto;3220}32213222.peach-cjk-qr-body {3223  padding: 0 20px 20px;3224  text-align: center;3225}32263227.peach-cjk-qr-hint {3228  font-size: 11px;3229  color: var(--peach-t2);3230  margin: 0 0 14px;3231}32323233.peach-cjk-qr-image {3234  border-radius: 4px;3235  display: block;3236  margin: 0 auto;3237  width: 100%;3238  max-width: 320px;3239  height: auto;3240}32413242.peach-pro-badge {3243  padding: 2px 6px;3244  border-radius: 999px;3245  font-family: var(--font-ui);3246  font-size: 10px;3247  letter-spacing: 0.08em;3248  text-transform: uppercase;3249  background: rgba(217, 104, 48, 0.14);3250  color: var(--peach-accent);3251}32523253.peach-loading {3254  position: absolute;3255  inset: 0;3256  display: flex;3257  align-items: center;3258  justify-content: center;3259  background: var(--bg);3260  animation: peach-loading-pulse 1.2s ease-in-out infinite;3261}32623263@keyframes peach-loading-pulse {3264  0%, 100% { opacity: 0.6; }3265  50% { opacity: 1; }3266}32673268/* ── Health Dashboard ─────────────────────────────────────────────────── */3269.peach-health-body {3270  flex: 1;3271  overflow-y: auto;3272  display: flex;3273  flex-direction: column;3274}32753276.peach-health-summary {3277  padding: 10px 16px 6px;3278  font-family: "IBM Plex Mono", monospace;3279  font-size: 11px;3280}3281.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3282.peach-health-summary-ok { color: var(--peach-t2); }32833284.peach-health-check-row {3285  padding: 0 16px 10px;3286}3287.peach-health-check-btn {3288  width: 100%;3289  display: flex;3290  align-items: center;3291  justify-content: center;3292}32933294.peach-health-sections {3295  flex: 1;3296  display: flex;3297  flex-direction: column;3298}32993300.peach-health-section {3301  border-bottom: 1px solid var(--peach-t3);3302}33033304.peach-health-section-header {3305  width: 100%;3306  display: flex;3307  align-items: center;3308  justify-content: space-between;3309  padding: 9px 16px;3310  background: transparent;3311  cursor: pointer;3312  color: var(--peach-t0);3313}33143315.peach-health-section-title-row {3316  display: flex;3317  align-items: center;3318  gap: 8px;3319}33203321.peach-health-count-badge {3322  display: inline-flex;3323  align-items: center;3324  justify-content: center;3325  min-width: 20px;3326  height: 18px;3327  padding: 0 5px;3328  border-radius: 999px;3329  background: rgba(220,80,60,0.15);3330  border: 1px solid rgba(220,80,60,0.25);3331  font-family: "IBM Plex Mono", monospace;3332  font-size: 9px;3333  color: rgba(220,80,60,0.9);3334}33353336.peach-health-section-title {3337  font-family: "IBM Plex Mono", monospace;3338  font-size: 11px;3339  text-transform: uppercase;3340  letter-spacing: 0.1em;3341  color: var(--peach-t1);3342}33433344.peach-health-chevron {3345  color: var(--peach-t2);3346  transition: transform 200ms ease;3347  flex-shrink: 0;3348}3349.peach-health-chevron.is-expanded {3350  transform: rotate(180deg);3351}33523353.peach-health-section-body {3354  padding: 0 16px 10px;3355  display: flex;3356  flex-direction: column;3357  gap: 4px;3358}33593360.peach-health-row {3361  display: flex;3362  align-items: flex-start;3363  justify-content: space-between;3364  gap: 8px;3365  padding: 6px 8px;3366  border-radius: 8px;3367  background: rgba(240,232,216,0.02);3368}33693370.peach-health-row-info {3371  flex: 1;3372  min-width: 0;3373  display: flex;3374  flex-direction: column;3375  gap: 2px;3376}33773378.peach-health-row-name {3379  font-family: "Cormorant Garamond", serif;3380  font-size: 15px;3381  font-style: italic;3382  font-weight: 400;3383  color: var(--peach-t0);3384  white-space: nowrap;3385  overflow: hidden;3386  text-overflow: ellipsis;3387}33883389.peach-health-row-meta {3390  font-family: "IBM Plex Mono", monospace;3391  font-size: 9px;3392  color: var(--peach-t2);3393  letter-spacing: 0.05em;3394}33953396.peach-health-fix-btn {3397  font-size: 9px;3398  letter-spacing: 0.08em;3399  text-transform: uppercase;3400  padding: 4px 7px;3401  flex-shrink: 0;3402  display: flex;3403  align-items: center;3404}34053406.peach-health-empty {3407  font-family: "IBM Plex Mono", monospace;3408  font-size: 10px;3409  color: var(--peach-t2);3410  padding: 6px 0;3411}34123413.peach-health-loading {3414  font-family: "IBM Plex Mono", monospace;3415  font-size: 10px;3416  color: var(--peach-t2);3417  padding: 6px 0;3418  display: flex;3419  align-items: center;3420  gap: 6px;3421}34223423.peach-health-loading::before {3424  content: "";3425  width: 10px;3426  height: 10px;3427  border: 1.5px solid var(--peach-t3);3428  border-top-color: var(--peach-accent);3429  border-radius: 50%;3430  animation: peach-spin 600ms linear infinite;3431}34323433@keyframes peach-spin {3434  to { transform: rotate(360deg); }3435}34363437.peach-spinner {3438  width: 32px;3439  height: 32px;3440  border: 2px solid var(--peach-s2);3441  border-top-color: var(--peach-accent);3442  border-radius: 50%;3443  margin: 0 auto 16px;3444  animation: peach-spin 0.8s linear infinite;3445}34463447.peach-progress-screen {3448  text-align: center;3449  padding: 32px 16px;3450}34513452.peach-progress-screen-title {3453  font-size: 13px;3454  color: var(--peach-t0);3455  margin-bottom: 16px;3456}34573458.peach-progress-screen-stage {3459  font-size: 11px;3460  color: var(--peach-t2);3461  min-height: 14px;3462}34633464.peach-progress-screen-note {3465  font-size: 10px;3466  color: var(--peach-t2);3467  margin-top: 8px;3468}34693470.peach-pairing-body {3471  flex: 1;3472  overflow-y: auto;3473  display: flex;3474  flex-direction: column;3475}34763477.peach-pairing-content {3478  flex: 1;3479  display: flex;3480  flex-direction: column;3481  align-items: center;3482  justify-content: center;3483  gap: 14px;3484  padding: 28px 20px;3485  text-align: center;3486}34873488.peach-pairing-headline {3489  font-family: var(--font-display);3490  font-style: italic;3491  font-weight: 300;3492  font-size: 28px;3493  color: var(--peach-t0);3494  margin: 0;3495  line-height: 1;3496}34973498.peach-pairing-subline {3499  font-size: 12px;3500  color: var(--peach-t2);3501  max-width: 220px;3502  line-height: 1.5;3503  margin: 0;3504}35053506.peach-pairing-subline--center {3507  text-align: center;3508}35093510.peach-pairing-code-display {3511  display: flex;3512  gap: 6px;3513}35143515.peach-pairing-code-digit {3516  display: flex;3517  align-items: center;3518  justify-content: center;3519  width: 36px;3520  height: 48px;3521  background: var(--peach-s2);3522  border: 1px solid var(--peach-t3);3523  border-radius: 6px;3524  font-family: var(--font-mono);3525  font-size: 22px;3526  color: var(--peach-t0);3527  letter-spacing: 0;3528}35293530.peach-pairing-countdown-ring {3531  position: relative;3532  display: inline-flex;3533  align-items: center;3534  justify-content: center;3535}35363537.peach-pairing-countdown-num {3538  position: absolute;3539  font-family: var(--font-mono);3540  font-size: 14px;3541  color: var(--peach-t1);3542}35433544.peach-pairing-ring-track {3545  fill: none;3546  stroke: var(--peach-t3);3547  stroke-width: 2;3548}35493550.peach-pairing-ring-progress {3551  fill: none;3552  stroke: var(--peach-accent);3553  stroke-width: 2;3554  stroke-linecap: round;3555  transform: rotate(-90deg);3556  transform-origin: 50% 50%;3557  transition: stroke-dashoffset 0.5s linear;3558}35593560.peach-pairing-code-inputs {3561  display: flex;3562  gap: 8px;3563}35643565.peach-pairing-code-box {3566  width: 36px;3567  height: 48px;3568  text-align: center;3569  background: var(--peach-s2);3570  border: 1px solid var(--peach-t3);3571  border-radius: 6px;3572  font-family: var(--font-mono);3573  font-size: 20px;3574  color: var(--peach-t0);3575  outline: none;3576  transition: border-color 120ms ease;3577}35783579.peach-pairing-code-box:focus {3580  border-color: var(--peach-accent);3581}35823583.peach-pairing-code-box.has-error {3584  border-color: rgba(220, 80, 60, 0.45);3585}35863587.peach-pairing-status {3588  display: flex;3589  align-items: center;3590  gap: 8px;3591  margin: 0;3592  font-size: 12px;3593  color: var(--peach-t1);3594}35953596.peach-pairing-error {3597  margin: 0;3598  font-size: 11px;3599  color: var(--peach-breach);3600}36013602.peach-pairing-error-msg {3603  color: var(--peach-t1);3604}36053606.peach-pairing-spinner {3607  width: 12px;3608  height: 12px;3609  border: 1.5px solid var(--peach-t3);3610  border-top-color: var(--peach-accent);3611  border-radius: 50%;3612  animation: peach-spin 0.8s linear infinite;3613}36143615.peach-pairing-success-icon,3616.peach-pairing-error-icon,3617.peach-pairing-hero {3618  display: inline-flex;3619  align-items: center;3620  justify-content: center;3621}36223623/* Tag chips */3624.peach-tag-chip {3625  display: inline-flex;3626  align-items: center;3627  gap: 4px;3628  padding: 3px 8px;3629  border-radius: 999px;3630  border: 1px solid rgba(217, 104, 48, 0.28);3631  background: rgba(217, 104, 48, 0.08);3632  color: rgba(240, 232, 216, 0.85);3633  font-family: "IBM Plex Mono", monospace;3634  font-size: 10px;3635  letter-spacing: 0.04em;3636}36373638.peach-tag-chip-remove {3639  background: transparent;3640  border: none;3641  color: inherit;3642  opacity: 0.6;3643  cursor: pointer;3644  padding: 0;3645  font-size: 12px;3646  line-height: 1;3647}36483649.peach-tag-chip-remove:hover {3650  opacity: 1;3651}36523653/* Tag input */3654.peach-tag-input-wrap {3655  border-bottom: 1px solid var(--peach-t3);3656}36573658.peach-tag-suggestions {3659  display: flex;3660  flex-wrap: wrap;3661  gap: 4px;3662  padding: 6px 0;3663}36643665.peach-tag-suggestion {3666  padding: 2px 8px;3667  border-radius: 999px;3668  border: 1px solid var(--peach-t3);3669  background: var(--peach-s2);3670  color: var(--peach-t1);3671  font-family: "IBM Plex Mono", monospace;3672  font-size: 10px;3673  cursor: pointer;3674  transition: border-color 80ms ease, background 80ms ease;3675}36763677.peach-tag-suggestion:hover {3678  border-color: rgba(217, 104, 48, 0.4);3679  background: rgba(217, 104, 48, 0.08);3680}36813682/* Tag filter strip */3683.peach-tag-filter-strip {3684  border-bottom: 1px solid var(--peach-t3);3685  flex-shrink: 0;3686}36873688.peach-tag-filter-chip {3689  display: inline-flex;3690  align-items: center;3691  padding: 4px 10px;3692  border-radius: 999px;3693  border: 1px solid var(--peach-t3);3694  background: transparent;3695  color: var(--peach-t2);3696  font-family: "IBM Plex Mono", monospace;3697  font-size: 9px;3698  letter-spacing: 0.06em;3699  text-transform: uppercase;3700  cursor: pointer;3701  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3702  white-space: nowrap;3703}37043705.peach-tag-filter-chip:hover {3706  border-color: rgba(217, 104, 48, 0.35);3707  color: var(--peach-t1);3708}37093710.peach-tag-filter-chip.is-selected {3711  border-color: rgba(217, 104, 48, 0.5);3712  background: rgba(217, 104, 48, 0.12);3713  color: rgba(240, 232, 216, 0.9);3714}37153716/* ─────────────────────────────────────────────────────────────────────────3717   v1.4.12 additions3718   ─────────────────────────────────────────────────────────────────────── */37193720/* Sort bar */3721.peach-sort-bar {3722  display: flex;3723  align-items: center;3724  gap: 4px;3725  padding: 5px 12px;3726  border-bottom: 1px solid var(--peach-t3);3727  flex-shrink: 0;3728  overflow-x: auto;3729  scrollbar-width: none;3730}37313732.peach-sort-btn {3733  padding: 2px 9px;3734  border-radius: 999px;3735  border: 1px solid transparent;3736  background: transparent;3737  color: var(--peach-t2);3738  font-family: "IBM Plex Mono", monospace;3739  font-size: 9px;3740  letter-spacing: 0.07em;3741  text-transform: uppercase;3742  cursor: pointer;3743  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3744  white-space: nowrap;3745}37463747.peach-sort-btn:hover {3748  border-color: rgba(217, 104, 48, 0.3);3749  color: var(--peach-t1);3750}37513752.peach-sort-btn.is-active {3753  border-color: rgba(217, 104, 48, 0.5);3754  background: rgba(217, 104, 48, 0.12);3755  color: rgba(240, 232, 216, 0.9);3756}37573758.peach-sort-domain-hint {3759  margin-left: auto;3760  font-family: "IBM Plex Mono", monospace;3761  font-size: 9px;3762  color: rgba(217, 104, 48, 0.6);3763  white-space: nowrap;3764  overflow: hidden;3765  text-overflow: ellipsis;3766  max-width: 110px;3767}37683769/* Tab-match badge on entry rows */3770.peach-tab-match-badge {3771  display: inline-block;3772  width: 6px;3773  height: 6px;3774  border-radius: 50%;3775  background: rgba(217, 104, 48, 0.75);3776  margin-left: 5px;3777  vertical-align: middle;3778  flex-shrink: 0;3779  box-shadow: 0 0 4px rgba(217, 104, 48, 0.4);3780}37813782.peach-entry-row.is-tab-match {3783  background: rgba(217, 104, 48, 0.04);3784  border-bottom-color: rgba(217, 104, 48, 0.08);3785}37863787.peach-entry-row.is-tab-match:hover {3788  background: rgba(217, 104, 48, 0.08);3789}37903791/* Entry list stagger entrance */3792@keyframes peach-entry-fadein {3793  from { opacity: 0; transform: translateY(4px); }3794  to   { opacity: 1; transform: translateY(0); }3795}37963797.peach-vault-list .peach-entry-row {3798  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;3799  content-visibility: auto;3800  contain-intrinsic-size: auto 44px;3801}38023803/* Button press micro-interaction */3804.peach-btn:active {3805  transform: scale(0.95);3806  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3807}38083809.peach-sort-btn:active,3810.peach-tag-filter-chip:active {3811  transform: scale(0.93);3812  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);3813}38143815/* Password strength bar (Lock view + shared) */3816.peach-password-strength {3817  display: flex;3818  align-items: center;3819  gap: 8px;3820  margin-top: 6px;3821}38223823.peach-strength-bar {3824  flex: 1;3825  height: 3px;3826  border-radius: 2px;3827  background: var(--peach-t3);3828  overflow: hidden;3829}38303831.peach-strength-fill {3832  height: 100%;3833  border-radius: 2px;3834  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),3835              background 300ms ease;3836}38373838.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }3839.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }3840.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }3841.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }38423843.peach-strength-label {3844  font-family: "IBM Plex Mono", monospace;3845  font-style: italic;3846  font-size: 9px;3847  font-weight: 300;3848  letter-spacing: 0.06em;3849  color: var(--peach-t2);3850  min-width: 36px;3851  text-align: right;3852}38533854.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }3855.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }3856.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }3857.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }38583859/* Duress form */3860.peach-duress-status {3861  padding: 2px 8px;3862  border-radius: 999px;3863  border: 1px solid var(--peach-t3);3864  font-family: "IBM Plex Mono", monospace;3865  font-size: 9px;3866  letter-spacing: 0.07em;3867  text-transform: uppercase;3868  color: var(--peach-t2);3869  flex-shrink: 0;3870}38713872.peach-duress-status.is-active {3873  border-color: rgba(217, 104, 48, 0.45);3874  background: rgba(217, 104, 48, 0.1);3875  color: rgba(240, 232, 216, 0.85);3876}38773878.peach-duress-form {3879  padding: 8px 0 4px;3880  display: flex;3881  flex-direction: column;3882  gap: 6px;3883}38843885.peach-duress-form .peach-label {3886  margin-top: 4px;3887}38883889.peach-duress-actions {3890  display: flex;3891  gap: 6px;3892  align-items: center;3893  margin-top: 4px;3894}38953896.peach-duress-actions .peach-btn:first-child {3897  margin-right: auto;3898}38993900/* Improved overlay spring entrance */3901.peach-overlay-view.ov-enter-up {3902  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3903}39043905@keyframes ov-enter-up-spring {3906  from { opacity: 0; transform: translateY(16px) scale(0.98); }3907  to   { opacity: 1; transform: translateY(0) scale(1); }3908}39093910.peach-overlay-view.ov-enter-right {3911  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;3912}39133914@keyframes ov-enter-right-spring {3915  from { opacity: 0; transform: translateX(18px) scale(0.98); }3916  to   { opacity: 1; transform: translateX(0) scale(1); }3917}39183919/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */3920/* Used when CJKImportView or MainImportView renders during onboarding3921   (no vault yet). Animates like a lock-screen transition. */3922.peach-lock-view {3923  position: absolute;3924  inset: 0;3925  display: flex;3926  flex-direction: column;3927  background:3928    radial-gradient(120% 80% at 0% 0%, rgba(217,104,48,0.08) 0%, transparent 65%),3929    radial-gradient(85% 100% at 100% 100%, rgba(217,104,48,0.06) 0%, transparent 70%),3930    var(--peach-bg);3931  z-index: 2;3932  overflow: hidden;3933  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;3934}39353936.peach-lock-view-header {3937  display: flex;3938  align-items: center;3939  justify-content: space-between;3940  padding: 16px 18px 12px;3941  flex-shrink: 0;3942}39433944/* ───────── Settings: auto-lock select ───────── */3945.peach-settings-select {3946  font-family: "IBM Plex Mono", monospace;3947  font-size: 11px;3948  background: transparent;3949  border: 1px solid var(--peach-t3);3950  border-radius: 4px;3951  color: var(--peach-t1);3952  padding: 3px 6px;3953  cursor: pointer;3954  outline: none;3955}3956.peach-settings-select:focus {3957  border-color: var(--peach-accent);3958}39593960/* ───────── Duress status pill (new polished) ───────── */3961.peach-duress-status-pill {3962  font-family: "IBM Plex Mono", monospace;3963  font-size: 9px;3964  text-transform: uppercase;3965  letter-spacing: 0.12em;3966  padding: 2px 8px;3967  border-radius: 12px;3968  background: var(--peach-t3);3969  color: var(--peach-t2);3970  flex-shrink: 0;3971}3972.peach-duress-status-pill.is-active {3973  background: rgba(217, 104, 48, 0.15);3974  color: var(--peach-accent);3975}39763977/* ───────── Entry advanced disclosure (canary) ───────── */3978.peach-entry-advanced {3979  margin-top: 12px;3980  border-top: 1px solid var(--peach-t3);3981  padding-top: 10px;3982  position: relative;3983  z-index: 1;3984}3985.peach-entry-advanced-toggle {3986  display: flex;3987  align-items: center;3988  justify-content: space-between;3989  width: 100%;3990  background: transparent;3991  border: none;3992  cursor: pointer;3993  padding: 0;3994  color: var(--peach-t2);3995}3996.peach-canary-section {3997  margin-top: 10px;3998  display: grid;3999  gap: 6px;4000}40014002/* ───────── Import: merge/replace radio choices ───────── */4003.peach-import-choice {4004  display: flex;4005  align-items: flex-start;4006  gap: 10px;4007  padding: 8px 10px;4008  border: 1px solid var(--peach-t3);4009  border-radius: 10px;4010  cursor: pointer;4011  margin-bottom: 6px;4012  transition: border-color 120ms ease, background 120ms ease;4013}4014.peach-import-choice:hover {4015  border-color: var(--peach-accent);4016}4017.peach-import-choice input[type="radio"] {4018  margin-top: 3px;4019  accent-color: var(--peach-accent);4020  flex-shrink: 0;4021}4022.peach-import-choice-main {4023  display: flex;4024  flex-direction: column;4025  gap: 2px;4026  min-width: 0;4027}4028.peach-import-choice-label {4029  font-size: 12px;4030  color: var(--peach-t0);4031}4032.peach-import-choice-sub {4033  font-size: 11px;4034  color: var(--peach-t2);4035  line-height: 1.5;4036}40374038/* ───────── Export: success confirmation strip ───────── */4039.peach-export-success {4040  display: flex;4041  align-items: flex-start;4042  gap: 10px;4043  padding: 12px;4044  border-radius: 12px;4045  border: 1px solid rgba(150, 175, 110, 0.3);4046  background: rgba(150, 175, 110, 0.08);4047  color: var(--peach-t0);4048  font-size: 12px;4049  line-height: 1.55;4050}4051.peach-export-success-check {4052  color: rgba(150, 175, 110, 0.9);4053  font-size: 14px;4054  flex-shrink: 0;4055}40564057/* ── Trash view ──────────────────────────────────────────────────────── */4058.peach-trash-entry-row {4059  display: flex;4060  align-items: center;4061  justify-content: space-between;4062  gap: 8px;4063  padding: 8px 0;4064  border-bottom: 1px solid var(--peach-t3);4065}4066.peach-trash-entry-row:last-child { border-bottom: none; }4067.peach-trash-entry-info {4068  flex: 1;4069  min-width: 0;4070  display: flex;4071  flex-direction: column;4072  gap: 2px;4073}4074.peach-trash-entry-title {4075  font-size: 12px;4076  color: var(--peach-t1);4077  overflow: hidden;4078  text-overflow: ellipsis;4079  white-space: nowrap;4080}4081.peach-trash-entry-meta {4082  font-family: var(--font-mono);4083  font-size: 9px;4084  color: var(--peach-t2);4085  letter-spacing: 0.06em;4086}4087.peach-trash-entry-actions {4088  display: flex;4089  align-items: center;4090  gap: 4px;4091  flex-shrink: 0;4092}40934094/* ── Settings shortcuts grid ─────────────────────────────────────────── */4095.peach-shortcuts-grid {4096  display: grid;4097  grid-template-columns: auto 1fr;4098  gap: 6px 12px;4099  align-items: center;4100  padding: 4px 0;4101}4102.peach-shortcut-key {4103  font-family: var(--font-mono);4104  font-size: 10px;4105  color: var(--peach-t0);4106  background: var(--peach-t3);4107  border-radius: 4px;4108  padding: 2px 6px;4109  white-space: nowrap;4110  text-align: center;4111}4112.peach-shortcut-desc {4113  font-size: 11px;4114  color: var(--peach-t1);4115}41164117/* ── Sort bar trash button ───────────────────────────────────────────── */4118.peach-sort-trash-btn {4119  display: flex;4120  align-items: center;4121  justify-content: center;4122  padding: 3px 5px;4123  background: transparent;4124  border: none;4125  cursor: pointer;4126  color: var(--peach-t2);4127  border-radius: 4px;4128  transition: color 140ms ease, background 140ms ease;4129}4130.peach-sort-trash-btn:hover {4131  color: var(--peach-t1);4132  background: var(--peach-t3);4133}