popup.css

103.0 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 10px;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: "Cormorant Garamond", "Times New Roman", serif;168  font-size: 15px;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }209.peach-status-pip {210  width: 5px;211  height: 5px;212  border-radius: 50%;213  background: var(--peach-t3);214  display: inline-flex;215  flex-shrink: 0;216  transition: background 400ms ease, box-shadow 400ms ease;217}218.peach-chrome-actions { display: flex; gap: 6px; }219220/* Shell body */221.peach-shell-body {222  position: relative;223  display: grid;224  grid-template-rows: 1fr auto;225  min-height: 0;226  min-width: 0;227  width: 100%;228  overflow: hidden;229  height: 100%;230}231.peach-shell-veil {232  position: absolute; inset: 0;233  background: #000; opacity: 0;234  pointer-events: none; z-index: 1;235}236.peach-shell[data-motion-phase="enter"] .peach-shell-body {237  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;238}239.peach-shell[data-motion-phase="exit"] .peach-shell-veil {240  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;241}242243/* Content frame */244.peach-content-frame {245  display: grid;246  grid-template-rows: 1fr auto;247  grid-template-columns: minmax(0, 1fr);248  align-content: start;249  min-height: 0;250  min-width: 0;251  overflow: hidden;252  transition: opacity 80ms ease, transform 80ms ease;253}254.peach-content-frame.navigating {255  opacity: 0.93;256  transform: translateX(2px);257}258.peach-content-frame[data-content-phase="enter"] {259  animation: peach-content-enter 135ms ease-out both;260}261.peach-content-frame[data-content-phase="exit"] {262  animation: peach-content-exit 95ms ease-in forwards;263}264.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }265266/* Stage */267.peach-stage {268  padding: 10px 20px 12px;269  display: grid;270  gap: 12px;271  align-content: start;272  min-width: 0;273  min-height: 0;274  max-width: 100%;275  overflow-y: auto;276  overflow-x: hidden;277  scrollbar-width: none;278  -ms-overflow-style: none;279  overscroll-behavior: contain;280}281.peach-stage::-webkit-scrollbar { display: none; }282283/* Entry name */284.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }285.peach-entry-header {286  position: relative;287  z-index: 1;288  display: flex;289  align-items: flex-start;290  gap: 6px;291  min-width: 0;292}293.peach-entry-header-name {294  flex: 1;295  min-width: 0;296}297.peach-entry-name {298  margin: 0;299  font-family: "Cormorant Garamond", "Times New Roman", serif;300  font-style: italic; font-weight: 400;301  font-size: 44px; line-height: 0.95;302  color: var(--peach-t0);303  display: -webkit-box;304  -webkit-line-clamp: 2;305  -webkit-box-orient: vertical;306  overflow: hidden;307  text-wrap: balance;308}309.peach-entry-name--lg { font-size: 40px; }310.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }311.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }312.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; }313314/* Trash icon in entry header */315.peach-entry-trash-btn {316  flex-shrink: 0;317  padding: 4px;318  margin-top: 4px;319  background: transparent;320  border: none;321  cursor: pointer;322  color: var(--peach-t2);323  border-radius: 4px;324  transition: color 140ms ease, background 140ms ease;325  display: flex;326  align-items: center;327  justify-content: center;328}329.peach-entry-trash-btn:hover {330  color: var(--peach-t1);331  background: var(--peach-t3);332}333.peach-entry-trash-confirm {334  display: flex;335  align-items: center;336  gap: 6px;337  flex-shrink: 0;338  margin-top: 6px;339  flex-wrap: nowrap;340}341.peach-entry-trash-confirm-label {342  font-family: var(--font-mono);343  font-size: 9px;344  letter-spacing: 0.1em;345  color: var(--peach-t2);346  white-space: nowrap;347}348.peach-entry-name-button {349  padding: 0;350  background: transparent;351  text-align: left;352  cursor: pointer;353  max-width: 100%;354  overflow: hidden;355  display: block;356}357.peach-entry-name-char {358  display: inline-block;359  white-space: pre;360  opacity: 0;361  transform: translateY(0.22em);362  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;363  animation-delay: calc(var(--char-index, 0) * 20ms);364}365366/* Domain */367.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }368.peach-domain-row {369  width: 100%; border: 0; background: transparent; color: inherit;370  padding: 0; display: flex; justify-content: space-between; align-items: baseline;371  cursor: default;372}373.peach-domain-value {374  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;375  font-size: 10px; font-style: italic;376  letter-spacing: 0.12em; color: var(--peach-t1);377}378379/* Fields */380.peach-fields { display: grid; gap: 10px; }381.peach-field-card { display: grid; gap: 7px; }382.peach-label {383  font-family: Inter, system-ui, sans-serif;384  text-transform: uppercase; letter-spacing: 0.2em;385  font-size: 8px; color: var(--peach-t2);386}387.peach-field-value-row {388  display: flex; justify-content: space-between;389  align-items: center; gap: 8px;390  min-width: 0;391}392.peach-field-value {393  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;394  font-size: 13px; color: var(--peach-t1);395  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;396  flex: 1;397  min-width: 0;398}399.peach-password-value {400  display: inline-flex;401  align-items: center;402  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;403  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);404  overflow: hidden;405  text-overflow: ellipsis;406  white-space: nowrap;407  flex: 1;408  min-width: 0;409  max-width: 100%;410}411.peach-password-value.is-revealed {412  font-size: 14px;413  letter-spacing: 0.08em;414}415.peach-password-text,416.peach-password-mask {417  display: block;418  width: 100%;419  overflow: hidden;420  text-overflow: ellipsis;421  white-space: nowrap;422}423.peach-field-actions { display: flex; gap: 4px; align-items: center; }424.peach-password-strength { display: flex; align-items: center; gap: 8px; }425.peach-strength-bar { display: flex; gap: 3px; }426.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }427.peach-strength-label {428  font-family: "IBM Plex Mono", monospace;429  font-style: italic;430  font-size: 9px;431  font-weight: 300;432  min-width: 36px;433  text-align: right;434  color: var(--peach-t2);435  letter-spacing: 0.06em;436}437438.peach-strength-hairline {439  display: flex;440  align-items: center;441  gap: 10px;442  margin-top: -2px;443}444445.peach-strength-hairline-track {446  flex: 1;447  height: 3px;448  border-radius: 2px;449  background: var(--peach-s2);450  overflow: hidden;451}452453.peach-strength-hairline-fill {454  height: 100%;455  border-radius: 2px;456  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),457    background 400ms ease;458}459460/* Note content (display) */461.peach-note-content {462  border-top: 1px solid var(--peach-t3);463  padding-top: 10px;464  font-family: "Cormorant Garamond", "Times New Roman", serif;465  font-size: 15px;466  line-height: 1.75;467  color: var(--peach-t1);468}469470/* ── Inline editing ─────────────────────────────────────────────────── */471472/* Clickable display values */473.peach-inline-clickable {474  cursor: text;475  border-radius: 3px;476  transition: background 150ms ease;477}478.peach-inline-clickable:hover {479  background: rgba(240, 232, 216, 0.05);480}481482/* Subtle "edit" hint that appears on hover */483.peach-inline-edit-hint {484  font-family: Inter, system-ui, sans-serif;485  font-size: 9px;486  text-transform: uppercase;487  letter-spacing: 0.14em;488  color: var(--peach-t2);489  opacity: 0;490  transition: opacity 120ms ease;491  pointer-events: none;492  margin-left: 6px;493  flex-shrink: 0;494}495.peach-domain-row:hover .peach-inline-edit-hint {496  opacity: 1;497}498499/* Title editing */500.peach-inline-title-wrap {501  display: flex;502  flex-direction: column;503  gap: 6px;504}505.peach-inline-title-input {506  font-family: "Cormorant Garamond", "Times New Roman", serif;507  font-style: italic;508  font-weight: 400;509  font-size: 40px;510  line-height: 0.95;511  color: var(--peach-t0);512  background: transparent;513  border: none;514  border-bottom: 1px solid var(--peach-accent);515  outline: none;516  width: 100%;517  padding: 2px 0;518}519520/* Generic inline field */521.peach-inline-field-wrap {522  display: flex;523  flex-direction: column;524  gap: 6px;525}526.peach-inline-input {527  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;528  font-size: 13px;529  color: var(--peach-t0);530  background: transparent;531  border: none;532  border-bottom: 1px solid var(--peach-accent);533  outline: none;534  width: 100%;535  padding: 3px 0;536}537.peach-inline-textarea {538  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;539  font-size: 11px;540  line-height: 1.7;541  color: var(--peach-t0);542  background: rgba(240, 232, 216, 0.04);543  border: 1px solid var(--peach-accent);544  border-radius: 4px;545  outline: none;546  width: 100%;547  padding: 8px;548  resize: vertical;549  min-height: 80px;550}551552/* Save / cancel row */553.peach-inline-actions {554  display: flex;555  gap: 6px;556  align-items: center;557}558.peach-inline-save-btn,559.peach-inline-cancel-btn {560  display: inline-flex;561  align-items: center;562  justify-content: center;563  width: 26px;564  height: 26px;565  border-radius: 4px;566  border: none;567  cursor: pointer;568  transition: background 140ms ease, opacity 140ms ease;569  flex-shrink: 0;570}571.peach-inline-save-btn {572  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);573  color: var(--peach-accent);574}575.peach-inline-save-btn:hover:not(:disabled) {576  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);577}578.peach-inline-cancel-btn {579  background: rgba(240, 232, 216, 0.06);580  color: var(--peach-t2);581}582.peach-inline-cancel-btn:hover:not(:disabled) {583  background: rgba(240, 232, 216, 0.12);584  color: var(--peach-t1);585}586.peach-inline-save-btn:disabled,587.peach-inline-cancel-btn:disabled {588  opacity: 0.4;589  cursor: not-allowed;590}591592/* Inline password generator wrapper */593.peach-inline-generator-wrap {594  margin-top: 10px;595  padding-top: 10px;596  border-top: 1px solid var(--peach-t3);597  display: flex;598  flex-direction: column;599  gap: 8px;600}601.peach-inline-generator-cancel {602  align-self: flex-start;603  font-size: 11px;604  color: var(--peach-t2);605}606607/* "is-editing" card state */608.peach-field-card.is-editing {609  background: rgba(240, 232, 216, 0.02);610  border-radius: 6px;611  padding: 8px;612  margin: -8px;613}614615/* Quiet inline "+ add X" link in the entry detail body */616.peach-entry-add-link {617  align-self: flex-start;618  margin-top: 8px;619}620621/* Delete row */622.peach-entry-delete-row {623  display: flex;624  align-items: center;625  gap: 8px;626  padding-top: 18px;627  margin-top: 8px;628  border-top: 1px solid var(--peach-t3);629}630.peach-delete-btn {631  font-size: 11px;632  color: var(--peach-t2);633  padding: 4px 0;634}635.peach-delete-confirm-text {636  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;637  font-size: 11px;638  font-style: italic;639  color: var(--peach-t2);640  flex-shrink: 0;641}642643/* TOTP band */644.peach-totp-band {645  border-top: 1px solid var(--peach-t3);646  padding: 12px 20px 14px;647  position: relative;648  display: grid;649  grid-template-columns: 1fr auto;650  gap: 10px;651}652.peach-totp-main {653  min-width: 0;654  cursor: pointer;655  user-select: none;656}657.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }658.peach-totp-code-row {659  display: flex;660  align-items: flex-end;661  gap: 10px;662  min-width: 0;663}664.peach-totp-code {665  margin: 2px 0 0;666  font-family: "Cormorant Garamond", "Times New Roman", serif;667  font-style: italic;668  font-weight: 300;669  font-size: 38px; color: var(--peach-accent);670  line-height: 0.95; min-height: 1em;671  min-width: 0;672}673.peach-totp-code-text {674  display: inline-flex;675  overflow: hidden;676  text-overflow: ellipsis;677  white-space: nowrap;678}679.peach-totp-copy-btn {680  margin-bottom: 2px;681  flex-shrink: 0;682  border-color: transparent;683}684.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }685.peach-totp-countdown {686  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;687  font-size: 22px; color: var(--peach-t1);688}689.peach-totp-ring { transform: rotate(-90deg); }690.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }691.peach-totp-ring-progress {692  fill: none; stroke: var(--peach-accent); stroke-width: 2;693  stroke-linecap: round;694  transition: stroke-dashoffset 1s linear, stroke 500ms ease;695}696/* Search bar */697.peach-search-wrap {698  border-top: 1px solid var(--peach-t3);699  background: var(--peach-s1);700  min-height: 54px; position: relative;701  box-shadow: inset 0 6px 18px transparent;702  transition: box-shadow 700ms ease;703}704.peach-search-wrap::before {705  content: "";706  position: absolute;707  left: 0;708  top: 0;709  height: 2px;710  width: var(--peach-totp-progress, 0%);711  background: var(--peach-accent);712  opacity: 0;713  transition: width 1s linear, opacity 180ms ease;714  pointer-events: none;715}716.peach-shell[data-totp-active="true"] .peach-search-wrap::before {717  opacity: 0.9;718}719.peach-shell[data-totp-active="true"] .peach-search-wrap {720  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);721}722723@keyframes peach-totp-code-flare {724  0%   { filter: brightness(1); }725  25%  { filter: brightness(1.3); }726  100% { filter: brightness(1); }727}728.peach-totp-code.is-hot {729  animation: peach-totp-code-flare 3000ms ease-in-out both;730}731.peach-search-bar {732  min-height: 54px;733  display: grid;734  grid-template-columns: auto minmax(0, 1fr) auto;735  align-items: center;736  gap: 8px; padding: 0 9px 0 12px;737}738.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }739.peach-search-input {740  border: 0; background: transparent; color: var(--peach-t0);741  font-family: "Cormorant Garamond", "Times New Roman", serif;742  font-style: italic; font-size: 18px;743  outline: none; width: 100%; min-width: 0; padding: 0;744  caret-color: var(--peach-accent);745}746.peach-search-input::placeholder { color: var(--peach-t2); }747.peach-search-meta {748  display: grid;749  grid-auto-flow: column;750  align-items: center;751  justify-content: end;752  gap: 6px;753  min-width: max-content;754}755.peach-search-counter {756  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;757  font-size: 10px; color: var(--peach-t2);758  display: inline-flex;759  align-items: center;760  line-height: 1;761}762.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }763764/* Buttons */765.peach-btn {766  border: 1px solid transparent; border-radius: 12px;767  background: transparent; color: var(--peach-t0);768  font-family: Inter, system-ui, sans-serif;769  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;770  cursor: pointer;771  transition:772    background-color var(--peach-dur-80) var(--peach-curve-arrival),773    color var(--peach-dur-80) var(--peach-curve-arrival),774    border-color var(--peach-dur-150) var(--peach-curve-arrival);775}776.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }777.peach-btn:disabled {778  opacity: 0.45;779  cursor: not-allowed;780}781.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }782.peach-btn--md { min-height: 38px; }783.peach-btn--accent {784  background: var(--peach-accent);785  color: rgba(0,0,0,0.78);786  box-shadow:787    0 1px 0 rgba(255,255,255,0.22) inset,788    0 0 0 1px color-mix(in srgb, var(--peach-accent) 60%, transparent),789    0 4px 22px var(--peach-glow),790    0 0 32px color-mix(in srgb, var(--peach-accent) 28%, transparent);791}792.peach-btn--accent:hover:not(:disabled) {793  background: var(--peach-accent);794  filter: brightness(1.15) saturate(1.1);795  box-shadow:796    0 1px 0 rgba(255,255,255,0.3) inset,797    0 0 0 1px color-mix(in srgb, var(--peach-accent) 70%, transparent),798    0 6px 28px color-mix(in srgb, var(--peach-accent) 60%, transparent),799    0 0 40px color-mix(in srgb, var(--peach-accent) 38%, transparent);800}801.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }802.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }803.peach-icon-btn {804  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;805  display: inline-flex; align-items: center; justify-content: center;806}807808.peach-btn:focus-visible {809  outline: none;810  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);811}812813/* Lock button */814.peach-lock-icon { transform-origin: center; }815.peach-lock-btn.is-locking { color: var(--peach-accent); }816.peach-lock-btn.is-locking .peach-lock-icon {817  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);818}819820/* Copy button */821.peach-copy-btn {822  position: relative; overflow: hidden;823  color: var(--peach-t2); border-color: var(--peach-t3);824}825.peach-copy-icon {826  display: inline-flex; align-items: center; justify-content: center;827  position: relative; z-index: 1;828}829.peach-copy-icon-svg { display: block; }830.peach-copy-sheen {831  position: absolute; inset: 0;832  background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 30%, color-mix(in srgb, var(--peach-accent) 8%, transparent) 100%);833  opacity: 0; transform: scaleX(0.15); transform-origin: left center;834}835.peach-copy-btn.is-copied {836  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;837  box-shadow:838    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),839    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),840    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);841}842.peach-copy-btn.is-copied .peach-copy-icon {843  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;844}845.peach-copy-btn.is-copied .peach-copy-sheen {846  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;847}848.peach-copy-btn.is-retreat {849  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;850}851.peach-copy-btn.is-retreat .peach-copy-sheen {852  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;853}854.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }855.peach-copy-drain-bar {856  display: block; width: 100%; height: 100%;857  background: var(--peach-accent); opacity: 0.7;858  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;859}860861/* Unlock screen elements */862.peach-unlock-headline {863  margin: 2px 0 0;864  font-family: "Cormorant Garamond", "Times New Roman", serif;865  font-size: 52px; line-height: 0.95;866  font-style: italic; font-weight: 400;867}868.peach-subline {869  margin: 0;870  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;871  font-size: 10px; color: var(--peach-t2); font-style: italic;872}873.peach-subline--lock {874  max-width: 248px;875  line-height: 1.5;876}877.peach-underline-input {878  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);879  padding: 6px 0; background: transparent; color: var(--peach-t0);880  outline: none;881  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;882  font-size: 13px;883  caret-color: var(--peach-accent);884}885.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }886.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }887.peach-hint {888  margin: 0;889  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;890  font-size: 10px; color: var(--peach-t2);891}892.peach-unlock-footer {893  margin-top: 4px; display: flex; align-items: center; gap: 7px;894  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;895  font-size: 10px; color: var(--peach-t2);896}897.peach-unlock-footer--lock {898  padding-top: 2px;899}900901/* Breach badge */902.peach-breach-badge {903  display: flex;904  position: relative;905  z-index: 1;906  align-items: center;907  gap: 7px;908  font-size: 9px;909  color: var(--peach-breach);910  padding: 5px 10px;911  margin-bottom: 4px;912  border-radius: 8px;913  background: rgba(220, 80, 60, 0.07);914  border: 1px solid rgba(220, 80, 60, 0.18);915  letter-spacing: 0.04em;916}917918.peach-breach-action {919  margin-left: auto;920  font-size: 10px;921  padding: 3px 8px;922}923924.peach-password-value.is-breached {925  color: rgba(220, 80, 60, 0.75);926  border-bottom: 1px solid rgba(220, 80, 60, 0.22);927}928929/* ── Overlay views ─────────────────────────────────────────────────── */930.peach-overlay-view {931  position: absolute;932  inset: 0;933  display: flex;934  flex-direction: column;935  background:936    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),937    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),938    var(--peach-bg);939  z-index: 2;940  overflow: hidden;941  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;942}943@keyframes overlay-in {944  from { opacity: 0; transform: translateY(8px); }945  to   { opacity: 1; transform: translateY(0); }946}947.peach-overlay-view.ov-enter-up {948  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;949}950.peach-overlay-view.ov-exit-up {951  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;952}953.peach-overlay-view.ov-enter-right {954  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;955}956.peach-overlay-view.ov-exit-right {957  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;958}959960@keyframes ov-enter-up {961  from { opacity: 0; transform: translateY(18px); }962  to   { opacity: 1; transform: translateY(0); }963}964@keyframes ov-exit-up {965  from { opacity: 1; transform: translateY(0); }966  to   { opacity: 0; transform: translateY(-12px); }967}968@keyframes ov-enter-right {969  from { opacity: 0; transform: translateX(20px); }970  to   { opacity: 1; transform: translateX(0); }971}972@keyframes ov-exit-right {973  from { opacity: 1; transform: translateX(0); }974  to   { opacity: 0; transform: translateX(20px); }975}976977/* Overlay shared header */978.peach-overlay-header {979  padding: 10px 12px;980  display: flex;981  align-items: center;982  gap: 8px;983  border-bottom: 1px solid var(--peach-t3);984  flex-shrink: 0;985}986.peach-overlay-title {987  font-family: "IBM Plex Mono", monospace;988  font-size: 9px;989  text-transform: uppercase;990  letter-spacing: 0.18em;991  color: var(--peach-t2);992  flex: 1;993  text-align: center;994}995996.peach-overlay-card {997  background: var(--peach-s1);998  border: 1px solid var(--peach-t3);999  border-radius: 12px;1000  overflow: hidden;1001  width: 100%;1002}10031004.peach-onboarding-alt-actions {1005  display: flex;1006  flex-direction: column;1007  gap: 4px;1008  padding: 0;1009}10101011.peach-settings-copy {1012  margin: 0 0 10px;1013  font-size: 11px;1014  line-height: 1.5;1015  color: var(--peach-t2);1016}10171018.peach-settings-copy strong {1019  color: var(--peach-t0);1020}10211022.peach-settings-copy--spacious {1023  margin-bottom: 12px;1024}10251026.peach-settings-copy--result {1027  color: var(--peach-accent);1028  font-size: 13px;1029  text-align: center;1030  padding: 8px 0;1031}10321033.peach-settings-copy--danger {1034  color: var(--peach-breach);1035}10361037.peach-settings-copy--success {1038  color: var(--peach-accent);1039}10401041.peach-inline-feedback {1042  font-size: 11px;1043  margin: 10px 0 0;1044}10451046.peach-inline-feedback--ok {1047  color: var(--peach-accent);1048}10491050.peach-inline-feedback--error {1051  color: var(--peach-breach);1052}10531054.peach-inline-feedback--muted {1055  color: var(--peach-t2);1056  font-size: 10px;1057  margin: 4px 0;1058}10591060.peach-inline-feedback--spaced {1061  margin-top: 12px;1062}10631064.peach-settings-actions--row {1065  display: flex;1066  gap: 6px;1067}10681069.peach-settings-actions--end {1070  margin-top: 14px;1071  justify-content: flex-end;1072}10731074.peach-settings-stack {1075  display: flex;1076  flex-direction: column;1077  gap: 6px;1078}10791080.peach-settings-stack--tight {1081  gap: 4px;1082}10831084.peach-settings-stack--spacious {1085  gap: 8px;1086}10871088.peach-settings-input {1089  width: 100%;1090  box-sizing: border-box;1091  padding: 8px 10px;1092  background: var(--peach-s2);1093  border: 1px solid var(--peach-t3);1094  border-radius: 6px;1095  color: var(--peach-t0);1096  font-family: var(--font-ui);1097  font-size: 12px;1098  outline: none;1099  transition: border-color 120ms ease;1100}11011102.peach-settings-input:focus {1103  border-color: var(--peach-accent);1104}11051106.peach-settings-input[type="password"] {1107  font-family: var(--font-mono);1108  letter-spacing: 0.04em;1109}11101111.peach-phrase-textarea {1112  width: 100%;1113  box-sizing: border-box;1114  min-height: 120px;1115  padding: 10px 12px;1116  background: var(--peach-s2);1117  border: 1px solid var(--peach-t3);1118  border-radius: 6px;1119  color: var(--peach-t0);1120  font-size: 12px;1121  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1122  line-height: 1.5;1123  resize: vertical;1124  outline: none;1125}11261127.peach-phrase-textarea:focus {1128  border-color: var(--peach-accent);1129}11301131.peach-hidden-file-input {1132  display: none;1133}11341135.peach-checkbox-note {1136  display: flex;1137  align-items: flex-start;1138  gap: 8px;1139  font-size: 11px;1140  color: var(--peach-t1);1141  cursor: pointer;1142  margin: 12px 0;1143}11441145.peach-checkbox-note input {1146  margin-top: 1px;1147}11481149.peach-cjk-phrase-box {1150  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1151  font-size: 13px;1152  line-height: 1.5;1153  background: var(--peach-s2);1154  border: 1px solid var(--peach-t3);1155  border-radius: 6px;1156  padding: 10px 12px;1157  margin: 0 0 10px;1158  word-break: break-all;1159  white-space: pre-wrap;1160  max-height: 220px;1161  overflow-y: auto;1162  color: var(--peach-t0);1163  user-select: all;1164  scrollbar-width: none;1165  -ms-overflow-style: none;1166}1167.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }11681169.peach-danger-notice {1170  background: rgba(220, 80, 60, 0.08);1171  border: 1px solid rgba(220, 80, 60, 0.2);1172  border-radius: 6px;1173  padding: 9px 11px;1174  font-size: 11px;1175  color: var(--peach-t1);1176  line-height: 1.5;1177}11781179.peach-info-notice {1180  font-size: 11px;1181  color: var(--peach-t2);1182  line-height: 1.5;1183  background: rgba(240, 232, 216, 0.04);1184  border: 1px solid var(--peach-t3);1185  border-radius: 6px;1186  padding: 8px 10px;1187}11881189.peach-strength-row {1190  display: flex;1191  align-items: center;1192  gap: 8px;1193  margin-bottom: 10px;1194}11951196.peach-strength-track {1197  flex: 1;1198  height: 4px;1199  background: var(--peach-s2);1200  border-radius: 2px;1201  overflow: hidden;1202}12031204.peach-strength-fill {1205  height: 100%;1206  border-radius: 2px;1207  transition: width 120ms ease, background 120ms ease;1208}12091210/* ── Type selector tabs ── */1211.peach-type-tabs {1212  display: flex;1213  gap: 0;1214  background: var(--peach-t4);1215  border-radius: 8px;1216  padding: 3px;1217}12181219.peach-type-tab {1220  flex: 1;1221  display: flex;1222  align-items: center;1223  justify-content: center;1224  gap: 6px;1225  padding: 6px 10px;1226  border-radius: 6px;1227  border: none;1228  background: transparent;1229  cursor: pointer;1230  font-family: Inter, system-ui, sans-serif;1231  font-size: 11px;1232  font-weight: 400;1233  letter-spacing: 0.04em;1234  color: var(--peach-t1);1235  transition: background 150ms ease, color 150ms ease;1236}12371238.peach-type-tab.is-active {1239  background: var(--peach-s2);1240  color: var(--peach-t0);1241  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1242}12431244.peach-type-tab:not(.is-active):hover {1245  color: var(--peach-t0);1246}12471248.peach-type-tab svg {1249  opacity: 0.7;1250  flex-shrink: 0;1251}12521253.peach-type-tab.is-active svg {1254  opacity: 1;1255}12561257/* ── List view ───────────────────────────────────────────────────────── */1258.peach-list-top {1259  padding: 0 10px;1260  min-height: 46px;1261  display: flex;1262  align-items: center;1263  gap: 6px;1264  border-bottom: 1px solid var(--peach-t3);1265  flex-shrink: 0;1266  background: var(--peach-s1);1267}1268.peach-vault-list {1269  flex: 1;1270  overflow-y: auto;1271  scrollbar-width: none;1272}1273.peach-vault-list::-webkit-scrollbar { display: none; }12741275/* Scrollbar — vault list */1276.peach-vault-list {1277  scrollbar-width: thin;1278  scrollbar-color: var(--peach-t3) transparent;1279}12801281.peach-vault-list::-webkit-scrollbar {1282  width: 3px;1283}12841285.peach-vault-list::-webkit-scrollbar-thumb {1286  background: var(--peach-t3);1287  border-radius: 2px;1288}12891290.peach-entry-row {1291  width: 100%;1292  display: flex;1293  align-items: center;1294  gap: 10px;1295  padding: 9px 16px;1296  background: transparent;1297  border: none;1298  border-bottom: 1px solid var(--peach-t3);1299  cursor: pointer;1300  color: inherit;1301  text-align: left;1302  transition: background 80ms ease;1303}1304.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1305.peach-entry-row:last-child { border-bottom: none; }1306.peach-entry-row.is-active {1307  box-shadow: inset 2px 0 0 var(--peach-accent);1308  background: rgba(240,232,216,0.03);1309}1310.peach-entry-row:focus-visible {1311  outline: none;1312  box-shadow: 0 0 0 1px var(--peach-border-accent);1313  background: rgba(240,232,216,0.03);1314}1315.peach-entry-row-icon {1316  width: 26px; height: 26px;1317  border-radius: 7px;1318  border: 1px solid var(--peach-t3);1319  display: flex; align-items: center; justify-content: center;1320  color: var(--peach-t2);1321  flex-shrink: 0;1322}1323.peach-entry-row-icon.is-breach {1324  border-color: rgba(220,80,60,0.3);1325  color: rgba(220,80,60,0.7);1326}1327.peach-entry-row-info { flex: 1; min-width: 0; }1328.peach-entry-row-name {1329  display: block;1330  font-family: "Cormorant Garamond", serif;1331  font-size: 17px;1332  font-style: italic;1333  font-weight: 400;1334  color: var(--peach-t0);1335  line-height: 1.2;1336  white-space: nowrap;1337  overflow: hidden;1338  text-overflow: ellipsis;1339}1340.peach-entry-row-meta {1341  display: block;1342  font-family: "IBM Plex Mono", monospace;1343  font-size: 9px;1344  color: var(--peach-t2);1345  margin-top: 1px;1346  letter-spacing: 0.05em;1347}1348.peach-entry-row-dot {1349  width: 5px; height: 5px;1350  border-radius: 50%;1351  background: rgba(220,80,60,0.7);1352  flex-shrink: 0;1353}1354.peach-new-entry-row {1355  display: flex;1356  align-items: center;1357  justify-content: center;1358  gap: 6px;1359  width: 100%;1360  padding: 11px;1361  background: transparent;1362  border: none;1363  border-top: 1px solid var(--peach-t3);1364  color: var(--peach-t2);1365  font-family: "IBM Plex Mono", monospace;1366  font-size: 9px;1367  text-transform: uppercase;1368  letter-spacing: 0.14em;1369  cursor: pointer;1370  flex-shrink: 0;1371  transition: color 120ms ease, background 120ms ease;1372}1373.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13741375/* ── Multi-select mode ─────────────────────────────────────────────── */13761377/* Select-mode trigger button in sort bar — same shape as trash btn */1378.peach-sort-select-btn {1379  display: flex;1380  align-items: center;1381  justify-content: center;1382  padding: 3px 5px;1383  background: transparent;1384  border: none;1385  cursor: pointer;1386  color: var(--peach-t2);1387  border-radius: 4px;1388  transition: color 140ms ease, background 140ms ease;1389}1390.peach-sort-select-btn:hover {1391  color: var(--peach-t1);1392  background: var(--peach-t3);1393}13941395/* Sort bar in select mode */1396.peach-select-cancel-btn {1397  background: transparent;1398  border: none;1399  padding: 0 4px;1400  cursor: pointer;1401  font-family: "IBM Plex Mono", monospace;1402  font-size: 9px;1403  letter-spacing: 0.12em;1404  text-transform: uppercase;1405  color: var(--peach-t2);1406  transition: color 140ms ease;1407  flex-shrink: 0;1408}1409.peach-select-cancel-btn:hover { color: var(--peach-t0); }14101411.peach-select-count-label {1412  flex: 1;1413  text-align: center;1414  font-family: "IBM Plex Mono", monospace;1415  font-size: 9px;1416  letter-spacing: 0.14em;1417  text-transform: uppercase;1418  color: var(--peach-t1);1419}14201421.peach-select-all-btn {1422  background: transparent;1423  border: none;1424  padding: 0 4px;1425  cursor: pointer;1426  font-family: "IBM Plex Mono", monospace;1427  font-size: 9px;1428  letter-spacing: 0.12em;1429  text-transform: uppercase;1430  color: var(--peach-t2);1431  transition: color 140ms ease;1432  flex-shrink: 0;1433}1434.peach-select-all-btn:hover { color: var(--peach-accent); }14351436/* List in select mode */1437.peach-vault-list.is-selecting .peach-entry-row {1438  cursor: default;1439}1440.peach-vault-list.is-selecting .peach-entry-row:hover {1441  background: rgba(240,232,216,0.02);1442}1443.peach-vault-list.is-selecting .peach-entry-row.is-selected {1444  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1445}1446.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1447  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1448}14491450/* Select indicator circles in icon slot */1451.peach-entry-row-icon.is-select-icon {1452  color: var(--peach-t2);1453}1454.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1455  color: var(--peach-accent);1456}14571458/* Delete action bar at bottom (replaces new-entry row) */1459.peach-select-action-bar {1460  display: flex;1461  align-items: center;1462  justify-content: center;1463  gap: 7px;1464  width: 100%;1465  padding: 11px;1466  background: transparent;1467  border: none;1468  border-top: 1px solid var(--peach-t3);1469  color: var(--peach-t1);1470  font-family: "IBM Plex Mono", monospace;1471  font-size: 9px;1472  text-transform: uppercase;1473  letter-spacing: 0.14em;1474  cursor: pointer;1475  flex-shrink: 0;1476  transition: color 120ms ease, background 120ms ease;1477}1478.peach-select-action-bar:not(:disabled):hover {1479  color: var(--peach-t0);1480  background: rgba(220,80,60,0.06);1481}1482.peach-select-action-bar:not(:disabled):hover svg {1483  stroke: rgba(220,80,60,0.8);1484}1485.peach-select-action-bar:disabled,1486.peach-select-action-bar.is-empty {1487  color: var(--peach-t2);1488  cursor: default;1489  opacity: 0.5;1490}1491.peach-search-counter-list {1492  white-space: nowrap;1493  flex-shrink: 0;1494}1495.peach-list-empty {1496  min-height: 180px;1497  display: grid;1498  place-items: center;1499  color: var(--peach-t2);1500  font-family: "IBM Plex Mono", monospace;1501  font-size: 11px;1502}15031504/* ── Settings view ───────────────────────────────────────────────────── */1505.peach-settings-body {1506  flex: 1;1507  overflow-y: auto;1508  min-height: 0;1509  display: flex;1510  flex-direction: column;1511  padding: 2px 0 10px;1512}1513.peach-settings-group {1514  padding: 9px 16px 11px;1515  border-bottom: 1px solid var(--peach-t3);1516}1517.peach-export-intro {1518  padding-bottom: 8px;1519}1520.peach-export-card {1521  display: grid;1522  gap: 10px;1523}1524.peach-export-card--primary {1525  background:1526    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1527}1528.peach-export-card-head {1529  display: flex;1530  align-items: center;1531  justify-content: space-between;1532  gap: 10px;1533}1534.peach-export-card-copy {1535  margin: 0;1536  font-size: 12px;1537  line-height: 1.55;1538  color: var(--peach-t1);1539}1540.peach-export-note {1541  margin: 0;1542  font-size: 10px;1543  line-height: 1.5;1544  color: var(--peach-t2);1545}1546.peach-export-pill {1547  display: inline-flex;1548  align-items: center;1549  padding: 4px 8px;1550  border-radius: 999px;1551  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1552  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1553  color: var(--peach-accent);1554  font-family: "IBM Plex Mono", monospace;1555  font-size: 8px;1556  letter-spacing: 0.12em;1557  text-transform: uppercase;1558  white-space: nowrap;1559}1560.peach-export-pill--danger {1561  border-color: rgba(220,80,60,0.22);1562  background: rgba(220,80,60,0.08);1563  color: var(--peach-breach);1564}1565.peach-export-password-stack {1566  gap: 8px;1567}1568.peach-settings-label {1569  margin: 0 0 6px;1570  font-family: "IBM Plex Mono", monospace;1571  font-size: 8px;1572  text-transform: uppercase;1573  letter-spacing: 0.18em;1574  color: var(--peach-t2);1575}1576.peach-settings-row {1577  display: flex;1578  align-items: center;1579  justify-content: space-between;1580  gap: 12px;1581  min-height: 34px;1582  padding: 6px 0;1583  font-size: 13px;1584  color: var(--peach-t1);1585}1586.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1587.peach-settings-value {1588  font-family: "IBM Plex Mono", monospace;1589  font-size: 10px;1590  color: var(--peach-t2);1591}15921593.peach-settings-value--status {1594  display: flex;1595  align-items: center;1596  gap: 6px;1597}15981599.peach-settings-link {1600  font-family: "IBM Plex Mono", monospace;1601  font-size: 10px;1602  color: var(--peach-accent);1603  text-decoration: none;1604  cursor: pointer;1605}1606.peach-settings-link:hover {1607  text-decoration: underline;1608}16091610.peach-settings-row--stack {1611  flex-direction: column;1612  align-items: stretch;1613  gap: 6px;1614}16151616.peach-settings-row--top {1617  align-items: flex-start;1618}16191620.peach-settings-row-main {1621  display: flex;1622  flex-direction: column;1623  gap: 4px;1624  flex: 1;1625}1626.peach-toggle {1627  width: 28px; height: 16px;1628  border-radius: 999px;1629  background: var(--peach-t3);1630  border: 1px solid var(--peach-t3);1631  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1632  flex-shrink: 0;1633  transition: background 200ms ease, border-color 200ms ease;1634  cursor: pointer;1635}1636.peach-toggle.is-on {1637  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1638  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1639}1640.peach-toggle-knob {1641  width: 10px; height: 10px;1642  border-radius: 50%;1643  background: var(--peach-t2);1644  flex-shrink: 0;1645  transform: translateX(0px);1646  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1647}1648.peach-toggle.is-on .peach-toggle-knob {1649  background: var(--peach-accent);1650  transform: translateX(12px);1651}1652.peach-settings-footer {1653  display: flex;1654  align-items: center;1655  gap: 8px;1656  margin-top: auto;1657  padding: 14px 16px 8px;1658  font-family: "IBM Plex Mono", monospace;1659  font-size: 9px;1660  color: var(--peach-t2);1661}16621663.peach-passkey-badge {1664  margin-left: 8px;1665  font-size: 10px;1666  letter-spacing: 0.06em;1667  text-transform: uppercase;1668  color: var(--peach-t2);1669  font-family: var(--font-ui);1670  vertical-align: middle;1671}16721673.peach-passkey-delete-btn {1674  color: var(--peach-breach);1675  border-color: rgba(229, 85, 85, 0.25);1676}16771678.peach-passkey-delete-confirm {1679  display: flex;1680  align-items: center;1681  gap: 8px;1682  padding: 8px 10px;1683  background: rgba(229, 85, 85, 0.06);1684  border: 1px solid rgba(229, 85, 85, 0.2);1685  border-radius: 6px;1686}16871688.peach-passkey-delete-confirm-copy {1689  flex: 1;1690  font-size: 11px;1691  color: var(--peach-t1);1692}16931694.peach-passkey-delete-btn--confirm {1695  color: var(--peach-breach);1696  border-color: rgba(229, 85, 85, 0.4);1697}16981699.peach-passkey-activity {1700  flex-direction: column;1701  align-items: flex-start;1702  gap: 4px;1703}17041705.peach-passkey-meta {1706  font-size: 11px;1707  color: var(--peach-t2);1708}17091710.peach-passkey-actions {1711  position: relative;1712  z-index: 1;1713  margin-top: 14px;1714  display: flex;1715  flex-direction: column;1716  gap: 8px;1717}17181719.peach-passkey-approval {1720  display: flex;1721  flex-direction: column;1722  align-items: center;1723  padding: 28px 22px 22px;1724  gap: 14px;1725  text-align: center;1726}17271728.peach-passkey-approval-icon {1729  width: 46px;1730  height: 46px;1731  border-radius: 12px;1732  background: var(--peach-s2);1733  border: 1px solid var(--peach-t3);1734  display: flex;1735  align-items: center;1736  justify-content: center;1737  flex-shrink: 0;1738  color: var(--peach-accent);1739}17401741.peach-passkey-approval-icon img,1742.peach-passkey-approval-icon svg {1743  width: 28px;1744  height: 28px;1745  border-radius: 6px;1746}17471748.peach-passkey-approval-rp {1749  font-family: var(--font-ui);1750  font-size: 12px;1751  color: var(--peach-t2);1752  letter-spacing: 0.03em;1753}17541755.peach-passkey-approval-action {1756  font-family: var(--font-display);1757  font-style: italic;1758  font-weight: 300;1759  font-size: 26px;1760  color: var(--peach-t0);1761  line-height: 1;1762}17631764.peach-passkey-approval-user {1765  font-family: var(--font-mono);1766  font-size: 11px;1767  color: var(--peach-t1);1768  background: var(--peach-s2);1769  border: 1px solid var(--peach-t3);1770  border-radius: 4px;1771  padding: 3px 8px;1772}17731774.peach-passkey-approval-notice {1775  font-size: 10px;1776  color: var(--peach-t2);1777  line-height: 1.5;1778  max-width: 220px;1779}17801781.peach-passkey-approval-actions {1782  display: flex;1783  gap: 8px;1784  width: 100%;1785  margin-top: 6px;1786}17871788.peach-passkey-approval-actions .peach-btn {1789  flex: 1;1790}17911792/* ── Inline generator drawer ── */1793.peach-generator-drawer {1794  display: grid;1795  grid-template-rows: 0fr;1796  transition: grid-template-rows 320ms var(--peach-curve-arrival);1797  overflow: hidden;1798}1799.peach-generator-drawer.is-open {1800  grid-template-rows: 1fr;1801}1802.peach-generator-drawer-inner {1803  min-height: 0;1804  overflow: hidden;1805}1806.peach-generator-drawer-content {1807  border-top: 1px solid var(--peach-t3);1808  padding: 8px 0 4px;1809  display: flex;1810  flex-direction: column;1811  gap: 8px;1812}18131814/* ── Compact generator (inside entry edit) ── */1815.peach-generator-drawer-content--compact {1816  border-top: 1px solid var(--peach-t3);1817  padding: 8px 0 2px;1818  gap: 7px;1819}1820.peach-pwgen-compact-display-row {1821  display: flex;1822  align-items: center;1823  gap: 6px;1824}1825.peach-pwgen-compact-output {1826  flex: 1;1827  min-width: 0;1828  font-family: "IBM Plex Mono", monospace;1829  font-size: 11px;1830  font-weight: 400;1831  letter-spacing: 0.04em;1832  color: var(--peach-t0);1833  background: rgba(240, 232, 216, 0.04);1834  border: 1px solid var(--peach-t3);1835  border-radius: 5px;1836  padding: 5px 8px;1837  word-break: break-all;1838  line-height: 1.5;1839}1840.peach-pwgen-compact-controls {1841  display: flex;1842  align-items: center;1843  gap: 6px;1844}1845.peach-pwgen-compact-slider {1846  flex: 1;1847  min-width: 0;1848  height: 2px !important;1849}1850.peach-pwgen-compact-controls .peach-pwgen-len-num {1851  flex-shrink: 0;1852  min-width: 18px;1853  text-align: right;1854}1855.peach-pwgen-compact-pills {1856  display: flex;1857  gap: 3px;1858  flex-shrink: 0;1859}1860.peach-pwgen-compact-pills .peach-pwgen-pill {1861  padding: 2px 7px;1862  font-size: 8px;1863}1864.peach-pwgen-compact-use {1865  flex-shrink: 0;1866  font-size: 10px !important;1867  padding: 3px 9px !important;1868  min-height: 22px !important;1869  border-radius: 5px !important;1870}18711872/* ── Password edit row (input + eye toggle side-by-side) ── */1873.peach-password-edit-row {1874  display: flex;1875  align-items: center;1876  gap: 6px;1877}1878.peach-password-edit-row .peach-inline-input {1879  flex: 1;1880  min-width: 0;1881}18821883/* ── Generate toggle link ── */1884.peach-generate-toggle-link {1885  display: inline-flex;1886  align-items: center;1887  gap: 5px;1888  background: none;1889  border: none;1890  padding: 0;1891  cursor: pointer;1892  font-family: "IBM Plex Mono", monospace;1893  font-size: 10px;1894  color: var(--peach-t2);1895  letter-spacing: 0.04em;1896  transition: color 120ms ease;1897  align-self: flex-start;1898}1899.peach-generate-toggle-link:hover {1900  color: var(--peach-accent);1901}19021903/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1904.peach-entry-body {1905  flex: 1;1906  overflow-y: auto;1907  overflow-x: hidden;1908  scrollbar-width: none;1909  -ms-overflow-style: none;1910  overscroll-behavior: contain;1911  display: grid;1912  gap: 10px;1913  align-content: start;1914  padding: 10px 20px 14px;1915  min-width: 0;1916  min-height: 0;1917}1918.peach-entry-body::-webkit-scrollbar { display: none; }19191920/* Type-toggle pills + inline note toolbar */1921.peach-new-type-row {1922  display: flex;1923  align-items: center;1924  gap: 6px;1925  margin-bottom: 2px;1926}1927.peach-new-type-btn {1928  background: transparent;1929  border: 1px solid var(--peach-t3);1930  border-radius: 12px;1931  padding: 3px 10px;1932  font-family: "IBM Plex Mono", monospace;1933  font-size: 9px;1934  letter-spacing: 0.12em;1935  text-transform: uppercase;1936  color: var(--peach-t2);1937  cursor: pointer;1938  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1939}1940.peach-new-type-btn.is-active {1941  color: var(--peach-t0);1942  border-color: var(--peach-accent);1943  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1944}1945.peach-new-type-btn:not(.is-active):hover {1946  color: var(--peach-t1);1947  border-color: var(--peach-t2);1948}19491950/* Editable title */1951.peach-new-title-wrap { margin: 0 0 2px; }1952.peach-new-title-input {1953  background: transparent;1954  border: none;1955  outline: none;1956  width: 100%;1957  color: var(--peach-t0);1958  font-family: "Cormorant Garamond", Georgia, serif;1959  font-style: italic;1960  font-weight: 400;1961  font-size: 40px;1962  line-height: 0.95;1963  caret-color: var(--peach-accent);1964}1965.peach-new-title-input::placeholder { color: var(--peach-t2); }19661967/* Editable domain field */1968.peach-domain-value--edit {1969  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1970  font-size: 10px;1971  font-style: italic;1972  letter-spacing: 0.12em;1973  color: var(--peach-t1);1974  background: transparent;1975  border: none;1976  border-bottom: 1px solid var(--peach-t3);1977  outline: none;1978  width: 100%;1979  padding: 2px 0;1980  caret-color: var(--peach-accent);1981  transition: border-color 140ms ease, color 140ms ease;1982}1983.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }1984.peach-domain-value--edit:focus {1985  border-bottom-color: rgba(240, 232, 216, 0.28);1986  color: var(--peach-t0);1987}19881989/* Editable field values (username, password, totp) */1990.peach-field-value--edit {1991  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;1992  font-size: 13px;1993  color: var(--peach-t0);1994  background: transparent;1995  border: none;1996  border-bottom: 1px solid var(--peach-t3);1997  outline: none;1998  flex: 1;1999  min-width: 0;2000  padding: 3px 0;2001  caret-color: var(--peach-accent);2002  transition: border-color 140ms ease, color 140ms ease;2003}2004.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2005.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2006.peach-field-value--edit:focus {2007  border-bottom-color: rgba(240, 232, 216, 0.28);2008  color: var(--peach-t0);2009}20102011/* "+ add optional field" links */2012.peach-entry-add-links {2013  display: flex;2014  gap: 12px;2015  flex-wrap: wrap;2016  margin-top: -2px;2017}2018.peach-add-field-link {2019  background: transparent;2020  border: none;2021  padding: 0;2022  cursor: pointer;2023  font-family: "IBM Plex Mono", monospace;2024  font-size: 9px;2025  letter-spacing: 0.1em;2026  text-transform: uppercase;2027  color: var(--peach-t2);2028  transition: color 140ms ease;2029}2030.peach-add-field-link:hover { color: var(--peach-accent); }20312032/* ── New entry form (legacy classes) ────────────────────────────────── */2033.peach-new-body {2034  flex: 1;2035  overflow-y: auto;2036  padding: 10px 20px 14px;2037}2038.peach-new-name-input {2039  background: transparent;2040  border: none;2041  outline: none;2042  width: 100%;2043  color: var(--peach-t0);2044  font-family: "Cormorant Garamond", Georgia, serif;2045  font-style: italic;2046  font-weight: 400;2047  font-size: 40px;2048  line-height: 0.95;2049  caret-color: var(--peach-accent);2050}2051.peach-new-name-input::placeholder { color: var(--peach-t2); }2052.peach-new-field-input {2053  background: transparent;2054  border: none;2055  outline: none;2056  flex: 1;2057  min-width: 0;2058  caret-color: var(--peach-accent);2059}2060.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }20612062/* ── Canary card ── */2063.peach-canary-card {2064  border: 1px solid rgba(217, 160, 48, 0.2);2065  background: rgba(217, 160, 48, 0.03);2066  border-radius: 8px;2067  padding: 12px;2068}20692070.peach-canary-settings-header {2071  display: flex;2072  align-items: center;2073  justify-content: space-between;2074  cursor: pointer;2075  user-select: none;2076}20772078.peach-canary-card .peach-label {2079  color: rgba(217, 160, 48, 0.85);2080}20812082.peach-canary-card .peach-new-field-input {2083  border-color: rgba(217, 160, 48, 0.25);2084}20852086.peach-canary-card .peach-new-field-input:focus {2087  border-color: rgba(217, 160, 48, 0.5);2088}20892090.peach-canary-body {2091  margin-top: 12px;2092  display: flex;2093  flex-direction: column;2094  gap: 10px;2095}20962097.peach-canary-explainer {2098  display: flex;2099  gap: 10px;2100  padding: 10px 12px;2101  border-radius: 10px;2102  background: rgba(217, 160, 48, 0.06);2103  border: 1px solid rgba(217, 160, 48, 0.22);2104  margin-bottom: 4px;2105}21062107.peach-canary-explainer-icon {2108  font-size: 16px;2109  flex-shrink: 0;2110  line-height: 1.2;2111}21122113.peach-canary-explainer-title {2114  font-family: var(--font-ui);2115  font-size: 11px;2116  font-weight: 500;2117  color: rgba(217, 160, 48, 0.9);2118  margin: 0 0 3px;2119}21202121.peach-canary-explainer-copy {2122  font-family: var(--font-ui);2123  font-size: 10px;2124  color: var(--peach-t2);2125  line-height: 1.55;2126  margin: 0;2127}21282129.peach-canary-hint {2130  font-size: 10px;2131  color: var(--peach-t2);2132  font-family: Inter, system-ui, sans-serif;2133  line-height: 1.5;2134  margin-top: 4px;2135}21362137.peach-canary-actions-row {2138  display: flex;2139  align-items: center;2140  gap: 8px;2141}21422143.peach-canary-test-btn {2144  border-color: rgba(217, 160, 48, 0.3);2145  color: rgba(217, 160, 48, 0.85);2146}21472148.peach-canary-test-result {2149  font-size: 10px;2150  font-family: Inter, system-ui, sans-serif;2151}21522153.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2154.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }21552156.peach-canary-badge {2157  display: flex;2158  position: relative;2159  z-index: 1;2160  align-items: center;2161  gap: 5px;2162  padding: 4px 10px;2163  background: rgba(217, 160, 48, 0.12);2164  border: 1px solid rgba(217, 160, 48, 0.35);2165  border-radius: 6px;2166  margin-bottom: 6px;2167  width: fit-content;2168}21692170.peach-canary-badge-label {2171  font-size: 10px;2172  letter-spacing: 0.06em;2173  color: rgba(217, 160, 48, 0.9);2174  font-family: var(--font-ui);2175  text-transform: uppercase;2176}21772178.peach-canary-badge-icon {2179  font-size: 11px;2180}21812182.peach-canary-suppress-row {2183  display: flex;2184  align-items: center;2185  gap: 8px;2186  padding: 6px 10px;2187  background: rgba(217, 160, 48, 0.08);2188  border-radius: 6px;2189  margin-bottom: 8px;2190}21912192.peach-canary-suppress-label {2193  font-size: 11px;2194  color: rgba(217, 160, 48, 0.85);2195  cursor: pointer;2196  font-family: var(--font-ui);2197  letter-spacing: 0.04em;2198}21992200.peach-regen-panel {2201  position: relative;2202  z-index: 1;2203  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2204  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2205  border-radius: 8px;2206  padding: 12px;2207  margin-bottom: 8px;2208}22092210.peach-regen-panel-header {2211  display: flex;2212  align-items: center;2213  justify-content: space-between;2214  margin-bottom: 10px;2215}22162217.peach-regen-panel-title {2218  font-size: 11px;2219  font-weight: 600;2220  letter-spacing: 0.06em;2221  text-transform: uppercase;2222  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2223}22242225.peach-regen-output {2226  background: rgba(0, 0, 0, 0.2);2227  border-radius: 6px;2228  padding: 10px;2229  margin-bottom: 10px;2230  font-family: var(--font-mono);2231  font-size: 13px;2232  word-break: break-all;2233  color: var(--peach-t1);2234}22352236.peach-regen-actions {2237  display: flex;2238  gap: 6px;2239}22402241.peach-regen-actions--spaced {2242  margin-bottom: 8px;2243}22442245.peach-regen-action-grow {2246  flex: 1;2247}22482249.peach-regen-copy-btn {2250  padding: 0 8px;2251}22522253.peach-regen-success {2254  position: relative;2255  z-index: 1;2256  background: rgba(40, 180, 80, 0.1);2257  border: 1px solid rgba(40, 180, 80, 0.3);2258  border-radius: 8px;2259  padding: 10px 12px;2260  margin-bottom: 8px;2261  display: flex;2262  align-items: center;2263  gap: 8px;2264  font-size: 11px;2265  color: rgba(40, 180, 80, 0.9);2266}22672268/* ── Note editor overlay ── */2269.peach-note-editor {2270  position: absolute;2271  inset: 0;2272  z-index: 200;2273  display: flex;2274  flex-direction: column;2275  background:2276    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2277    var(--peach-bg);2278  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2279}22802281.peach-note-editor-header {2282  display: flex;2283  align-items: center;2284  gap: 10px;2285  padding: 14px 16px 10px;2286  border-bottom: 1px solid var(--peach-t3);2287  flex-shrink: 0;2288}22892290.peach-note-editor-back {2291  background: transparent;2292  border: none;2293  cursor: pointer;2294  color: var(--peach-t2);2295  padding: 4px 6px;2296  border-radius: 6px;2297  display: flex;2298  align-items: center;2299  transition: color 120ms ease, background 120ms ease;2300  flex-shrink: 0;2301}2302.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }23032304.peach-note-editor-label {2305  flex: 1;2306  font-family: "Cormorant Garamond", "Times New Roman", serif;2307  font-style: italic;2308  font-size: 15px;2309  color: var(--peach-t1);2310  letter-spacing: 0.02em;2311}23122313.peach-note-editor-save-btn {2314  background: transparent;2315  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2316  border-radius: 8px;2317  color: var(--peach-accent);2318  font-family: "IBM Plex Mono", monospace;2319  font-size: 10px;2320  letter-spacing: 0.06em;2321  text-transform: uppercase;2322  padding: 3px 10px;2323  cursor: pointer;2324  transition: background 120ms ease, border-color 120ms ease;2325}2326.peach-note-editor-save-btn:hover:not(:disabled) {2327  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2328  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2329}2330.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }23312332.peach-note-toolbar {2333  display: flex;2334  align-items: center;2335  gap: 3px;2336  padding: 6px 14px 5px;2337  border-bottom: 1px solid var(--peach-t3);2338  flex-shrink: 0;2339}23402341.peach-note-tool-btn {2342  background: transparent;2343  border: 1px solid transparent;2344  border-radius: 5px;2345  color: var(--peach-t2);2346  font-family: "IBM Plex Mono", monospace;2347  font-size: 10px;2348  letter-spacing: 0.04em;2349  padding: 2px 8px;2350  cursor: pointer;2351  line-height: 1.6;2352  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2353}2354.peach-note-tool-btn:hover {2355  background: var(--peach-t4);2356  color: var(--peach-t0);2357  border-color: var(--peach-t3);2358}23592360.peach-note-tool-icon {2361  padding: 3px 7px;2362  display: inline-flex;2363  align-items: center;2364  justify-content: center;2365}23662367.peach-note-tool-divider {2368  width: 1px;2369  height: 14px;2370  background: var(--peach-t3);2371  margin: 0 4px;2372  flex-shrink: 0;2373}23742375.peach-note-editor-body {2376  flex: 1;2377  overflow-y: auto;2378  padding: 16px 20px 20px;2379  outline: none;2380  font-family: "Cormorant Garamond", "Times New Roman", serif;2381  font-size: 16px;2382  line-height: 1.75;2383  color: var(--peach-t0);2384  scrollbar-width: none;2385  word-break: break-word;2386}2387.peach-note-editor-body:empty::before {2388  content: "write your note…";2389  color: var(--peach-t3);2390  font-style: italic;2391  pointer-events: none;2392}23932394/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2395.peach-note-editor-inline {2396  display: flex;2397  flex-direction: column;2398  flex: 1;2399  min-height: 0;2400}2401.peach-note-editor-body--inline {2402  flex: 1;2403  min-height: 0;2404  font-size: 15px;2405  padding: 10px 20px 14px;2406}24072408/* Full-width toolbar row inside the body (Add.tsx note type).2409   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2410.peach-note-toolbar-body {2411  display: flex;2412  align-items: center;2413  gap: 3px;2414  padding: 5px 20px 4px;2415  margin: 2px -20px 0;2416  border-bottom: 1px solid var(--peach-t3);2417  flex-shrink: 0;2418}24192420/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2421   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2422   and .peach-note-tool-divider button-level styles. */2423.peach-note-toolbar-inline {2424  display: flex;2425  align-items: center;2426  gap: 3px;2427  margin-left: auto;2428  padding-left: 10px;2429  border-left: 1px solid var(--peach-t3);2430  min-height: 22px;2431}24322433/* Entry.tsx toolbar row (no tabs, toolbar only) */2434.peach-entry-note-toolbar-row {2435  display: flex;2436  align-items: center;2437  margin: 4px 0 6px;2438  position: relative;2439  z-index: 1;2440}2441.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2442  border-left: none;2443  padding-left: 0;2444  margin-left: 0;2445}24462447/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2448.peach-note-body {2449  display: flex;2450  flex-direction: column;2451  flex: 1;2452  min-height: 0;2453  margin: 4px 0 0;2454}2455.peach-entry-body--new .peach-note-body {2456  margin: 8px -20px 0;2457}24582459/* Add.tsx body is a grid by default; swap to a flex column when a note is2460   active so the note body can stretch and pin the tags row to the bottom. */2461.peach-entry-body--new:has(.peach-note-body) {2462  display: flex;2463  flex-direction: column;2464}24652466/* Rich content element styles (editor + display) */2467.peach-note-editor-body h2,2468.peach-note-content h2 {2469  font-family: "Cormorant Garamond", serif;2470  font-size: 20px;2471  font-weight: 600;2472  font-style: italic;2473  color: var(--peach-t0);2474  margin: 6px 0 2px;2475  line-height: 1.3;2476}2477.peach-note-editor-body ul,2478.peach-note-content ul {2479  padding-left: 18px;2480  margin: 3px 0;2481  list-style: disc;2482}2483.peach-note-editor-body ol,2484.peach-note-content ol {2485  padding-left: 18px;2486  margin: 3px 0;2487  list-style: decimal;2488}2489.peach-note-editor-body li,2490.peach-note-content li { margin: 2px 0; }2491.peach-note-editor-body hr,2492.peach-note-content hr {2493  border: none;2494  border-top: 1px solid var(--peach-t3);2495  margin: 10px 0;2496}24972498/* font size elements from execCommand */2499.peach-note-editor-body font[size="1"],2500.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2501.peach-note-editor-body font[size="2"],2502.peach-note-content font[size="2"] { font-size: 13px; }2503.peach-note-editor-body font[size="3"],2504.peach-note-content font[size="3"] { font-size: 16px; }2505.peach-note-editor-body font[size="4"],2506.peach-note-content font[size="4"] { font-size: 20px; }2507.peach-note-editor-body font[size="5"],2508.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }25092510/* bold / italic inside the editor and note display */2511.peach-note-editor-body b, .peach-note-editor-body strong,2512.peach-note-content b, .peach-note-content strong { font-weight: 700; }2513.peach-note-editor-body em, .peach-note-editor-body i,2514.peach-note-content em, .peach-note-content i { font-style: italic; }25152516/* note display — rendered HTML, no pre-wrap */2517.peach-note-content {2518  overflow: auto;2519  max-height: 340px;2520  word-break: break-word;2521}25222523/* ── Note textarea ── */2524.peach-note-textarea {2525  width: 100%;2526  min-height: 180px;2527  max-height: 280px;2528  resize: vertical;2529  background: var(--peach-t4);2530  border: 1px solid var(--peach-t3);2531  border-radius: 8px;2532  padding: 10px 12px;2533  font-family: "IBM Plex Mono", monospace;2534  font-size: 12px;2535  line-height: 1.7;2536  color: var(--peach-t1);2537  outline: none;2538  transition: border-color 150ms ease;2539}25402541.peach-note-textarea:focus {2542  border-color: var(--peach-t2);2543}25442545.peach-note-char-count {2546  font-family: "IBM Plex Mono", monospace;2547  font-size: 9px;2548  color: var(--peach-t3);2549  text-align: right;2550  margin-top: 4px;2551  letter-spacing: 0.1em;2552}25532554/* ── Field input baseline ── */2555.peach-new-field-input {2556  width: 100%;2557  background: transparent;2558  border: none;2559  border-bottom: 1px solid var(--peach-t3);2560  padding: 4px 0;2561  color: var(--peach-t1);2562  font-family: "IBM Plex Mono", monospace;2563  font-size: 13px;2564  outline: none;2565  transition: border-color 150ms ease;2566}25672568.peach-new-field-input:focus {2569  border-bottom-color: var(--peach-t0);2570  color: var(--peach-t0);2571}25722573.peach-new-name-input {2574  width: 100%;2575  background: transparent;2576  border: none;2577  border-bottom: 1px solid var(--peach-t3);2578  padding: 6px 0;2579  font-family: "Cormorant Garamond", Georgia, serif;2580  font-style: italic;2581  font-size: 28px;2582  color: var(--peach-t0);2583  outline: none;2584  transition: border-color 150ms ease;2585}25862587.peach-new-name-input:focus {2588  border-bottom-color: var(--peach-t1);2589}25902591.peach-new-name-input::placeholder {2592  color: var(--peach-t2);2593  font-style: italic;2594}25952596.peach-new-field-input::placeholder {2597  color: var(--peach-t3);2598}25992600/* ── Demo entrance animation ── */2601#hd-shell {2602  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2603}2604@keyframes hd-shell-enter {2605  from { opacity: 0; transform: scale(0.96) translateY(16px); }2606  to   { opacity: 1; transform: scale(1) translateY(0); }2607}26082609/* ── Keyframes ── */2610@keyframes peach-char-enter {2611  from { opacity: 0; transform: translateY(0.22em); }2612  to   { opacity: 1; transform: translateY(0); }2613}2614@keyframes peach-content-enter {2615  from { opacity: 0.96; transform: translateY(4px); }2616  to   { opacity: 1; transform: translateY(0); }2617}2618@keyframes peach-content-exit {2619  from { opacity: 1; transform: translateY(0); }2620  to   { opacity: 0.92; transform: translateY(-3px); }2621}2622@keyframes peach-screen-enter {2623  from { opacity: 0; transform: translateY(14px); }2624  to   { opacity: 1; transform: translateY(0); }2625}2626@keyframes peach-shell-fade-in {2627  from { opacity: 0; }2628  to   { opacity: 1; }2629}2630@keyframes peach-veil-in {2631  from { opacity: 0; }2632  to   { opacity: 1; }2633}2634@keyframes peach-lock-settle {2635  0%   { transform: scale(0.9); }2636  65%  { transform: scale(1.08); }2637  100% { transform: scale(1); }2638}2639@keyframes peach-copy-confirm {2640  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2641  to   { color: var(--peach-accent); border-color: color-mix(in srgb, var(--peach-accent) 42%, transparent); background-color: color-mix(in srgb, var(--peach-accent) 9%, transparent); box-shadow: 0 0 18px color-mix(in srgb, var(--peach-accent) 22%, transparent), inset 0 0 18px color-mix(in srgb, var(--peach-accent) 12%, transparent); }2642}2643@keyframes peach-copy-retreat {2644  from { color: var(--peach-accent); border-color: color-mix(in srgb, var(--peach-accent) 42%, transparent); background-color: color-mix(in srgb, var(--peach-accent) 9%, transparent); box-shadow: 0 0 18px color-mix(in srgb, var(--peach-accent) 22%, transparent), inset 0 0 18px color-mix(in srgb, var(--peach-accent) 12%, transparent); }2645  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2646}2647@keyframes peach-copy-flood {2648  from { opacity: 0; transform: scaleX(0.15); }2649  to   { opacity: 1; transform: scaleX(1); }2650}2651@keyframes peach-copy-icon-settle {2652  from  { transform: scale(0.84); }2653  70%   { transform: scale(1.08); }2654  to    { transform: scale(1); }2655}2656@keyframes peach-copy-sheen-retreat {2657  from { opacity: 1; transform: scaleX(1); }2658  to   { opacity: 0; transform: scaleX(0.15); }2659}2660@keyframes peach-copy-drain {2661  from { width: 100%; }2662  to   { width: 0; }2663}2664@keyframes peach-shake {2665  0%, 100% { transform: translateX(0); }2666  20%      { transform: translateX(-6px); }2667  40%      { transform: translateX(6px); }2668  60%      { transform: translateX(-4px); }2669  80%      { transform: translateX(4px); }2670}26712672@keyframes pip-pulse {2673  0% { transform: scale(1); }2674  40% { transform: scale(2.2); }2675  100% { transform: scale(1); }2676}267726782679/* ── Password generator ── */2680.peach-pwgen-body {2681  flex: 1; overflow-y: auto;2682  display: flex; flex-direction: column;2683}2684.peach-policy-badge {2685  display: flex; align-items: center;2686  padding: 6px 20px 0;2687  font-size: 10px; font-family: Inter, sans-serif;2688  color: var(--peach-t2); letter-spacing: 0.04em;2689}2690.peach-pwgen-display {2691  padding: 14px 20px 12px;2692  border-bottom: 1px solid var(--peach-t3);2693  display: flex; align-items: flex-start; gap: 10px;2694}2695.peach-pwgen-display-row {2696  display: flex;2697  align-items: flex-start;2698  gap: 8px;2699  padding-bottom: 8px;2700  border-bottom: 1px solid var(--peach-t3);2701}2702.peach-pwgen-output {2703  flex: 1; min-width: 0; margin: 0;2704  font-family: "IBM Plex Mono", monospace;2705  font-size: 13px; color: var(--peach-t0);2706  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2707  white-space: normal;2708  padding: 10px 12px;2709  background: var(--peach-t4);2710  border-radius: 6px;2711  min-height: 36px;2712}2713.peach-pwgen-output-display {2714  flex: 1;2715  min-width: 0;2716  margin: 0;2717  font-family: "Cormorant Garamond", "Times New Roman", serif;2718  font-style: italic;2719  font-weight: 300;2720  font-size: 32px;2721  line-height: 1.05;2722  color: var(--peach-t0);2723  word-break: break-all;2724  overflow-wrap: break-word;2725  white-space: normal;2726  letter-spacing: 0.02em;2727}2728.peach-pwgen-display-actions {2729  display: flex;2730  flex-direction: column;2731  gap: 4px;2732  flex-shrink: 0;2733  margin-top: 2px;2734}2735.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2736.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2737.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2738.peach-pwgen-len-num {2739  font-family: "IBM Plex Mono", monospace;2740  font-size: 12px; color: var(--peach-accent);2741}2742.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2743.peach-pwgen-toggles { display: flex; flex-direction: column; }2744.peach-pwgen-charset-pills {2745  display: flex;2746  gap: 6px;2747  flex-wrap: wrap;2748}2749.peach-pwgen-pill {2750  padding: 4px 11px;2751  border-radius: 999px;2752  border: 1px solid var(--peach-t3);2753  background: transparent;2754  color: var(--peach-t2);2755  font-family: "IBM Plex Mono", monospace;2756  font-size: 9px;2757  letter-spacing: 0.08em;2758  cursor: pointer;2759  transition: all 150ms ease;2760}2761.peach-pwgen-pill.is-on {2762  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2763  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2764  color: var(--peach-accent);2765}2766.peach-pwgen-pill:not(.is-on):hover {2767  color: var(--peach-t1);2768  border-color: var(--peach-t2);2769}2770.peach-pwgen-use-btn {2771  width: 100%;2772  min-height: 34px;2773  border-radius: 8px;2774  margin-top: 2px;2775}2776.peach-pwgen-toggle-row {2777  display: flex; align-items: center; justify-content: space-between;2778  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2779}2780.peach-pwgen-toggle-row:last-child { border-bottom: none; }2781.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }27822783.peach-screen-prelock {2784  z-index: 10;2785}27862787.prelock-form {2788  display: grid;2789  gap: 12px;2790}27912792/* Peach popup should not expose native scrollbars on internal panels. */2793.peach-settings-body,2794.peach-new-body,2795.peach-pwgen-body,2796.lock-screen,2797.peach-import-preview {2798  scrollbar-width: none;2799  -ms-overflow-style: none;2800  overscroll-behavior: contain;2801}2802.peach-settings-body::-webkit-scrollbar,2803.peach-new-body::-webkit-scrollbar,2804.peach-pwgen-body::-webkit-scrollbar,2805.lock-screen::-webkit-scrollbar,2806.peach-import-preview::-webkit-scrollbar {2807  width: 0;2808  height: 0;2809  display: none;2810}28112812.lock-screen {2813  height: 100%;2814  min-height: 100%;2815  overflow-y: auto;2816  padding: 18px 18px 16px;2817  gap: 14px;2818  grid-template-rows: auto auto auto 1fr auto;2819  align-content: stretch;2820  position: relative;2821  isolation: isolate;2822}2823.peach-screen.lock-screen--vault-stage {2824  display: flex;2825  flex-direction: column;2826  justify-content: flex-start;2827  gap: 18px;2828  padding: 20px 18px 18px;2829  overflow: hidden;2830}2831.peach-screen.lock-screen--vault-stage .peach-lock-panel {2832  margin-top: auto;2833}2834.lock-screen--onboarding {2835  display: flex;2836  flex-direction: column;2837  gap: 12px;2838  justify-content: flex-start;2839}28402841.lock-screen::before {2842  content: "";2843  position: absolute;2844  inset: 12px 18px auto auto;2845  width: 160px;2846  height: 160px;2847  border-radius: 999px;2848  background:2849    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 0%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 42%, transparent 72%);2850  filter: blur(6px);2851  opacity: 0.7;2852  pointer-events: none;2853  z-index: 0;2854}28552856.lock-screen-header {2857  display: flex;2858  align-items: center;2859  justify-content: space-between;2860  position: relative;2861  z-index: 1;2862}28632864.lock-password-input.shake {2865  animation: peach-shake 300ms ease-in-out;2866}28672868.peach-hint-error {2869  color: rgba(220, 80, 60, 0.92);2870}28712872.peach-onboarding-headline {2873  margin: 0;2874  font-family: "Cormorant Garamond", "Times New Roman", serif;2875  font-size: 35px;2876  line-height: 0.88;2877  font-style: italic;2878  font-weight: 400;2879  max-width: 252px;2880}28812882.peach-lock-copy {2883  display: grid;2884  gap: 8px;2885  position: relative;2886  z-index: 1;2887}28882889.peach-lock-copy--onboarding {2890  gap: 10px;2891}28922893.peach-lock-hero {2894  position: relative;2895  z-index: 1;2896  display: grid;2897  gap: 8px;2898  min-height: 0;2899  padding: 4px 2px 0;2900  border: none;2901  border-radius: 0;2902  background: transparent;2903  box-shadow: none;2904}2905.peach-lock-hero-art {2906  position: absolute;2907  right: -8px;2908  top: -6px;2909  width: 120px;2910  height: 120px;2911  display: flex;2912  align-items: center;2913  justify-content: center;2914  pointer-events: none;2915  opacity: 0.12;2916  filter: saturate(0.9);2917}2918.peach-lock-hero-mark {2919  width: 100%;2920  height: 100%;2921}2922/* Peach body stays brand-peach across every accent — we don't want a2923   green or blue peach when sage/sky is selected. Leaf + stem keep the2924   sage tint because a real peach has a sage leaf. */2925.peach-lock-hero-mark path:nth-child(2),2926.peach-lock-hero-mark path:nth-child(3) {2927  stroke: rgba(123, 144, 96, 0.88);2928  fill: rgba(123, 144, 96, 0.88);2929}2930.peach-lock-hero > *:not(.peach-lock-hero-art) {2931  position: relative;2932  z-index: 1;2933}29342935.peach-lock-eyebrow {2936  display: inline-flex;2937  align-items: center;2938  width: fit-content;2939  padding: 4px 9px;2940  border-radius: 999px;2941  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);2942  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2943  color: var(--peach-t0);2944  font-family: "IBM Plex Mono", monospace;2945  font-size: 8px;2946  letter-spacing: 0.18em;2947  text-transform: uppercase;2948}29492950.peach-lock-label-row {2951  display: flex;2952  align-items: center;2953  justify-content: space-between;2954  margin-bottom: 0;2955}29562957.peach-lock-reveal-btn {2958  display: inline-flex;2959  align-items: center;2960  gap: 4px;2961  background: none;2962  border: none;2963  cursor: pointer;2964  font-family: "IBM Plex Mono", monospace;2965  font-size: 9px;2966  letter-spacing: 0.06em;2967  color: var(--peach-t2);2968  padding: 2px 0;2969  transition: color 150ms ease;2970}29712972.peach-lock-reveal-btn:hover {2973  color: var(--peach-t1);2974}29752976.peach-lock-warning {2977  color: rgba(220, 80, 60, 0.85) !important;2978  line-height: 1.5;2979}29802981.peach-onboarding-cards {2982  display: grid;2983  gap: 8px;2984  position: relative;2985  z-index: 1;2986}29872988.peach-lock-panel {2989  position: relative;2990  z-index: 1;2991  display: grid;2992  gap: 9px;2993  padding: 14px 16px 15px;2994  border-radius: 18px;2995  border: 1px solid var(--peach-t3);2996  background:2997    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));2998  box-shadow:2999    inset 0 1px 0 rgba(240, 232, 216, 0.04),3000    0 12px 28px rgba(0, 0, 0, 0.12);3001}30023003.peach-lock-panel--secondary {3004  gap: 12px;3005}30063007.peach-lock-panel-header {3008  display: flex;3009  align-items: baseline;3010  justify-content: space-between;3011  gap: 12px;3012}30133014.peach-lock-option-grid {3015  display: grid;3016  gap: 10px;3017}30183019.peach-lock-option {3020  width: 100%;3021  display: grid;3022  gap: 6px;3023  padding: 14px 15px;3024  border-radius: 16px;3025  border: 1px solid rgba(240, 232, 216, 0.08);3026  background: rgba(240, 232, 216, 0.02);3027  color: var(--peach-t0);3028  text-align: left;3029  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3030}30313032.peach-lock-option:hover {3033  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3034  background: rgba(240, 232, 216, 0.04);3035  transform: translateY(-1px);3036}30373038.peach-lock-option-title {3039  font-size: 12px;3040  color: var(--peach-t0);3041}30423043.peach-lock-option-copy {3044  font-size: 11px;3045  line-height: 1.55;3046  color: var(--peach-t1);3047}30483049.peach-onboarding-stack {3050  margin-top: 2px;3051}3052.peach-lock-panel-footer {3053  display: grid;3054  gap: 6px;3055  margin-top: 2px;3056  padding-top: 10px;3057  border-top: 1px solid rgba(240, 232, 216, 0.06);3058}30593060/* Restore picker panel — method option cards */3061.peach-lock-panel--restore {3062  gap: 10px;3063}3064.peach-lock-option--history {3065  border-color: rgba(240, 232, 216, 0.06);3066  opacity: 0.85;3067}30683069/* Snapshot restore panel */3070.peach-snapshot-panel {3071  gap: 10px;3072  overflow-y: auto;3073  max-height: 340px;3074}3075.peach-snapshot-list {3076  display: flex;3077  flex-direction: column;3078  gap: 4px;3079}3080.peach-snapshot-row {3081  display: flex;3082  align-items: center;3083  justify-content: space-between;3084  width: 100%;3085  padding: 8px 10px;3086  border-radius: 8px;3087  border: 1px solid rgba(240, 232, 216, 0.07);3088  background: transparent;3089  cursor: pointer;3090  transition: border-color 120ms, background 120ms;3091  text-align: left;3092  gap: 8px;3093}3094.peach-snapshot-row:hover {3095  border-color: rgba(240, 232, 216, 0.14);3096  background: rgba(240, 232, 216, 0.03);3097}3098.peach-snapshot-row.is-selected {3099  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3100  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3101}3102.peach-snapshot-time {3103  font-size: 11.5px;3104  color: var(--peach-t0);3105  flex: 1;3106}3107.peach-snapshot-count {3108  font-family: "IBM Plex Mono", monospace;3109  font-size: 10px;3110  color: var(--peach-t2);3111  flex-shrink: 0;3112}3113.peach-snapshot-confirm {3114  display: flex;3115  flex-direction: column;3116  gap: 8px;3117  padding-top: 10px;3118  border-top: 1px solid rgba(240, 232, 216, 0.06);3119}3120.peach-snapshot-warning {3121  display: flex;3122  align-items: flex-start;3123  gap: 6px;3124  font-size: 10.5px;3125  color: rgba(220, 80, 60, 0.85);3126  line-height: 1.55;3127}3128.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3129.peach-snapshot-confirm-row {3130  display: flex;3131  gap: 6px;3132  align-items: center;3133}3134.peach-snapshot-restore-btn {3135  width: 100%;3136}3137.peach-lock-hero--unlock .peach-lock-hero-art {3138  width: 112px;3139  height: 112px;3140  right: 0;3141  top: 2px;3142  opacity: 0.1;3143}31443145.peach-card {3146  border: 1px solid var(--peach-t3);3147  border-radius: 18px;3148  background:3149    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3150  box-shadow:3151    inset 0 0 0 1px var(--peach-border-accent),3152    inset 0 1px 0 rgba(240, 232, 216, 0.04),3153    0 12px 32px rgba(0, 0, 0, 0.14);3154  overflow: hidden;3155}31563157.peach-card-active {3158  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3159  box-shadow:3160    inset 0 1px 0 rgba(240, 232, 216, 0.05),3161    0 16px 38px rgba(0, 0, 0, 0.18),3162    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3163}31643165.peach-card-disabled {3166  opacity: 0.72;3167}31683169.peach-card-header {3170  width: 100%;3171  padding: 13px 16px 11px;3172  background: transparent;3173  color: var(--peach-t0);3174  display: flex;3175  justify-content: space-between;3176  align-items: center;3177  text-align: left;3178  font-size: 12px;3179}31803181.peach-card-body {3182  padding: 0 16px 16px;3183  display: grid;3184  gap: 9px;3185}31863187.peach-card-tag {3188  color: var(--peach-t2);3189  font-family: "IBM Plex Mono", monospace;3190  font-size: 9px;3191  letter-spacing: 0.12em;3192  text-transform: uppercase;3193}31943195.peach-empty-copy {3196  display: grid;3197  gap: 6px;3198  color: var(--peach-t1);3199  font-size: 13px;3200}32013202.peach-lock-submit {3203  width: 100%;3204  box-shadow:3205    0 1px 0 rgba(255,255,255,0.28) inset,3206    0 0 0 1px color-mix(in srgb, var(--peach-accent) 55%, transparent),3207    0 16px 44px color-mix(in srgb, var(--peach-accent) 55%, transparent),3208    0 0 60px color-mix(in srgb, var(--peach-accent) 28%, transparent);3209}32103211.peach-lock-secondary {3212  width: 100%;3213  border-color: var(--peach-t3);3214  background: rgba(240, 232, 216, 0.02);3215}32163217.peach-lock-secondary:hover {3218  background: rgba(240, 232, 216, 0.04);3219}32203221.peach-lock-note {3222  max-width: none;3223  line-height: 1.55;3224  margin: 0;3225}32263227.peach-overlay-action {3228  font-size: 10px;3229  padding: 4px 8px;3230  letter-spacing: 0.06em;3231  min-width: 44px;3232  text-align: center;3233}32343235.peach-overlay-spacer {3236  width: 32px;3237}32383239.peach-inline-action {3240  flex-shrink: 0;3241  font-size: 9px;3242  letter-spacing: 0.1em;3243  text-transform: uppercase;3244  padding: 4px 7px;3245}3246.peach-password-toggle-btn {3247  display: inline-flex;3248  align-items: center;3249  justify-content: center;3250  min-width: 30px;3251  min-height: 26px;3252  padding: 0 7px;3253  border: 1px solid var(--peach-t3);3254  border-radius: 999px;3255  background: rgba(240, 232, 216, 0.04);3256  color: var(--peach-t2);3257  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3258}3259.peach-password-toggle-btn:hover {3260  border-color: var(--peach-t2);3261  color: var(--peach-t0);3262  background: rgba(240, 232, 216, 0.06);3263}32643265.peach-new-textarea {3266  width: 100%;3267  min-height: 88px;3268  resize: vertical;3269  border: 0;3270  outline: none;3271  background: transparent;3272  color: var(--peach-t1);3273  font-family: "IBM Plex Mono", monospace;3274  font-size: 12px;3275  line-height: 1.65;3276  caret-color: var(--peach-accent);3277}32783279.peach-new-textarea::placeholder {3280  color: var(--peach-t2);3281  opacity: 0.7;3282}32833284.peach-settings-actions {3285  display: grid;3286  gap: 8px;3287}32883289.peach-sync-section-label {3290  font-size: 11px;3291  color: var(--peach-t2);3292  text-transform: uppercase;3293  letter-spacing: 0.05em;3294}32953296.peach-sync-device-row {3297  display: flex;3298  justify-content: space-between;3299  align-items: center;3300  padding: 6px 0;3301  border-bottom: 1px solid var(--peach-t3);3302}33033304.peach-sync-device-info {3305  display: flex;3306  flex-direction: column;3307  gap: 2px;3308}33093310.peach-sync-device-name {3311  font-size: 13px;3312  color: var(--peach-t0);3313}33143315.peach-sync-device-meta {3316  font-size: 11px;3317  color: var(--peach-t2);3318}33193320.peach-sync-status-dot {3321  display: inline-block;3322  width: 8px;3323  height: 8px;3324  border-radius: 50%;3325  vertical-align: middle;3326}33273328.peach-sync-remove-btn {3329  color: var(--peach-breach);3330}33313332.peach-import-preview {3333  margin-bottom: 12px;3334  max-height: 152px;3335  overflow-y: auto;3336  border: 1px solid var(--peach-t3);3337  border-radius: 10px;3338  padding: 8px 10px;3339  display: grid;3340  gap: 8px;3341  background: rgba(240, 232, 216, 0.02);3342}33433344.peach-import-preview-row {3345  display: flex;3346  justify-content: space-between;3347  gap: 10px;3348  font-size: 11px;3349  color: var(--peach-t1);3350}33513352.peach-import-preview-title {3353  color: var(--peach-t0);3354  flex: 1;3355  min-width: 0;3356  overflow: hidden;3357  text-overflow: ellipsis;3358  white-space: nowrap;3359}33603361.peach-import-preview-meta {3362  color: var(--peach-t2);3363  flex-shrink: 0;3364  max-width: 42%;3365  overflow: hidden;3366  text-overflow: ellipsis;3367  white-space: nowrap;3368}33693370.peach-import-preview-more {3371  color: var(--peach-t2);3372  font-size: 10px;3373}33743375.peach-restore-copy {3376  margin: 0;3377  color: var(--peach-t1);3378  font-size: 11px;3379  line-height: 1.6;3380}33813382.peach-restore-warning {3383  padding: 10px 12px;3384  border-radius: 12px;3385  border: 1px solid rgba(220, 80, 60, 0.22);3386  background: rgba(220, 80, 60, 0.08);3387  color: rgba(240, 232, 216, 0.86);3388  font-size: 11px;3389  line-height: 1.55;3390}33913392.peach-provider-chips {3393  display: flex;3394  flex-wrap: wrap;3395  gap: 6px;3396}33973398.peach-provider-chip {3399  display: inline-flex;3400  align-items: center;3401  padding: 5px 8px;3402  border-radius: 999px;3403  border: 1px solid var(--peach-t3);3404  background: rgba(240, 232, 216, 0.02);3405  color: var(--peach-t1);3406  font-family: "IBM Plex Mono", monospace;3407  font-size: 8px;3408  letter-spacing: 0.08em;3409  text-transform: uppercase;3410}34113412.peach-restore-file,3413.peach-restore-input {3414  width: 100%;3415  border-radius: 10px;3416  border: 1px solid var(--peach-t3);3417  background: var(--peach-s2);3418  color: var(--peach-t0);3419  font-size: 12px;3420}34213422.peach-restore-file {3423  padding: 9px 10px;3424}34253426.peach-restore-file::file-selector-button {3427  margin-right: 10px;3428  padding: 7px 10px;3429  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3430  border-radius: 999px;3431  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3432  color: var(--peach-t0);3433  font-size: 10px;3434  letter-spacing: 0.08em;3435  text-transform: uppercase;3436  cursor: pointer;3437}34383439.peach-restore-input {3440  padding: 10px 12px;3441}34423443.peach-auth-grid {3444  display: grid;3445  gap: 10px;3446}34473448.peach-import-summary {3449  color: var(--peach-t1);3450  font-size: 12px;3451  line-height: 1.6;3452  margin-bottom: 12px;3453}34543455.peach-restore-error {3456  color: rgba(220, 80, 60, 0.95);3457  font-size: 12px;3458  line-height: 1.55;3459}34603461.peach-cjk-qr-panel {3462  margin-top: 14px;3463  padding: 12px;3464  border-radius: 16px;3465  border: 1px solid var(--peach-t3);3466  background: rgba(240, 232, 216, 0.02);3467  display: grid;3468  gap: 10px;3469}34703471.peach-cjk-qr-frame {3472  display: grid;3473  place-items: center;3474  min-height: 212px;3475  border-radius: 14px;3476  background: #fff;3477  overflow: hidden;3478}34793480.peach-cjk-qr-frame svg {3481  display: block;3482  width: 196px;3483  height: 196px;3484}34853486.peach-cjk-qr-error,3487.peach-cjk-qr-caption {3488  color: var(--peach-t1);3489  font-size: 11px;3490  line-height: 1.55;3491}34923493.peach-cjk-qr-card {3494  max-width: 400px;3495  margin: auto;3496}34973498.peach-cjk-qr-body {3499  padding: 0 20px 20px;3500  text-align: center;3501}35023503.peach-cjk-qr-hint {3504  font-size: 11px;3505  color: var(--peach-t2);3506  margin: 0 0 14px;3507}35083509.peach-cjk-qr-image {3510  border-radius: 4px;3511  display: block;3512  margin: 0 auto;3513  width: 100%;3514  max-width: 320px;3515  height: auto;3516}35173518.peach-pro-badge {3519  padding: 2px 6px;3520  border-radius: 999px;3521  font-family: var(--font-ui);3522  font-size: 10px;3523  letter-spacing: 0.08em;3524  text-transform: uppercase;3525  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3526  color: var(--peach-accent);3527}35283529.peach-loading {3530  position: absolute;3531  inset: 0;3532  display: flex;3533  align-items: center;3534  justify-content: center;3535  background: var(--bg);3536  animation: peach-loading-pulse 1.2s ease-in-out infinite;3537}35383539@keyframes peach-loading-pulse {3540  0%, 100% { opacity: 0.6; }3541  50% { opacity: 1; }3542}35433544/* ── Health Dashboard ─────────────────────────────────────────────────── */3545.peach-health-body {3546  flex: 1;3547  overflow-y: auto;3548  display: flex;3549  flex-direction: column;3550}35513552.peach-health-summary {3553  padding: 10px 16px 6px;3554  font-family: "IBM Plex Mono", monospace;3555  font-size: 11px;3556}3557.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3558.peach-health-summary-ok { color: var(--peach-t2); }35593560.peach-health-check-row {3561  padding: 0 16px 10px;3562}3563.peach-health-check-btn {3564  width: 100%;3565  display: flex;3566  align-items: center;3567  justify-content: center;3568}35693570.peach-health-sections {3571  flex: 1;3572  display: flex;3573  flex-direction: column;3574}35753576.peach-health-section {3577  border-bottom: 1px solid var(--peach-t3);3578}35793580.peach-health-section-header {3581  width: 100%;3582  display: flex;3583  align-items: center;3584  justify-content: space-between;3585  padding: 9px 16px;3586  background: transparent;3587  cursor: pointer;3588  color: var(--peach-t0);3589}35903591.peach-health-section-title-row {3592  display: flex;3593  align-items: center;3594  gap: 8px;3595}35963597.peach-health-count-badge {3598  display: inline-flex;3599  align-items: center;3600  justify-content: center;3601  min-width: 20px;3602  height: 18px;3603  padding: 0 5px;3604  border-radius: 999px;3605  background: rgba(220,80,60,0.15);3606  border: 1px solid rgba(220,80,60,0.25);3607  font-family: "IBM Plex Mono", monospace;3608  font-size: 9px;3609  color: rgba(220,80,60,0.9);3610}36113612.peach-health-section-title {3613  font-family: "IBM Plex Mono", monospace;3614  font-size: 11px;3615  text-transform: uppercase;3616  letter-spacing: 0.1em;3617  color: var(--peach-t1);3618}36193620.peach-health-chevron {3621  color: var(--peach-t2);3622  transition: transform 200ms ease;3623  flex-shrink: 0;3624}3625.peach-health-chevron.is-expanded {3626  transform: rotate(180deg);3627}36283629.peach-health-section-body {3630  padding: 0 16px 10px;3631  display: flex;3632  flex-direction: column;3633  gap: 4px;3634}36353636.peach-health-row {3637  display: flex;3638  align-items: flex-start;3639  justify-content: space-between;3640  gap: 8px;3641  padding: 6px 8px;3642  border-radius: 8px;3643  background: rgba(240,232,216,0.02);3644}36453646.peach-health-row-info {3647  flex: 1;3648  min-width: 0;3649  display: flex;3650  flex-direction: column;3651  gap: 2px;3652}36533654.peach-health-row-name {3655  font-family: "Cormorant Garamond", serif;3656  font-size: 15px;3657  font-style: italic;3658  font-weight: 400;3659  color: var(--peach-t0);3660  white-space: nowrap;3661  overflow: hidden;3662  text-overflow: ellipsis;3663}36643665.peach-health-row-meta {3666  font-family: "IBM Plex Mono", monospace;3667  font-size: 9px;3668  color: var(--peach-t2);3669  letter-spacing: 0.05em;3670}36713672.peach-health-fix-btn {3673  font-size: 9px;3674  letter-spacing: 0.08em;3675  text-transform: uppercase;3676  padding: 4px 7px;3677  flex-shrink: 0;3678  display: flex;3679  align-items: center;3680}36813682.peach-health-empty {3683  font-family: "IBM Plex Mono", monospace;3684  font-size: 10px;3685  color: var(--peach-t2);3686  padding: 6px 0;3687}36883689.peach-health-loading {3690  font-family: "IBM Plex Mono", monospace;3691  font-size: 10px;3692  color: var(--peach-t2);3693  padding: 6px 0;3694  display: flex;3695  align-items: center;3696  gap: 6px;3697}36983699.peach-health-loading::before {3700  content: "";3701  width: 10px;3702  height: 10px;3703  border: 1.5px solid var(--peach-t3);3704  border-top-color: var(--peach-accent);3705  border-radius: 50%;3706  animation: peach-spin 600ms linear infinite;3707}37083709@keyframes peach-spin {3710  to { transform: rotate(360deg); }3711}37123713.peach-spinner {3714  width: 32px;3715  height: 32px;3716  border: 2px solid var(--peach-s2);3717  border-top-color: var(--peach-accent);3718  border-radius: 50%;3719  margin: 0 auto 16px;3720  animation: peach-spin 0.8s linear infinite;3721}37223723.peach-progress-screen {3724  text-align: center;3725  padding: 32px 16px;3726}37273728.peach-progress-screen-title {3729  font-size: 13px;3730  color: var(--peach-t0);3731  margin-bottom: 16px;3732}37333734.peach-progress-screen-stage {3735  font-size: 11px;3736  color: var(--peach-t2);3737  min-height: 14px;3738}37393740.peach-progress-screen-note {3741  font-size: 10px;3742  color: var(--peach-t2);3743  margin-top: 8px;3744}37453746.peach-pairing-body {3747  flex: 1;3748  overflow-y: auto;3749  display: flex;3750  flex-direction: column;3751}37523753.peach-pairing-content {3754  flex: 1;3755  display: flex;3756  flex-direction: column;3757  align-items: center;3758  justify-content: center;3759  gap: 14px;3760  padding: 28px 20px;3761  text-align: center;3762}37633764.peach-pairing-headline {3765  font-family: var(--font-display);3766  font-style: italic;3767  font-weight: 300;3768  font-size: 28px;3769  color: var(--peach-t0);3770  margin: 0;3771  line-height: 1;3772}37733774.peach-pairing-subline {3775  font-size: 12px;3776  color: var(--peach-t2);3777  max-width: 220px;3778  line-height: 1.5;3779  margin: 0;3780}37813782.peach-pairing-subline--center {3783  text-align: center;3784}37853786.peach-pairing-code-display {3787  display: flex;3788  gap: 6px;3789}37903791.peach-pairing-code-digit {3792  display: flex;3793  align-items: center;3794  justify-content: center;3795  width: 36px;3796  height: 48px;3797  background: var(--peach-s2);3798  border: 1px solid var(--peach-t3);3799  border-radius: 6px;3800  font-family: var(--font-mono);3801  font-size: 22px;3802  color: var(--peach-t0);3803  letter-spacing: 0;3804}38053806.peach-pairing-countdown-ring {3807  position: relative;3808  display: inline-flex;3809  align-items: center;3810  justify-content: center;3811}38123813.peach-pairing-countdown-num {3814  position: absolute;3815  font-family: var(--font-mono);3816  font-size: 14px;3817  color: var(--peach-t1);3818}38193820.peach-pairing-ring-track {3821  fill: none;3822  stroke: var(--peach-t3);3823  stroke-width: 2;3824}38253826.peach-pairing-ring-progress {3827  fill: none;3828  stroke: var(--peach-accent);3829  stroke-width: 2;3830  stroke-linecap: round;3831  transform: rotate(-90deg);3832  transform-origin: 50% 50%;3833  transition: stroke-dashoffset 0.5s linear;3834}38353836.peach-pairing-code-inputs {3837  display: flex;3838  gap: 8px;3839}38403841.peach-pairing-code-box {3842  width: 36px;3843  height: 48px;3844  text-align: center;3845  background: var(--peach-s2);3846  border: 1px solid var(--peach-t3);3847  border-radius: 6px;3848  font-family: var(--font-mono);3849  font-size: 20px;3850  color: var(--peach-t0);3851  outline: none;3852  transition: border-color 120ms ease;3853}38543855.peach-pairing-code-box:focus {3856  border-color: var(--peach-accent);3857}38583859.peach-pairing-code-box.has-error {3860  border-color: rgba(220, 80, 60, 0.45);3861}38623863.peach-pairing-status {3864  display: flex;3865  align-items: center;3866  gap: 8px;3867  margin: 0;3868  font-size: 12px;3869  color: var(--peach-t1);3870}38713872.peach-pairing-error {3873  margin: 0;3874  font-size: 11px;3875  color: var(--peach-breach);3876}38773878.peach-pairing-error-msg {3879  color: var(--peach-t1);3880}38813882.peach-pairing-spinner {3883  width: 12px;3884  height: 12px;3885  border: 1.5px solid var(--peach-t3);3886  border-top-color: var(--peach-accent);3887  border-radius: 50%;3888  animation: peach-spin 0.8s linear infinite;3889}38903891.peach-pairing-success-icon,3892.peach-pairing-error-icon,3893.peach-pairing-hero {3894  display: inline-flex;3895  align-items: center;3896  justify-content: center;3897}38983899/* Tag chips */3900.peach-tag-chip {3901  display: inline-flex;3902  align-items: center;3903  gap: 4px;3904  padding: 3px 8px;3905  border-radius: 999px;3906  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3907  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3908  color: rgba(240, 232, 216, 0.85);3909  font-family: "IBM Plex Mono", monospace;3910  font-size: 10px;3911  letter-spacing: 0.04em;3912}39133914.peach-tag-chip-remove {3915  background: transparent;3916  border: none;3917  color: inherit;3918  opacity: 0.6;3919  cursor: pointer;3920  padding: 0;3921  font-size: 12px;3922  line-height: 1;3923}39243925.peach-tag-chip-remove:hover {3926  opacity: 1;3927}39283929/* Tag input */3930.peach-tag-input-wrap {3931  border-bottom: 1px solid var(--peach-t3);3932}39333934.peach-tag-suggestions {3935  display: flex;3936  flex-wrap: wrap;3937  gap: 4px;3938  padding: 6px 0;3939}39403941.peach-tag-suggestion {3942  padding: 2px 8px;3943  border-radius: 999px;3944  border: 1px solid var(--peach-t3);3945  background: var(--peach-s2);3946  color: var(--peach-t1);3947  font-family: "IBM Plex Mono", monospace;3948  font-size: 10px;3949  cursor: pointer;3950  transition: border-color 80ms ease, background 80ms ease;3951}39523953.peach-tag-suggestion:hover {3954  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3955  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3956}39573958/* Tag filter strip */3959.peach-tag-filter-strip {3960  border-bottom: 1px solid var(--peach-t3);3961  flex-shrink: 0;3962}39633964.peach-tag-filter-chip {3965  display: inline-flex;3966  align-items: center;3967  padding: 4px 10px;3968  border-radius: 999px;3969  border: 1px solid var(--peach-t3);3970  background: transparent;3971  color: var(--peach-t2);3972  font-family: "IBM Plex Mono", monospace;3973  font-size: 9px;3974  letter-spacing: 0.06em;3975  text-transform: uppercase;3976  cursor: pointer;3977  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;3978  white-space: nowrap;3979}39803981.peach-tag-filter-chip:hover {3982  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3983  color: var(--peach-t1);3984}39853986.peach-tag-filter-chip.is-selected {3987  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3988  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);3989  color: rgba(240, 232, 216, 0.9);3990}39913992/* ─────────────────────────────────────────────────────────────────────────3993   v1.4.12 additions3994   ─────────────────────────────────────────────────────────────────────── */39953996/* Sort bar */3997.peach-sort-bar {3998  display: flex;3999  align-items: center;4000  gap: 4px;4001  padding: 5px 12px;4002  border-bottom: 1px solid var(--peach-t3);4003  flex-shrink: 0;4004  overflow-x: auto;4005  scrollbar-width: none;4006}40074008.peach-sort-btn {4009  padding: 2px 9px;4010  border-radius: 999px;4011  border: 1px solid transparent;4012  background: transparent;4013  color: var(--peach-t2);4014  font-family: "IBM Plex Mono", monospace;4015  font-size: 9px;4016  letter-spacing: 0.07em;4017  text-transform: uppercase;4018  cursor: pointer;4019  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4020  white-space: nowrap;4021}40224023.peach-sort-btn:hover {4024  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4025  color: var(--peach-t1);4026}40274028.peach-sort-btn.is-active {4029  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4030  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4031  color: rgba(240, 232, 216, 0.9);4032}40334034.peach-sort-domain-hint {4035  margin-left: auto;4036  font-family: "IBM Plex Mono", monospace;4037  font-size: 9px;4038  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4039  white-space: nowrap;4040  overflow: hidden;4041  text-overflow: ellipsis;4042  max-width: 110px;4043}40444045/* Tab-match badge on entry rows */4046.peach-tab-match-badge {4047  display: inline-block;4048  width: 6px;4049  height: 6px;4050  border-radius: 50%;4051  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4052  margin-left: 5px;4053  vertical-align: middle;4054  flex-shrink: 0;4055  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4056}40574058.peach-entry-row.is-tab-match {4059  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4060  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4061}40624063.peach-entry-row.is-tab-match:hover {4064  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4065}40664067/* Entry list stagger entrance */4068@keyframes peach-entry-fadein {4069  from { opacity: 0; transform: translateY(4px); }4070  to   { opacity: 1; transform: translateY(0); }4071}40724073.peach-vault-list .peach-entry-row {4074  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4075  content-visibility: auto;4076  contain-intrinsic-size: auto 44px;4077}40784079/* Button press micro-interaction */4080.peach-btn:active {4081  transform: scale(0.95);4082  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4083}40844085.peach-sort-btn:active,4086.peach-tag-filter-chip:active {4087  transform: scale(0.93);4088  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4089}40904091/* Password strength bar (Lock view + shared) */4092.peach-password-strength {4093  display: flex;4094  align-items: center;4095  gap: 8px;4096  margin-top: 6px;4097}40984099.peach-strength-bar {4100  flex: 1;4101  height: 3px;4102  border-radius: 2px;4103  background: var(--peach-t3);4104  overflow: hidden;4105}41064107.peach-strength-fill {4108  height: 100%;4109  border-radius: 2px;4110  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4111              background 300ms ease;4112}41134114.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4115.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4116.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4117.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }41184119.peach-strength-label {4120  font-family: "IBM Plex Mono", monospace;4121  font-style: italic;4122  font-size: 9px;4123  font-weight: 300;4124  letter-spacing: 0.06em;4125  color: var(--peach-t2);4126  min-width: 36px;4127  text-align: right;4128}41294130.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4131.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4132.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4133.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }41344135/* Duress form */4136.peach-duress-status {4137  padding: 2px 8px;4138  border-radius: 999px;4139  border: 1px solid var(--peach-t3);4140  font-family: "IBM Plex Mono", monospace;4141  font-size: 9px;4142  letter-spacing: 0.07em;4143  text-transform: uppercase;4144  color: var(--peach-t2);4145  flex-shrink: 0;4146}41474148.peach-duress-status.is-active {4149  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4150  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4151  color: rgba(240, 232, 216, 0.85);4152}41534154.peach-duress-form {4155  padding: 8px 0 4px;4156  display: flex;4157  flex-direction: column;4158  gap: 6px;4159}41604161.peach-duress-form .peach-label {4162  margin-top: 4px;4163}41644165.peach-duress-actions {4166  display: flex;4167  gap: 6px;4168  align-items: center;4169  margin-top: 4px;4170}41714172.peach-duress-actions .peach-btn:first-child {4173  margin-right: auto;4174}41754176/* Improved overlay spring entrance */4177.peach-overlay-view.ov-enter-up {4178  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4179}41804181@keyframes ov-enter-up-spring {4182  from { opacity: 0; transform: translateY(16px) scale(0.98); }4183  to   { opacity: 1; transform: translateY(0) scale(1); }4184}41854186.peach-overlay-view.ov-enter-right {4187  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4188}41894190@keyframes ov-enter-right-spring {4191  from { opacity: 0; transform: translateX(18px) scale(0.98); }4192  to   { opacity: 1; transform: translateX(0) scale(1); }4193}41944195/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4196/* Used when CJKImportView or MainImportView renders during onboarding4197   (no vault yet). Animates like a lock-screen transition. */4198.peach-lock-view {4199  position: absolute;4200  inset: 0;4201  display: flex;4202  flex-direction: column;4203  background:4204    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4205    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4206    var(--peach-bg);4207  z-index: 2;4208  overflow: hidden;4209  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4210}42114212.peach-lock-view-header {4213  display: flex;4214  align-items: center;4215  justify-content: space-between;4216  padding: 16px 18px 12px;4217  flex-shrink: 0;4218}42194220/* ───────── Settings: auto-lock select ───────── */4221.peach-settings-select {4222  font-family: "IBM Plex Mono", monospace;4223  font-size: 11px;4224  background: transparent;4225  border: 1px solid var(--peach-t3);4226  border-radius: 4px;4227  color: var(--peach-t1);4228  padding: 3px 6px;4229  cursor: pointer;4230  outline: none;4231}4232.peach-settings-select:focus {4233  border-color: var(--peach-accent);4234}42354236/* ───────── Duress status pill (new polished) ───────── */4237.peach-duress-status-pill {4238  font-family: "IBM Plex Mono", monospace;4239  font-size: 9px;4240  text-transform: uppercase;4241  letter-spacing: 0.12em;4242  padding: 2px 8px;4243  border-radius: 12px;4244  background: var(--peach-t3);4245  color: var(--peach-t2);4246  flex-shrink: 0;4247}4248.peach-duress-status-pill.is-active {4249  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4250  color: var(--peach-accent);4251}42524253/* ───────── Entry advanced disclosure (canary) ───────── */4254.peach-entry-advanced {4255  margin-top: 12px;4256  border-top: 1px solid var(--peach-t3);4257  padding-top: 10px;4258  position: relative;4259  z-index: 1;4260}4261.peach-entry-advanced-toggle {4262  display: flex;4263  align-items: center;4264  justify-content: space-between;4265  width: 100%;4266  background: transparent;4267  border: none;4268  cursor: pointer;4269  padding: 0;4270  color: var(--peach-t2);4271}4272.peach-canary-section {4273  margin-top: 10px;4274  display: grid;4275  gap: 6px;4276}42774278/* ───────── Import: merge/replace radio choices ───────── */4279.peach-import-choice {4280  display: flex;4281  align-items: flex-start;4282  gap: 10px;4283  padding: 8px 10px;4284  border: 1px solid var(--peach-t3);4285  border-radius: 10px;4286  cursor: pointer;4287  margin-bottom: 6px;4288  transition: border-color 120ms ease, background 120ms ease;4289}4290.peach-import-choice:hover {4291  border-color: var(--peach-accent);4292}4293.peach-import-choice input[type="radio"] {4294  margin-top: 3px;4295  accent-color: var(--peach-accent);4296  flex-shrink: 0;4297}4298.peach-import-choice-main {4299  display: flex;4300  flex-direction: column;4301  gap: 2px;4302  min-width: 0;4303}4304.peach-import-choice-label {4305  font-size: 12px;4306  color: var(--peach-t0);4307}4308.peach-import-choice-sub {4309  font-size: 11px;4310  color: var(--peach-t2);4311  line-height: 1.5;4312}43134314/* ───────── Export: success confirmation strip ───────── */4315.peach-export-success {4316  display: flex;4317  align-items: flex-start;4318  gap: 10px;4319  padding: 12px;4320  border-radius: 12px;4321  border: 1px solid rgba(150, 175, 110, 0.3);4322  background: rgba(150, 175, 110, 0.08);4323  color: var(--peach-t0);4324  font-size: 12px;4325  line-height: 1.55;4326}4327.peach-export-success-check {4328  color: rgba(150, 175, 110, 0.9);4329  font-size: 14px;4330  flex-shrink: 0;4331}43324333/* ── Trash view ──────────────────────────────────────────────────────── */4334.peach-trash-entry-row {4335  display: flex;4336  align-items: center;4337  justify-content: space-between;4338  gap: 8px;4339  padding: 8px 0;4340  border-bottom: 1px solid var(--peach-t3);4341}4342.peach-trash-entry-row:last-child { border-bottom: none; }4343.peach-trash-entry-info {4344  flex: 1;4345  min-width: 0;4346  display: flex;4347  flex-direction: column;4348  gap: 2px;4349}4350.peach-trash-entry-title {4351  font-size: 12px;4352  color: var(--peach-t1);4353  overflow: hidden;4354  text-overflow: ellipsis;4355  white-space: nowrap;4356}4357.peach-trash-entry-meta {4358  font-family: var(--font-mono);4359  font-size: 9px;4360  color: var(--peach-t2);4361  letter-spacing: 0.06em;4362}4363.peach-trash-entry-actions {4364  display: flex;4365  align-items: center;4366  gap: 4px;4367  flex-shrink: 0;4368}43694370/* ── Settings shortcuts grid ─────────────────────────────────────────── */4371.peach-shortcuts-grid {4372  display: grid;4373  grid-template-columns: auto 1fr;4374  gap: 6px 12px;4375  align-items: center;4376  padding: 4px 0;4377}4378.peach-shortcut-key {4379  font-family: var(--font-mono);4380  font-size: 10px;4381  color: var(--peach-t0);4382  background: var(--peach-t3);4383  border-radius: 4px;4384  padding: 2px 6px;4385  white-space: nowrap;4386  text-align: center;4387}4388.peach-shortcut-desc {4389  font-size: 11px;4390  color: var(--peach-t1);4391}43924393/* ── Sort bar trash button ───────────────────────────────────────────── */4394.peach-sort-trash-btn {4395  display: flex;4396  align-items: center;4397  justify-content: center;4398  padding: 3px 5px;4399  background: transparent;4400  border: none;4401  cursor: pointer;4402  color: var(--peach-t2);4403  border-radius: 4px;4404  transition: color 140ms ease, background 140ms ease;4405}4406.peach-sort-trash-btn:hover {4407  color: var(--peach-t1);4408  background: var(--peach-t3);4409}4410.peach-sort-trash-btn.is-active {4411  color: var(--peach-accent);4412}44134414/* Accent color picker */4415.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4416.peach-accent-picker {4417  display: flex;4418  flex-wrap: wrap;4419  gap: 7px;4420  padding: 2px 0;4421}4422.peach-accent-swatch {4423  width: 22px;4424  height: 22px;4425  border-radius: 50%;4426  border: 2px solid transparent;4427  cursor: pointer;4428  padding: 0;4429  transition: transform 100ms;4430  outline-offset: 2px;4431}4432.peach-accent-swatch:hover { transform: scale(1.15); }4433.peach-accent-swatch.is-active {4434  border-color: var(--peach-t0);4435  transform: scale(1.1);4436}44374438/* ── Card entry styles ───────────────────────────────────────── */4439.peach-card-number {4440  font-family: var(--peach-mono);4441  letter-spacing: 0.08em;4442}44434444.peach-card-network-badge {4445  font-size: 10px;4446  padding: 1px 5px;4447  border-radius: 4px;4448  border: 0.5px solid var(--peach-border);4449  color: var(--peach-text-dim);4450  margin-left: 6px;4451  vertical-align: middle;4452}44534454.peach-card-expiry-row {4455  display: flex;4456  align-items: center;4457  gap: 8px;4458}44594460.peach-card-expiry-sep {4461  color: var(--peach-text-dim);4462}