popup.css

104.3 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  white-space: nowrap;421  /* Render as uniform mid-line bullets, not baseline periods */422  font-family: Inter, system-ui, sans-serif;423  font-size: 10px;424  letter-spacing: 3px;425  user-select: none;426}427.peach-field-actions { display: flex; gap: 4px; align-items: center; }428.peach-password-strength { display: flex; align-items: center; gap: 8px; }429.peach-strength-bar { display: flex; gap: 3px; }430.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }431.peach-strength-label {432  font-family: "IBM Plex Mono", monospace;433  font-style: italic;434  font-size: 9px;435  font-weight: 300;436  min-width: 36px;437  text-align: right;438  color: var(--peach-t2);439  letter-spacing: 0.06em;440}441442.peach-strength-hairline {443  display: flex;444  align-items: center;445  gap: 10px;446  margin-top: -2px;447}448449.peach-strength-hairline-track {450  flex: 1;451  height: 3px;452  border-radius: 2px;453  background: var(--peach-s2);454  overflow: hidden;455}456457.peach-strength-hairline-fill {458  height: 100%;459  border-radius: 2px;460  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),461    background 400ms ease;462}463464/* Note content (display) */465.peach-note-content {466  border-top: 1px solid var(--peach-t3);467  padding-top: 10px;468  font-family: "Cormorant Garamond", "Times New Roman", serif;469  font-size: 15px;470  line-height: 1.75;471  color: var(--peach-t1);472}473474/* ── Inline editing ─────────────────────────────────────────────────── */475476/* Clickable display values */477.peach-inline-clickable {478  cursor: text;479  border-radius: 3px;480  transition: background 150ms ease;481}482.peach-inline-clickable:hover {483  background: rgba(240, 232, 216, 0.05);484}485486/* Subtle "edit" hint that appears on hover */487.peach-inline-edit-hint {488  font-family: Inter, system-ui, sans-serif;489  font-size: 9px;490  text-transform: uppercase;491  letter-spacing: 0.14em;492  color: var(--peach-t2);493  opacity: 0;494  transition: opacity 120ms ease;495  pointer-events: none;496  margin-left: 6px;497  flex-shrink: 0;498}499.peach-domain-row:hover .peach-inline-edit-hint {500  opacity: 1;501}502503/* Title editing */504.peach-inline-title-wrap {505  display: flex;506  flex-direction: column;507  gap: 6px;508}509.peach-inline-title-input {510  font-family: "Cormorant Garamond", "Times New Roman", serif;511  font-style: italic;512  font-weight: 400;513  font-size: 40px;514  line-height: 0.95;515  color: var(--peach-t0);516  background: transparent;517  border: none;518  border-bottom: 1px solid var(--peach-accent);519  outline: none;520  width: 100%;521  padding: 2px 0;522}523524/* Generic inline field */525.peach-inline-field-wrap {526  display: flex;527  flex-direction: column;528  gap: 6px;529}530.peach-inline-input {531  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;532  font-size: 13px;533  color: var(--peach-t0);534  background: transparent;535  border: none;536  border-bottom: 1px solid var(--peach-accent);537  outline: none;538  width: 100%;539  padding: 3px 0;540}541.peach-inline-textarea {542  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;543  font-size: 11px;544  line-height: 1.7;545  color: var(--peach-t0);546  background: rgba(240, 232, 216, 0.04);547  border: 1px solid var(--peach-accent);548  border-radius: 4px;549  outline: none;550  width: 100%;551  padding: 8px;552  resize: vertical;553  min-height: 80px;554}555556/* Save / cancel row */557.peach-inline-actions {558  display: flex;559  gap: 6px;560  align-items: center;561}562.peach-inline-save-btn,563.peach-inline-cancel-btn {564  display: inline-flex;565  align-items: center;566  justify-content: center;567  width: 26px;568  height: 26px;569  border-radius: 4px;570  border: none;571  cursor: pointer;572  transition: background 140ms ease, opacity 140ms ease;573  flex-shrink: 0;574}575.peach-inline-save-btn {576  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);577  color: var(--peach-accent);578}579.peach-inline-save-btn:hover:not(:disabled) {580  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);581}582.peach-inline-cancel-btn {583  background: rgba(240, 232, 216, 0.06);584  color: var(--peach-t2);585}586.peach-inline-cancel-btn:hover:not(:disabled) {587  background: rgba(240, 232, 216, 0.12);588  color: var(--peach-t1);589}590.peach-inline-save-btn:disabled,591.peach-inline-cancel-btn:disabled {592  opacity: 0.4;593  cursor: not-allowed;594}595596/* Inline password generator wrapper */597.peach-inline-generator-wrap {598  margin-top: 10px;599  padding-top: 10px;600  border-top: 1px solid var(--peach-t3);601  display: flex;602  flex-direction: column;603  gap: 8px;604}605.peach-inline-generator-cancel {606  align-self: flex-start;607  font-size: 11px;608  color: var(--peach-t2);609}610611/* "is-editing" card state */612.peach-field-card.is-editing {613  background: rgba(240, 232, 216, 0.02);614  border-radius: 6px;615  padding: 8px;616  margin: -8px;617}618619/* Inline tag editor on Entry detail view */620.peach-inline-tag-editor {621  display: flex;622  flex-direction: column;623  gap: 6px;624}625626/* Quiet inline "+ add X" link in the entry detail body */627.peach-entry-add-link {628  justify-self: start;629  margin-top: 8px;630}631632/* Additional URLs editor revealed by clicking the URL field */633.peach-additional-urls {634  display: flex;635  flex-direction: column;636  gap: 6px;637  margin-top: 8px;638}639.peach-additional-urls-label {640  font-size: 9px;641  letter-spacing: 0.1em;642  text-transform: uppercase;643  color: var(--peach-t2);644  margin-bottom: 2px;645}646.peach-additional-url-row {647  display: flex;648  align-items: center;649  gap: 6px;650}651.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }652.peach-additional-url-remove {653  background: transparent;654  border: 1px solid var(--peach-t3);655  color: var(--peach-t2);656  width: 22px;657  height: 22px;658  border-radius: 4px;659  cursor: pointer;660  font-size: 14px;661  line-height: 1;662  display: inline-flex;663  align-items: center;664  justify-content: center;665  flex-shrink: 0;666  transition: color 120ms ease, border-color 120ms ease;667}668.peach-additional-url-remove:hover:not(:disabled) {669  color: var(--peach-accent);670  border-color: var(--peach-border-accent);671}672.peach-additional-urls-add { align-self: flex-start; }673674/* Delete row */675.peach-entry-delete-row {676  display: flex;677  align-items: center;678  gap: 8px;679  padding-top: 18px;680  margin-top: 8px;681  border-top: 1px solid var(--peach-t3);682}683.peach-delete-btn {684  font-size: 11px;685  color: var(--peach-t2);686  padding: 4px 0;687}688.peach-delete-confirm-text {689  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;690  font-size: 11px;691  font-style: italic;692  color: var(--peach-t2);693  flex-shrink: 0;694}695696/* TOTP band */697.peach-totp-band {698  border-top: 1px solid var(--peach-t3);699  padding: 12px 20px 14px;700  position: relative;701  display: grid;702  grid-template-columns: 1fr auto;703  gap: 10px;704}705.peach-totp-main {706  min-width: 0;707  cursor: pointer;708  user-select: none;709}710.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }711.peach-totp-code-row {712  display: flex;713  align-items: flex-end;714  gap: 10px;715  min-width: 0;716}717.peach-totp-code {718  margin: 2px 0 0;719  font-family: "Cormorant Garamond", "Times New Roman", serif;720  font-style: italic;721  font-weight: 300;722  font-size: 38px; color: var(--peach-accent);723  line-height: 0.95; min-height: 1em;724  min-width: 0;725}726.peach-totp-code-text {727  display: inline-flex;728  overflow: hidden;729  text-overflow: ellipsis;730  white-space: nowrap;731}732.peach-totp-copy-btn {733  margin-bottom: 2px;734  flex-shrink: 0;735  border-color: transparent;736}737.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }738.peach-totp-countdown {739  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;740  font-size: 22px; color: var(--peach-t1);741}742.peach-totp-ring { transform: rotate(-90deg); }743.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }744.peach-totp-ring-progress {745  fill: none; stroke: var(--peach-accent); stroke-width: 2;746  stroke-linecap: round;747  transition: stroke-dashoffset 1s linear, stroke 500ms ease;748}749/* Search bar */750.peach-search-wrap {751  border-top: 1px solid var(--peach-t3);752  background: var(--peach-s1);753  min-height: 54px; position: relative;754  box-shadow: inset 0 6px 18px transparent;755  transition: box-shadow 700ms ease;756}757.peach-search-wrap::before {758  content: "";759  position: absolute;760  left: 0;761  top: 0;762  height: 2px;763  width: var(--peach-totp-progress, 0%);764  background: var(--peach-accent);765  opacity: 0;766  transition: width 1s linear, opacity 180ms ease;767  pointer-events: none;768}769.peach-shell[data-totp-active="true"] .peach-search-wrap::before {770  opacity: 0.9;771}772.peach-shell[data-totp-active="true"] .peach-search-wrap {773  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);774}775776@keyframes peach-totp-code-flare {777  0%   { filter: brightness(1); }778  25%  { filter: brightness(1.3); }779  100% { filter: brightness(1); }780}781.peach-totp-code.is-hot {782  animation: peach-totp-code-flare 3000ms ease-in-out both;783}784.peach-search-bar {785  min-height: 54px;786  display: grid;787  grid-template-columns: auto minmax(0, 1fr) auto;788  align-items: center;789  gap: 8px; padding: 0 9px 0 12px;790}791.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }792.peach-search-input {793  border: 0; background: transparent; color: var(--peach-t0);794  font-family: "Cormorant Garamond", "Times New Roman", serif;795  font-style: italic; font-size: 18px;796  outline: none; width: 100%; min-width: 0; padding: 0;797  caret-color: var(--peach-accent);798}799.peach-search-input::placeholder { color: var(--peach-t2); }800.peach-search-meta {801  display: grid;802  grid-auto-flow: column;803  align-items: center;804  justify-content: end;805  gap: 6px;806  min-width: max-content;807}808.peach-search-counter {809  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;810  font-size: 10px; color: var(--peach-t2);811  display: inline-flex;812  align-items: center;813  line-height: 1;814}815.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }816817/* Buttons */818.peach-btn {819  border: 1px solid transparent; border-radius: 12px;820  background: transparent; color: var(--peach-t0);821  font-family: Inter, system-ui, sans-serif;822  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;823  cursor: pointer;824  transition:825    background-color var(--peach-dur-80) var(--peach-curve-arrival),826    color var(--peach-dur-80) var(--peach-curve-arrival),827    border-color var(--peach-dur-150) var(--peach-curve-arrival);828}829.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }830.peach-btn:disabled {831  opacity: 0.45;832  cursor: not-allowed;833}834.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }835.peach-btn--md { min-height: 38px; }836.peach-btn--accent {837  background: var(--peach-accent);838  color: rgba(0,0,0,0.78);839  box-shadow:840    0 1px 0 rgba(255,255,255,0.08) inset,841    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),842    0 3px 16px var(--peach-glow),843    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);844}845.peach-btn--accent:hover:not(:disabled) {846  background: var(--peach-accent);847  filter: brightness(1.10) saturate(1.05);848  box-shadow:849    0 1px 0 rgba(255,255,255,0.10) inset,850    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),851    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),852    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);853}854.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }855.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }856.peach-icon-btn {857  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;858  display: inline-flex; align-items: center; justify-content: center;859}860861.peach-btn:focus-visible {862  outline: none;863  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);864}865866/* Lock button */867.peach-lock-icon { transform-origin: center; }868.peach-lock-btn.is-locking { color: var(--peach-accent); }869.peach-lock-btn.is-locking .peach-lock-icon {870  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);871}872873/* Copy button */874.peach-copy-btn {875  position: relative; overflow: hidden;876  color: var(--peach-t2); border-color: var(--peach-t3);877}878.peach-copy-icon {879  display: inline-flex; align-items: center; justify-content: center;880  position: relative; z-index: 1;881}882.peach-copy-icon-svg { display: block; }883.peach-copy-sheen {884  position: absolute; inset: 0;885  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%);886  opacity: 0; transform: scaleX(0.15); transform-origin: left center;887}888.peach-copy-btn.is-copied {889  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;890  box-shadow:891    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),892    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),893    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);894}895.peach-copy-btn.is-copied .peach-copy-icon {896  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;897}898.peach-copy-btn.is-copied .peach-copy-sheen {899  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;900}901.peach-copy-btn.is-retreat {902  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;903}904.peach-copy-btn.is-retreat .peach-copy-sheen {905  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;906}907.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }908.peach-copy-drain-bar {909  display: block; width: 100%; height: 100%;910  background: var(--peach-accent); opacity: 0.7;911  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;912}913914/* Unlock screen elements */915.peach-unlock-headline {916  margin: 2px 0 0;917  font-family: "Cormorant Garamond", "Times New Roman", serif;918  font-size: 52px; line-height: 0.95;919  font-style: italic; font-weight: 400;920}921.peach-subline {922  margin: 0;923  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;924  font-size: 10px; color: var(--peach-t2); font-style: italic;925}926.peach-subline--lock {927  max-width: 248px;928  line-height: 1.5;929}930.peach-underline-input {931  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);932  padding: 6px 0; background: transparent; color: var(--peach-t0);933  outline: none;934  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;935  font-size: 13px;936  caret-color: var(--peach-accent);937}938.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }939.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }940.peach-hint {941  margin: 0;942  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;943  font-size: 10px; color: var(--peach-t2);944}945.peach-unlock-footer {946  margin-top: 4px; display: flex; align-items: center; gap: 7px;947  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;948  font-size: 10px; color: var(--peach-t2);949}950.peach-unlock-footer--lock {951  padding-top: 2px;952}953954/* Breach badge */955.peach-breach-badge {956  display: flex;957  position: relative;958  z-index: 1;959  align-items: center;960  gap: 7px;961  font-size: 9px;962  color: var(--peach-breach);963  padding: 5px 10px;964  margin-bottom: 4px;965  border-radius: 8px;966  background: rgba(220, 80, 60, 0.07);967  border: 1px solid rgba(220, 80, 60, 0.18);968  letter-spacing: 0.04em;969}970971.peach-breach-action {972  margin-left: auto;973  font-size: 10px;974  padding: 3px 8px;975}976977.peach-password-value.is-breached {978  color: rgba(220, 80, 60, 0.75);979  border-bottom: 1px solid rgba(220, 80, 60, 0.22);980}981982/* ── Overlay views ─────────────────────────────────────────────────── */983.peach-overlay-view {984  position: absolute;985  inset: 0;986  display: flex;987  flex-direction: column;988  background:989    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),990    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),991    var(--peach-bg);992  z-index: 2;993  overflow: hidden;994  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;995}996@keyframes overlay-in {997  from { opacity: 0; transform: translateY(8px); }998  to   { opacity: 1; transform: translateY(0); }999}1000.peach-overlay-view.ov-enter-up {1001  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1002}1003.peach-overlay-view.ov-exit-up {1004  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1005}1006.peach-overlay-view.ov-enter-right {1007  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1008}1009.peach-overlay-view.ov-exit-right {1010  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1011}10121013@keyframes ov-enter-up {1014  from { opacity: 0; transform: translateY(18px); }1015  to   { opacity: 1; transform: translateY(0); }1016}1017@keyframes ov-exit-up {1018  from { opacity: 1; transform: translateY(0); }1019  to   { opacity: 0; transform: translateY(-12px); }1020}1021@keyframes ov-enter-right {1022  from { opacity: 0; transform: translateX(20px); }1023  to   { opacity: 1; transform: translateX(0); }1024}1025@keyframes ov-exit-right {1026  from { opacity: 1; transform: translateX(0); }1027  to   { opacity: 0; transform: translateX(20px); }1028}10291030/* Overlay shared header */1031.peach-overlay-header {1032  padding: 10px 12px;1033  display: flex;1034  align-items: center;1035  gap: 8px;1036  border-bottom: 1px solid var(--peach-t3);1037  flex-shrink: 0;1038}1039.peach-overlay-title {1040  font-family: "IBM Plex Mono", monospace;1041  font-size: 9px;1042  text-transform: uppercase;1043  letter-spacing: 0.18em;1044  color: var(--peach-t2);1045  flex: 1;1046  text-align: center;1047}10481049.peach-overlay-card {1050  background: var(--peach-s1);1051  border: 1px solid var(--peach-t3);1052  border-radius: 12px;1053  overflow: hidden;1054  width: 100%;1055}10561057.peach-onboarding-alt-actions {1058  display: flex;1059  flex-direction: column;1060  gap: 4px;1061  padding: 0;1062}10631064.peach-settings-copy {1065  margin: 0 0 10px;1066  font-size: 11px;1067  line-height: 1.5;1068  color: var(--peach-t2);1069}10701071.peach-settings-copy strong {1072  color: var(--peach-t0);1073}10741075.peach-settings-copy--spacious {1076  margin-bottom: 12px;1077}10781079.peach-settings-copy--result {1080  color: var(--peach-accent);1081  font-size: 13px;1082  text-align: center;1083  padding: 8px 0;1084}10851086.peach-settings-copy--danger {1087  color: var(--peach-breach);1088}10891090.peach-settings-copy--success {1091  color: var(--peach-accent);1092}10931094.peach-inline-feedback {1095  font-size: 11px;1096  margin: 10px 0 0;1097}10981099.peach-inline-feedback--ok {1100  color: var(--peach-accent);1101}11021103.peach-inline-feedback--error {1104  color: var(--peach-breach);1105}11061107.peach-inline-feedback--muted {1108  color: var(--peach-t2);1109  font-size: 10px;1110  margin: 4px 0;1111}11121113.peach-inline-feedback--spaced {1114  margin-top: 12px;1115}11161117.peach-settings-actions--row {1118  display: flex;1119  gap: 6px;1120}11211122.peach-settings-actions--end {1123  margin-top: 14px;1124  justify-content: flex-end;1125}11261127.peach-settings-stack {1128  display: flex;1129  flex-direction: column;1130  gap: 6px;1131}11321133.peach-settings-stack--tight {1134  gap: 4px;1135}11361137.peach-settings-stack--spacious {1138  gap: 8px;1139}11401141.peach-settings-input {1142  width: 100%;1143  box-sizing: border-box;1144  padding: 8px 10px;1145  background: var(--peach-s2);1146  border: 1px solid var(--peach-t3);1147  border-radius: 6px;1148  color: var(--peach-t0);1149  font-family: var(--font-ui);1150  font-size: 12px;1151  outline: none;1152  transition: border-color 120ms ease;1153}11541155.peach-settings-input:focus {1156  border-color: var(--peach-accent);1157}11581159.peach-settings-input[type="password"] {1160  font-family: var(--font-mono);1161  letter-spacing: 0.04em;1162}11631164.peach-phrase-textarea {1165  width: 100%;1166  box-sizing: border-box;1167  min-height: 120px;1168  padding: 10px 12px;1169  background: var(--peach-s2);1170  border: 1px solid var(--peach-t3);1171  border-radius: 6px;1172  color: var(--peach-t0);1173  font-size: 12px;1174  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1175  line-height: 1.5;1176  resize: vertical;1177  outline: none;1178}11791180.peach-phrase-textarea:focus {1181  border-color: var(--peach-accent);1182}11831184.peach-hidden-file-input {1185  display: none;1186}11871188.peach-checkbox-note {1189  display: flex;1190  align-items: flex-start;1191  gap: 8px;1192  font-size: 11px;1193  color: var(--peach-t1);1194  cursor: pointer;1195  margin: 12px 0;1196}11971198.peach-checkbox-note input {1199  margin-top: 1px;1200}12011202.peach-cjk-phrase-box {1203  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1204  font-size: 13px;1205  line-height: 1.5;1206  background: var(--peach-s2);1207  border: 1px solid var(--peach-t3);1208  border-radius: 6px;1209  padding: 10px 12px;1210  margin: 0 0 10px;1211  word-break: break-all;1212  white-space: pre-wrap;1213  max-height: 220px;1214  overflow-y: auto;1215  color: var(--peach-t0);1216  user-select: all;1217  scrollbar-width: none;1218  -ms-overflow-style: none;1219}1220.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }12211222.peach-danger-notice {1223  background: rgba(220, 80, 60, 0.08);1224  border: 1px solid rgba(220, 80, 60, 0.2);1225  border-radius: 6px;1226  padding: 9px 11px;1227  font-size: 11px;1228  color: var(--peach-t1);1229  line-height: 1.5;1230}12311232.peach-info-notice {1233  font-size: 11px;1234  color: var(--peach-t2);1235  line-height: 1.5;1236  background: rgba(240, 232, 216, 0.04);1237  border: 1px solid var(--peach-t3);1238  border-radius: 6px;1239  padding: 8px 10px;1240}12411242.peach-strength-row {1243  display: flex;1244  align-items: center;1245  gap: 8px;1246  margin-bottom: 10px;1247}12481249.peach-strength-track {1250  flex: 1;1251  height: 4px;1252  background: var(--peach-s2);1253  border-radius: 2px;1254  overflow: hidden;1255}12561257.peach-strength-fill {1258  height: 100%;1259  border-radius: 2px;1260  transition: width 120ms ease, background 120ms ease;1261}12621263/* ── Type selector tabs ── */1264.peach-type-tabs {1265  display: flex;1266  gap: 0;1267  background: var(--peach-t4);1268  border-radius: 8px;1269  padding: 3px;1270}12711272.peach-type-tab {1273  flex: 1;1274  display: flex;1275  align-items: center;1276  justify-content: center;1277  gap: 6px;1278  padding: 6px 10px;1279  border-radius: 6px;1280  border: none;1281  background: transparent;1282  cursor: pointer;1283  font-family: Inter, system-ui, sans-serif;1284  font-size: 11px;1285  font-weight: 400;1286  letter-spacing: 0.04em;1287  color: var(--peach-t1);1288  transition: background 150ms ease, color 150ms ease;1289}12901291.peach-type-tab.is-active {1292  background: var(--peach-s2);1293  color: var(--peach-t0);1294  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1295}12961297.peach-type-tab:not(.is-active):hover {1298  color: var(--peach-t0);1299}13001301.peach-type-tab svg {1302  opacity: 0.7;1303  flex-shrink: 0;1304}13051306.peach-type-tab.is-active svg {1307  opacity: 1;1308}13091310/* ── List view ───────────────────────────────────────────────────────── */1311.peach-list-top {1312  padding: 0 10px;1313  min-height: 46px;1314  display: flex;1315  align-items: center;1316  gap: 6px;1317  border-bottom: 1px solid var(--peach-t3);1318  flex-shrink: 0;1319  background: var(--peach-s1);1320}1321.peach-vault-list {1322  flex: 1;1323  overflow-y: auto;1324  scrollbar-width: none;1325}1326.peach-vault-list::-webkit-scrollbar { display: none; }13271328/* Scrollbar — vault list */1329.peach-vault-list {1330  scrollbar-width: thin;1331  scrollbar-color: var(--peach-t3) transparent;1332}13331334.peach-vault-list::-webkit-scrollbar {1335  width: 3px;1336}13371338.peach-vault-list::-webkit-scrollbar-thumb {1339  background: var(--peach-t3);1340  border-radius: 2px;1341}13421343.peach-entry-row {1344  width: 100%;1345  display: flex;1346  align-items: center;1347  gap: 10px;1348  padding: 9px 16px;1349  background: transparent;1350  border: none;1351  border-bottom: 1px solid var(--peach-t3);1352  cursor: pointer;1353  color: inherit;1354  text-align: left;1355  transition: background 80ms ease;1356}1357.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1358.peach-entry-row:last-child { border-bottom: none; }1359.peach-entry-row.is-active {1360  box-shadow: inset 2px 0 0 var(--peach-accent);1361  background: rgba(240,232,216,0.03);1362}1363.peach-entry-row:focus-visible {1364  outline: none;1365  box-shadow: 0 0 0 1px var(--peach-border-accent);1366  background: rgba(240,232,216,0.03);1367}1368.peach-entry-row-icon {1369  width: 26px; height: 26px;1370  border-radius: 7px;1371  border: 1px solid var(--peach-t3);1372  display: flex; align-items: center; justify-content: center;1373  color: var(--peach-t2);1374  flex-shrink: 0;1375}1376.peach-entry-row-icon.is-breach {1377  border-color: rgba(220,80,60,0.3);1378  color: rgba(220,80,60,0.7);1379}1380.peach-entry-row-info { flex: 1; min-width: 0; }1381.peach-entry-row-name {1382  display: block;1383  font-family: "Cormorant Garamond", serif;1384  font-size: 17px;1385  font-style: italic;1386  font-weight: 400;1387  color: var(--peach-t0);1388  line-height: 1.2;1389  white-space: nowrap;1390  overflow: hidden;1391  text-overflow: ellipsis;1392}1393.peach-entry-row-meta {1394  display: block;1395  font-family: "IBM Plex Mono", monospace;1396  font-size: 9px;1397  color: var(--peach-t2);1398  margin-top: 1px;1399  letter-spacing: 0.05em;1400}1401.peach-entry-row-dot {1402  width: 5px; height: 5px;1403  border-radius: 50%;1404  background: rgba(220,80,60,0.7);1405  flex-shrink: 0;1406}1407.peach-new-entry-row {1408  display: flex;1409  align-items: center;1410  justify-content: center;1411  gap: 6px;1412  width: 100%;1413  padding: 11px;1414  background: transparent;1415  border: none;1416  border-top: 1px solid var(--peach-t3);1417  color: var(--peach-t2);1418  font-family: "IBM Plex Mono", monospace;1419  font-size: 9px;1420  text-transform: uppercase;1421  letter-spacing: 0.14em;1422  cursor: pointer;1423  flex-shrink: 0;1424  transition: color 120ms ease, background 120ms ease;1425}1426.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14271428/* ── Multi-select mode ─────────────────────────────────────────────── */14291430/* Select-mode trigger button in sort bar — same shape as trash btn */1431.peach-sort-select-btn {1432  display: flex;1433  align-items: center;1434  justify-content: center;1435  padding: 3px 5px;1436  background: transparent;1437  border: none;1438  cursor: pointer;1439  color: var(--peach-t2);1440  border-radius: 4px;1441  transition: color 140ms ease, background 140ms ease;1442}1443.peach-sort-select-btn:hover {1444  color: var(--peach-t1);1445  background: var(--peach-t3);1446}14471448/* Sort bar in select mode */1449.peach-select-cancel-btn {1450  background: transparent;1451  border: none;1452  padding: 0 4px;1453  cursor: pointer;1454  font-family: "IBM Plex Mono", monospace;1455  font-size: 9px;1456  letter-spacing: 0.12em;1457  text-transform: uppercase;1458  color: var(--peach-t2);1459  transition: color 140ms ease;1460  flex-shrink: 0;1461}1462.peach-select-cancel-btn:hover { color: var(--peach-t0); }14631464.peach-select-count-label {1465  flex: 1;1466  text-align: center;1467  font-family: "IBM Plex Mono", monospace;1468  font-size: 9px;1469  letter-spacing: 0.14em;1470  text-transform: uppercase;1471  color: var(--peach-t1);1472}14731474.peach-select-all-btn {1475  background: transparent;1476  border: none;1477  padding: 0 4px;1478  cursor: pointer;1479  font-family: "IBM Plex Mono", monospace;1480  font-size: 9px;1481  letter-spacing: 0.12em;1482  text-transform: uppercase;1483  color: var(--peach-t2);1484  transition: color 140ms ease;1485  flex-shrink: 0;1486}1487.peach-select-all-btn:hover { color: var(--peach-accent); }14881489/* List in select mode */1490.peach-vault-list.is-selecting .peach-entry-row {1491  cursor: default;1492}1493.peach-vault-list.is-selecting .peach-entry-row:hover {1494  background: rgba(240,232,216,0.02);1495}1496.peach-vault-list.is-selecting .peach-entry-row.is-selected {1497  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1498}1499.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1500  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1501}15021503/* Select indicator circles in icon slot */1504.peach-entry-row-icon.is-select-icon {1505  color: var(--peach-t2);1506}1507.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1508  color: var(--peach-accent);1509}15101511/* Delete action bar at bottom (replaces new-entry row) */1512.peach-select-action-bar {1513  display: flex;1514  align-items: center;1515  justify-content: center;1516  gap: 7px;1517  width: 100%;1518  padding: 11px;1519  background: transparent;1520  border: none;1521  border-top: 1px solid var(--peach-t3);1522  color: var(--peach-t1);1523  font-family: "IBM Plex Mono", monospace;1524  font-size: 9px;1525  text-transform: uppercase;1526  letter-spacing: 0.14em;1527  cursor: pointer;1528  flex-shrink: 0;1529  transition: color 120ms ease, background 120ms ease;1530}1531.peach-select-action-bar:not(:disabled):hover {1532  color: var(--peach-t0);1533  background: rgba(220,80,60,0.06);1534}1535.peach-select-action-bar:not(:disabled):hover svg {1536  stroke: rgba(220,80,60,0.8);1537}1538.peach-select-action-bar:disabled,1539.peach-select-action-bar.is-empty {1540  color: var(--peach-t2);1541  cursor: default;1542  opacity: 0.5;1543}1544.peach-search-counter-list {1545  white-space: nowrap;1546  flex-shrink: 0;1547}1548.peach-list-empty {1549  min-height: 180px;1550  display: grid;1551  place-items: center;1552  color: var(--peach-t2);1553  font-family: "IBM Plex Mono", monospace;1554  font-size: 11px;1555}15561557/* ── Settings view ───────────────────────────────────────────────────── */1558.peach-settings-body {1559  flex: 1;1560  overflow-y: auto;1561  min-height: 0;1562  display: flex;1563  flex-direction: column;1564  padding: 2px 0 10px;1565}1566.peach-settings-group {1567  padding: 9px 16px 11px;1568  border-bottom: 1px solid var(--peach-t3);1569}1570.peach-export-intro {1571  padding-bottom: 8px;1572}1573.peach-export-card {1574  display: grid;1575  gap: 10px;1576}1577.peach-export-card--primary {1578  background:1579    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1580}1581.peach-export-card-head {1582  display: flex;1583  align-items: center;1584  justify-content: space-between;1585  gap: 10px;1586}1587.peach-export-card-copy {1588  margin: 0;1589  font-size: 12px;1590  line-height: 1.55;1591  color: var(--peach-t1);1592}1593.peach-export-note {1594  margin: 0;1595  font-size: 10px;1596  line-height: 1.5;1597  color: var(--peach-t2);1598}1599.peach-export-pill {1600  display: inline-flex;1601  align-items: center;1602  padding: 4px 8px;1603  border-radius: 999px;1604  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1605  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1606  color: var(--peach-accent);1607  font-family: "IBM Plex Mono", monospace;1608  font-size: 8px;1609  letter-spacing: 0.12em;1610  text-transform: uppercase;1611  white-space: nowrap;1612}1613.peach-export-pill--danger {1614  border-color: rgba(220,80,60,0.22);1615  background: rgba(220,80,60,0.08);1616  color: var(--peach-breach);1617}1618.peach-export-password-stack {1619  gap: 8px;1620}1621.peach-settings-label {1622  margin: 0 0 6px;1623  font-family: "IBM Plex Mono", monospace;1624  font-size: 8px;1625  text-transform: uppercase;1626  letter-spacing: 0.18em;1627  color: var(--peach-t2);1628}1629.peach-settings-row {1630  display: flex;1631  align-items: center;1632  justify-content: space-between;1633  gap: 12px;1634  min-height: 34px;1635  padding: 6px 0;1636  font-size: 13px;1637  color: var(--peach-t1);1638}1639.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1640.peach-settings-value {1641  font-family: "IBM Plex Mono", monospace;1642  font-size: 10px;1643  color: var(--peach-t2);1644}16451646.peach-settings-value--status {1647  display: flex;1648  align-items: center;1649  gap: 6px;1650}16511652.peach-settings-link {1653  font-family: "IBM Plex Mono", monospace;1654  font-size: 10px;1655  color: var(--peach-accent);1656  text-decoration: none;1657  cursor: pointer;1658}1659.peach-settings-link:hover {1660  text-decoration: underline;1661}16621663.peach-settings-row--stack {1664  flex-direction: column;1665  align-items: stretch;1666  gap: 6px;1667}16681669.peach-settings-row--top {1670  align-items: flex-start;1671}16721673.peach-settings-row-main {1674  display: flex;1675  flex-direction: column;1676  gap: 4px;1677  flex: 1;1678}1679.peach-toggle {1680  width: 28px; height: 16px;1681  border-radius: 999px;1682  background: var(--peach-t3);1683  border: 1px solid var(--peach-t3);1684  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1685  flex-shrink: 0;1686  transition: background 200ms ease, border-color 200ms ease;1687  cursor: pointer;1688}1689.peach-toggle.is-on {1690  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1691  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1692}1693.peach-toggle-knob {1694  width: 10px; height: 10px;1695  border-radius: 50%;1696  background: var(--peach-t2);1697  flex-shrink: 0;1698  transform: translateX(0px);1699  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1700}1701.peach-toggle.is-on .peach-toggle-knob {1702  background: var(--peach-accent);1703  transform: translateX(12px);1704}1705.peach-settings-footer {1706  display: flex;1707  align-items: center;1708  gap: 8px;1709  margin-top: auto;1710  padding: 14px 16px 8px;1711  font-family: "IBM Plex Mono", monospace;1712  font-size: 9px;1713  color: var(--peach-t2);1714}17151716.peach-passkey-badge {1717  margin-left: 8px;1718  font-size: 10px;1719  letter-spacing: 0.06em;1720  text-transform: uppercase;1721  color: var(--peach-t2);1722  font-family: var(--font-ui);1723  vertical-align: middle;1724}17251726.peach-passkey-delete-btn {1727  color: var(--peach-breach);1728  border-color: rgba(229, 85, 85, 0.25);1729}17301731.peach-passkey-delete-confirm {1732  display: flex;1733  align-items: center;1734  gap: 8px;1735  padding: 8px 10px;1736  background: rgba(229, 85, 85, 0.06);1737  border: 1px solid rgba(229, 85, 85, 0.2);1738  border-radius: 6px;1739}17401741.peach-passkey-delete-confirm-copy {1742  flex: 1;1743  font-size: 11px;1744  color: var(--peach-t1);1745}17461747.peach-passkey-delete-btn--confirm {1748  color: var(--peach-breach);1749  border-color: rgba(229, 85, 85, 0.4);1750}17511752.peach-passkey-activity {1753  flex-direction: column;1754  align-items: flex-start;1755  gap: 4px;1756}17571758.peach-passkey-meta {1759  font-size: 11px;1760  color: var(--peach-t2);1761}17621763.peach-passkey-actions {1764  position: relative;1765  z-index: 1;1766  margin-top: 14px;1767  display: flex;1768  flex-direction: column;1769  gap: 8px;1770}17711772.peach-passkey-approval {1773  display: flex;1774  flex-direction: column;1775  align-items: center;1776  padding: 28px 22px 22px;1777  gap: 14px;1778  text-align: center;1779}17801781.peach-passkey-approval-icon {1782  width: 46px;1783  height: 46px;1784  border-radius: 12px;1785  background: var(--peach-s2);1786  border: 1px solid var(--peach-t3);1787  display: flex;1788  align-items: center;1789  justify-content: center;1790  flex-shrink: 0;1791  color: var(--peach-accent);1792}17931794.peach-passkey-approval-icon img,1795.peach-passkey-approval-icon svg {1796  width: 28px;1797  height: 28px;1798  border-radius: 6px;1799}18001801.peach-passkey-approval-rp {1802  font-family: var(--font-ui);1803  font-size: 12px;1804  color: var(--peach-t2);1805  letter-spacing: 0.03em;1806}18071808.peach-passkey-approval-action {1809  font-family: var(--font-display);1810  font-style: italic;1811  font-weight: 300;1812  font-size: 26px;1813  color: var(--peach-t0);1814  line-height: 1;1815}18161817.peach-passkey-approval-user {1818  font-family: var(--font-mono);1819  font-size: 11px;1820  color: var(--peach-t1);1821  background: var(--peach-s2);1822  border: 1px solid var(--peach-t3);1823  border-radius: 4px;1824  padding: 3px 8px;1825}18261827.peach-passkey-approval-notice {1828  font-size: 10px;1829  color: var(--peach-t2);1830  line-height: 1.5;1831  max-width: 220px;1832}18331834.peach-passkey-approval-actions {1835  display: flex;1836  gap: 8px;1837  width: 100%;1838  margin-top: 6px;1839}18401841.peach-passkey-approval-actions .peach-btn {1842  flex: 1;1843}18441845/* ── Inline generator drawer ── */1846.peach-generator-drawer {1847  display: grid;1848  grid-template-rows: 0fr;1849  transition: grid-template-rows 320ms var(--peach-curve-arrival);1850  overflow: hidden;1851}1852.peach-generator-drawer.is-open {1853  grid-template-rows: 1fr;1854}1855.peach-generator-drawer-inner {1856  min-height: 0;1857  overflow: hidden;1858}1859.peach-generator-drawer-content {1860  border-top: 1px solid var(--peach-t3);1861  padding: 8px 0 4px;1862  display: flex;1863  flex-direction: column;1864  gap: 8px;1865}18661867/* ── Compact generator (inside entry edit) ── */1868.peach-generator-drawer-content--compact {1869  border-top: 1px solid var(--peach-t3);1870  padding: 8px 0 2px;1871  gap: 7px;1872}1873.peach-pwgen-compact-display-row {1874  display: flex;1875  align-items: center;1876  gap: 6px;1877}1878.peach-pwgen-compact-output {1879  flex: 1;1880  min-width: 0;1881  font-family: "IBM Plex Mono", monospace;1882  font-size: 11px;1883  font-weight: 400;1884  letter-spacing: 0.04em;1885  color: var(--peach-t0);1886  background: rgba(240, 232, 216, 0.04);1887  border: 1px solid var(--peach-t3);1888  border-radius: 5px;1889  padding: 5px 8px;1890  word-break: break-all;1891  line-height: 1.5;1892}1893.peach-pwgen-compact-controls {1894  display: flex;1895  align-items: center;1896  gap: 6px;1897}1898.peach-pwgen-compact-slider {1899  flex: 1;1900  min-width: 0;1901  height: 2px !important;1902}1903.peach-pwgen-compact-controls .peach-pwgen-len-num {1904  flex-shrink: 0;1905  min-width: 18px;1906  text-align: right;1907}1908.peach-pwgen-compact-pills {1909  display: flex;1910  gap: 3px;1911  flex-shrink: 0;1912}1913.peach-pwgen-compact-pills .peach-pwgen-pill {1914  padding: 2px 7px;1915  font-size: 8px;1916}1917.peach-pwgen-compact-use {1918  flex-shrink: 0;1919  font-size: 10px !important;1920  padding: 3px 9px !important;1921  min-height: 22px !important;1922  border-radius: 5px !important;1923}19241925/* ── Password edit row (input + eye toggle side-by-side) ── */1926.peach-password-edit-row {1927  display: flex;1928  align-items: center;1929  gap: 6px;1930}1931.peach-password-edit-row .peach-inline-input {1932  flex: 1;1933  min-width: 0;1934}19351936/* ── Generate toggle link ── */1937.peach-generate-toggle-link {1938  display: inline-flex;1939  align-items: center;1940  gap: 5px;1941  background: none;1942  border: none;1943  padding: 0;1944  cursor: pointer;1945  font-family: "IBM Plex Mono", monospace;1946  font-size: 10px;1947  color: var(--peach-t2);1948  letter-spacing: 0.04em;1949  transition: color 120ms ease;1950  align-self: flex-start;1951}1952.peach-generate-toggle-link:hover {1953  color: var(--peach-accent);1954}19551956/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */1957.peach-entry-body {1958  flex: 1;1959  overflow-y: auto;1960  overflow-x: hidden;1961  scrollbar-width: none;1962  -ms-overflow-style: none;1963  overscroll-behavior: contain;1964  display: grid;1965  gap: 10px;1966  align-content: start;1967  padding: 10px 20px 14px;1968  min-width: 0;1969  min-height: 0;1970}1971.peach-entry-body::-webkit-scrollbar { display: none; }19721973/* Type-toggle pills + inline note toolbar */1974.peach-new-type-row {1975  display: flex;1976  align-items: center;1977  gap: 6px;1978  margin-bottom: 2px;1979}1980.peach-new-type-btn {1981  background: transparent;1982  border: 1px solid var(--peach-t3);1983  border-radius: 12px;1984  padding: 3px 10px;1985  font-family: "IBM Plex Mono", monospace;1986  font-size: 9px;1987  letter-spacing: 0.12em;1988  text-transform: uppercase;1989  color: var(--peach-t2);1990  cursor: pointer;1991  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;1992}1993.peach-new-type-btn.is-active {1994  color: var(--peach-t0);1995  border-color: var(--peach-accent);1996  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1997}1998.peach-new-type-btn:not(.is-active):hover {1999  color: var(--peach-t1);2000  border-color: var(--peach-t2);2001}20022003/* Editable title */2004.peach-new-title-wrap { margin: 0 0 2px; }2005.peach-new-title-input {2006  background: transparent;2007  border: none;2008  outline: none;2009  width: 100%;2010  color: var(--peach-t0);2011  font-family: "Cormorant Garamond", Georgia, serif;2012  font-style: italic;2013  font-weight: 400;2014  font-size: 40px;2015  line-height: 0.95;2016  caret-color: var(--peach-accent);2017}2018.peach-new-title-input::placeholder { color: var(--peach-t2); }20192020/* Editable domain field */2021.peach-domain-value--edit {2022  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2023  font-size: 10px;2024  font-style: italic;2025  letter-spacing: 0.12em;2026  color: var(--peach-t1);2027  background: transparent;2028  border: none;2029  border-bottom: 1px solid var(--peach-t3);2030  outline: none;2031  width: 100%;2032  padding: 2px 0;2033  caret-color: var(--peach-accent);2034  transition: border-color 140ms ease, color 140ms ease;2035}2036.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2037.peach-domain-value--edit:focus {2038  border-bottom-color: rgba(240, 232, 216, 0.28);2039  color: var(--peach-t0);2040}20412042/* Editable field values (username, password, totp) */2043.peach-field-value--edit {2044  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2045  font-size: 13px;2046  color: var(--peach-t0);2047  background: transparent;2048  border: none;2049  border-bottom: 1px solid var(--peach-t3);2050  outline: none;2051  flex: 1;2052  min-width: 0;2053  padding: 3px 0;2054  caret-color: var(--peach-accent);2055  transition: border-color 140ms ease, color 140ms ease;2056}2057.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2058.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2059.peach-field-value--edit:focus {2060  border-bottom-color: rgba(240, 232, 216, 0.28);2061  color: var(--peach-t0);2062}20632064/* "+ add optional field" links */2065.peach-entry-add-links {2066  display: flex;2067  gap: 12px;2068  flex-wrap: wrap;2069  margin-top: -2px;2070}2071.peach-add-field-link {2072  background: transparent;2073  border: none;2074  padding: 0;2075  cursor: pointer;2076  font-family: "IBM Plex Mono", monospace;2077  font-size: 9px;2078  letter-spacing: 0.1em;2079  text-transform: uppercase;2080  color: var(--peach-t2);2081  transition: color 140ms ease;2082}2083.peach-add-field-link:hover { color: var(--peach-accent); }20842085/* ── New entry form (legacy classes) ────────────────────────────────── */2086.peach-new-body {2087  flex: 1;2088  overflow-y: auto;2089  padding: 10px 20px 14px;2090}2091.peach-new-name-input {2092  background: transparent;2093  border: none;2094  outline: none;2095  width: 100%;2096  color: var(--peach-t0);2097  font-family: "Cormorant Garamond", Georgia, serif;2098  font-style: italic;2099  font-weight: 400;2100  font-size: 40px;2101  line-height: 0.95;2102  caret-color: var(--peach-accent);2103}2104.peach-new-name-input::placeholder { color: var(--peach-t2); }2105.peach-new-field-input {2106  background: transparent;2107  border: none;2108  outline: none;2109  flex: 1;2110  min-width: 0;2111  caret-color: var(--peach-accent);2112}2113.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }21142115/* ── Canary card ── */2116.peach-canary-card {2117  border: 1px solid rgba(217, 160, 48, 0.2);2118  background: rgba(217, 160, 48, 0.03);2119  border-radius: 8px;2120  padding: 12px;2121}21222123.peach-canary-settings-header {2124  display: flex;2125  align-items: center;2126  justify-content: space-between;2127  cursor: pointer;2128  user-select: none;2129}21302131.peach-canary-card .peach-label {2132  color: rgba(217, 160, 48, 0.85);2133}21342135.peach-canary-card .peach-new-field-input {2136  border-color: rgba(217, 160, 48, 0.25);2137}21382139.peach-canary-card .peach-new-field-input:focus {2140  border-color: rgba(217, 160, 48, 0.5);2141}21422143.peach-canary-body {2144  margin-top: 12px;2145  display: flex;2146  flex-direction: column;2147  gap: 10px;2148}21492150.peach-canary-explainer {2151  display: flex;2152  gap: 10px;2153  padding: 10px 12px;2154  border-radius: 10px;2155  background: rgba(217, 160, 48, 0.06);2156  border: 1px solid rgba(217, 160, 48, 0.22);2157  margin-bottom: 4px;2158}21592160.peach-canary-explainer-icon {2161  font-size: 16px;2162  flex-shrink: 0;2163  line-height: 1.2;2164}21652166.peach-canary-explainer-title {2167  font-family: var(--font-ui);2168  font-size: 11px;2169  font-weight: 500;2170  color: rgba(217, 160, 48, 0.9);2171  margin: 0 0 3px;2172}21732174.peach-canary-explainer-copy {2175  font-family: var(--font-ui);2176  font-size: 10px;2177  color: var(--peach-t2);2178  line-height: 1.55;2179  margin: 0;2180}21812182.peach-canary-hint {2183  font-size: 10px;2184  color: var(--peach-t2);2185  font-family: Inter, system-ui, sans-serif;2186  line-height: 1.5;2187  margin-top: 4px;2188}21892190.peach-canary-actions-row {2191  display: flex;2192  align-items: center;2193  gap: 8px;2194}21952196.peach-canary-test-btn {2197  border-color: rgba(217, 160, 48, 0.3);2198  color: rgba(217, 160, 48, 0.85);2199}22002201.peach-canary-test-result {2202  font-size: 10px;2203  font-family: Inter, system-ui, sans-serif;2204}22052206.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2207.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }22082209.peach-canary-badge {2210  display: flex;2211  position: relative;2212  z-index: 1;2213  align-items: center;2214  gap: 5px;2215  padding: 4px 10px;2216  background: rgba(217, 160, 48, 0.12);2217  border: 1px solid rgba(217, 160, 48, 0.35);2218  border-radius: 6px;2219  margin-bottom: 6px;2220  width: fit-content;2221}22222223.peach-canary-badge-label {2224  font-size: 10px;2225  letter-spacing: 0.06em;2226  color: rgba(217, 160, 48, 0.9);2227  font-family: var(--font-ui);2228  text-transform: uppercase;2229}22302231.peach-canary-badge-icon {2232  font-size: 11px;2233}22342235.peach-canary-suppress-row {2236  display: flex;2237  align-items: center;2238  gap: 8px;2239  padding: 6px 10px;2240  background: rgba(217, 160, 48, 0.08);2241  border-radius: 6px;2242  margin-bottom: 8px;2243}22442245.peach-canary-suppress-label {2246  font-size: 11px;2247  color: rgba(217, 160, 48, 0.85);2248  cursor: pointer;2249  font-family: var(--font-ui);2250  letter-spacing: 0.04em;2251}22522253.peach-regen-panel {2254  position: relative;2255  z-index: 1;2256  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2257  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2258  border-radius: 8px;2259  padding: 12px;2260  margin-bottom: 8px;2261}22622263.peach-regen-panel-header {2264  display: flex;2265  align-items: center;2266  justify-content: space-between;2267  margin-bottom: 10px;2268}22692270.peach-regen-panel-title {2271  font-size: 11px;2272  font-weight: 600;2273  letter-spacing: 0.06em;2274  text-transform: uppercase;2275  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2276}22772278.peach-regen-output {2279  background: rgba(0, 0, 0, 0.2);2280  border-radius: 6px;2281  padding: 10px;2282  margin-bottom: 10px;2283  font-family: var(--font-mono);2284  font-size: 13px;2285  word-break: break-all;2286  color: var(--peach-t1);2287}22882289.peach-regen-actions {2290  display: flex;2291  gap: 6px;2292}22932294.peach-regen-actions--spaced {2295  margin-bottom: 8px;2296}22972298.peach-regen-action-grow {2299  flex: 1;2300}23012302.peach-regen-copy-btn {2303  padding: 0 8px;2304}23052306.peach-regen-success {2307  position: relative;2308  z-index: 1;2309  background: rgba(40, 180, 80, 0.1);2310  border: 1px solid rgba(40, 180, 80, 0.3);2311  border-radius: 8px;2312  padding: 10px 12px;2313  margin-bottom: 8px;2314  display: flex;2315  align-items: center;2316  gap: 8px;2317  font-size: 11px;2318  color: rgba(40, 180, 80, 0.9);2319}23202321/* ── Note editor overlay ── */2322.peach-note-editor {2323  position: absolute;2324  inset: 0;2325  z-index: 200;2326  display: flex;2327  flex-direction: column;2328  background:2329    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2330    var(--peach-bg);2331  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2332}23332334.peach-note-editor-header {2335  display: flex;2336  align-items: center;2337  gap: 10px;2338  padding: 14px 16px 10px;2339  border-bottom: 1px solid var(--peach-t3);2340  flex-shrink: 0;2341}23422343.peach-note-editor-back {2344  background: transparent;2345  border: none;2346  cursor: pointer;2347  color: var(--peach-t2);2348  padding: 4px 6px;2349  border-radius: 6px;2350  display: flex;2351  align-items: center;2352  transition: color 120ms ease, background 120ms ease;2353  flex-shrink: 0;2354}2355.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }23562357.peach-note-editor-label {2358  flex: 1;2359  font-family: "Cormorant Garamond", "Times New Roman", serif;2360  font-style: italic;2361  font-size: 15px;2362  color: var(--peach-t1);2363  letter-spacing: 0.02em;2364}23652366.peach-note-editor-save-btn {2367  background: transparent;2368  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2369  border-radius: 8px;2370  color: var(--peach-accent);2371  font-family: "IBM Plex Mono", monospace;2372  font-size: 10px;2373  letter-spacing: 0.06em;2374  text-transform: uppercase;2375  padding: 3px 10px;2376  cursor: pointer;2377  transition: background 120ms ease, border-color 120ms ease;2378}2379.peach-note-editor-save-btn:hover:not(:disabled) {2380  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2381  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2382}2383.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }23842385.peach-note-toolbar {2386  display: flex;2387  align-items: center;2388  gap: 3px;2389  padding: 6px 14px 5px;2390  border-bottom: 1px solid var(--peach-t3);2391  flex-shrink: 0;2392}23932394.peach-note-tool-btn {2395  background: transparent;2396  border: 1px solid transparent;2397  border-radius: 5px;2398  color: var(--peach-t2);2399  font-family: "IBM Plex Mono", monospace;2400  font-size: 10px;2401  letter-spacing: 0.04em;2402  padding: 2px 8px;2403  cursor: pointer;2404  line-height: 1.6;2405  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2406}2407.peach-note-tool-btn:hover {2408  background: var(--peach-t4);2409  color: var(--peach-t0);2410  border-color: var(--peach-t3);2411}24122413.peach-note-tool-icon {2414  padding: 3px 7px;2415  display: inline-flex;2416  align-items: center;2417  justify-content: center;2418}24192420.peach-note-tool-divider {2421  width: 1px;2422  height: 14px;2423  background: var(--peach-t3);2424  margin: 0 4px;2425  flex-shrink: 0;2426}24272428.peach-note-editor-body {2429  flex: 1;2430  overflow-y: auto;2431  padding: 16px 20px 20px;2432  outline: none;2433  font-family: "Cormorant Garamond", "Times New Roman", serif;2434  font-size: 16px;2435  line-height: 1.75;2436  color: var(--peach-t0);2437  scrollbar-width: none;2438  word-break: break-word;2439}2440.peach-note-editor-body:empty::before {2441  content: "write your note…";2442  color: var(--peach-t3);2443  font-style: italic;2444  pointer-events: none;2445}24462447/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2448.peach-note-editor-inline {2449  display: flex;2450  flex-direction: column;2451  flex: 1;2452  min-height: 0;2453}2454.peach-note-editor-body--inline {2455  flex: 1;2456  min-height: 0;2457  font-size: 15px;2458  padding: 10px 20px 14px;2459}24602461/* Full-width toolbar row inside the body (Add.tsx note type).2462   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2463.peach-note-toolbar-body {2464  display: flex;2465  align-items: center;2466  gap: 3px;2467  padding: 5px 20px 4px;2468  margin: 2px -20px 0;2469  border-bottom: 1px solid var(--peach-t3);2470  flex-shrink: 0;2471}24722473/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2474   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2475   and .peach-note-tool-divider button-level styles. */2476.peach-note-toolbar-inline {2477  display: flex;2478  align-items: center;2479  gap: 3px;2480  margin-left: auto;2481  padding-left: 10px;2482  border-left: 1px solid var(--peach-t3);2483  min-height: 22px;2484}24852486/* Entry.tsx toolbar row (no tabs, toolbar only) */2487.peach-entry-note-toolbar-row {2488  display: flex;2489  align-items: center;2490  margin: 4px 0 6px;2491  position: relative;2492  z-index: 1;2493}2494.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2495  border-left: none;2496  padding-left: 0;2497  margin-left: 0;2498}24992500/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2501.peach-note-body {2502  display: flex;2503  flex-direction: column;2504  flex: 1;2505  min-height: 0;2506  margin: 4px 0 0;2507}2508.peach-entry-body--new .peach-note-body {2509  margin: 8px -20px 0;2510}25112512/* Add.tsx body is a grid by default; swap to a flex column when a note is2513   active so the note body can stretch and pin the tags row to the bottom. */2514.peach-entry-body--new:has(.peach-note-body) {2515  display: flex;2516  flex-direction: column;2517}25182519/* Rich content element styles (editor + display) */2520.peach-note-editor-body h2,2521.peach-note-content h2 {2522  font-family: "Cormorant Garamond", serif;2523  font-size: 20px;2524  font-weight: 600;2525  font-style: italic;2526  color: var(--peach-t0);2527  margin: 6px 0 2px;2528  line-height: 1.3;2529}2530.peach-note-editor-body ul,2531.peach-note-content ul {2532  padding-left: 18px;2533  margin: 3px 0;2534  list-style: disc;2535}2536.peach-note-editor-body ol,2537.peach-note-content ol {2538  padding-left: 18px;2539  margin: 3px 0;2540  list-style: decimal;2541}2542.peach-note-editor-body li,2543.peach-note-content li { margin: 2px 0; }2544.peach-note-editor-body hr,2545.peach-note-content hr {2546  border: none;2547  border-top: 1px solid var(--peach-t3);2548  margin: 10px 0;2549}25502551/* font size elements from execCommand */2552.peach-note-editor-body font[size="1"],2553.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2554.peach-note-editor-body font[size="2"],2555.peach-note-content font[size="2"] { font-size: 13px; }2556.peach-note-editor-body font[size="3"],2557.peach-note-content font[size="3"] { font-size: 16px; }2558.peach-note-editor-body font[size="4"],2559.peach-note-content font[size="4"] { font-size: 20px; }2560.peach-note-editor-body font[size="5"],2561.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }25622563/* bold / italic inside the editor and note display */2564.peach-note-editor-body b, .peach-note-editor-body strong,2565.peach-note-content b, .peach-note-content strong { font-weight: 700; }2566.peach-note-editor-body em, .peach-note-editor-body i,2567.peach-note-content em, .peach-note-content i { font-style: italic; }25682569/* note display — rendered HTML, no pre-wrap */2570.peach-note-content {2571  overflow: auto;2572  max-height: 340px;2573  word-break: break-word;2574}25752576/* ── Note textarea ── */2577.peach-note-textarea {2578  width: 100%;2579  min-height: 180px;2580  max-height: 280px;2581  resize: vertical;2582  background: var(--peach-t4);2583  border: 1px solid var(--peach-t3);2584  border-radius: 8px;2585  padding: 10px 12px;2586  font-family: "IBM Plex Mono", monospace;2587  font-size: 12px;2588  line-height: 1.7;2589  color: var(--peach-t1);2590  outline: none;2591  transition: border-color 150ms ease;2592}25932594.peach-note-textarea:focus {2595  border-color: var(--peach-t2);2596}25972598.peach-note-char-count {2599  font-family: "IBM Plex Mono", monospace;2600  font-size: 9px;2601  color: var(--peach-t3);2602  text-align: right;2603  margin-top: 4px;2604  letter-spacing: 0.1em;2605}26062607/* ── Field input baseline ── */2608.peach-new-field-input {2609  width: 100%;2610  background: transparent;2611  border: none;2612  border-bottom: 1px solid var(--peach-t3);2613  padding: 4px 0;2614  color: var(--peach-t1);2615  font-family: "IBM Plex Mono", monospace;2616  font-size: 13px;2617  outline: none;2618  transition: border-color 150ms ease;2619}26202621.peach-new-field-input:focus {2622  border-bottom-color: var(--peach-t0);2623  color: var(--peach-t0);2624}26252626.peach-new-name-input {2627  width: 100%;2628  background: transparent;2629  border: none;2630  border-bottom: 1px solid var(--peach-t3);2631  padding: 6px 0;2632  font-family: "Cormorant Garamond", Georgia, serif;2633  font-style: italic;2634  font-size: 28px;2635  color: var(--peach-t0);2636  outline: none;2637  transition: border-color 150ms ease;2638}26392640.peach-new-name-input:focus {2641  border-bottom-color: var(--peach-t1);2642}26432644.peach-new-name-input::placeholder {2645  color: var(--peach-t2);2646  font-style: italic;2647}26482649.peach-new-field-input::placeholder {2650  color: var(--peach-t3);2651}26522653/* ── Demo entrance animation ── */2654#hd-shell {2655  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2656}2657@keyframes hd-shell-enter {2658  from { opacity: 0; transform: scale(0.96) translateY(16px); }2659  to   { opacity: 1; transform: scale(1) translateY(0); }2660}26612662/* ── Keyframes ── */2663@keyframes peach-char-enter {2664  from { opacity: 0; transform: translateY(0.22em); }2665  to   { opacity: 1; transform: translateY(0); }2666}2667@keyframes peach-content-enter {2668  from { opacity: 0.96; transform: translateY(4px); }2669  to   { opacity: 1; transform: translateY(0); }2670}2671@keyframes peach-content-exit {2672  from { opacity: 1; transform: translateY(0); }2673  to   { opacity: 0.92; transform: translateY(-3px); }2674}2675@keyframes peach-screen-enter {2676  from { opacity: 0; transform: translateY(14px); }2677  to   { opacity: 1; transform: translateY(0); }2678}2679@keyframes peach-shell-fade-in {2680  from { opacity: 0; }2681  to   { opacity: 1; }2682}2683@keyframes peach-veil-in {2684  from { opacity: 0; }2685  to   { opacity: 1; }2686}2687@keyframes peach-lock-settle {2688  0%   { transform: scale(0.9); }2689  65%  { transform: scale(1.08); }2690  100% { transform: scale(1); }2691}2692@keyframes peach-copy-confirm {2693  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2694  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); }2695}2696@keyframes peach-copy-retreat {2697  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); }2698  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2699}2700@keyframes peach-copy-flood {2701  from { opacity: 0; transform: scaleX(0.15); }2702  to   { opacity: 1; transform: scaleX(1); }2703}2704@keyframes peach-copy-icon-settle {2705  from  { transform: scale(0.84); }2706  70%   { transform: scale(1.08); }2707  to    { transform: scale(1); }2708}2709@keyframes peach-copy-sheen-retreat {2710  from { opacity: 1; transform: scaleX(1); }2711  to   { opacity: 0; transform: scaleX(0.15); }2712}2713@keyframes peach-copy-drain {2714  from { width: 100%; }2715  to   { width: 0; }2716}2717@keyframes peach-shake {2718  0%, 100% { transform: translateX(0); }2719  20%      { transform: translateX(-6px); }2720  40%      { transform: translateX(6px); }2721  60%      { transform: translateX(-4px); }2722  80%      { transform: translateX(4px); }2723}27242725@keyframes pip-pulse {2726  0% { transform: scale(1); }2727  40% { transform: scale(2.2); }2728  100% { transform: scale(1); }2729}273027312732/* ── Password generator ── */2733.peach-pwgen-body {2734  flex: 1; overflow-y: auto;2735  display: flex; flex-direction: column;2736}2737.peach-policy-badge {2738  display: flex; align-items: center;2739  padding: 6px 20px 0;2740  font-size: 10px; font-family: Inter, sans-serif;2741  color: var(--peach-t2); letter-spacing: 0.04em;2742}2743.peach-pwgen-display {2744  padding: 14px 20px 12px;2745  border-bottom: 1px solid var(--peach-t3);2746  display: flex; align-items: flex-start; gap: 10px;2747}2748.peach-pwgen-display-row {2749  display: flex;2750  align-items: flex-start;2751  gap: 8px;2752  padding-bottom: 8px;2753  border-bottom: 1px solid var(--peach-t3);2754}2755.peach-pwgen-output {2756  flex: 1; min-width: 0; margin: 0;2757  font-family: "IBM Plex Mono", monospace;2758  font-size: 13px; color: var(--peach-t0);2759  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2760  white-space: normal;2761  padding: 10px 12px;2762  background: var(--peach-t4);2763  border-radius: 6px;2764  min-height: 36px;2765}2766.peach-pwgen-output-display {2767  flex: 1;2768  min-width: 0;2769  margin: 0;2770  font-family: "Cormorant Garamond", "Times New Roman", serif;2771  font-style: italic;2772  font-weight: 300;2773  font-size: 32px;2774  line-height: 1.05;2775  color: var(--peach-t0);2776  word-break: break-all;2777  overflow-wrap: break-word;2778  white-space: normal;2779  letter-spacing: 0.02em;2780}2781.peach-pwgen-display-actions {2782  display: flex;2783  flex-direction: column;2784  gap: 4px;2785  flex-shrink: 0;2786  margin-top: 2px;2787}2788.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2789.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2790.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2791.peach-pwgen-len-num {2792  font-family: "IBM Plex Mono", monospace;2793  font-size: 12px; color: var(--peach-accent);2794}2795.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2796.peach-pwgen-toggles { display: flex; flex-direction: column; }2797.peach-pwgen-charset-pills {2798  display: flex;2799  gap: 6px;2800  flex-wrap: wrap;2801}2802.peach-pwgen-pill {2803  padding: 4px 11px;2804  border-radius: 999px;2805  border: 1px solid var(--peach-t3);2806  background: transparent;2807  color: var(--peach-t2);2808  font-family: "IBM Plex Mono", monospace;2809  font-size: 9px;2810  letter-spacing: 0.08em;2811  cursor: pointer;2812  transition: all 150ms ease;2813}2814.peach-pwgen-pill.is-on {2815  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);2816  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2817  color: var(--peach-accent);2818}2819.peach-pwgen-pill:not(.is-on):hover {2820  color: var(--peach-t1);2821  border-color: var(--peach-t2);2822}2823.peach-pwgen-use-btn {2824  width: 100%;2825  min-height: 34px;2826  border-radius: 8px;2827  margin-top: 2px;2828}2829.peach-pwgen-toggle-row {2830  display: flex; align-items: center; justify-content: space-between;2831  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);2832}2833.peach-pwgen-toggle-row:last-child { border-bottom: none; }2834.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }28352836.peach-screen-prelock {2837  z-index: 10;2838}28392840.prelock-form {2841  display: grid;2842  gap: 12px;2843}28442845/* Peach popup should not expose native scrollbars on internal panels. */2846.peach-settings-body,2847.peach-new-body,2848.peach-pwgen-body,2849.lock-screen,2850.peach-import-preview {2851  scrollbar-width: none;2852  -ms-overflow-style: none;2853  overscroll-behavior: contain;2854}2855.peach-settings-body::-webkit-scrollbar,2856.peach-new-body::-webkit-scrollbar,2857.peach-pwgen-body::-webkit-scrollbar,2858.lock-screen::-webkit-scrollbar,2859.peach-import-preview::-webkit-scrollbar {2860  width: 0;2861  height: 0;2862  display: none;2863}28642865.lock-screen {2866  height: 100%;2867  min-height: 100%;2868  overflow-y: auto;2869  padding: 18px 18px 16px;2870  gap: 14px;2871  grid-template-rows: auto auto auto 1fr auto;2872  align-content: stretch;2873  position: relative;2874  isolation: isolate;2875}2876.peach-screen.lock-screen--vault-stage {2877  display: flex;2878  flex-direction: column;2879  justify-content: flex-start;2880  gap: 18px;2881  padding: 20px 18px 18px;2882  overflow: hidden;2883}2884.peach-screen.lock-screen--vault-stage .peach-lock-panel {2885  margin-top: auto;2886}2887.lock-screen--onboarding {2888  display: flex;2889  flex-direction: column;2890  gap: 12px;2891  justify-content: flex-start;2892}28932894.lock-screen::before {2895  content: "";2896  position: absolute;2897  inset: 12px 18px auto auto;2898  width: 160px;2899  height: 160px;2900  border-radius: 999px;2901  background:2902    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%);2903  filter: blur(6px);2904  opacity: 0.7;2905  pointer-events: none;2906  z-index: 0;2907}29082909.lock-screen-header {2910  display: flex;2911  align-items: center;2912  justify-content: space-between;2913  position: relative;2914  z-index: 1;2915}29162917.lock-password-input.shake {2918  animation: peach-shake 300ms ease-in-out;2919}29202921.peach-hint-error {2922  color: rgba(220, 80, 60, 0.92);2923}29242925.peach-onboarding-headline {2926  margin: 0;2927  font-family: "Cormorant Garamond", "Times New Roman", serif;2928  font-size: 35px;2929  line-height: 0.88;2930  font-style: italic;2931  font-weight: 400;2932  max-width: 252px;2933}29342935.peach-lock-copy {2936  display: grid;2937  gap: 8px;2938  position: relative;2939  z-index: 1;2940}29412942.peach-lock-copy--onboarding {2943  gap: 10px;2944}29452946.peach-lock-hero {2947  position: relative;2948  z-index: 1;2949  display: grid;2950  gap: 8px;2951  min-height: 0;2952  padding: 4px 2px 0;2953  border: none;2954  border-radius: 0;2955  background: transparent;2956  box-shadow: none;2957}2958.peach-lock-hero-art {2959  position: absolute;2960  right: -8px;2961  top: -6px;2962  width: 120px;2963  height: 120px;2964  display: flex;2965  align-items: center;2966  justify-content: center;2967  pointer-events: none;2968  opacity: 0.12;2969  filter: saturate(0.9);2970}2971.peach-lock-hero-mark {2972  width: 100%;2973  height: 100%;2974}2975/* Peach body stays brand-peach across every accent — we don't want a2976   green or blue peach when sage/sky is selected. Leaf + stem keep the2977   sage tint because a real peach has a sage leaf. */2978.peach-lock-hero-mark path:nth-child(2),2979.peach-lock-hero-mark path:nth-child(3) {2980  stroke: rgba(123, 144, 96, 0.88);2981  fill: rgba(123, 144, 96, 0.88);2982}2983.peach-lock-hero > *:not(.peach-lock-hero-art) {2984  position: relative;2985  z-index: 1;2986}29872988.peach-lock-eyebrow {2989  display: inline-flex;2990  align-items: center;2991  width: fit-content;2992  padding: 4px 9px;2993  border-radius: 999px;2994  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);2995  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2996  color: var(--peach-t0);2997  font-family: "IBM Plex Mono", monospace;2998  font-size: 8px;2999  letter-spacing: 0.18em;3000  text-transform: uppercase;3001}30023003.peach-lock-label-row {3004  display: flex;3005  align-items: center;3006  justify-content: space-between;3007  margin-bottom: 0;3008}30093010.peach-lock-reveal-btn {3011  display: inline-flex;3012  align-items: center;3013  gap: 4px;3014  background: none;3015  border: none;3016  cursor: pointer;3017  font-family: "IBM Plex Mono", monospace;3018  font-size: 9px;3019  letter-spacing: 0.06em;3020  color: var(--peach-t2);3021  padding: 2px 0;3022  transition: color 150ms ease;3023}30243025.peach-lock-reveal-btn:hover {3026  color: var(--peach-t1);3027}30283029.peach-lock-warning {3030  color: rgba(220, 80, 60, 0.85) !important;3031  line-height: 1.5;3032}30333034.peach-onboarding-cards {3035  display: grid;3036  gap: 8px;3037  position: relative;3038  z-index: 1;3039}30403041.peach-lock-panel {3042  position: relative;3043  z-index: 1;3044  display: grid;3045  gap: 9px;3046  padding: 14px 16px 15px;3047  border-radius: 18px;3048  border: 1px solid var(--peach-t3);3049  background:3050    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3051  box-shadow:3052    inset 0 1px 0 rgba(240, 232, 216, 0.04),3053    0 12px 28px rgba(0, 0, 0, 0.12);3054}30553056.peach-lock-panel--secondary {3057  gap: 12px;3058}30593060.peach-lock-panel-header {3061  display: flex;3062  align-items: baseline;3063  justify-content: space-between;3064  gap: 12px;3065}30663067.peach-lock-option-grid {3068  display: grid;3069  gap: 10px;3070}30713072.peach-lock-option {3073  width: 100%;3074  display: grid;3075  gap: 6px;3076  padding: 14px 15px;3077  border-radius: 16px;3078  border: 1px solid rgba(240, 232, 216, 0.08);3079  background: rgba(240, 232, 216, 0.02);3080  color: var(--peach-t0);3081  text-align: left;3082  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3083}30843085.peach-lock-option:hover {3086  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3087  background: rgba(240, 232, 216, 0.04);3088  transform: translateY(-1px);3089}30903091.peach-lock-option-title {3092  font-size: 12px;3093  color: var(--peach-t0);3094}30953096.peach-lock-option-copy {3097  font-size: 11px;3098  line-height: 1.55;3099  color: var(--peach-t1);3100}31013102.peach-onboarding-stack {3103  margin-top: 2px;3104}3105.peach-lock-panel-footer {3106  display: grid;3107  gap: 6px;3108  margin-top: 2px;3109  padding-top: 10px;3110  border-top: 1px solid rgba(240, 232, 216, 0.06);3111}31123113/* Restore picker panel — method option cards */3114.peach-lock-panel--restore {3115  gap: 10px;3116}3117.peach-lock-option--history {3118  border-color: rgba(240, 232, 216, 0.06);3119  opacity: 0.85;3120}31213122/* Snapshot restore panel */3123.peach-snapshot-panel {3124  gap: 10px;3125  overflow-y: auto;3126  max-height: 340px;3127}3128.peach-snapshot-list {3129  display: flex;3130  flex-direction: column;3131  gap: 4px;3132}3133.peach-snapshot-row {3134  display: flex;3135  align-items: center;3136  justify-content: space-between;3137  width: 100%;3138  padding: 8px 10px;3139  border-radius: 8px;3140  border: 1px solid rgba(240, 232, 216, 0.07);3141  background: transparent;3142  cursor: pointer;3143  transition: border-color 120ms, background 120ms;3144  text-align: left;3145  gap: 8px;3146}3147.peach-snapshot-row:hover {3148  border-color: rgba(240, 232, 216, 0.14);3149  background: rgba(240, 232, 216, 0.03);3150}3151.peach-snapshot-row.is-selected {3152  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3153  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3154}3155.peach-snapshot-time {3156  font-size: 11.5px;3157  color: var(--peach-t0);3158  flex: 1;3159}3160.peach-snapshot-count {3161  font-family: "IBM Plex Mono", monospace;3162  font-size: 10px;3163  color: var(--peach-t2);3164  flex-shrink: 0;3165}3166.peach-snapshot-confirm {3167  display: flex;3168  flex-direction: column;3169  gap: 8px;3170  padding-top: 10px;3171  border-top: 1px solid rgba(240, 232, 216, 0.06);3172}3173.peach-snapshot-warning {3174  display: flex;3175  align-items: flex-start;3176  gap: 6px;3177  font-size: 10.5px;3178  color: rgba(220, 80, 60, 0.85);3179  line-height: 1.55;3180}3181.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3182.peach-snapshot-confirm-row {3183  display: flex;3184  gap: 6px;3185  align-items: center;3186}3187.peach-snapshot-restore-btn {3188  width: 100%;3189}3190.peach-lock-hero--unlock .peach-lock-hero-art {3191  width: 112px;3192  height: 112px;3193  right: 0;3194  top: 2px;3195  opacity: 0.1;3196}31973198.peach-card {3199  border: 1px solid var(--peach-t3);3200  border-radius: 18px;3201  background:3202    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3203  box-shadow:3204    inset 0 0 0 1px var(--peach-border-accent),3205    inset 0 1px 0 rgba(240, 232, 216, 0.04),3206    0 12px 32px rgba(0, 0, 0, 0.14);3207  overflow: hidden;3208}32093210.peach-card-active {3211  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3212  box-shadow:3213    inset 0 1px 0 rgba(240, 232, 216, 0.05),3214    0 16px 38px rgba(0, 0, 0, 0.18),3215    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3216}32173218.peach-card-disabled {3219  opacity: 0.72;3220}32213222.peach-card-header {3223  width: 100%;3224  padding: 13px 16px 11px;3225  background: transparent;3226  color: var(--peach-t0);3227  display: flex;3228  justify-content: space-between;3229  align-items: center;3230  text-align: left;3231  font-size: 12px;3232}32333234.peach-card-body {3235  padding: 0 16px 16px;3236  display: grid;3237  gap: 9px;3238}32393240.peach-card-tag {3241  color: var(--peach-t2);3242  font-family: "IBM Plex Mono", monospace;3243  font-size: 9px;3244  letter-spacing: 0.12em;3245  text-transform: uppercase;3246}32473248.peach-empty-copy {3249  display: grid;3250  gap: 6px;3251  color: var(--peach-t1);3252  font-size: 13px;3253}32543255.peach-lock-submit {3256  width: 100%;3257  box-shadow:3258    0 1px 0 rgba(255,255,255,0.10) inset,3259    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3260    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3261    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3262}32633264.peach-lock-secondary {3265  width: 100%;3266  border-color: var(--peach-t3);3267  background: rgba(240, 232, 216, 0.02);3268}32693270.peach-lock-secondary:hover {3271  background: rgba(240, 232, 216, 0.04);3272}32733274.peach-lock-note {3275  max-width: none;3276  line-height: 1.55;3277  margin: 0;3278}32793280.peach-overlay-action {3281  font-size: 10px;3282  padding: 4px 8px;3283  letter-spacing: 0.06em;3284  min-width: 44px;3285  text-align: center;3286}32873288.peach-overlay-spacer {3289  width: 32px;3290}32913292.peach-inline-action {3293  flex-shrink: 0;3294  font-size: 9px;3295  letter-spacing: 0.1em;3296  text-transform: uppercase;3297  padding: 4px 7px;3298}3299.peach-password-toggle-btn {3300  display: inline-flex;3301  align-items: center;3302  justify-content: center;3303  min-width: 30px;3304  min-height: 26px;3305  padding: 0 7px;3306  border: 1px solid var(--peach-t3);3307  border-radius: 999px;3308  background: rgba(240, 232, 216, 0.04);3309  color: var(--peach-t2);3310  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3311}3312.peach-password-toggle-btn:hover {3313  border-color: var(--peach-t2);3314  color: var(--peach-t0);3315  background: rgba(240, 232, 216, 0.06);3316}33173318.peach-new-textarea {3319  width: 100%;3320  min-height: 88px;3321  resize: vertical;3322  border: 0;3323  outline: none;3324  background: transparent;3325  color: var(--peach-t1);3326  font-family: "IBM Plex Mono", monospace;3327  font-size: 12px;3328  line-height: 1.65;3329  caret-color: var(--peach-accent);3330}33313332.peach-new-textarea::placeholder {3333  color: var(--peach-t2);3334  opacity: 0.7;3335}33363337.peach-settings-actions {3338  display: grid;3339  gap: 8px;3340}33413342.peach-sync-section-label {3343  font-size: 11px;3344  color: var(--peach-t2);3345  text-transform: uppercase;3346  letter-spacing: 0.05em;3347}33483349.peach-sync-device-row {3350  display: flex;3351  justify-content: space-between;3352  align-items: center;3353  padding: 6px 0;3354  border-bottom: 1px solid var(--peach-t3);3355}33563357.peach-sync-device-info {3358  display: flex;3359  flex-direction: column;3360  gap: 2px;3361}33623363.peach-sync-device-name {3364  font-size: 13px;3365  color: var(--peach-t0);3366}33673368.peach-sync-device-meta {3369  font-size: 11px;3370  color: var(--peach-t2);3371}33723373.peach-sync-status-dot {3374  display: inline-block;3375  width: 8px;3376  height: 8px;3377  border-radius: 50%;3378  vertical-align: middle;3379}33803381.peach-sync-remove-btn {3382  color: var(--peach-breach);3383}33843385.peach-import-preview {3386  margin-bottom: 12px;3387  max-height: 152px;3388  overflow-y: auto;3389  border: 1px solid var(--peach-t3);3390  border-radius: 10px;3391  padding: 8px 10px;3392  display: grid;3393  gap: 8px;3394  background: rgba(240, 232, 216, 0.02);3395}33963397.peach-import-preview-row {3398  display: flex;3399  justify-content: space-between;3400  gap: 10px;3401  font-size: 11px;3402  color: var(--peach-t1);3403}34043405.peach-import-preview-title {3406  color: var(--peach-t0);3407  flex: 1;3408  min-width: 0;3409  overflow: hidden;3410  text-overflow: ellipsis;3411  white-space: nowrap;3412}34133414.peach-import-preview-meta {3415  color: var(--peach-t2);3416  flex-shrink: 0;3417  max-width: 42%;3418  overflow: hidden;3419  text-overflow: ellipsis;3420  white-space: nowrap;3421}34223423.peach-import-preview-more {3424  color: var(--peach-t2);3425  font-size: 10px;3426}34273428.peach-restore-copy {3429  margin: 0;3430  color: var(--peach-t1);3431  font-size: 11px;3432  line-height: 1.6;3433}34343435.peach-restore-warning {3436  padding: 10px 12px;3437  border-radius: 12px;3438  border: 1px solid rgba(220, 80, 60, 0.22);3439  background: rgba(220, 80, 60, 0.08);3440  color: rgba(240, 232, 216, 0.86);3441  font-size: 11px;3442  line-height: 1.55;3443}34443445.peach-provider-chips {3446  display: flex;3447  flex-wrap: wrap;3448  gap: 6px;3449}34503451.peach-provider-chip {3452  display: inline-flex;3453  align-items: center;3454  padding: 5px 8px;3455  border-radius: 999px;3456  border: 1px solid var(--peach-t3);3457  background: rgba(240, 232, 216, 0.02);3458  color: var(--peach-t1);3459  font-family: "IBM Plex Mono", monospace;3460  font-size: 8px;3461  letter-spacing: 0.08em;3462  text-transform: uppercase;3463}34643465.peach-restore-file,3466.peach-restore-input {3467  width: 100%;3468  border-radius: 10px;3469  border: 1px solid var(--peach-t3);3470  background: var(--peach-s2);3471  color: var(--peach-t0);3472  font-size: 12px;3473}34743475.peach-restore-file {3476  padding: 9px 10px;3477}34783479.peach-restore-file::file-selector-button {3480  margin-right: 10px;3481  padding: 7px 10px;3482  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3483  border-radius: 999px;3484  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3485  color: var(--peach-t0);3486  font-size: 10px;3487  letter-spacing: 0.08em;3488  text-transform: uppercase;3489  cursor: pointer;3490}34913492.peach-restore-input {3493  padding: 10px 12px;3494}34953496.peach-auth-grid {3497  display: grid;3498  gap: 10px;3499}35003501.peach-import-summary {3502  color: var(--peach-t1);3503  font-size: 12px;3504  line-height: 1.6;3505  margin-bottom: 12px;3506}35073508.peach-restore-error {3509  color: rgba(220, 80, 60, 0.95);3510  font-size: 12px;3511  line-height: 1.55;3512}35133514.peach-cjk-qr-panel {3515  margin-top: 14px;3516  padding: 12px;3517  border-radius: 16px;3518  border: 1px solid var(--peach-t3);3519  background: rgba(240, 232, 216, 0.02);3520  display: grid;3521  gap: 10px;3522}35233524.peach-cjk-qr-frame {3525  display: grid;3526  place-items: center;3527  min-height: 212px;3528  border-radius: 14px;3529  background: #fff;3530  overflow: hidden;3531}35323533.peach-cjk-qr-frame svg {3534  display: block;3535  width: 196px;3536  height: 196px;3537}35383539.peach-cjk-qr-error,3540.peach-cjk-qr-caption {3541  color: var(--peach-t1);3542  font-size: 11px;3543  line-height: 1.55;3544}35453546.peach-cjk-qr-card {3547  max-width: 400px;3548  margin: auto;3549}35503551.peach-cjk-qr-body {3552  padding: 0 20px 20px;3553  text-align: center;3554}35553556.peach-cjk-qr-hint {3557  font-size: 11px;3558  color: var(--peach-t2);3559  margin: 0 0 14px;3560}35613562.peach-cjk-qr-image {3563  border-radius: 4px;3564  display: block;3565  margin: 0 auto;3566  width: 100%;3567  max-width: 320px;3568  height: auto;3569}35703571.peach-pro-badge {3572  padding: 2px 6px;3573  border-radius: 999px;3574  font-family: var(--font-ui);3575  font-size: 10px;3576  letter-spacing: 0.08em;3577  text-transform: uppercase;3578  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3579  color: var(--peach-accent);3580}35813582.peach-loading {3583  position: absolute;3584  inset: 0;3585  display: flex;3586  align-items: center;3587  justify-content: center;3588  background: var(--bg);3589  animation: peach-loading-pulse 1.2s ease-in-out infinite;3590}35913592@keyframes peach-loading-pulse {3593  0%, 100% { opacity: 0.6; }3594  50% { opacity: 1; }3595}35963597/* ── Health Dashboard ─────────────────────────────────────────────────── */3598.peach-health-body {3599  flex: 1;3600  overflow-y: auto;3601  display: flex;3602  flex-direction: column;3603}36043605.peach-health-summary {3606  padding: 10px 16px 6px;3607  font-family: "IBM Plex Mono", monospace;3608  font-size: 11px;3609}3610.peach-health-summary-warn { color: rgba(220,80,60,0.9); }3611.peach-health-summary-ok { color: var(--peach-t2); }36123613.peach-health-check-row {3614  padding: 0 16px 10px;3615}3616.peach-health-check-btn {3617  width: 100%;3618  display: flex;3619  align-items: center;3620  justify-content: center;3621}36223623.peach-health-sections {3624  flex: 1;3625  display: flex;3626  flex-direction: column;3627}36283629.peach-health-section {3630  border-bottom: 1px solid var(--peach-t3);3631}36323633.peach-health-section-header {3634  width: 100%;3635  display: flex;3636  align-items: center;3637  justify-content: space-between;3638  padding: 9px 16px;3639  background: transparent;3640  cursor: pointer;3641  color: var(--peach-t0);3642}36433644.peach-health-section-title-row {3645  display: flex;3646  align-items: center;3647  gap: 8px;3648}36493650.peach-health-count-badge {3651  display: inline-flex;3652  align-items: center;3653  justify-content: center;3654  min-width: 20px;3655  height: 18px;3656  padding: 0 5px;3657  border-radius: 999px;3658  background: rgba(220,80,60,0.15);3659  border: 1px solid rgba(220,80,60,0.25);3660  font-family: "IBM Plex Mono", monospace;3661  font-size: 9px;3662  color: rgba(220,80,60,0.9);3663}36643665.peach-health-section-title {3666  font-family: "IBM Plex Mono", monospace;3667  font-size: 11px;3668  text-transform: uppercase;3669  letter-spacing: 0.1em;3670  color: var(--peach-t1);3671}36723673.peach-health-chevron {3674  color: var(--peach-t2);3675  transition: transform 200ms ease;3676  flex-shrink: 0;3677}3678.peach-health-chevron.is-expanded {3679  transform: rotate(180deg);3680}36813682.peach-health-section-body {3683  padding: 0 16px 10px;3684  display: flex;3685  flex-direction: column;3686  gap: 4px;3687}36883689.peach-health-row {3690  display: flex;3691  align-items: flex-start;3692  justify-content: space-between;3693  gap: 8px;3694  padding: 6px 8px;3695  border-radius: 8px;3696  background: rgba(240,232,216,0.02);3697}36983699.peach-health-row-info {3700  flex: 1;3701  min-width: 0;3702  display: flex;3703  flex-direction: column;3704  gap: 2px;3705}37063707.peach-health-row-name {3708  font-family: "Cormorant Garamond", serif;3709  font-size: 15px;3710  font-style: italic;3711  font-weight: 400;3712  color: var(--peach-t0);3713  white-space: nowrap;3714  overflow: hidden;3715  text-overflow: ellipsis;3716}37173718.peach-health-row-meta {3719  font-family: "IBM Plex Mono", monospace;3720  font-size: 9px;3721  color: var(--peach-t2);3722  letter-spacing: 0.05em;3723}37243725.peach-health-fix-btn {3726  font-size: 9px;3727  letter-spacing: 0.08em;3728  text-transform: uppercase;3729  padding: 4px 7px;3730  flex-shrink: 0;3731  display: flex;3732  align-items: center;3733}37343735.peach-health-empty {3736  font-family: "IBM Plex Mono", monospace;3737  font-size: 10px;3738  color: var(--peach-t2);3739  padding: 6px 0;3740}37413742.peach-health-loading {3743  font-family: "IBM Plex Mono", monospace;3744  font-size: 10px;3745  color: var(--peach-t2);3746  padding: 6px 0;3747  display: flex;3748  align-items: center;3749  gap: 6px;3750}37513752.peach-health-loading::before {3753  content: "";3754  width: 10px;3755  height: 10px;3756  border: 1.5px solid var(--peach-t3);3757  border-top-color: var(--peach-accent);3758  border-radius: 50%;3759  animation: peach-spin 600ms linear infinite;3760}37613762@keyframes peach-spin {3763  to { transform: rotate(360deg); }3764}37653766.peach-spinner {3767  width: 32px;3768  height: 32px;3769  border: 2px solid var(--peach-s2);3770  border-top-color: var(--peach-accent);3771  border-radius: 50%;3772  margin: 0 auto 16px;3773  animation: peach-spin 0.8s linear infinite;3774}37753776.peach-progress-screen {3777  text-align: center;3778  padding: 32px 16px;3779}37803781.peach-progress-screen-title {3782  font-size: 13px;3783  color: var(--peach-t0);3784  margin-bottom: 16px;3785}37863787.peach-progress-screen-stage {3788  font-size: 11px;3789  color: var(--peach-t2);3790  min-height: 14px;3791}37923793.peach-progress-screen-note {3794  font-size: 10px;3795  color: var(--peach-t2);3796  margin-top: 8px;3797}37983799.peach-pairing-body {3800  flex: 1;3801  overflow-y: auto;3802  display: flex;3803  flex-direction: column;3804}38053806.peach-pairing-content {3807  flex: 1;3808  display: flex;3809  flex-direction: column;3810  align-items: center;3811  justify-content: center;3812  gap: 14px;3813  padding: 28px 20px;3814  text-align: center;3815}38163817.peach-pairing-headline {3818  font-family: var(--font-display);3819  font-style: italic;3820  font-weight: 300;3821  font-size: 28px;3822  color: var(--peach-t0);3823  margin: 0;3824  line-height: 1;3825}38263827.peach-pairing-subline {3828  font-size: 12px;3829  color: var(--peach-t2);3830  max-width: 220px;3831  line-height: 1.5;3832  margin: 0;3833}38343835.peach-pairing-subline--center {3836  text-align: center;3837}38383839.peach-pairing-code-display {3840  display: flex;3841  gap: 6px;3842}38433844.peach-pairing-code-digit {3845  display: flex;3846  align-items: center;3847  justify-content: center;3848  width: 36px;3849  height: 48px;3850  background: var(--peach-s2);3851  border: 1px solid var(--peach-t3);3852  border-radius: 6px;3853  font-family: var(--font-mono);3854  font-size: 22px;3855  color: var(--peach-t0);3856  letter-spacing: 0;3857}38583859.peach-pairing-countdown-ring {3860  position: relative;3861  display: inline-flex;3862  align-items: center;3863  justify-content: center;3864}38653866.peach-pairing-countdown-num {3867  position: absolute;3868  font-family: var(--font-mono);3869  font-size: 14px;3870  color: var(--peach-t1);3871}38723873.peach-pairing-ring-track {3874  fill: none;3875  stroke: var(--peach-t3);3876  stroke-width: 2;3877}38783879.peach-pairing-ring-progress {3880  fill: none;3881  stroke: var(--peach-accent);3882  stroke-width: 2;3883  stroke-linecap: round;3884  transform: rotate(-90deg);3885  transform-origin: 50% 50%;3886  transition: stroke-dashoffset 0.5s linear;3887}38883889.peach-pairing-code-inputs {3890  display: flex;3891  gap: 8px;3892}38933894.peach-pairing-code-box {3895  width: 36px;3896  height: 48px;3897  text-align: center;3898  background: var(--peach-s2);3899  border: 1px solid var(--peach-t3);3900  border-radius: 6px;3901  font-family: var(--font-mono);3902  font-size: 20px;3903  color: var(--peach-t0);3904  outline: none;3905  transition: border-color 120ms ease;3906}39073908.peach-pairing-code-box:focus {3909  border-color: var(--peach-accent);3910}39113912.peach-pairing-code-box.has-error {3913  border-color: rgba(220, 80, 60, 0.45);3914}39153916.peach-pairing-status {3917  display: flex;3918  align-items: center;3919  gap: 8px;3920  margin: 0;3921  font-size: 12px;3922  color: var(--peach-t1);3923}39243925.peach-pairing-error {3926  margin: 0;3927  font-size: 11px;3928  color: var(--peach-breach);3929}39303931.peach-pairing-error-msg {3932  color: var(--peach-t1);3933}39343935.peach-pairing-spinner {3936  width: 12px;3937  height: 12px;3938  border: 1.5px solid var(--peach-t3);3939  border-top-color: var(--peach-accent);3940  border-radius: 50%;3941  animation: peach-spin 0.8s linear infinite;3942}39433944.peach-pairing-success-icon,3945.peach-pairing-error-icon,3946.peach-pairing-hero {3947  display: inline-flex;3948  align-items: center;3949  justify-content: center;3950}39513952/* Tag chips */3953.peach-tag-chip {3954  display: inline-flex;3955  align-items: center;3956  gap: 4px;3957  padding: 3px 8px;3958  border-radius: 999px;3959  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3960  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3961  color: rgba(240, 232, 216, 0.85);3962  font-family: "IBM Plex Mono", monospace;3963  font-size: 10px;3964  letter-spacing: 0.04em;3965}39663967.peach-tag-chip-remove {3968  background: transparent;3969  border: none;3970  color: inherit;3971  opacity: 0.6;3972  cursor: pointer;3973  padding: 0;3974  font-size: 12px;3975  line-height: 1;3976}39773978.peach-tag-chip-remove:hover {3979  opacity: 1;3980}39813982/* Tag input */3983.peach-tag-input-wrap {3984  border-bottom: 1px solid var(--peach-t3);3985}39863987.peach-tag-suggestions {3988  display: flex;3989  flex-wrap: wrap;3990  gap: 4px;3991  padding: 6px 0;3992}39933994.peach-tag-suggestion {3995  padding: 2px 8px;3996  border-radius: 999px;3997  border: 1px solid var(--peach-t3);3998  background: var(--peach-s2);3999  color: var(--peach-t1);4000  font-family: "IBM Plex Mono", monospace;4001  font-size: 10px;4002  cursor: pointer;4003  transition: border-color 80ms ease, background 80ms ease;4004}40054006.peach-tag-suggestion:hover {4007  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4008  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4009}40104011/* Tag filter strip */4012.peach-tag-filter-strip {4013  border-bottom: 1px solid var(--peach-t3);4014  flex-shrink: 0;4015}40164017.peach-tag-filter-chip {4018  display: inline-flex;4019  align-items: center;4020  padding: 4px 10px;4021  border-radius: 999px;4022  border: 1px solid var(--peach-t3);4023  background: transparent;4024  color: var(--peach-t2);4025  font-family: "IBM Plex Mono", monospace;4026  font-size: 9px;4027  letter-spacing: 0.06em;4028  text-transform: uppercase;4029  cursor: pointer;4030  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4031  white-space: nowrap;4032}40334034.peach-tag-filter-chip:hover {4035  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4036  color: var(--peach-t1);4037}40384039.peach-tag-filter-chip.is-selected {4040  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4041  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4042  color: rgba(240, 232, 216, 0.9);4043}40444045/* ─────────────────────────────────────────────────────────────────────────4046   v1.4.12 additions4047   ─────────────────────────────────────────────────────────────────────── */40484049/* Sort bar */4050.peach-sort-bar {4051  display: flex;4052  align-items: center;4053  gap: 4px;4054  padding: 5px 12px;4055  border-bottom: 1px solid var(--peach-t3);4056  flex-shrink: 0;4057  overflow-x: auto;4058  scrollbar-width: none;4059}40604061.peach-sort-btn {4062  padding: 2px 9px;4063  border-radius: 999px;4064  border: 1px solid transparent;4065  background: transparent;4066  color: var(--peach-t2);4067  font-family: "IBM Plex Mono", monospace;4068  font-size: 9px;4069  letter-spacing: 0.07em;4070  text-transform: uppercase;4071  cursor: pointer;4072  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4073  white-space: nowrap;4074}40754076.peach-sort-btn:hover {4077  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4078  color: var(--peach-t1);4079}40804081.peach-sort-btn.is-active {4082  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4083  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4084  color: rgba(240, 232, 216, 0.9);4085}40864087.peach-sort-domain-hint {4088  margin-left: auto;4089  font-family: "IBM Plex Mono", monospace;4090  font-size: 9px;4091  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4092  white-space: nowrap;4093  overflow: hidden;4094  text-overflow: ellipsis;4095  max-width: 110px;4096}40974098/* Tab-match badge on entry rows */4099.peach-tab-match-badge {4100  display: inline-block;4101  width: 6px;4102  height: 6px;4103  border-radius: 50%;4104  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4105  margin-left: 5px;4106  vertical-align: middle;4107  flex-shrink: 0;4108  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4109}41104111.peach-entry-row.is-tab-match {4112  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4113  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4114}41154116.peach-entry-row.is-tab-match:hover {4117  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4118}41194120/* Entry list stagger entrance */4121@keyframes peach-entry-fadein {4122  from { opacity: 0; transform: translateY(4px); }4123  to   { opacity: 1; transform: translateY(0); }4124}41254126.peach-vault-list .peach-entry-row {4127  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4128  content-visibility: auto;4129  contain-intrinsic-size: auto 44px;4130}41314132/* Button press micro-interaction */4133.peach-btn:active {4134  transform: scale(0.95);4135  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4136}41374138.peach-sort-btn:active,4139.peach-tag-filter-chip:active {4140  transform: scale(0.93);4141  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4142}41434144/* Password strength bar (Lock view + shared) */4145.peach-password-strength {4146  display: flex;4147  align-items: center;4148  gap: 8px;4149  margin-top: 6px;4150}41514152.peach-strength-bar {4153  flex: 1;4154  height: 3px;4155  border-radius: 2px;4156  background: var(--peach-t3);4157  overflow: hidden;4158}41594160.peach-strength-fill {4161  height: 100%;4162  border-radius: 2px;4163  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4164              background 300ms ease;4165}41664167.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4168.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4169.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4170.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }41714172.peach-strength-label {4173  font-family: "IBM Plex Mono", monospace;4174  font-style: italic;4175  font-size: 9px;4176  font-weight: 300;4177  letter-spacing: 0.06em;4178  color: var(--peach-t2);4179  min-width: 36px;4180  text-align: right;4181}41824183.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4184.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4185.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4186.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }41874188/* Duress form */4189.peach-duress-status {4190  padding: 2px 8px;4191  border-radius: 999px;4192  border: 1px solid var(--peach-t3);4193  font-family: "IBM Plex Mono", monospace;4194  font-size: 9px;4195  letter-spacing: 0.07em;4196  text-transform: uppercase;4197  color: var(--peach-t2);4198  flex-shrink: 0;4199}42004201.peach-duress-status.is-active {4202  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4203  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4204  color: rgba(240, 232, 216, 0.85);4205}42064207.peach-duress-form {4208  padding: 8px 0 4px;4209  display: flex;4210  flex-direction: column;4211  gap: 6px;4212}42134214.peach-duress-form .peach-label {4215  margin-top: 4px;4216}42174218.peach-duress-actions {4219  display: flex;4220  gap: 6px;4221  align-items: center;4222  margin-top: 4px;4223}42244225.peach-duress-actions .peach-btn:first-child {4226  margin-right: auto;4227}42284229/* Improved overlay spring entrance */4230.peach-overlay-view.ov-enter-up {4231  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4232}42334234@keyframes ov-enter-up-spring {4235  from { opacity: 0; transform: translateY(16px) scale(0.98); }4236  to   { opacity: 1; transform: translateY(0) scale(1); }4237}42384239.peach-overlay-view.ov-enter-right {4240  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4241}42424243@keyframes ov-enter-right-spring {4244  from { opacity: 0; transform: translateX(18px) scale(0.98); }4245  to   { opacity: 1; transform: translateX(0) scale(1); }4246}42474248/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4249/* Used when CJKImportView or MainImportView renders during onboarding4250   (no vault yet). Animates like a lock-screen transition. */4251.peach-lock-view {4252  position: absolute;4253  inset: 0;4254  display: flex;4255  flex-direction: column;4256  background:4257    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4258    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4259    var(--peach-bg);4260  z-index: 2;4261  overflow: hidden;4262  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4263}42644265.peach-lock-view-header {4266  display: flex;4267  align-items: center;4268  justify-content: space-between;4269  padding: 16px 18px 12px;4270  flex-shrink: 0;4271}42724273/* ───────── Settings: auto-lock select ───────── */4274.peach-settings-select {4275  font-family: "IBM Plex Mono", monospace;4276  font-size: 11px;4277  background: transparent;4278  border: 1px solid var(--peach-t3);4279  border-radius: 4px;4280  color: var(--peach-t1);4281  padding: 3px 6px;4282  cursor: pointer;4283  outline: none;4284}4285.peach-settings-select:focus {4286  border-color: var(--peach-accent);4287}42884289/* ───────── Duress status pill (new polished) ───────── */4290.peach-duress-status-pill {4291  font-family: "IBM Plex Mono", monospace;4292  font-size: 9px;4293  text-transform: uppercase;4294  letter-spacing: 0.12em;4295  padding: 2px 8px;4296  border-radius: 12px;4297  background: var(--peach-t3);4298  color: var(--peach-t2);4299  flex-shrink: 0;4300}4301.peach-duress-status-pill.is-active {4302  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4303  color: var(--peach-accent);4304}43054306/* ───────── Entry advanced disclosure (canary) ───────── */4307.peach-entry-advanced {4308  margin-top: 12px;4309  border-top: 1px solid var(--peach-t3);4310  padding-top: 10px;4311  position: relative;4312  z-index: 1;4313}4314.peach-entry-advanced-toggle {4315  display: flex;4316  align-items: center;4317  justify-content: space-between;4318  width: 100%;4319  background: transparent;4320  border: none;4321  cursor: pointer;4322  padding: 0;4323  color: var(--peach-t2);4324}4325.peach-canary-section {4326  margin-top: 10px;4327  display: grid;4328  gap: 6px;4329}43304331/* ───────── Import: merge/replace radio choices ───────── */4332.peach-import-choice {4333  display: flex;4334  align-items: flex-start;4335  gap: 10px;4336  padding: 8px 10px;4337  border: 1px solid var(--peach-t3);4338  border-radius: 10px;4339  cursor: pointer;4340  margin-bottom: 6px;4341  transition: border-color 120ms ease, background 120ms ease;4342}4343.peach-import-choice:hover {4344  border-color: var(--peach-accent);4345}4346.peach-import-choice input[type="radio"] {4347  margin-top: 3px;4348  accent-color: var(--peach-accent);4349  flex-shrink: 0;4350}4351.peach-import-choice-main {4352  display: flex;4353  flex-direction: column;4354  gap: 2px;4355  min-width: 0;4356}4357.peach-import-choice-label {4358  font-size: 12px;4359  color: var(--peach-t0);4360}4361.peach-import-choice-sub {4362  font-size: 11px;4363  color: var(--peach-t2);4364  line-height: 1.5;4365}43664367/* ───────── Export: success confirmation strip ───────── */4368.peach-export-success {4369  display: flex;4370  align-items: flex-start;4371  gap: 10px;4372  padding: 12px;4373  border-radius: 12px;4374  border: 1px solid rgba(150, 175, 110, 0.3);4375  background: rgba(150, 175, 110, 0.08);4376  color: var(--peach-t0);4377  font-size: 12px;4378  line-height: 1.55;4379}4380.peach-export-success-check {4381  color: rgba(150, 175, 110, 0.9);4382  font-size: 14px;4383  flex-shrink: 0;4384}43854386/* ── Trash view ──────────────────────────────────────────────────────── */4387.peach-trash-entry-row {4388  display: flex;4389  align-items: center;4390  justify-content: space-between;4391  gap: 8px;4392  padding: 8px 0;4393  border-bottom: 1px solid var(--peach-t3);4394}4395.peach-trash-entry-row:last-child { border-bottom: none; }4396.peach-trash-entry-info {4397  flex: 1;4398  min-width: 0;4399  display: flex;4400  flex-direction: column;4401  gap: 2px;4402}4403.peach-trash-entry-title {4404  font-size: 12px;4405  color: var(--peach-t1);4406  overflow: hidden;4407  text-overflow: ellipsis;4408  white-space: nowrap;4409}4410.peach-trash-entry-meta {4411  font-family: var(--font-mono);4412  font-size: 9px;4413  color: var(--peach-t2);4414  letter-spacing: 0.06em;4415}4416.peach-trash-entry-actions {4417  display: flex;4418  align-items: center;4419  gap: 4px;4420  flex-shrink: 0;4421}44224423/* ── Settings shortcuts grid ─────────────────────────────────────────── */4424.peach-shortcuts-grid {4425  display: grid;4426  grid-template-columns: auto 1fr;4427  gap: 6px 12px;4428  align-items: center;4429  padding: 4px 0;4430}4431.peach-shortcut-key {4432  font-family: var(--font-mono);4433  font-size: 10px;4434  color: var(--peach-t0);4435  background: var(--peach-t3);4436  border-radius: 4px;4437  padding: 2px 6px;4438  white-space: nowrap;4439  text-align: center;4440}4441.peach-shortcut-desc {4442  font-size: 11px;4443  color: var(--peach-t1);4444}44454446/* ── Sort bar trash button ───────────────────────────────────────────── */4447.peach-sort-trash-btn {4448  display: flex;4449  align-items: center;4450  justify-content: center;4451  padding: 3px 5px;4452  background: transparent;4453  border: none;4454  cursor: pointer;4455  color: var(--peach-t2);4456  border-radius: 4px;4457  transition: color 140ms ease, background 140ms ease;4458}4459.peach-sort-trash-btn:hover {4460  color: var(--peach-t1);4461  background: var(--peach-t3);4462}4463.peach-sort-trash-btn.is-active {4464  color: var(--peach-accent);4465}44664467/* Accent color picker */4468.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4469.peach-accent-picker {4470  display: flex;4471  flex-wrap: wrap;4472  gap: 7px;4473  padding: 2px 0;4474}4475.peach-accent-swatch {4476  width: 22px;4477  height: 22px;4478  border-radius: 50%;4479  border: 2px solid transparent;4480  cursor: pointer;4481  padding: 0;4482  transition: transform 100ms;4483  outline-offset: 2px;4484}4485.peach-accent-swatch:hover { transform: scale(1.15); }4486.peach-accent-swatch.is-active {4487  border-color: var(--peach-t0);4488  transform: scale(1.1);4489}44904491/* ── Card entry styles ───────────────────────────────────────── */4492.peach-card-number {4493  font-family: var(--peach-mono);4494  letter-spacing: 0.08em;4495}44964497.peach-card-network-badge {4498  font-size: 10px;4499  padding: 1px 5px;4500  border-radius: 4px;4501  border: 0.5px solid var(--peach-border);4502  color: var(--peach-text-dim);4503  margin-left: 6px;4504  vertical-align: middle;4505}45064507.peach-card-expiry-row {4508  display: flex;4509  align-items: center;4510  gap: 8px;4511}45124513.peach-card-expiry-sep {4514  color: var(--peach-text-dim);4515}