popup.css

156.4 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, 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: var(--font-display);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  padding-bottom: 0.12em;300  font-family: var(--font-display);301  font-style: italic; font-weight: 400;302  font-size: 44px; line-height: 0.95;303  color: var(--peach-t0);304  display: -webkit-box;305  -webkit-line-clamp: 2;306  -webkit-box-orient: vertical;307  overflow: hidden;308  text-wrap: balance;309}310.peach-entry-name--lg { font-size: 40px; }311.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }312.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }313.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }314315/* Trash icon in entry header */316.peach-entry-trash-btn {317  flex-shrink: 0;318  padding: 4px;319  margin-top: 4px;320  background: transparent;321  border: none;322  cursor: pointer;323  color: var(--peach-t2);324  border-radius: 4px;325  transition: color 140ms ease, background 140ms ease;326  display: flex;327  align-items: center;328  justify-content: center;329}330.peach-entry-trash-btn:hover {331  color: var(--peach-t1);332  background: var(--peach-t3);333}334.peach-entry-trash-confirm {335  display: flex;336  align-items: center;337  gap: 6px;338  flex-shrink: 0;339  margin-top: 6px;340  flex-wrap: nowrap;341}342.peach-entry-trash-confirm-label {343  font-family: var(--font-mono);344  font-size: 9px;345  letter-spacing: 0.1em;346  color: var(--peach-t2);347  white-space: nowrap;348}349.peach-entry-name-button {350  padding: 0;351  background: transparent;352  text-align: left;353  cursor: pointer;354  max-width: 100%;355  overflow: hidden;356  display: block;357}358.peach-entry-name-char {359  display: inline-block;360  white-space: pre;361  opacity: 0;362  transform: translateY(0.22em);363  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;364  animation-delay: calc(var(--char-index, 0) * 20ms);365}366367/* Domain */368.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }369.peach-domain-row {370  width: 100%; border: 0; background: transparent; color: inherit;371  padding: 0; display: flex; justify-content: space-between; align-items: baseline;372  cursor: default;373}374.peach-domain-value {375  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;376  font-size: 10px; font-style: italic;377  letter-spacing: 0.12em; color: var(--peach-t1);378}379380/* Fields */381.peach-fields { display: grid; gap: 10px; }382.peach-field-card { display: grid; gap: 7px; }383.peach-label {384  font-family: Inter, system-ui, sans-serif;385  text-transform: uppercase; letter-spacing: 0.2em;386  font-size: 8px; color: var(--peach-t2);387}388.peach-field-value-row {389  display: flex; justify-content: space-between;390  align-items: center; gap: 8px;391  min-width: 0;392}393.peach-field-value {394  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;395  font-size: 13px; color: var(--peach-t1);396  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;397  flex: 1;398  min-width: 0;399}400.peach-password-value {401  display: inline-flex;402  align-items: center;403  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;404  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);405  overflow: hidden;406  text-overflow: ellipsis;407  white-space: nowrap;408  flex: 1;409  min-width: 0;410  max-width: 100%;411}412.peach-password-value.is-revealed {413  font-size: 14px;414  letter-spacing: 0.08em;415}416.peach-password-text,417.peach-password-mask {418  display: block;419  width: 100%;420  overflow: hidden;421  white-space: nowrap;422  /* Render as uniform mid-line bullets, not baseline periods */423  font-family: Inter, system-ui, sans-serif;424  font-size: 10px;425  letter-spacing: 3px;426  user-select: none;427}428.peach-field-actions { display: flex; gap: 4px; align-items: center; }429.peach-password-strength { display: flex; align-items: center; gap: 8px; }430.peach-strength-bar { display: flex; gap: 3px; }431.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }432.peach-strength-label {433  font-family: "IBM Plex Mono", monospace;434  font-style: italic;435  font-size: 9px;436  font-weight: 300;437  min-width: 36px;438  text-align: right;439  color: var(--peach-t2);440  letter-spacing: 0.06em;441}442443.peach-strength-hairline {444  display: flex;445  align-items: center;446  gap: 10px;447  margin-top: -2px;448}449450.peach-strength-hairline-track {451  flex: 1;452  height: 3px;453  border-radius: 2px;454  background: var(--peach-s2);455  overflow: hidden;456}457458.peach-strength-hairline-fill {459  height: 100%;460  border-radius: 2px;461  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),462    background 400ms ease;463}464465/* Note content (display) */466.peach-note-content {467  border-top: 1px solid var(--peach-t3);468  padding-top: 10px;469  font-family: var(--font-display);470  font-size: 15px;471  line-height: 1.75;472  color: var(--peach-t1);473}474475/* ── Inline editing ─────────────────────────────────────────────────── */476477/* Clickable display values */478.peach-inline-clickable {479  cursor: text;480  border-radius: 3px;481  transition: background 150ms ease;482}483.peach-inline-clickable:hover {484  background: rgba(240, 232, 216, 0.05);485}486487/* Subtle "edit" hint that appears on hover */488.peach-inline-edit-hint {489  font-family: Inter, system-ui, sans-serif;490  font-size: 9px;491  text-transform: uppercase;492  letter-spacing: 0.14em;493  color: var(--peach-t2);494  opacity: 0;495  transition: opacity 120ms ease;496  pointer-events: none;497  margin-left: 6px;498  flex-shrink: 0;499}500.peach-domain-row:hover .peach-inline-edit-hint {501  opacity: 1;502}503504/* Title editing */505.peach-inline-title-wrap {506  display: flex;507  flex-direction: column;508  gap: 6px;509}510.peach-inline-title-input {511  font-family: var(--font-display);512  font-style: italic;513  font-weight: 400;514  font-size: 40px;515  line-height: 0.95;516  color: var(--peach-t0);517  background: transparent;518  border: none;519  border-bottom: 1px solid var(--peach-accent);520  outline: none;521  width: 100%;522  padding: 2px 0;523}524525/* Generic inline field */526.peach-inline-field-wrap {527  display: flex;528  flex-direction: column;529  gap: 6px;530}531.peach-inline-input {532  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;533  font-size: 13px;534  color: var(--peach-t0);535  background: transparent;536  border: none;537  border-bottom: 1px solid var(--peach-accent);538  outline: none;539  width: 100%;540  padding: 3px 0;541}542.peach-inline-textarea {543  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;544  font-size: 11px;545  line-height: 1.7;546  color: var(--peach-t0);547  background: rgba(240, 232, 216, 0.04);548  border: 1px solid var(--peach-accent);549  border-radius: 4px;550  outline: none;551  width: 100%;552  padding: 8px;553  resize: vertical;554  min-height: 80px;555}556557/* Save / cancel row */558.peach-inline-actions {559  display: flex;560  gap: 6px;561  align-items: center;562}563.peach-inline-save-btn,564.peach-inline-cancel-btn {565  display: inline-flex;566  align-items: center;567  justify-content: center;568  width: 26px;569  height: 26px;570  border-radius: 4px;571  border: none;572  cursor: pointer;573  transition: background 140ms ease, opacity 140ms ease;574  flex-shrink: 0;575}576.peach-inline-save-btn {577  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);578  color: var(--peach-accent);579}580.peach-inline-save-btn:hover:not(:disabled) {581  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);582}583.peach-inline-cancel-btn {584  background: rgba(240, 232, 216, 0.06);585  color: var(--peach-t2);586}587.peach-inline-cancel-btn:hover:not(:disabled) {588  background: rgba(240, 232, 216, 0.12);589  color: var(--peach-t1);590}591.peach-inline-save-btn:disabled,592.peach-inline-cancel-btn:disabled {593  opacity: 0.4;594  cursor: not-allowed;595}596597/* Inline password generator wrapper */598.peach-inline-generator-wrap {599  margin-top: 10px;600  padding-top: 10px;601  border-top: 1px solid var(--peach-t3);602  display: flex;603  flex-direction: column;604  gap: 8px;605}606.peach-inline-generator-cancel {607  align-self: flex-start;608  font-size: 11px;609  color: var(--peach-t2);610}611612/* "is-editing" card state */613.peach-field-card.is-editing {614  background: rgba(240, 232, 216, 0.02);615  border-radius: 6px;616  padding: 8px;617  margin: -8px;618}619620/* Inline tag editor on Entry detail view */621.peach-inline-tag-editor {622  display: flex;623  flex-direction: column;624  gap: 6px;625}626627/* Quiet inline "+ add X" link in the entry detail body */628.peach-entry-add-link {629  justify-self: start;630  margin-top: 8px;631}632633/* Additional URLs editor revealed by clicking the URL field */634.peach-additional-urls {635  display: flex;636  flex-direction: column;637  gap: 6px;638  margin-top: 8px;639}640.peach-additional-urls-label {641  font-size: 9px;642  letter-spacing: 0.1em;643  text-transform: uppercase;644  color: var(--peach-t2);645  margin-bottom: 2px;646}647.peach-additional-url-row {648  display: flex;649  align-items: center;650  gap: 6px;651}652.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }653.peach-additional-url-remove {654  background: transparent;655  border: 1px solid var(--peach-t3);656  color: var(--peach-t2);657  width: 22px;658  height: 22px;659  border-radius: 4px;660  cursor: pointer;661  font-size: 14px;662  line-height: 1;663  display: inline-flex;664  align-items: center;665  justify-content: center;666  flex-shrink: 0;667  transition: color 120ms ease, border-color 120ms ease;668}669.peach-additional-url-remove:hover:not(:disabled) {670  color: var(--peach-accent);671  border-color: var(--peach-border-accent);672}673.peach-additional-urls-add { align-self: flex-start; }674675/* Delete row */676.peach-entry-delete-row {677  display: flex;678  align-items: center;679  gap: 8px;680  padding-top: 18px;681  margin-top: 8px;682  border-top: 1px solid var(--peach-t3);683}684.peach-delete-btn {685  font-size: 11px;686  color: var(--peach-t2);687  padding: 4px 0;688}689.peach-delete-confirm-text {690  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;691  font-size: 11px;692  font-style: italic;693  color: var(--peach-t2);694  flex-shrink: 0;695}696697/* TOTP band */698.peach-totp-band {699  border-top: 1px solid var(--peach-t3);700  padding: 12px 20px 14px;701  position: relative;702  display: grid;703  grid-template-columns: 1fr auto;704  gap: 10px;705}706.peach-totp-main {707  min-width: 0;708  cursor: pointer;709  user-select: none;710}711.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }712.peach-totp-code-row {713  display: flex;714  align-items: flex-end;715  gap: 10px;716  min-width: 0;717}718.peach-totp-code {719  margin: 2px 0 0;720  font-family: var(--font-display);721  font-style: italic;722  font-weight: 300;723  font-size: 38px; color: var(--peach-accent);724  line-height: 0.95; min-height: 1em;725  min-width: 0;726}727.peach-totp-code-text {728  display: inline-flex;729  overflow: hidden;730  text-overflow: ellipsis;731  white-space: nowrap;732}733.peach-totp-copy-btn {734  margin-bottom: 2px;735  flex-shrink: 0;736  border-color: transparent;737}738.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }739.peach-totp-countdown {740  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;741  font-size: 22px; color: var(--peach-t1);742}743.peach-totp-ring { transform: rotate(-90deg); }744.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }745.peach-totp-ring-progress {746  fill: none; stroke: var(--peach-accent); stroke-width: 2;747  stroke-linecap: round;748  transition: stroke-dashoffset 1s linear, stroke 500ms ease;749}750/* Search bar */751.peach-search-wrap {752  border-top: 1px solid var(--peach-t3);753  background: var(--peach-s1);754  min-height: 54px; position: relative;755  box-shadow: inset 0 6px 18px transparent;756  transition: box-shadow 700ms ease;757}758.peach-search-wrap::before {759  content: "";760  position: absolute;761  left: 0;762  top: 0;763  height: 2px;764  width: var(--peach-totp-progress, 0%);765  background: var(--peach-accent);766  opacity: 0;767  transition: width 1s linear, opacity 180ms ease;768  pointer-events: none;769}770.peach-shell[data-totp-active="true"] .peach-search-wrap::before {771  opacity: 0.9;772}773.peach-shell[data-totp-active="true"] .peach-search-wrap {774  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);775}776777@keyframes peach-totp-code-flare {778  0%   { filter: brightness(1); }779  25%  { filter: brightness(1.3); }780  100% { filter: brightness(1); }781}782.peach-totp-code.is-hot {783  animation: peach-totp-code-flare 3000ms ease-in-out both;784}785.peach-search-bar {786  min-height: 54px;787  display: grid;788  grid-template-columns: auto minmax(0, 1fr) auto;789  align-items: center;790  gap: 8px; padding: 0 9px 0 12px;791}792.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }793.peach-search-input {794  border: 0; background: transparent; color: var(--peach-t0);795  font-family: var(--font-display);796  font-style: italic; font-size: 18px;797  outline: none; width: 100%; min-width: 0; padding: 0;798  caret-color: var(--peach-accent);799}800.peach-search-input::placeholder { color: var(--peach-t2); }801.peach-search-meta {802  display: grid;803  grid-auto-flow: column;804  align-items: center;805  justify-content: end;806  gap: 6px;807  min-width: max-content;808}809.peach-search-counter {810  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;811  font-size: 10px; color: var(--peach-t2);812  display: inline-flex;813  align-items: center;814  line-height: 1;815}816.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }817818/* Buttons */819.peach-btn {820  border: 1px solid transparent; border-radius: 12px;821  background: transparent; color: var(--peach-t0);822  font-family: Inter, system-ui, sans-serif;823  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;824  cursor: pointer;825  transition:826    background-color var(--peach-dur-80) var(--peach-curve-arrival),827    color var(--peach-dur-80) var(--peach-curve-arrival),828    border-color var(--peach-dur-150) var(--peach-curve-arrival);829}830.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }831.peach-btn:disabled {832  opacity: 0.45;833  cursor: not-allowed;834}835.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }836.peach-btn--md { min-height: 38px; }837.peach-btn--accent {838  background: var(--peach-accent);839  color: rgba(0,0,0,0.78);840  box-shadow:841    0 1px 0 rgba(255,255,255,0.08) inset,842    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),843    0 3px 16px var(--peach-glow),844    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);845}846.peach-btn--accent:hover:not(:disabled) {847  background: var(--peach-accent);848  filter: brightness(1.10) saturate(1.05);849  box-shadow:850    0 1px 0 rgba(255,255,255,0.10) inset,851    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),852    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),853    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);854}855.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }856.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }857.peach-icon-btn {858  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;859  display: inline-flex; align-items: center; justify-content: center;860}861862.peach-btn:focus-visible {863  outline: none;864  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);865}866867/* Lock button */868.peach-lock-icon { transform-origin: center; }869.peach-lock-btn.is-locking { color: var(--peach-accent); }870.peach-lock-btn.is-locking .peach-lock-icon {871  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);872}873874/* Biometric unlock button */875.peach-biometric-btn {876  display: flex;877  align-items: center;878  justify-content: center;879  gap: 6px;880  margin-top: 8px;881  width: 100%;882}883884/* Copy button */885.peach-copy-btn {886  position: relative; overflow: hidden;887  color: var(--peach-t2); border-color: var(--peach-t3);888}889.peach-copy-icon {890  display: inline-flex; align-items: center; justify-content: center;891  position: relative; z-index: 1;892}893.peach-copy-icon-svg { display: block; }894.peach-copy-sheen {895  position: absolute; inset: 0;896  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%);897  opacity: 0; transform: scaleX(0.15); transform-origin: left center;898}899.peach-copy-btn.is-copied {900  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;901  box-shadow:902    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),903    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),904    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);905}906.peach-copy-btn.is-copied .peach-copy-icon {907  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;908}909.peach-copy-btn.is-copied .peach-copy-sheen {910  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;911}912.peach-copy-btn.is-retreat {913  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;914}915.peach-copy-btn.is-retreat .peach-copy-sheen {916  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;917}918.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }919.peach-copy-drain-bar {920  display: block; width: 100%; height: 100%;921  background: var(--peach-accent); opacity: 0.7;922  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;923}924925/* Unlock screen elements */926.peach-unlock-headline {927  margin: 2px 0 0;928  font-family: var(--font-display);929  font-size: 52px; line-height: 0.95;930  font-style: italic; font-weight: 400;931}932.peach-subline {933  margin: 0;934  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;935  font-size: 10px; color: var(--peach-t2); font-style: italic;936}937.peach-subline--lock {938  max-width: 248px;939  line-height: 1.5;940}941.peach-underline-input {942  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);943  padding: 6px 0; background: transparent; color: var(--peach-t0);944  outline: none;945  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;946  font-size: 13px;947  caret-color: var(--peach-accent);948}949.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }950.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }951.peach-hint {952  margin: 0;953  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;954  font-size: 10px; color: var(--peach-t2);955}956.peach-unlock-footer {957  margin-top: 4px; display: flex; align-items: center; gap: 7px;958  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;959  font-size: 10px; color: var(--peach-t2);960}961.peach-unlock-footer--lock {962  padding-top: 2px;963}964965/* Breach badge */966.peach-breach-badge {967  display: flex;968  position: relative;969  z-index: 1;970  align-items: center;971  gap: 7px;972  font-size: 9px;973  color: var(--peach-breach);974  padding: 5px 10px;975  margin-bottom: 4px;976  border-radius: 8px;977  background: rgba(220, 80, 60, 0.07);978  border: 1px solid rgba(220, 80, 60, 0.18);979  letter-spacing: 0.04em;980}981982.peach-breach-action {983  margin-left: auto;984  font-size: 10px;985  padding: 3px 8px;986}987988.peach-password-value.is-breached {989  color: rgba(220, 80, 60, 0.75);990  border-bottom: 1px solid rgba(220, 80, 60, 0.22);991}992993/* ── Overlay views ─────────────────────────────────────────────────── */994.peach-overlay-view {995  position: absolute;996  inset: 0;997  display: flex;998  flex-direction: column;999  background:1000    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),1001    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),1002    var(--peach-bg);1003  z-index: 2;1004  overflow: hidden;1005  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;1006}1007@keyframes overlay-in {1008  from { opacity: 0; transform: translateY(8px); }1009  to   { opacity: 1; transform: translateY(0); }1010}1011.peach-overlay-view.ov-enter-up {1012  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1013}1014.peach-overlay-view.ov-exit-up {1015  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1016}1017.peach-overlay-view.ov-enter-right {1018  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1019}1020.peach-overlay-view.ov-exit-right {1021  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1022}10231024@keyframes ov-enter-up {1025  from { opacity: 0; transform: translateY(18px); }1026  to   { opacity: 1; transform: translateY(0); }1027}1028@keyframes ov-exit-up {1029  from { opacity: 1; transform: translateY(0); }1030  to   { opacity: 0; transform: translateY(-12px); }1031}1032@keyframes ov-enter-right {1033  from { opacity: 0; transform: translateX(20px); }1034  to   { opacity: 1; transform: translateX(0); }1035}1036@keyframes ov-exit-right {1037  from { opacity: 1; transform: translateX(0); }1038  to   { opacity: 0; transform: translateX(20px); }1039}10401041/* Overlay shared header */1042.peach-overlay-header {1043  padding: 10px 12px;1044  display: flex;1045  align-items: center;1046  gap: 8px;1047  border-bottom: 1px solid var(--peach-t3);1048  flex-shrink: 0;1049}1050.peach-overlay-title {1051  font-family: "IBM Plex Mono", monospace;1052  font-size: 9px;1053  text-transform: uppercase;1054  letter-spacing: 0.18em;1055  color: var(--peach-t2);1056  flex: 1;1057  text-align: center;1058}10591060.peach-overlay-card {1061  background: var(--peach-s1);1062  border: 1px solid var(--peach-t3);1063  border-radius: 12px;1064  overflow: hidden;1065  width: 100%;1066}10671068.peach-onboarding-alt-actions {1069  display: flex;1070  flex-direction: column;1071  gap: 4px;1072  padding: 0;1073}10741075.peach-settings-copy {1076  margin: 0 0 10px;1077  font-size: 11px;1078  line-height: 1.5;1079  color: var(--peach-t2);1080}10811082.peach-settings-copy strong {1083  color: var(--peach-t0);1084}10851086.peach-settings-copy--spacious {1087  margin-bottom: 12px;1088}10891090.peach-settings-copy--result {1091  color: var(--peach-accent);1092  font-size: 13px;1093  text-align: center;1094  padding: 8px 0;1095}10961097.peach-settings-copy--danger {1098  color: var(--peach-breach);1099}11001101.peach-settings-copy--success {1102  color: var(--peach-accent);1103}11041105.peach-inline-feedback {1106  font-size: 11px;1107  margin: 10px 0 0;1108}11091110.peach-inline-feedback--ok {1111  color: var(--peach-accent);1112}11131114.peach-inline-feedback--error {1115  color: var(--peach-breach);1116}11171118.peach-inline-feedback--muted {1119  color: var(--peach-t2);1120  font-size: 10px;1121  margin: 4px 0;1122}11231124.peach-inline-feedback--spaced {1125  margin-top: 12px;1126}11271128.peach-settings-actions--row {1129  display: flex;1130  gap: 6px;1131}11321133.peach-settings-actions--end {1134  margin-top: 14px;1135  justify-content: flex-end;1136}11371138.peach-settings-stack {1139  display: flex;1140  flex-direction: column;1141  gap: 6px;1142}11431144.peach-settings-stack--tight {1145  gap: 4px;1146}11471148.peach-settings-stack--spacious {1149  gap: 8px;1150}11511152.peach-settings-input {1153  width: 100%;1154  box-sizing: border-box;1155  padding: 8px 10px;1156  background: rgba(0, 0, 0, 0.22);1157  border: 1px solid transparent;1158  border-radius: 6px;1159  color: var(--peach-t0);1160  font-family: var(--font-ui);1161  font-size: 12px;1162  outline: none;1163  transition: border-color 120ms ease, background 120ms ease;1164}11651166.peach-settings-input:focus {1167  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1168  background: rgba(0, 0, 0, 0.28);1169}11701171.peach-settings-input[type="password"] {1172  font-family: var(--font-mono);1173  letter-spacing: 0.04em;1174}11751176.peach-hidden-file-input {1177  display: none;1178}11791180.peach-checkbox-note {1181  display: flex;1182  align-items: flex-start;1183  gap: 8px;1184  font-size: 11px;1185  color: var(--peach-t1);1186  cursor: pointer;1187  margin: 12px 0;1188}11891190.peach-checkbox-note input {1191  margin-top: 1px;1192}11931194.peach-danger-notice {1195  background: rgba(220, 80, 60, 0.08);1196  border: 1px solid rgba(220, 80, 60, 0.2);1197  border-radius: 6px;1198  padding: 9px 11px;1199  font-size: 11px;1200  color: var(--peach-t1);1201  line-height: 1.5;1202}12031204.peach-info-notice {1205  font-size: 11px;1206  color: var(--peach-t1);1207  line-height: 1.5;1208  background: var(--surface-card);1209  border: 1px solid var(--peach-t3);1210  border-radius: 6px;1211  padding: 8px 10px;1212}12131214.peach-info-notice--warn {1215  border-color: rgba(220, 38, 38, 0.4);1216  background: rgba(220, 38, 38, 0.06);1217  color: rgba(220, 38, 38, 0.92);1218  margin-bottom: 8px;1219}12201221.peach-strength-row {1222  display: flex;1223  align-items: center;1224  gap: 8px;1225  margin-bottom: 10px;1226}12271228.peach-strength-track {1229  flex: 1;1230  height: 4px;1231  background: var(--peach-s2);1232  border-radius: 2px;1233  overflow: hidden;1234}12351236.peach-strength-fill {1237  height: 100%;1238  border-radius: 2px;1239  transition: width 120ms ease, background 120ms ease;1240}12411242/* ── Type selector tabs ── */1243.peach-type-tabs {1244  display: flex;1245  gap: 0;1246  background: var(--peach-t4);1247  border-radius: 8px;1248  padding: 3px;1249}12501251.peach-type-tab {1252  flex: 1;1253  display: flex;1254  align-items: center;1255  justify-content: center;1256  gap: 6px;1257  padding: 6px 10px;1258  border-radius: 6px;1259  border: none;1260  background: transparent;1261  cursor: pointer;1262  font-family: Inter, system-ui, sans-serif;1263  font-size: 11px;1264  font-weight: 400;1265  letter-spacing: 0.04em;1266  color: var(--peach-t1);1267  transition: background 150ms ease, color 150ms ease;1268}12691270.peach-type-tab.is-active {1271  background: var(--peach-s2);1272  color: var(--peach-t0);1273  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1274}12751276.peach-type-tab:not(.is-active):hover {1277  color: var(--peach-t0);1278}12791280.peach-type-tab svg {1281  opacity: 0.7;1282  flex-shrink: 0;1283}12841285.peach-type-tab.is-active svg {1286  opacity: 1;1287}12881289/* ── List view ───────────────────────────────────────────────────────── */1290.peach-list-top {1291  padding: 0 10px;1292  min-height: 46px;1293  display: flex;1294  align-items: center;1295  gap: 6px;1296  border-bottom: 1px solid var(--peach-t3);1297  flex-shrink: 0;1298  background: var(--peach-s1);1299}1300.peach-vault-list {1301  flex: 1;1302  overflow-y: auto;1303  scrollbar-width: none;1304}1305.peach-vault-list::-webkit-scrollbar { display: none; }13061307/* Scrollbar — vault list */1308.peach-vault-list {1309  scrollbar-width: thin;1310  scrollbar-color: var(--peach-t3) transparent;1311}13121313.peach-vault-list::-webkit-scrollbar {1314  width: 3px;1315}13161317.peach-vault-list::-webkit-scrollbar-thumb {1318  background: var(--peach-t3);1319  border-radius: 2px;1320}13211322.peach-entry-row {1323  width: 100%;1324  display: flex;1325  align-items: center;1326  gap: 10px;1327  padding: 9px 16px;1328  background: transparent;1329  border: none;1330  border-bottom: 1px solid var(--peach-t3);1331  cursor: pointer;1332  color: inherit;1333  text-align: left;1334  transition: background 80ms ease;1335}1336.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1337.peach-entry-row:last-child { border-bottom: none; }1338.peach-entry-row.is-active {1339  box-shadow: inset 2px 0 0 var(--peach-accent);1340  background: rgba(240,232,216,0.03);1341}1342.peach-entry-row:focus-visible {1343  outline: none;1344  box-shadow: 0 0 0 1px var(--peach-border-accent);1345  background: rgba(240,232,216,0.03);1346}1347.peach-entry-row-icon {1348  width: 26px; height: 26px;1349  border-radius: 7px;1350  border: 1px solid var(--peach-t3);1351  display: flex; align-items: center; justify-content: center;1352  color: var(--peach-t2);1353  flex-shrink: 0;1354}1355.peach-entry-row-icon.is-breach {1356  border-color: rgba(220,80,60,0.3);1357  color: rgba(220,80,60,0.7);1358}13591360/* Title-initials chip used as the favicon fallback for login entries whose1361 * real favicon hasn't been cached by the browser yet (freshly-imported,1362 * never-visited domains). Background colour is hashed from the title so1363 * the same entry always shows the same chip. The chip fits the same1364 * 26×26 row icon slot the favicon would take. */1365.peach-favicon-initials {1366  display: inline-flex;1367  align-items: center;1368  justify-content: center;1369  width: 100%;1370  height: 100%;1371  border-radius: 4px;1372  font-family: "IBM Plex Mono", monospace;1373  font-size: 9px;1374  font-weight: 600;1375  letter-spacing: 0.04em;1376  color: rgba(240, 232, 216, 0.92);1377  text-transform: uppercase;1378  user-select: none;1379}1380.peach-entry-row-info { flex: 1; min-width: 0; }1381.peach-entry-row-name {1382  display: block;1383  font-family: var(--font-display);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  margin: 4px 10px;1568  padding: 9px 14px 11px;1569  border-radius: 12px;1570  border: 1px solid rgba(255, 255, 255, 0.07);1571  background: rgba(26, 20, 16, 0.60);1572  backdrop-filter: blur(10px) saturate(1.3);1573  -webkit-backdrop-filter: blur(10px) saturate(1.3);1574}15751576.peach-settings-group + .peach-settings-group {1577  margin-top: 6px;1578}15791580@supports not (backdrop-filter: blur(1px)) {1581  .peach-settings-group {1582    background: rgba(26, 20, 16, 0.90);1583    border-color: rgba(255, 255, 255, 0.09);1584    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1585  }1586}15871588.light .peach-settings-group,1589[data-theme="light"] .peach-settings-group {1590  background: rgba(253, 248, 244, 0.68);1591  border-color: rgba(0, 0, 0, 0.07);1592  backdrop-filter: blur(10px) saturate(1.2);1593  -webkit-backdrop-filter: blur(10px) saturate(1.2);1594}15951596@supports not (backdrop-filter: blur(1px)) {1597  .light .peach-settings-group,1598  [data-theme="light"] .peach-settings-group {1599    background: rgba(253, 248, 244, 0.95);1600    border-color: rgba(0, 0, 0, 0.09);1601  }1602}1603.peach-export-intro {1604  padding-bottom: 8px;1605}1606.peach-export-card {1607  display: grid;1608  gap: 10px;1609}1610.peach-rune-canvas {1611  border-radius: 8px;1612  background: rgba(0, 0, 0, 0.22);1613  flex: 1;1614  align-self: center;1615}1616.peach-script-input {1617  font-family: "PeachScript", monospace;1618  font-size: 11px;1619  line-height: 1.9;1620  letter-spacing: 0.06em;1621  color: var(--peach-t0);1622  background: rgba(0, 0, 0, 0.22);1623  border: none;1624  border-radius: 6px;1625  padding: 12px;1626  width: 100%;1627  min-height: 96px;1628  resize: vertical;1629  word-break: break-all;1630  scrollbar-width: none;1631  -ms-overflow-style: none;1632}16331634.peach-script-input::-webkit-scrollbar { display: none; }1635.peach-qr-canvas-wrap {1636  display: flex;1637  justify-content: center;1638  padding: 12px 0 6px;1639}1640.peach-qr-canvas-wrap canvas {1641  display: block;1642  background: #ffffff;1643  border-radius: 6px;1644  max-width: 100%;1645  height: auto;1646}1647.peach-csv-warning {1648  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1649  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1650  color: var(--peach-t0);1651  border-radius: 6px;1652  padding: 10px 12px;1653  margin-bottom: 8px;1654  font-size: 12px;1655  line-height: 1.45;1656}1657.peach-export-card--primary {1658  background:1659    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1660}16611662/* Export menu — distribute the three format cards across the popup. */1663.peach-export-menu {1664  display: flex;1665  flex-direction: column;1666  flex: 1;1667  min-height: 0;1668}1669.peach-export-menu .peach-settings-group {1670  flex: 1;1671  display: flex;1672  flex-direction: column;1673  justify-content: center;1674  gap: 10px;1675}16761677/* Result view — the script-string fills the remaining vertical surface. */1678.peach-export-result-group {1679  flex: 1;1680  display: flex;1681  flex-direction: column;1682  min-height: 0;1683  border-bottom: none;1684}1685.peach-export-result-group .peach-export-card {1686  flex: 1;1687  min-height: 0;1688  display: flex;1689  flex-direction: column;1690  gap: 10px;1691}1692.peach-export-result-group .peach-export-card-copy {1693  flex-shrink: 0;1694}1695.peach-export-result-group .peach-settings-label {1696  flex-shrink: 0;1697}1698.peach-export-result-group button {1699  flex-shrink: 0;1700}1701.peach-export-card-head {1702  display: flex;1703  align-items: center;1704  justify-content: space-between;1705  gap: 10px;1706}1707.peach-export-card-copy {1708  margin: 0;1709  font-size: 12px;1710  line-height: 1.55;1711  color: var(--peach-t1);1712}1713.peach-export-note {1714  margin: 0;1715  font-size: 10px;1716  line-height: 1.5;1717  color: var(--peach-t2);1718}1719.peach-export-pill {1720  display: inline-flex;1721  align-items: center;1722  padding: 4px 8px;1723  border-radius: 999px;1724  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1725  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1726  color: var(--peach-accent);1727  font-family: "IBM Plex Mono", monospace;1728  font-size: 8px;1729  letter-spacing: 0.12em;1730  text-transform: uppercase;1731  white-space: nowrap;1732}1733.peach-export-pill--danger {1734  border-color: rgba(220,80,60,0.22);1735  background: rgba(220,80,60,0.08);1736  color: var(--peach-breach);1737}1738.peach-export-password-stack {1739  gap: 8px;1740}1741.peach-settings-label {1742  margin: 0 0 6px;1743  font-family: "IBM Plex Mono", monospace;1744  font-size: 8px;1745  text-transform: uppercase;1746  letter-spacing: 0.18em;1747  color: var(--peach-t2);1748}1749.peach-settings-row {1750  display: flex;1751  align-items: center;1752  justify-content: space-between;1753  gap: 12px;1754  min-height: 34px;1755  padding: 6px 0;1756  font-size: 13px;1757  color: var(--peach-t1);1758}1759.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1760.peach-settings-value {1761  font-family: "IBM Plex Mono", monospace;1762  font-size: 10px;1763  color: var(--peach-t2);1764}17651766.peach-settings-value--status {1767  display: flex;1768  align-items: center;1769  gap: 6px;1770}17711772.peach-settings-link {1773  font-family: "IBM Plex Mono", monospace;1774  font-size: 10px;1775  color: var(--peach-accent);1776  text-decoration: none;1777  cursor: pointer;1778}1779.peach-settings-link:hover {1780  text-decoration: underline;1781}17821783.peach-settings-row--stack {1784  flex-direction: column;1785  align-items: stretch;1786  gap: 6px;1787}17881789.peach-settings-row--top {1790  align-items: flex-start;1791}17921793.peach-settings-row-main {1794  display: flex;1795  flex-direction: column;1796  gap: 4px;1797  flex: 1;1798}1799.peach-toggle {1800  width: 28px; height: 16px;1801  border-radius: 999px;1802  background: var(--peach-t3);1803  border: 1px solid var(--peach-t3);1804  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1805  flex-shrink: 0;1806  transition: background 200ms ease, border-color 200ms ease;1807  cursor: pointer;1808}1809.peach-toggle.is-on {1810  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1811  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1812}1813.peach-toggle-knob {1814  width: 10px; height: 10px;1815  border-radius: 50%;1816  background: var(--peach-t2);1817  flex-shrink: 0;1818  transform: translateX(0px);1819  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1820}1821.peach-toggle.is-on .peach-toggle-knob {1822  background: var(--peach-accent);1823  transform: translateX(12px);1824}1825.peach-settings-footer {1826  display: flex;1827  align-items: center;1828  gap: 8px;1829  margin-top: auto;1830  padding: 14px 16px 8px;1831  font-family: "IBM Plex Mono", monospace;1832  font-size: 9px;1833  color: var(--peach-t2);1834}18351836/* ── Settings home navigation ──────────────────────────────────────────── */1837.peach-settings-nav-label {1838  margin: 0 0 2px;1839  padding: 12px 16px 4px;1840  font-family: "IBM Plex Mono", monospace;1841  font-size: 8px;1842  text-transform: uppercase;1843  letter-spacing: 0.18em;1844  color: var(--peach-t2);1845}18461847.peach-settings-cat-row {1848  display: flex;1849  align-items: center;1850  gap: 10px;1851  width: 100%;1852  padding: 9px 16px;1853  background: none;1854  border: none;1855  border-bottom: 1px solid var(--peach-t3);1856  cursor: pointer;1857  text-align: left;1858  color: inherit;1859  transition: background var(--peach-dur-80) ease;1860}1861.peach-settings-cat-row:hover {1862  background: var(--peach-t3);1863}1864.peach-settings-cat-row:last-child {1865  border-bottom: none;1866}18671868.peach-settings-cat-icon {1869  width: 28px;1870  height: 28px;1871  border-radius: 7px;1872  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1873  color: var(--peach-accent);1874  display: flex;1875  align-items: center;1876  justify-content: center;1877  flex-shrink: 0;1878}1879/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1880   Darken the icon stroke to ink and bump the bg tint so the icon reads1881   sharply while the cell still feels accent-tinted. */1882.light .peach-settings-cat-icon {1883  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1884  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1885}18861887.peach-settings-cat-content {1888  flex: 1;1889  display: flex;1890  flex-direction: column;1891  gap: 2px;1892  min-width: 0;1893}18941895.peach-settings-cat-name {1896  font-size: 13px;1897  font-weight: 450;1898  color: var(--peach-t0);1899  line-height: 1.2;1900}19011902.peach-settings-cat-desc {1903  font-size: 10px;1904  color: var(--peach-t2);1905  line-height: 1.3;1906  white-space: nowrap;1907  overflow: hidden;1908  text-overflow: ellipsis;1909}19101911.peach-settings-cat-chevron {1912  color: var(--peach-t2);1913  flex-shrink: 0;1914  opacity: 0.5;1915}19161917/* ── Settings sub-view section labels ──────────────────────────────────── */1918.peach-settings-sub-label {1919  margin: 12px 0 4px;1920  font-family: "IBM Plex Mono", monospace;1921  font-size: 8px;1922  text-transform: uppercase;1923  letter-spacing: 0.18em;1924  color: var(--peach-t2);1925}1926.peach-settings-sub-label:first-child {1927  margin-top: 4px;1928}19291930/* ── Feedback form ──────────────────────────────────────────────────────── */1931.peach-feedback-group {1932  flex: 1;1933  display: flex;1934  flex-direction: column;1935  border-bottom: none;1936}19371938.peach-feedback-intro {1939  margin: 4px 0 14px;1940  font-size: 12px;1941  line-height: 1.55;1942  color: var(--peach-t1);1943}19441945.peach-feedback-chips {1946  display: flex;1947  flex-wrap: wrap;1948  gap: 6px;1949  margin-bottom: 14px;1950}19511952.peach-feedback-chip {1953  padding: 4px 10px;1954  border-radius: 999px;1955  border: 1px solid var(--peach-t3);1956  background: none;1957  color: var(--peach-t2);1958  font-size: 11px;1959  font-family: var(--font-ui);1960  cursor: pointer;1961  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1962    background var(--peach-dur-80) ease;1963}1964.peach-feedback-chip:hover {1965  border-color: var(--peach-t2);1966  color: var(--peach-t1);1967}1968.peach-feedback-chip.is-active {1969  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1970  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1971  color: var(--peach-accent);1972}19731974.peach-feedback-textarea {1975  flex: 1;1976  width: 100%;1977  min-height: 120px;1978  box-sizing: border-box;1979  background: rgba(0, 0, 0, 0.22);1980  border: 1px solid transparent;1981  border-radius: 6px;1982  color: var(--peach-t0);1983  font-size: 12px;1984  font-family: var(--font-ui);1985  line-height: 1.5;1986  padding: 8px 10px;1987  resize: none;1988  outline: none;1989  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;1990}1991.peach-feedback-textarea:focus {1992  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1993  background: rgba(0, 0, 0, 0.28);1994}1995.peach-feedback-textarea:focus {1996  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1997}1998.peach-feedback-textarea::placeholder {1999  color: var(--peach-t2);2000}20012002.peach-feedback-meta {2003  margin: 6px 0 0;2004  font-size: 10px;2005  color: var(--peach-t2);2006  font-family: "IBM Plex Mono", monospace;2007}20082009.peach-feedback-result {2010  margin: 8px 0 0;2011  font-size: 11px;2012  font-family: "IBM Plex Mono", monospace;2013}2014.peach-feedback-result--ok { color: var(--peach-sync-ok); }2015.peach-feedback-result--err { color: var(--peach-breach); }20162017.peach-feedback-submit {2018  width: 100%;2019  margin-top: 12px;2020  justify-content: center;2021}20222023.peach-feedback-anon {2024  margin: 8px 0 0;2025  font-size: 10px;2026  color: var(--peach-t2);2027  text-align: center;2028}20292030.peach-passkey-badge {2031  margin-left: 8px;2032  font-size: 10px;2033  letter-spacing: 0.06em;2034  text-transform: uppercase;2035  color: var(--peach-t2);2036  font-family: var(--font-ui);2037  vertical-align: middle;2038}20392040.peach-passkey-delete-btn {2041  color: var(--peach-breach);2042  border-color: rgba(229, 85, 85, 0.25);2043}20442045.peach-passkey-delete-confirm {2046  display: flex;2047  align-items: center;2048  gap: 8px;2049  padding: 8px 10px;2050  background: rgba(229, 85, 85, 0.06);2051  border: 1px solid rgba(229, 85, 85, 0.2);2052  border-radius: 6px;2053}20542055.peach-passkey-delete-confirm-copy {2056  flex: 1;2057  font-size: 11px;2058  color: var(--peach-t1);2059}20602061.peach-passkey-delete-btn--confirm {2062  color: var(--peach-breach);2063  border-color: rgba(229, 85, 85, 0.4);2064}20652066.peach-passkey-activity {2067  flex-direction: column;2068  align-items: flex-start;2069  gap: 4px;2070}20712072.peach-passkey-meta {2073  font-size: 11px;2074  color: var(--peach-t2);2075}20762077.peach-passkey-actions {2078  position: relative;2079  z-index: 1;2080  margin-top: 14px;2081  display: flex;2082  flex-direction: column;2083  gap: 8px;2084}20852086.peach-passkey-approval {2087  display: flex;2088  flex-direction: column;2089  align-items: center;2090  padding: 22px 20px 18px;2091  gap: 10px;2092  text-align: center;2093}20942095.peach-passkey-approval-icon {2096  width: 46px;2097  height: 46px;2098  border-radius: 12px;2099  background: var(--peach-s2);2100  border: 1px solid var(--peach-t3);2101  display: flex;2102  align-items: center;2103  justify-content: center;2104  flex-shrink: 0;2105  color: var(--peach-accent);2106}21072108.peach-passkey-approval-icon img,2109.peach-passkey-approval-icon svg {2110  width: 28px;2111  height: 28px;2112  border-radius: 6px;2113}21142115.peach-passkey-approval-rp {2116  font-family: var(--font-ui);2117  font-size: 12px;2118  color: var(--peach-t2);2119  letter-spacing: 0.03em;2120}21212122.peach-passkey-approval-action {2123  font-family: var(--font-display);2124  font-style: italic;2125  font-weight: 300;2126  font-size: 22px;2127  color: var(--peach-t0);2128  line-height: 1.1;2129  margin: 2px 0;2130}21312132.peach-passkey-approval-user {2133  font-family: var(--font-mono);2134  font-size: 11px;2135  color: var(--peach-t1);2136  background: var(--peach-s2);2137  border: 1px solid var(--peach-t3);2138  border-radius: 4px;2139  padding: 3px 8px;2140}21412142.peach-passkey-approval-notice {2143  font-size: 10px;2144  color: var(--peach-t2);2145  line-height: 1.5;2146  max-width: 220px;2147}21482149.peach-passkey-approval-actions {2150  display: flex;2151  gap: 8px;2152  width: 100%;2153  margin-top: 6px;2154}21552156.peach-passkey-approval-actions .peach-btn {2157  flex: 1;2158}21592160/* ── Inline generator drawer ── */2161.peach-generator-drawer {2162  display: grid;2163  grid-template-rows: 0fr;2164  transition: grid-template-rows 320ms var(--peach-curve-arrival);2165  overflow: hidden;2166}2167.peach-generator-drawer.is-open {2168  grid-template-rows: 1fr;2169}2170.peach-generator-drawer-inner {2171  min-height: 0;2172  overflow: hidden;2173}2174.peach-generator-drawer-content {2175  border-top: 1px solid var(--peach-t3);2176  padding: 8px 0 4px;2177  display: flex;2178  flex-direction: column;2179  gap: 8px;2180}21812182/* ── Compact generator (inside entry edit) ── */2183.peach-generator-drawer-content--compact {2184  border-top: 1px solid var(--peach-t3);2185  padding: 8px 0 2px;2186  gap: 7px;2187}2188.peach-pwgen-compact-display-row {2189  display: flex;2190  align-items: center;2191  gap: 6px;2192}2193.peach-pwgen-compact-output {2194  flex: 1;2195  min-width: 0;2196  font-family: "IBM Plex Mono", monospace;2197  font-size: 11px;2198  font-weight: 400;2199  letter-spacing: 0.04em;2200  color: var(--peach-t0);2201  background: rgba(240, 232, 216, 0.04);2202  border: 1px solid var(--peach-t3);2203  border-radius: 5px;2204  padding: 5px 8px;2205  word-break: break-all;2206  line-height: 1.5;2207}2208.peach-pwgen-compact-controls {2209  display: flex;2210  align-items: center;2211  gap: 6px;2212}2213.peach-pwgen-compact-slider {2214  flex: 1;2215  min-width: 0;2216  height: 2px !important;2217}2218.peach-pwgen-compact-controls .peach-pwgen-len-num {2219  flex-shrink: 0;2220  min-width: 18px;2221  text-align: right;2222}2223.peach-pwgen-compact-pills {2224  display: flex;2225  gap: 3px;2226  flex-shrink: 0;2227}2228.peach-pwgen-compact-pills .peach-pwgen-pill {2229  padding: 2px 7px;2230  font-size: 8px;2231}2232.peach-pwgen-compact-use {2233  flex-shrink: 0;2234  font-size: 10px !important;2235  padding: 3px 9px !important;2236  min-height: 22px !important;2237  border-radius: 5px !important;2238}22392240/* ── Password edit row (input + eye toggle side-by-side) ── */2241.peach-password-edit-row {2242  display: flex;2243  align-items: center;2244  gap: 6px;2245}2246.peach-password-edit-row .peach-inline-input {2247  flex: 1;2248  min-width: 0;2249}22502251/* ── Generate toggle link ── */2252.peach-generate-toggle-link {2253  display: inline-flex;2254  align-items: center;2255  gap: 5px;2256  background: none;2257  border: none;2258  padding: 0;2259  cursor: pointer;2260  font-family: "IBM Plex Mono", monospace;2261  font-size: 10px;2262  color: var(--peach-t2);2263  letter-spacing: 0.04em;2264  transition: color 120ms ease;2265  align-self: flex-start;2266}2267.peach-generate-toggle-link:hover {2268  color: var(--peach-accent);2269}22702271/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2272.peach-entry-body {2273  flex: 1;2274  overflow-y: auto;2275  overflow-x: hidden;2276  scrollbar-width: none;2277  -ms-overflow-style: none;2278  overscroll-behavior: contain;2279  display: grid;2280  gap: 10px;2281  align-content: start;2282  padding: 10px 20px 14px;2283  min-width: 0;2284  min-height: 0;2285}2286.peach-entry-body::-webkit-scrollbar { display: none; }22872288/* Type-toggle pills + inline note toolbar */2289.peach-new-type-row {2290  display: flex;2291  align-items: center;2292  gap: 6px;2293  margin-bottom: 2px;2294}2295.peach-new-type-btn {2296  background: transparent;2297  border: 1px solid var(--peach-t3);2298  border-radius: 12px;2299  padding: 3px 10px;2300  font-family: "IBM Plex Mono", monospace;2301  font-size: 9px;2302  letter-spacing: 0.12em;2303  text-transform: uppercase;2304  color: var(--peach-t2);2305  cursor: pointer;2306  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2307}2308.peach-new-type-btn.is-active {2309  color: var(--peach-t0);2310  border-color: var(--peach-accent);2311  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2312}2313.peach-new-type-btn:not(.is-active):hover {2314  color: var(--peach-t1);2315  border-color: var(--peach-t2);2316}23172318/* Editable title */2319.peach-new-title-wrap { margin: 0 0 2px; }2320.peach-new-title-input {2321  background: transparent;2322  border: none;2323  outline: none;2324  width: 100%;2325  color: var(--peach-t0);2326  font-family: var(--font-display);2327  font-style: italic;2328  font-weight: 400;2329  font-size: 40px;2330  line-height: 0.95;2331  caret-color: var(--peach-accent);2332}2333.peach-new-title-input::placeholder { color: var(--peach-t2); }23342335/* Editable domain field */2336.peach-domain-value--edit {2337  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2338  font-size: 10px;2339  font-style: italic;2340  letter-spacing: 0.12em;2341  color: var(--peach-t1);2342  background: transparent;2343  border: none;2344  border-bottom: 1px solid var(--peach-t3);2345  outline: none;2346  width: 100%;2347  padding: 2px 0;2348  caret-color: var(--peach-accent);2349  transition: border-color 140ms ease, color 140ms ease;2350}2351.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2352.peach-domain-value--edit:focus {2353  border-bottom-color: rgba(240, 232, 216, 0.28);2354  color: var(--peach-t0);2355}23562357/* Editable field values (username, password, totp) */2358.peach-field-value--edit {2359  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2360  font-size: 13px;2361  color: var(--peach-t0);2362  background: transparent;2363  border: none;2364  border-bottom: 1px solid var(--peach-t3);2365  outline: none;2366  flex: 1;2367  min-width: 0;2368  padding: 3px 0;2369  caret-color: var(--peach-accent);2370  transition: border-color 140ms ease, color 140ms ease;2371}2372.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2373.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2374.peach-field-value--edit:focus {2375  border-bottom-color: rgba(240, 232, 216, 0.28);2376  color: var(--peach-t0);2377}23782379/* "+ add optional field" links */2380.peach-entry-add-links {2381  display: flex;2382  gap: 12px;2383  flex-wrap: wrap;2384  margin-top: -2px;2385}2386.peach-add-field-link {2387  background: transparent;2388  border: none;2389  padding: 0;2390  cursor: pointer;2391  font-family: "IBM Plex Mono", monospace;2392  font-size: 9px;2393  letter-spacing: 0.1em;2394  text-transform: uppercase;2395  color: var(--peach-t2);2396  transition: color 140ms ease;2397}2398.peach-add-field-link:hover { color: var(--peach-accent); }23992400/* ── New entry form (legacy classes) ────────────────────────────────── */2401.peach-new-body {2402  flex: 1;2403  overflow-y: auto;2404  padding: 10px 20px 14px;2405}2406.peach-new-name-input {2407  background: transparent;2408  border: none;2409  outline: none;2410  width: 100%;2411  color: var(--peach-t0);2412  font-family: var(--font-display);2413  font-style: italic;2414  font-weight: 400;2415  font-size: 40px;2416  line-height: 0.95;2417  caret-color: var(--peach-accent);2418}2419.peach-new-name-input::placeholder { color: var(--peach-t2); }2420.peach-new-field-input {2421  background: transparent;2422  border: none;2423  outline: none;2424  flex: 1;2425  min-width: 0;2426  caret-color: var(--peach-accent);2427}2428.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }24292430/* ── Canary card ── */2431.peach-canary-card {2432  border: 1px solid rgba(217, 160, 48, 0.2);2433  background: rgba(217, 160, 48, 0.03);2434  border-radius: 8px;2435  padding: 12px;2436}24372438.peach-canary-settings-header {2439  display: flex;2440  align-items: center;2441  justify-content: space-between;2442  cursor: pointer;2443  user-select: none;2444}24452446.peach-canary-card .peach-label {2447  color: rgba(217, 160, 48, 0.85);2448}24492450.peach-canary-card .peach-new-field-input {2451  border-color: rgba(217, 160, 48, 0.25);2452}24532454.peach-canary-card .peach-new-field-input:focus {2455  border-color: rgba(217, 160, 48, 0.5);2456}24572458.peach-canary-body {2459  margin-top: 12px;2460  display: flex;2461  flex-direction: column;2462  gap: 10px;2463}24642465.peach-canary-explainer {2466  display: flex;2467  gap: 10px;2468  padding: 10px 12px;2469  border-radius: 10px;2470  background: rgba(217, 160, 48, 0.06);2471  border: 1px solid rgba(217, 160, 48, 0.22);2472  margin-bottom: 4px;2473}24742475.peach-canary-explainer-icon {2476  font-size: 16px;2477  flex-shrink: 0;2478  line-height: 1.2;2479}24802481.peach-canary-explainer-title {2482  font-family: var(--font-ui);2483  font-size: 11px;2484  font-weight: 500;2485  color: rgba(217, 160, 48, 0.9);2486  margin: 0 0 3px;2487}24882489.peach-canary-explainer-copy {2490  font-family: var(--font-ui);2491  font-size: 10px;2492  color: var(--peach-t2);2493  line-height: 1.55;2494  margin: 0;2495}24962497.peach-canary-hint {2498  font-size: 10px;2499  color: var(--peach-t2);2500  font-family: Inter, system-ui, sans-serif;2501  line-height: 1.5;2502  margin-top: 4px;2503}25042505.peach-canary-actions-row {2506  display: flex;2507  align-items: center;2508  gap: 8px;2509}25102511.peach-canary-test-btn {2512  border-color: rgba(217, 160, 48, 0.3);2513  color: rgba(217, 160, 48, 0.85);2514}25152516.peach-canary-test-result {2517  font-size: 10px;2518  font-family: Inter, system-ui, sans-serif;2519}25202521.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2522.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }25232524.peach-canary-badge {2525  display: flex;2526  position: relative;2527  z-index: 1;2528  align-items: center;2529  gap: 5px;2530  padding: 4px 10px;2531  background: rgba(217, 160, 48, 0.12);2532  border: 1px solid rgba(217, 160, 48, 0.35);2533  border-radius: 6px;2534  margin-bottom: 6px;2535  width: fit-content;2536}25372538.peach-canary-badge-label {2539  font-size: 10px;2540  letter-spacing: 0.06em;2541  color: rgba(217, 160, 48, 0.9);2542  font-family: var(--font-ui);2543  text-transform: uppercase;2544}25452546.peach-canary-badge-icon {2547  font-size: 11px;2548}25492550.peach-canary-suppress-row {2551  display: flex;2552  align-items: center;2553  gap: 8px;2554  padding: 6px 10px;2555  background: rgba(217, 160, 48, 0.08);2556  border-radius: 6px;2557  margin-bottom: 8px;2558}25592560.peach-canary-suppress-label {2561  font-size: 11px;2562  color: rgba(217, 160, 48, 0.85);2563  cursor: pointer;2564  font-family: var(--font-ui);2565  letter-spacing: 0.04em;2566}25672568.peach-regen-panel {2569  position: relative;2570  z-index: 1;2571  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2572  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2573  border-radius: 8px;2574  padding: 12px;2575  margin-bottom: 8px;2576}25772578.peach-regen-panel-header {2579  display: flex;2580  align-items: center;2581  justify-content: space-between;2582  margin-bottom: 10px;2583}25842585.peach-regen-panel-title {2586  font-size: 11px;2587  font-weight: 600;2588  letter-spacing: 0.06em;2589  text-transform: uppercase;2590  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2591}25922593.peach-regen-output {2594  background: rgba(0, 0, 0, 0.2);2595  border-radius: 6px;2596  padding: 10px;2597  margin-bottom: 10px;2598  font-family: var(--font-mono);2599  font-size: 13px;2600  word-break: break-all;2601  color: var(--peach-t1);2602}26032604.peach-regen-actions {2605  display: flex;2606  gap: 6px;2607}26082609.peach-regen-actions--spaced {2610  margin-bottom: 8px;2611}26122613.peach-regen-action-grow {2614  flex: 1;2615}26162617.peach-regen-copy-btn {2618  padding: 0 8px;2619}26202621.peach-regen-success {2622  position: relative;2623  z-index: 1;2624  background: rgba(40, 180, 80, 0.1);2625  border: 1px solid rgba(40, 180, 80, 0.3);2626  border-radius: 8px;2627  padding: 10px 12px;2628  margin-bottom: 8px;2629  display: flex;2630  align-items: center;2631  gap: 8px;2632  font-size: 11px;2633  color: rgba(40, 180, 80, 0.9);2634}26352636/* ── Note editor overlay ── */2637.peach-note-editor {2638  position: absolute;2639  inset: 0;2640  z-index: 200;2641  display: flex;2642  flex-direction: column;2643  background:2644    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2645    var(--peach-bg);2646  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2647}26482649.peach-note-editor-header {2650  display: flex;2651  align-items: center;2652  gap: 10px;2653  padding: 14px 16px 10px;2654  border-bottom: 1px solid var(--peach-t3);2655  flex-shrink: 0;2656}26572658.peach-note-editor-back {2659  background: transparent;2660  border: none;2661  cursor: pointer;2662  color: var(--peach-t2);2663  padding: 4px 6px;2664  border-radius: 6px;2665  display: flex;2666  align-items: center;2667  transition: color 120ms ease, background 120ms ease;2668  flex-shrink: 0;2669}2670.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }26712672.peach-note-editor-label {2673  flex: 1;2674  font-family: var(--font-display);2675  font-style: italic;2676  font-size: 15px;2677  color: var(--peach-t1);2678  letter-spacing: 0.02em;2679}26802681.peach-note-editor-save-btn {2682  background: transparent;2683  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2684  border-radius: 8px;2685  color: var(--peach-accent);2686  font-family: "IBM Plex Mono", monospace;2687  font-size: 10px;2688  letter-spacing: 0.06em;2689  text-transform: uppercase;2690  padding: 3px 10px;2691  cursor: pointer;2692  transition: background 120ms ease, border-color 120ms ease;2693}2694.peach-note-editor-save-btn:hover:not(:disabled) {2695  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2696  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2697}2698.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }26992700.peach-note-toolbar {2701  display: flex;2702  align-items: center;2703  gap: 3px;2704  padding: 6px 14px 5px;2705  border-bottom: 1px solid var(--peach-t3);2706  flex-shrink: 0;2707}27082709.peach-note-tool-btn {2710  background: transparent;2711  border: 1px solid transparent;2712  border-radius: 5px;2713  color: var(--peach-t2);2714  font-family: "IBM Plex Mono", monospace;2715  font-size: 10px;2716  letter-spacing: 0.04em;2717  padding: 2px 8px;2718  cursor: pointer;2719  line-height: 1.6;2720  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2721}2722.peach-note-tool-btn:hover {2723  background: var(--peach-t4);2724  color: var(--peach-t0);2725  border-color: var(--peach-t3);2726}27272728.peach-note-tool-icon {2729  padding: 3px 7px;2730  display: inline-flex;2731  align-items: center;2732  justify-content: center;2733}27342735.peach-note-tool-divider {2736  width: 1px;2737  height: 14px;2738  background: var(--peach-t3);2739  margin: 0 4px;2740  flex-shrink: 0;2741}27422743.peach-note-editor-body {2744  flex: 1;2745  overflow-y: auto;2746  padding: 16px 20px 20px;2747  outline: none;2748  font-family: var(--font-display);2749  font-size: 16px;2750  line-height: 1.75;2751  color: var(--peach-t0);2752  scrollbar-width: none;2753  word-break: break-word;2754}2755.peach-note-editor-body:empty::before {2756  content: "write your note…";2757  color: var(--peach-t3);2758  font-style: italic;2759  pointer-events: none;2760}27612762/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2763.peach-note-editor-inline {2764  display: flex;2765  flex-direction: column;2766  flex: 1;2767  min-height: 0;2768}2769.peach-note-editor-body--inline {2770  flex: 1;2771  min-height: 0;2772  font-size: 15px;2773  padding: 10px 20px 14px;2774}27752776/* Full-width toolbar row inside the body (Add.tsx note type).2777   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2778.peach-note-toolbar-body {2779  display: flex;2780  align-items: center;2781  gap: 3px;2782  padding: 5px 20px 4px;2783  margin: 2px -20px 0;2784  border-bottom: 1px solid var(--peach-t3);2785  flex-shrink: 0;2786}27872788/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2789   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2790   and .peach-note-tool-divider button-level styles. */2791.peach-note-toolbar-inline {2792  display: flex;2793  align-items: center;2794  gap: 3px;2795  margin-left: auto;2796  padding-left: 10px;2797  border-left: 1px solid var(--peach-t3);2798  min-height: 22px;2799}28002801/* Entry.tsx toolbar row (no tabs, toolbar only) */2802.peach-entry-note-toolbar-row {2803  display: flex;2804  align-items: center;2805  margin: 4px 0 6px;2806  position: relative;2807  z-index: 1;2808}2809.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2810  border-left: none;2811  padding-left: 0;2812  margin-left: 0;2813}28142815/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2816.peach-note-body {2817  display: flex;2818  flex-direction: column;2819  flex: 1;2820  min-height: 0;2821  margin: 4px 0 0;2822}2823.peach-entry-body--new .peach-note-body {2824  margin: 8px -20px 0;2825}28262827/* Add.tsx body is a grid by default; swap to a flex column when a note is2828   active so the note body can stretch and pin the tags row to the bottom. */2829.peach-entry-body--new:has(.peach-note-body) {2830  display: flex;2831  flex-direction: column;2832}28332834/* Rich content element styles (editor + display) */2835.peach-note-editor-body h2,2836.peach-note-content h2 {2837  font-family: var(--font-display);2838  font-size: 20px;2839  font-weight: 600;2840  font-style: italic;2841  color: var(--peach-t0);2842  margin: 6px 0 2px;2843  line-height: 1.3;2844}2845.peach-note-editor-body ul,2846.peach-note-content ul {2847  padding-left: 18px;2848  margin: 3px 0;2849  list-style: disc;2850}2851.peach-note-editor-body ol,2852.peach-note-content ol {2853  padding-left: 18px;2854  margin: 3px 0;2855  list-style: decimal;2856}2857.peach-note-editor-body li,2858.peach-note-content li { margin: 2px 0; }2859.peach-note-editor-body hr,2860.peach-note-content hr {2861  border: none;2862  border-top: 1px solid var(--peach-t3);2863  margin: 10px 0;2864}28652866/* font size elements from execCommand */2867.peach-note-editor-body font[size="1"],2868.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2869.peach-note-editor-body font[size="2"],2870.peach-note-content font[size="2"] { font-size: 13px; }2871.peach-note-editor-body font[size="3"],2872.peach-note-content font[size="3"] { font-size: 16px; }2873.peach-note-editor-body font[size="4"],2874.peach-note-content font[size="4"] { font-size: 20px; }2875.peach-note-editor-body font[size="5"],2876.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }28772878/* bold / italic inside the editor and note display */2879.peach-note-editor-body b, .peach-note-editor-body strong,2880.peach-note-content b, .peach-note-content strong { font-weight: 700; }2881.peach-note-editor-body em, .peach-note-editor-body i,2882.peach-note-content em, .peach-note-content i { font-style: italic; }28832884/* note display — rendered HTML, no pre-wrap */2885.peach-note-content {2886  overflow: auto;2887  max-height: 340px;2888  word-break: break-word;2889}28902891/* ── Note textarea ── */2892.peach-note-textarea {2893  width: 100%;2894  min-height: 180px;2895  max-height: 280px;2896  resize: vertical;2897  background: var(--peach-t4);2898  border: 1px solid var(--peach-t3);2899  border-radius: 8px;2900  padding: 10px 12px;2901  font-family: "IBM Plex Mono", monospace;2902  font-size: 12px;2903  line-height: 1.7;2904  color: var(--peach-t1);2905  outline: none;2906  transition: border-color 150ms ease;2907}29082909.peach-note-textarea:focus {2910  border-color: var(--peach-t2);2911}29122913.peach-note-char-count {2914  font-family: "IBM Plex Mono", monospace;2915  font-size: 9px;2916  color: var(--peach-t3);2917  text-align: right;2918  margin-top: 4px;2919  letter-spacing: 0.1em;2920}29212922/* ── Field input baseline ── */2923.peach-new-field-input {2924  width: 100%;2925  background: transparent;2926  border: none;2927  border-bottom: 1px solid var(--peach-t3);2928  padding: 4px 0;2929  color: var(--peach-t1);2930  font-family: "IBM Plex Mono", monospace;2931  font-size: 13px;2932  outline: none;2933  transition: border-color 150ms ease;2934}29352936.peach-new-field-input:focus {2937  border-bottom-color: var(--peach-t0);2938  color: var(--peach-t0);2939}29402941.peach-new-name-input {2942  width: 100%;2943  background: transparent;2944  border: none;2945  border-bottom: 1px solid var(--peach-t3);2946  padding: 6px 0;2947  font-family: var(--font-display);2948  font-style: italic;2949  font-size: 28px;2950  color: var(--peach-t0);2951  outline: none;2952  transition: border-color 150ms ease;2953}29542955.peach-new-name-input:focus {2956  border-bottom-color: var(--peach-t1);2957}29582959.peach-new-name-input::placeholder {2960  color: var(--peach-t2);2961  font-style: italic;2962}29632964.peach-new-field-input::placeholder {2965  color: var(--peach-t3);2966}29672968/* ── Demo entrance animation ── */2969#hd-shell {2970  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2971}2972@keyframes hd-shell-enter {2973  from { opacity: 0; transform: scale(0.96) translateY(16px); }2974  to   { opacity: 1; transform: scale(1) translateY(0); }2975}29762977/* ── Keyframes ── */2978@keyframes peach-char-enter {2979  from { opacity: 0; transform: translateY(0.22em); }2980  to   { opacity: 1; transform: translateY(0); }2981}2982@keyframes peach-content-enter {2983  from { opacity: 0.96; transform: translateY(4px); }2984  to   { opacity: 1; transform: translateY(0); }2985}2986@keyframes peach-content-exit {2987  from { opacity: 1; transform: translateY(0); }2988  to   { opacity: 0.92; transform: translateY(-3px); }2989}2990@keyframes peach-screen-enter {2991  from { opacity: 0; transform: translateY(14px); }2992  to   { opacity: 1; transform: translateY(0); }2993}2994@keyframes peach-shell-fade-in {2995  from { opacity: 0; }2996  to   { opacity: 1; }2997}2998@keyframes peach-veil-in {2999  from { opacity: 0; }3000  to   { opacity: 1; }3001}3002@keyframes peach-lock-settle {3003  0%   { transform: scale(0.9); }3004  65%  { transform: scale(1.08); }3005  100% { transform: scale(1); }3006}3007@keyframes peach-copy-confirm {3008  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3009  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); }3010}3011@keyframes peach-copy-retreat {3012  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); }3013  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3014}3015@keyframes peach-copy-flood {3016  from { opacity: 0; transform: scaleX(0.15); }3017  to   { opacity: 1; transform: scaleX(1); }3018}3019@keyframes peach-copy-icon-settle {3020  from  { transform: scale(0.84); }3021  70%   { transform: scale(1.08); }3022  to    { transform: scale(1); }3023}3024@keyframes peach-copy-sheen-retreat {3025  from { opacity: 1; transform: scaleX(1); }3026  to   { opacity: 0; transform: scaleX(0.15); }3027}3028@keyframes peach-copy-drain {3029  from { width: 100%; }3030  to   { width: 0; }3031}3032@keyframes peach-shake {3033  0%, 100% { transform: translateX(0); }3034  20%      { transform: translateX(-6px); }3035  40%      { transform: translateX(6px); }3036  60%      { transform: translateX(-4px); }3037  80%      { transform: translateX(4px); }3038}30393040@keyframes pip-pulse {3041  0% { transform: scale(1); }3042  40% { transform: scale(2.2); }3043  100% { transform: scale(1); }3044}304530463047/* ── Password generator ── */3048.peach-pwgen-body {3049  flex: 1; overflow-y: auto;3050  display: flex; flex-direction: column;3051}3052.peach-policy-badge {3053  display: flex; align-items: center;3054  padding: 6px 20px 0;3055  font-size: 10px; font-family: Inter, sans-serif;3056  color: var(--peach-t2); letter-spacing: 0.04em;3057}3058.peach-pwgen-display {3059  padding: 14px 20px 12px;3060  border-bottom: 1px solid var(--peach-t3);3061  display: flex; align-items: flex-start; gap: 10px;3062}3063.peach-pwgen-display-row {3064  display: flex;3065  align-items: flex-start;3066  gap: 8px;3067  padding-bottom: 8px;3068  border-bottom: 1px solid var(--peach-t3);3069}3070.peach-pwgen-output {3071  flex: 1; min-width: 0; margin: 0;3072  font-family: "IBM Plex Mono", monospace;3073  font-size: 13px; color: var(--peach-t0);3074  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3075  white-space: normal;3076  padding: 10px 12px;3077  background: var(--peach-t4);3078  border-radius: 6px;3079  min-height: 36px;3080}3081.peach-pwgen-output-display {3082  flex: 1;3083  min-width: 0;3084  margin: 0;3085  font-family: var(--font-display);3086  font-style: italic;3087  font-weight: 300;3088  font-size: 32px;3089  line-height: 1.05;3090  color: var(--peach-t0);3091  word-break: break-all;3092  overflow-wrap: break-word;3093  white-space: normal;3094  letter-spacing: 0.02em;3095}3096.peach-pwgen-display-actions {3097  display: flex;3098  flex-direction: column;3099  gap: 4px;3100  flex-shrink: 0;3101  margin-top: 2px;3102}3103.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3104.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3105.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3106.peach-pwgen-len-num {3107  font-family: "IBM Plex Mono", monospace;3108  font-size: 12px; color: var(--peach-accent);3109}3110.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3111.peach-pwgen-toggles { display: flex; flex-direction: column; }3112.peach-pwgen-charset-pills {3113  display: flex;3114  gap: 6px;3115  flex-wrap: wrap;3116}3117.peach-pwgen-pill {3118  padding: 4px 11px;3119  border-radius: 999px;3120  border: 1px solid var(--peach-t3);3121  background: transparent;3122  color: var(--peach-t2);3123  font-family: "IBM Plex Mono", monospace;3124  font-size: 9px;3125  letter-spacing: 0.08em;3126  cursor: pointer;3127  transition: all 150ms ease;3128}3129.peach-pwgen-pill.is-on {3130  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3131  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3132  color: var(--peach-accent);3133}3134.peach-pwgen-pill:not(.is-on):hover {3135  color: var(--peach-t1);3136  border-color: var(--peach-t2);3137}3138.peach-pwgen-use-btn {3139  width: 100%;3140  min-height: 34px;3141  border-radius: 8px;3142  margin-top: 2px;3143}3144.peach-pwgen-toggle-row {3145  display: flex; align-items: center; justify-content: space-between;3146  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3147}3148.peach-pwgen-toggle-row:last-child { border-bottom: none; }3149.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }31503151.peach-screen-prelock {3152  z-index: 10;3153}31543155.prelock-form {3156  display: grid;3157  gap: 12px;3158}31593160/* Peach popup should not expose native scrollbars on internal panels. */3161.peach-settings-body,3162.peach-new-body,3163.peach-pwgen-body,3164.lock-screen,3165.peach-import-preview {3166  scrollbar-width: none;3167  -ms-overflow-style: none;3168  overscroll-behavior: contain;3169}3170.peach-settings-body::-webkit-scrollbar,3171.peach-new-body::-webkit-scrollbar,3172.peach-pwgen-body::-webkit-scrollbar,3173.lock-screen::-webkit-scrollbar,3174.peach-import-preview::-webkit-scrollbar {3175  width: 0;3176  height: 0;3177  display: none;3178}31793180.lock-screen {3181  height: 100%;3182  min-height: 100%;3183  overflow-y: auto;3184  padding: 18px 18px 16px;3185  gap: 14px;3186  grid-template-rows: auto auto auto 1fr auto;3187  align-content: stretch;3188  position: relative;3189  isolation: isolate;3190}3191.peach-screen.lock-screen--vault-stage {3192  display: flex;3193  flex-direction: column;3194  justify-content: flex-start;3195  gap: 18px;3196  padding: 20px 18px 18px;3197  overflow: hidden;3198}3199.peach-screen.lock-screen--vault-stage .peach-lock-panel {3200  margin-top: 0;3201}3202.lock-screen--onboarding {3203  display: flex;3204  flex-direction: column;3205  gap: 12px;3206  justify-content: flex-start;3207}32083209.lock-screen::before {3210  content: "";3211  position: absolute;3212  inset: 12px 18px auto auto;3213  width: 160px;3214  height: 160px;3215  border-radius: 999px;3216  background:3217    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%);3218  filter: blur(6px);3219  opacity: 0.7;3220  pointer-events: none;3221  z-index: 0;3222}32233224.peach-lock-rune-string {3225  flex: 1;3226  display: flex;3227  align-items: center;3228  justify-content: center;3229  gap: 6px;3230  font-family: PeachScript, monospace;3231  font-size: 13px;3232  letter-spacing: 0.05em;3233  pointer-events: none;3234  user-select: none;3235  position: relative;3236  z-index: 1;3237}32383239.peach-lock-rune-string span {3240  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3241  text-shadow:3242    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3243    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3244  transition: color 0.9s ease, text-shadow 0.9s ease;3245}32463247.peach-lock-rune-string span.is-glowing {3248  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3249  text-shadow:3250    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3251    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3252}32533254.lock-screen-header {3255  display: flex;3256  align-items: center;3257  justify-content: space-between;3258  position: relative;3259  z-index: 1;3260}32613262.lock-password-input.shake {3263  animation: peach-shake 300ms ease-in-out;3264}32653266.peach-hint-error {3267  color: rgba(220, 80, 60, 0.92);3268}32693270.peach-onboarding-headline {3271  margin: 0;3272  font-family: var(--font-display);3273  font-size: 35px;3274  line-height: 0.88;3275  font-style: italic;3276  font-weight: 400;3277  max-width: 252px;3278}32793280.peach-lock-copy {3281  display: grid;3282  gap: 8px;3283  position: relative;3284  z-index: 1;3285}32863287.peach-lock-copy--onboarding {3288  gap: 10px;3289}32903291.peach-lock-hero {3292  position: relative;3293  z-index: 1;3294  display: grid;3295  gap: 8px;3296  min-height: 0;3297  padding: 4px 2px 0;3298  border: none;3299  border-radius: 0;3300  background: transparent;3301  box-shadow: none;3302}3303.peach-lock-hero-art {3304  position: absolute;3305  right: -8px;3306  top: -6px;3307  width: 120px;3308  height: 120px;3309  display: flex;3310  align-items: center;3311  justify-content: center;3312  pointer-events: none;3313  opacity: 0.12;3314  filter: saturate(0.9);3315}3316.peach-lock-hero-mark {3317  width: 100%;3318  height: 100%;3319}3320/* Peach body stays brand-peach across every accent — we don't want a3321   green or blue peach when sage/sky is selected. Leaf + stem keep the3322   sage tint because a real peach has a sage leaf. */3323.peach-lock-hero-mark path:nth-child(2),3324.peach-lock-hero-mark path:nth-child(3) {3325  stroke: rgba(123, 144, 96, 0.88);3326  fill: rgba(123, 144, 96, 0.88);3327}3328.peach-lock-hero > *:not(.peach-lock-hero-art) {3329  position: relative;3330  z-index: 1;3331}33323333.peach-lock-eyebrow {3334  display: inline-flex;3335  align-items: center;3336  width: fit-content;3337  padding: 4px 9px;3338  border-radius: 999px;3339  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3340  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3341  color: var(--peach-t0);3342  font-family: "IBM Plex Mono", monospace;3343  font-size: 8px;3344  letter-spacing: 0.18em;3345  text-transform: uppercase;3346}33473348.peach-lock-label-row {3349  display: flex;3350  align-items: center;3351  justify-content: space-between;3352  margin-bottom: 0;3353}33543355.peach-lock-reveal-btn {3356  display: inline-flex;3357  align-items: center;3358  gap: 4px;3359  background: none;3360  border: none;3361  cursor: pointer;3362  font-family: "IBM Plex Mono", monospace;3363  font-size: 9px;3364  letter-spacing: 0.06em;3365  color: var(--peach-t2);3366  padding: 2px 0;3367  transition: color 150ms ease;3368}33693370.peach-lock-reveal-btn:hover {3371  color: var(--peach-t1);3372}33733374.peach-lock-warning {3375  color: rgba(220, 80, 60, 0.85) !important;3376  line-height: 1.5;3377}33783379.peach-onboarding-cards {3380  display: grid;3381  gap: 8px;3382  position: relative;3383  z-index: 1;3384}33853386.peach-lock-panel {3387  position: relative;3388  z-index: 1;3389  display: grid;3390  gap: 9px;3391  padding: 14px 16px 15px;3392  border-radius: 18px;3393  border: 1px solid var(--peach-t3);3394  background:3395    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3396  box-shadow:3397    inset 0 1px 0 rgba(240, 232, 216, 0.04),3398    0 12px 28px rgba(0, 0, 0, 0.12);3399}34003401/* Glass surface — lock panel and settings groups */3402.peach-glass {3403  background: rgba(26, 20, 16, 0.65);3404  border: 1px solid rgba(255, 255, 255, 0.08);3405  border-radius: 12px;3406  backdrop-filter: blur(12px) saturate(1.4);3407  -webkit-backdrop-filter: blur(12px) saturate(1.4);3408}34093410@supports not (backdrop-filter: blur(1px)) {3411  .peach-glass {3412    background: rgba(26, 20, 16, 0.92);3413    border: 1px solid rgba(255, 255, 255, 0.10);3414    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3415  }3416}34173418.light .peach-glass,3419[data-theme="light"] .peach-glass {3420  background: rgba(253, 248, 244, 0.70);3421  border: 1px solid rgba(0, 0, 0, 0.07);3422  backdrop-filter: blur(12px) saturate(1.2);3423  -webkit-backdrop-filter: blur(12px) saturate(1.2);3424}34253426@supports not (backdrop-filter: blur(1px)) {3427  .light .peach-glass,3428  [data-theme="light"] .peach-glass {3429    background: rgba(253, 248, 244, 0.95);3430    border: 1px solid rgba(0, 0, 0, 0.09);3431  }3432}34333434/* Lock panel keeps its own border-radius over the generic glass token */3435.peach-lock-panel.peach-glass {3436  border-radius: 18px;3437  background: rgba(26, 20, 16, 0.65);3438  border: 1px solid rgba(255, 255, 255, 0.08);3439  box-shadow:3440    inset 0 1px 0 rgba(255, 255, 255, 0.05),3441    0 12px 28px rgba(0, 0, 0, 0.3);3442}34433444.light .peach-lock-panel.peach-glass,3445[data-theme="light"] .peach-lock-panel.peach-glass {3446  background: rgba(238, 227, 204, 0.75);3447  border: 1px solid rgba(34, 24, 9, 0.10);3448  box-shadow:3449    inset 0 1px 0 rgba(255, 255, 255, 0.5),3450    0 8px 24px rgba(80, 56, 32, 0.15);3451}34523453@supports not (backdrop-filter: blur(1px)) {3454  .peach-lock-panel.peach-glass {3455    background: rgba(26, 20, 16, 0.92);3456    box-shadow:3457      inset 0 1px 0 rgba(255, 255, 255, 0.05),3458      0 12px 28px rgba(0, 0, 0, 0.4);3459  }3460  .light .peach-lock-panel.peach-glass,3461  [data-theme="light"] .peach-lock-panel.peach-glass {3462    background: rgba(238, 227, 204, 0.96);3463  }3464}34653466.peach-lock-panel--secondary {3467  gap: 12px;3468}34693470.peach-lock-panel-header {3471  display: flex;3472  align-items: baseline;3473  justify-content: space-between;3474  gap: 12px;3475}34763477.peach-lock-option-grid {3478  display: grid;3479  gap: 10px;3480}34813482.peach-lock-option {3483  width: 100%;3484  display: grid;3485  gap: 6px;3486  padding: 14px 15px;3487  border-radius: 16px;3488  border: 1px solid rgba(240, 232, 216, 0.08);3489  background: rgba(240, 232, 216, 0.02);3490  color: var(--peach-t0);3491  text-align: left;3492  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3493}34943495.peach-lock-option:hover {3496  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3497  background: rgba(240, 232, 216, 0.04);3498  transform: translateY(-1px);3499}35003501.peach-lock-option-title {3502  font-size: 12px;3503  color: var(--peach-t0);3504}35053506.peach-lock-option-copy {3507  font-size: 11px;3508  line-height: 1.55;3509  color: var(--peach-t1);3510}35113512.peach-onboarding-stack {3513  margin-top: 2px;3514}3515.peach-lock-panel-footer {3516  display: grid;3517  gap: 6px;3518  margin-top: 2px;3519  padding-top: 10px;3520  border-top: 1px solid rgba(240, 232, 216, 0.06);3521}35223523/* Restore picker panel — method option cards (legacy; kept for any callers3524   that still mount the old shape). The v2.12.0 restore picker uses the3525   .peach-restore-stack glass cards below instead. */3526.peach-lock-panel--restore {3527  gap: 10px;3528}3529.peach-lock-option--history {3530  border-color: rgba(240, 232, 216, 0.06);3531  opacity: 0.85;3532}35333534/* ── Restore picker (v2.12.0) ─────────────────────────────────────────────3535   Three onboarding-style glass cards (PeachScript / Mayan code / CSV) that3536   replace the flat option list. Visually echoes .peach-onboarding-card so3537   the restore surface reads as part of the onboarding family. */3538.peach-restore-screen {3539  /* The three cards already have their own padding and spacing — no extra3540     panel wrapper, so the screen just needs a comfortable bottom margin. */3541  padding-bottom: 14px;3542}35433544.peach-restore-stack {3545  position: relative;3546  z-index: 1;3547  display: flex;3548  flex-direction: column;3549  gap: 9px;3550  margin-top: 4px;3551}35523553.peach-restore-card {3554  position: relative;3555  width: 100%;3556  display: flex;3557  flex-direction: column;3558  gap: 6px;3559  padding: 14px 16px 13px;3560  border-radius: 14px;3561  border: 1px solid var(--peach-t3);3562  background:3563    linear-gradient(180deg, rgba(240, 232, 216, 0.035), rgba(240, 232, 216, 0.012));3564  backdrop-filter: blur(3px);3565  -webkit-backdrop-filter: blur(3px);3566  box-shadow:3567    inset 0 1px 0 rgba(240, 232, 216, 0.04),3568    0 8px 18px rgba(0, 0, 0, 0.18);3569  color: var(--peach-t0);3570  text-align: left;3571  cursor: pointer;3572  transition:3573    border-color 160ms ease,3574    transform 160ms ease,3575    box-shadow 160ms ease,3576    background 160ms ease;3577  animation: peach-card-in 240ms cubic-bezier(0.16, 1, 0.3, 1) both;3578}35793580.peach-restore-card:hover {3581  border-color: color-mix(in srgb, var(--peach-accent) 32%, transparent);3582  background:3583    linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));3584  transform: translateY(-1px);3585  box-shadow:3586    inset 0 1px 0 rgba(240, 232, 216, 0.05),3587    0 12px 24px rgba(0, 0, 0, 0.22);3588}35893590.peach-restore-card:focus-visible {3591  outline: none;3592  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3593  box-shadow:3594    inset 0 1px 0 rgba(240, 232, 216, 0.05),3595    0 0 0 2px color-mix(in srgb, var(--peach-accent) 24%, transparent);3596}35973598/* The Mayan card is interactive but routes to a "decoder coming soon"3599   stub — we still want the hover affordance, just slightly toned down. */3600.peach-restore-card:has(.peach-restore-card-soon) {3601  opacity: 0.78;3602}3603.peach-restore-card:has(.peach-restore-card-soon):hover {3604  opacity: 0.92;3605}36063607/* Used by MayanComingSoonView for the explanatory card — non-interactive. */3608.peach-restore-card--static {3609  cursor: default;3610}3611.peach-restore-card--static:hover {3612  border-color: var(--peach-t3);3613  transform: none;3614  background:3615    linear-gradient(180deg, rgba(240, 232, 216, 0.035), rgba(240, 232, 216, 0.012));3616  box-shadow:3617    inset 0 1px 0 rgba(240, 232, 216, 0.04),3618    0 8px 18px rgba(0, 0, 0, 0.18);3619}36203621.peach-restore-card-headline {3622  margin: 0;3623  font-family: var(--font-display);3624  font-style: italic;3625  font-weight: 400;3626  font-size: 19px;3627  line-height: 1.05;3628  color: var(--peach-t0);3629}36303631.peach-restore-card-divider {3632  margin: 1px 0 3px;3633  border: 0;3634  border-top: 1px solid var(--peach-t3);3635  width: 100%;3636}36373638.peach-restore-card-body {3639  margin: 0;3640  font-size: 12px;3641  line-height: 1.55;3642  color: var(--peach-t1);3643}36443645.peach-restore-card-body code {3646  font-family: "IBM Plex Mono", monospace;3647  font-size: 11px;3648  padding: 1px 5px;3649  border-radius: 4px;3650  background: rgba(240, 232, 216, 0.06);3651  color: var(--peach-t0);3652}36533654.peach-restore-card-meta {3655  margin: 2px 0 0;3656  font-family: "IBM Plex Mono", monospace;3657  font-size: 9px;3658  letter-spacing: 0.14em;3659  text-transform: uppercase;3660  color: var(--peach-t2);3661}36623663.peach-restore-card-soon {3664  position: absolute;3665  top: 12px;3666  right: 12px;3667  display: inline-flex;3668  align-items: center;3669  padding: 2px 7px;3670  border-radius: 999px;3671  border: 1px solid color-mix(in srgb, var(--peach-accent) 26%, transparent);3672  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3673  color: var(--peach-t0);3674  font-family: "IBM Plex Mono", monospace;3675  font-size: 8px;3676  letter-spacing: 0.18em;3677  text-transform: uppercase;3678}36793680.peach-restore-footer {3681  position: relative;3682  z-index: 1;3683  margin-top: 6px;3684  padding-top: 10px;3685  border-top: 1px solid rgba(240, 232, 216, 0.06);3686  display: flex;3687  justify-content: center;3688}36893690.peach-restore-footer-link {3691  background: none;3692  border: none;3693  padding: 4px 0;3694  cursor: pointer;3695  font-family: "IBM Plex Mono", monospace;3696  font-size: 10px;3697  letter-spacing: 0.06em;3698  color: var(--peach-t2);3699  transition: color 150ms ease;3700}37013702.peach-restore-footer-link:hover {3703  color: var(--peach-t0);3704}37053706/* Snapshot restore panel */3707.peach-snapshot-panel {3708  gap: 10px;3709  overflow-y: auto;3710  max-height: 340px;3711}3712.peach-snapshot-list {3713  display: flex;3714  flex-direction: column;3715  gap: 4px;3716}3717.peach-snapshot-row {3718  display: flex;3719  align-items: center;3720  justify-content: space-between;3721  width: 100%;3722  padding: 8px 10px;3723  border-radius: 8px;3724  border: 1px solid rgba(240, 232, 216, 0.07);3725  background: transparent;3726  cursor: pointer;3727  transition: border-color 120ms, background 120ms;3728  text-align: left;3729  gap: 8px;3730}3731.peach-snapshot-row:hover {3732  border-color: rgba(240, 232, 216, 0.14);3733  background: rgba(240, 232, 216, 0.03);3734}3735.peach-snapshot-row.is-selected {3736  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3737  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3738}3739.peach-snapshot-time {3740  font-size: 11.5px;3741  color: var(--peach-t0);3742  flex: 1;3743}3744.peach-snapshot-count {3745  font-family: "IBM Plex Mono", monospace;3746  font-size: 10px;3747  color: var(--peach-t2);3748  flex-shrink: 0;3749}3750.peach-snapshot-confirm {3751  display: flex;3752  flex-direction: column;3753  gap: 8px;3754  padding-top: 10px;3755  border-top: 1px solid rgba(240, 232, 216, 0.06);3756}3757.peach-snapshot-warning {3758  display: flex;3759  align-items: flex-start;3760  gap: 6px;3761  font-size: 10.5px;3762  color: rgba(220, 80, 60, 0.85);3763  line-height: 1.55;3764}3765.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3766.peach-snapshot-confirm-row {3767  display: flex;3768  gap: 6px;3769  align-items: center;3770}3771.peach-snapshot-restore-btn {3772  width: 100%;3773}3774.peach-lock-hero--unlock .peach-lock-hero-art {3775  width: 112px;3776  height: 112px;3777  right: 0;3778  top: 2px;3779  opacity: 0.1;3780}37813782.peach-card {3783  border: 1px solid var(--peach-t3);3784  border-radius: 18px;3785  background:3786    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3787  box-shadow:3788    inset 0 0 0 1px var(--peach-border-accent),3789    inset 0 1px 0 rgba(240, 232, 216, 0.04),3790    0 12px 32px rgba(0, 0, 0, 0.14);3791  overflow: hidden;3792}37933794.peach-card-active {3795  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3796  box-shadow:3797    inset 0 1px 0 rgba(240, 232, 216, 0.05),3798    0 16px 38px rgba(0, 0, 0, 0.18),3799    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3800}38013802.peach-card-disabled {3803  opacity: 0.72;3804}38053806.peach-card-header {3807  width: 100%;3808  padding: 13px 16px 11px;3809  background: transparent;3810  color: var(--peach-t0);3811  display: flex;3812  justify-content: space-between;3813  align-items: center;3814  text-align: left;3815  font-size: 12px;3816}38173818.peach-card-body {3819  padding: 0 16px 16px;3820  display: grid;3821  gap: 9px;3822}38233824.peach-card-tag {3825  color: var(--peach-t2);3826  font-family: "IBM Plex Mono", monospace;3827  font-size: 9px;3828  letter-spacing: 0.12em;3829  text-transform: uppercase;3830}38313832.peach-empty-copy {3833  display: grid;3834  gap: 6px;3835  color: var(--peach-t1);3836  font-size: 13px;3837}38383839.peach-lock-submit {3840  width: 100%;3841  box-shadow:3842    0 1px 0 rgba(255,255,255,0.10) inset,3843    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3844    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3845    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3846}38473848.peach-lock-secondary {3849  width: 100%;3850  border-color: var(--peach-t3);3851  background: rgba(240, 232, 216, 0.02);3852}38533854.peach-lock-secondary:hover {3855  background: rgba(240, 232, 216, 0.04);3856}38573858.peach-lock-note {3859  max-width: none;3860  line-height: 1.55;3861  margin: 0;3862}38633864.peach-overlay-action {3865  font-size: 10px;3866  padding: 4px 8px;3867  letter-spacing: 0.06em;3868  min-width: 44px;3869  text-align: center;3870}38713872.peach-overlay-spacer {3873  width: 32px;3874}38753876.peach-inline-action {3877  flex-shrink: 0;3878  font-size: 9px;3879  letter-spacing: 0.1em;3880  text-transform: uppercase;3881  padding: 4px 7px;3882}3883.peach-password-toggle-btn {3884  display: inline-flex;3885  align-items: center;3886  justify-content: center;3887  min-width: 30px;3888  min-height: 26px;3889  padding: 0 7px;3890  border: 1px solid var(--peach-t3);3891  border-radius: 999px;3892  background: rgba(240, 232, 216, 0.04);3893  color: var(--peach-t2);3894  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3895}3896.peach-password-toggle-btn:hover {3897  border-color: var(--peach-t2);3898  color: var(--peach-t0);3899  background: rgba(240, 232, 216, 0.06);3900}39013902.peach-new-textarea {3903  width: 100%;3904  min-height: 88px;3905  resize: vertical;3906  border: 0;3907  outline: none;3908  background: transparent;3909  color: var(--peach-t1);3910  font-family: "IBM Plex Mono", monospace;3911  font-size: 12px;3912  line-height: 1.65;3913  caret-color: var(--peach-accent);3914}39153916.peach-new-textarea::placeholder {3917  color: var(--peach-t2);3918  opacity: 0.7;3919}39203921.peach-settings-actions {3922  display: grid;3923  gap: 8px;3924}39253926.peach-sync-section-label {3927  font-size: 11px;3928  color: var(--peach-t2);3929  text-transform: uppercase;3930  letter-spacing: 0.05em;3931}39323933.peach-sync-device-row {3934  display: flex;3935  justify-content: space-between;3936  align-items: center;3937  padding: 6px 0;3938  border-bottom: 1px solid var(--peach-t3);3939}39403941.peach-sync-device-info {3942  display: flex;3943  flex-direction: column;3944  gap: 2px;3945}39463947.peach-sync-device-name {3948  font-size: 13px;3949  color: var(--peach-t0);3950}39513952.peach-sync-device-meta {3953  font-size: 11px;3954  color: var(--peach-t2);3955}39563957.peach-sync-status-dot {3958  display: inline-block;3959  width: 8px;3960  height: 8px;3961  border-radius: 50%;3962  vertical-align: middle;3963}39643965.peach-sync-remove-btn {3966  color: var(--peach-breach);3967}39683969.peach-sync-hero-icon {3970  color: var(--peach-t1);3971  opacity: 0.85;3972}39733974.peach-import-preview {3975  margin-bottom: 12px;3976  max-height: 152px;3977  overflow-y: auto;3978  border: 1px solid var(--peach-t3);3979  border-radius: 10px;3980  padding: 8px 10px;3981  display: grid;3982  gap: 8px;3983  background: rgba(240, 232, 216, 0.02);3984}39853986.peach-import-preview-row {3987  display: flex;3988  justify-content: space-between;3989  gap: 10px;3990  font-size: 11px;3991  color: var(--peach-t1);3992}39933994.peach-import-preview-title {3995  color: var(--peach-t0);3996  flex: 1;3997  min-width: 0;3998  overflow: hidden;3999  text-overflow: ellipsis;4000  white-space: nowrap;4001}40024003.peach-import-preview-meta {4004  color: var(--peach-t2);4005  flex-shrink: 0;4006  max-width: 42%;4007  overflow: hidden;4008  text-overflow: ellipsis;4009  white-space: nowrap;4010}40114012.peach-import-preview-more {4013  color: var(--peach-t2);4014  font-size: 10px;4015}40164017.peach-restore-copy {4018  margin: 0;4019  color: var(--peach-t1);4020  font-size: 11px;4021  line-height: 1.6;4022}40234024.peach-restore-warning {4025  padding: 10px 12px;4026  border-radius: 12px;4027  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4028  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4029  color: var(--peach-t0);4030  font-size: 11px;4031  line-height: 1.55;4032}40334034.peach-provider-chips {4035  display: flex;4036  flex-wrap: wrap;4037  gap: 6px;4038}40394040.peach-provider-chip {4041  display: inline-flex;4042  align-items: center;4043  padding: 5px 8px;4044  border-radius: 999px;4045  border: 1px solid var(--peach-t3);4046  background: rgba(240, 232, 216, 0.02);4047  color: var(--peach-t1);4048  font-family: "IBM Plex Mono", monospace;4049  font-size: 8px;4050  letter-spacing: 0.08em;4051  text-transform: uppercase;4052}40534054.peach-restore-file,4055.peach-restore-input {4056  width: 100%;4057  border-radius: 10px;4058  border: 1px solid var(--peach-t3);4059  background: var(--peach-s2);4060  color: var(--peach-t0);4061  font-size: 12px;4062}40634064.peach-restore-file {4065  padding: 9px 10px;4066}40674068.peach-restore-file::file-selector-button {4069  margin-right: 10px;4070  padding: 7px 10px;4071  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4072  border-radius: 999px;4073  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4074  color: var(--peach-t0);4075  font-size: 10px;4076  letter-spacing: 0.08em;4077  text-transform: uppercase;4078  cursor: pointer;4079}40804081.peach-restore-input {4082  padding: 10px 12px;4083}40844085.peach-auth-grid {4086  display: grid;4087  gap: 10px;4088}40894090.peach-import-summary {4091  color: var(--peach-t1);4092  font-size: 12px;4093  line-height: 1.6;4094  margin-bottom: 12px;4095}40964097.peach-restore-error {4098  color: rgba(220, 80, 60, 0.95);4099  font-size: 12px;4100  line-height: 1.55;4101}41024103.peach-passkey-card {4104  max-width: 400px;4105  margin: auto 16px;4106  align-self: center;4107  width: calc(100% - 32px);4108}41094110/* Center the approval card vertically inside the overlay-view (which sets4111 * flex-direction: column without justify-content). Without this, the card4112 * sits at the top with a tall empty band below — looks unfinished on the4113 * 320px popup. */4114.peach-overlay-view:has(.peach-passkey-card) {4115  justify-content: center;4116}41174118.peach-pro-badge {4119  padding: 2px 6px;4120  border-radius: 999px;4121  font-family: var(--font-ui);4122  font-size: 10px;4123  letter-spacing: 0.08em;4124  text-transform: uppercase;4125  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4126  color: var(--peach-accent);4127}41284129/* ── Shortcuts rebind table ─────────────────────────────────── */4130.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4131.peach-shortcut-row {4132  display: flex;4133  align-items: center;4134  gap: 10px;4135  padding: 6px 0;4136}4137.peach-shortcut-row-label {4138  flex: 1;4139  font-size: 12px;4140  color: var(--peach-t0);4141}4142.peach-shortcut-chip {4143  min-width: 64px;4144  padding: 4px 10px;4145  border-radius: 6px;4146  border: 1px solid var(--peach-t3);4147  background: var(--peach-input-bg, var(--surface-card));4148  color: var(--peach-t0);4149  font-family: var(--font-mono);4150  font-size: 11px;4151  letter-spacing: 0.04em;4152  cursor: pointer;4153  text-align: center;4154  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4155}4156.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4157.peach-shortcut-chip.is-custom {4158  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4159  color: var(--peach-accent);4160}4161.peach-shortcut-chip.is-capturing {4162  border-color: var(--peach-accent);4163  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4164  color: var(--peach-accent);4165  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4166}4167@keyframes peach-shortcut-capture-pulse {4168  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4169  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4170}4171.peach-shortcut-reset {4172  background: transparent;4173  border: none;4174  cursor: pointer;4175  color: var(--peach-t2);4176  padding: 4px 6px;4177  border-radius: 5px;4178  font-size: 14px;4179  line-height: 1;4180  transition: color 120ms ease, background 120ms ease;4181}4182.peach-shortcut-reset:hover {4183  color: var(--peach-t0);4184  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4185}4186.peach-shortcuts-conflict {4187  margin: 4px 0 0;4188  padding: 8px 10px;4189  border-radius: 7px;4190  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4191  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4192  font-family: var(--font-mono);4193  font-size: 11px;4194  color: var(--peach-t0);4195}41964197/* ── Help dialog overlay (? to open) ────────────────────────── */4198.peach-shortcuts-help-backdrop {4199  position: fixed;4200  inset: 0;4201  background: rgba(0, 0, 0, 0.55);4202  backdrop-filter: blur(2px);4203  display: flex;4204  align-items: center;4205  justify-content: center;4206  z-index: 1000;4207  animation: peach-help-fade-in 140ms ease forwards;4208}4209@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4210.peach-shortcuts-help-card {4211  width: min(320px, 92vw);4212  max-height: 80vh;4213  overflow-y: auto;4214  border-radius: 14px;4215  border: 1px solid var(--peach-t3);4216  background: var(--peach-bg);4217  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4218  padding: 16px 18px 18px;4219  display: flex;4220  flex-direction: column;4221  gap: 12px;4222}4223.peach-shortcuts-help-head {4224  display: flex; align-items: center; justify-content: space-between;4225}4226.peach-shortcuts-help-head h3 {4227  margin: 0;4228  font-family: var(--font-display);4229  font-style: italic;4230  font-weight: 400;4231  font-size: 22px;4232  color: var(--peach-t0);4233}4234.peach-shortcuts-help-close {4235  background: transparent;4236  border: none;4237  color: var(--peach-t2);4238  cursor: pointer;4239  font-size: 14px;4240  padding: 4px 8px;4241  border-radius: 5px;4242}4243.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4244.peach-shortcuts-help-body ul {4245  list-style: none; padding: 0; margin: 4px 0 12px;4246  display: grid; gap: 8px;4247}4248.peach-shortcuts-help-body li {4249  display: flex; align-items: center; justify-content: space-between; gap: 12px;4250  font-size: 12px; color: var(--peach-t0);4251}4252.peach-shortcuts-help-body kbd {4253  font-family: var(--font-mono);4254  font-size: 11px;4255  padding: 3px 8px;4256  border-radius: 6px;4257  background: var(--surface-card);4258  border: 1px solid var(--peach-t3);4259  color: var(--peach-accent);4260  letter-spacing: 0.04em;4261}42624263/* ── Pro promo on Account screen ────────────────────────────── */4264.peach-pro-promo {4265  position: relative;4266  border-radius: 14px;4267  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4268  background:4269    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4270    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4271    var(--surface-card);4272  overflow: hidden;4273  margin-bottom: 14px;4274}4275.peach-pro-promo-glow {4276  position: absolute;4277  inset: -40% -20% auto auto;4278  width: 220px; height: 220px;4279  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4280  pointer-events: none;4281  filter: blur(8px);4282}4283.peach-pro-promo-inner {4284  position: relative;4285  padding: 18px 18px 16px;4286}4287.peach-pro-promo-title {4288  font-family: var(--font-display);4289  font-style: italic;4290  font-weight: 400;4291  font-size: 28px;4292  line-height: 1;4293  letter-spacing: -0.005em;4294  color: var(--peach-t0);4295  margin: 0 0 4px;4296}4297.peach-pro-promo-tagline {4298  font-family: var(--font-mono);4299  font-size: 10px;4300  letter-spacing: 0.06em;4301  color: var(--peach-t2);4302  margin: 0 0 14px;4303}4304.peach-pro-promo-list {4305  list-style: none;4306  margin: 0 0 16px;4307  padding: 0;4308  display: grid;4309  gap: 9px;4310}4311.peach-pro-promo-list li {4312  display: flex;4313  align-items: flex-start;4314  gap: 9px;4315  font-size: 12px;4316  color: var(--peach-t1);4317  line-height: 1.4;4318}4319.peach-pro-promo-list svg {4320  width: 14px;4321  height: 14px;4322  flex-shrink: 0;4323  color: var(--peach-accent);4324  margin-top: 2px;4325}4326.peach-pro-promo-list span {4327  color: var(--peach-t0);4328}4329.peach-pro-promo-cta {4330  width: 100%;4331  background: var(--peach-accent);4332  color: #fff;4333  border: none;4334  padding: 9px 12px;4335  border-radius: 9px;4336  font-size: 12px;4337  font-weight: 500;4338  font-family: var(--font-ui);4339  letter-spacing: 0.02em;4340  text-decoration: none;4341  display: inline-flex;4342  align-items: center;4343  justify-content: center;4344  cursor: pointer;4345  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4346  box-shadow: 0 2px 16px var(--peach-glow);4347}4348.peach-pro-promo-cta:hover {4349  filter: brightness(1.07);4350  box-shadow: 0 4px 24px var(--peach-glow);4351  transform: translateY(-1px);4352}4353.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }43544355.peach-pro-or-divider {4356  display: flex;4357  align-items: center;4358  gap: 10px;4359  margin: 4px 0 12px;4360  font-family: var(--font-mono);4361  font-size: 10px;4362  letter-spacing: 0.06em;4363  color: var(--peach-t2);4364  text-transform: uppercase;4365}4366.peach-pro-or-divider::before,4367.peach-pro-or-divider::after {4368  content: "";4369  flex: 1;4370  height: 1px;4371  background: var(--peach-t3);4372}43734374.peach-loading {4375  position: absolute;4376  inset: 0;4377  display: flex;4378  align-items: center;4379  justify-content: center;4380  background: var(--bg);4381  animation: peach-loading-pulse 1.2s ease-in-out infinite;4382}43834384@keyframes peach-loading-pulse {4385  0%, 100% { opacity: 0.6; }4386  50% { opacity: 1; }4387}43884389/* ── Health Dashboard ─────────────────────────────────────────────────── */4390.peach-health-body {4391  flex: 1;4392  overflow-y: auto;4393  display: flex;4394  flex-direction: column;4395  /* Hide the platform scrollbar — every other scrollable surface in the4396   * popup hides it; the Health view was the one outlier and it ruined the4397   * polish. Behavior unchanged, just no rail rendered. */4398  scrollbar-width: none;4399  -ms-overflow-style: none;4400}4401.peach-health-body::-webkit-scrollbar { display: none; }44024403/* Loading screen for the Vault Health view. The advanced report computation4404 * can run for a few seconds on a large vault — without a clear loading4405 * screen the surface looked broken (the entry view bleeds through the4406 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4407.peach-health-loading-screen {4408  flex: 1;4409  display: flex;4410  flex-direction: column;4411  align-items: center;4412  justify-content: center;4413  gap: 14px;4414  padding: 32px 28px;4415  text-align: center;4416}44174418.peach-health-loading-glyph {4419  width: 48px;4420  height: 48px;4421  display: flex;4422  align-items: center;4423  justify-content: center;4424  border-radius: 14px;4425  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4426  color: var(--peach-accent);4427}44284429.peach-health-loading-title {4430  margin: 0;4431  font-family: var(--font-display);4432  font-style: italic;4433  font-weight: 300;4434  font-size: 19px;4435  line-height: 1.2;4436  color: var(--peach-t0);4437}44384439.peach-health-loading-copy {4440  margin: 0;4441  max-width: 240px;4442  font-size: 12px;4443  line-height: 1.55;4444  color: var(--peach-t2);4445}44464447.peach-health-loading-track {4448  width: 200px;4449  height: 3px;4450  margin-top: 6px;4451  border-radius: 999px;4452  background: rgba(240, 232, 216, 0.06);4453  overflow: hidden;4454}44554456.peach-health-loading-fill {4457  width: 40%;4458  height: 100%;4459  border-radius: inherit;4460  background: linear-gradient(4461    90deg,4462    transparent 0%,4463    var(--peach-accent) 50%,4464    transparent 100%4465  );4466  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;4467}44684469@keyframes peach-health-loading-sweep {4470  0%   { transform: translateX(-100%); }4471  100% { transform: translateX(350%); }4472}44734474[data-motion="reduce"] .peach-health-loading-fill,4475[data-motion="reduce"] .peach-health-loading-glyph svg path {4476  animation: none;4477}44784479.peach-health-summary {4480  padding: 10px 16px 6px;4481  font-family: "IBM Plex Mono", monospace;4482  font-size: 11px;4483}4484.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4485.peach-health-summary-ok { color: var(--peach-t2); }44864487.peach-health-check-row {4488  padding: 0 16px 10px;4489}4490.peach-health-check-btn {4491  width: 100%;4492  display: flex;4493  align-items: center;4494  justify-content: center;4495}44964497.peach-health-sections {4498  flex: 1;4499  display: flex;4500  flex-direction: column;4501}45024503.peach-health-section {4504  border-bottom: 1px solid var(--peach-t3);4505}45064507.peach-health-section-header {4508  width: 100%;4509  display: flex;4510  align-items: center;4511  justify-content: space-between;4512  padding: 9px 16px;4513  background: transparent;4514  cursor: pointer;4515  color: var(--peach-t0);4516}45174518.peach-health-section-title-row {4519  display: flex;4520  align-items: center;4521  gap: 8px;4522}45234524.peach-health-count-badge {4525  display: inline-flex;4526  align-items: center;4527  justify-content: center;4528  min-width: 20px;4529  height: 18px;4530  padding: 0 5px;4531  border-radius: 999px;4532  background: rgba(220,80,60,0.15);4533  border: 1px solid rgba(220,80,60,0.25);4534  font-family: "IBM Plex Mono", monospace;4535  font-size: 9px;4536  color: rgba(220,80,60,0.9);4537}45384539.peach-health-section-title {4540  font-family: "IBM Plex Mono", monospace;4541  font-size: 11px;4542  text-transform: uppercase;4543  letter-spacing: 0.1em;4544  color: var(--peach-t1);4545}45464547.peach-health-chevron {4548  color: var(--peach-t2);4549  transition: transform 200ms ease;4550  flex-shrink: 0;4551}4552.peach-health-chevron.is-expanded {4553  transform: rotate(180deg);4554}45554556.peach-health-section-body {4557  padding: 0 16px 10px;4558  display: flex;4559  flex-direction: column;4560  gap: 4px;4561}45624563.peach-health-row {4564  display: flex;4565  align-items: flex-start;4566  justify-content: space-between;4567  gap: 8px;4568  padding: 6px 8px;4569  border-radius: 8px;4570  background: rgba(240,232,216,0.02);4571}45724573.peach-health-row-info {4574  flex: 1;4575  min-width: 0;4576  display: flex;4577  flex-direction: column;4578  gap: 2px;4579}45804581.peach-health-row-name {4582  font-family: var(--font-display);4583  font-size: 15px;4584  font-style: italic;4585  font-weight: 400;4586  color: var(--peach-t0);4587  white-space: nowrap;4588  overflow: hidden;4589  text-overflow: ellipsis;4590}45914592.peach-health-row-meta {4593  font-family: "IBM Plex Mono", monospace;4594  font-size: 9px;4595  color: var(--peach-t2);4596  letter-spacing: 0.05em;4597}45984599.peach-health-fix-btn {4600  font-size: 9px;4601  letter-spacing: 0.08em;4602  text-transform: uppercase;4603  padding: 4px 7px;4604  flex-shrink: 0;4605  display: flex;4606  align-items: center;4607}46084609.peach-health-empty {4610  font-family: "IBM Plex Mono", monospace;4611  font-size: 10px;4612  color: var(--peach-t2);4613  padding: 6px 0;4614}46154616.peach-health-loading {4617  font-family: "IBM Plex Mono", monospace;4618  font-size: 10px;4619  color: var(--peach-t2);4620  padding: 6px 0;4621  display: flex;4622  align-items: center;4623  gap: 6px;4624}46254626.peach-health-loading::before {4627  content: "";4628  width: 10px;4629  height: 10px;4630  border: 1.5px solid var(--peach-t3);4631  border-top-color: var(--peach-accent);4632  border-radius: 50%;4633  animation: peach-spin 600ms linear infinite;4634}46354636@keyframes peach-spin {4637  to { transform: rotate(360deg); }4638}46394640.peach-spinner {4641  width: 32px;4642  height: 32px;4643  border: 2px solid var(--peach-s2);4644  border-top-color: var(--peach-accent);4645  border-radius: 50%;4646  margin: 0 auto 16px;4647  animation: peach-spin 0.8s linear infinite;4648}46494650.peach-progress-screen {4651  text-align: center;4652  padding: 32px 16px;4653}46544655.peach-progress-screen-title {4656  font-size: 13px;4657  color: var(--peach-t0);4658  margin-bottom: 16px;4659}46604661.peach-progress-screen-stage {4662  font-size: 11px;4663  color: var(--peach-t2);4664  min-height: 14px;4665}46664667.peach-progress-screen-note {4668  font-size: 10px;4669  color: var(--peach-t2);4670  margin-top: 8px;4671}46724673.peach-pairing-body {4674  flex: 1;4675  overflow-y: auto;4676  display: flex;4677  flex-direction: column;4678}46794680.peach-pairing-content {4681  flex: 1;4682  display: flex;4683  flex-direction: column;4684  align-items: center;4685  justify-content: center;4686  gap: 14px;4687  padding: 28px 20px;4688  text-align: center;4689}46904691.peach-pairing-headline {4692  font-family: var(--font-display);4693  font-style: italic;4694  font-weight: 300;4695  font-size: 28px;4696  color: var(--peach-t0);4697  margin: 0;4698  line-height: 1;4699}47004701.peach-pairing-subline {4702  font-size: 12px;4703  color: var(--peach-t2);4704  max-width: 220px;4705  line-height: 1.5;4706  margin: 0;4707}47084709.peach-pairing-subline--center {4710  text-align: center;4711}47124713.peach-pairing-code-display {4714  display: flex;4715  gap: 6px;4716}47174718.peach-pairing-code-digit {4719  display: flex;4720  align-items: center;4721  justify-content: center;4722  width: 36px;4723  height: 48px;4724  background: var(--peach-s2);4725  border: 1px solid var(--peach-t3);4726  border-radius: 6px;4727  font-family: var(--font-mono);4728  font-size: 22px;4729  color: var(--peach-t0);4730  letter-spacing: 0;4731}47324733.peach-pairing-countdown-ring {4734  position: relative;4735  display: inline-flex;4736  align-items: center;4737  justify-content: center;4738}47394740.peach-pairing-countdown-num {4741  position: absolute;4742  font-family: var(--font-mono);4743  font-size: 14px;4744  color: var(--peach-t1);4745}47464747.peach-pairing-ring-track {4748  fill: none;4749  stroke: var(--peach-t3);4750  stroke-width: 2;4751}47524753.peach-pairing-ring-progress {4754  fill: none;4755  stroke: var(--peach-accent);4756  stroke-width: 2;4757  stroke-linecap: round;4758  transform: rotate(-90deg);4759  transform-origin: 50% 50%;4760  transition: stroke-dashoffset 0.5s linear;4761}47624763.peach-pairing-code-inputs {4764  display: flex;4765  gap: 8px;4766}47674768.peach-pairing-code-box {4769  width: 36px;4770  height: 48px;4771  text-align: center;4772  background: var(--peach-s2);4773  border: 1px solid var(--peach-t3);4774  border-radius: 6px;4775  font-family: var(--font-mono);4776  font-size: 20px;4777  color: var(--peach-t0);4778  outline: none;4779  transition: border-color 120ms ease;4780}47814782.peach-pairing-code-box:focus {4783  border-color: var(--peach-accent);4784}47854786.peach-pairing-code-box.has-error {4787  border-color: rgba(220, 80, 60, 0.45);4788}47894790.peach-pairing-status {4791  display: flex;4792  align-items: center;4793  gap: 8px;4794  margin: 0;4795  font-size: 12px;4796  color: var(--peach-t1);4797}47984799.peach-pairing-error {4800  margin: 0;4801  font-size: 11px;4802  color: var(--peach-breach);4803}48044805.peach-pairing-error-msg {4806  color: var(--peach-t1);4807}48084809.peach-pairing-spinner {4810  width: 12px;4811  height: 12px;4812  border: 1.5px solid var(--peach-t3);4813  border-top-color: var(--peach-accent);4814  border-radius: 50%;4815  animation: peach-spin 0.8s linear infinite;4816}48174818.peach-pairing-success-icon,4819.peach-pairing-error-icon,4820.peach-pairing-hero {4821  display: inline-flex;4822  align-items: center;4823  justify-content: center;4824}48254826/* Tag chips */4827.peach-tag-chip {4828  display: inline-flex;4829  align-items: center;4830  gap: 4px;4831  padding: 3px 8px;4832  border-radius: 999px;4833  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4834  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4835  color: var(--peach-t0);4836  font-family: "IBM Plex Mono", monospace;4837  font-size: 10px;4838  letter-spacing: 0.04em;4839}48404841.peach-tag-chip-remove {4842  background: transparent;4843  border: none;4844  color: inherit;4845  opacity: 0.6;4846  cursor: pointer;4847  padding: 0;4848  font-size: 12px;4849  line-height: 1;4850}48514852.peach-tag-chip-remove:hover {4853  opacity: 1;4854}48554856/* Tag input */4857.peach-tag-input-wrap {4858  border-bottom: 1px solid var(--peach-t3);4859}48604861.peach-tag-suggestions {4862  display: flex;4863  flex-wrap: wrap;4864  gap: 4px;4865  padding: 6px 0;4866}48674868.peach-tag-suggestion {4869  padding: 2px 8px;4870  border-radius: 999px;4871  border: 1px solid var(--peach-t3);4872  background: var(--peach-s2);4873  color: var(--peach-t1);4874  font-family: "IBM Plex Mono", monospace;4875  font-size: 10px;4876  cursor: pointer;4877  transition: border-color 80ms ease, background 80ms ease;4878}48794880.peach-tag-suggestion:hover {4881  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4882  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4883}48844885/* Tag filter strip */4886.peach-tag-filter-strip {4887  border-bottom: 1px solid var(--peach-t3);4888  flex-shrink: 0;4889}48904891.peach-tag-filter-chip {4892  display: inline-flex;4893  align-items: center;4894  padding: 4px 10px;4895  border-radius: 999px;4896  border: 1px solid var(--peach-t3);4897  background: transparent;4898  color: var(--peach-t2);4899  font-family: "IBM Plex Mono", monospace;4900  font-size: 9px;4901  letter-spacing: 0.06em;4902  text-transform: uppercase;4903  cursor: pointer;4904  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4905  white-space: nowrap;4906}49074908.peach-tag-filter-chip:hover {4909  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4910  color: var(--peach-t1);4911}49124913.peach-tag-filter-chip.is-selected {4914  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4915  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4916  color: var(--peach-t0);4917}49184919/* ─────────────────────────────────────────────────────────────────────────4920   v1.4.12 additions4921   ─────────────────────────────────────────────────────────────────────── */49224923/* Sort bar */4924.peach-sort-bar {4925  display: flex;4926  align-items: center;4927  gap: 4px;4928  padding: 5px 12px;4929  border-bottom: 1px solid var(--peach-t3);4930  flex-shrink: 0;4931  overflow-x: auto;4932  scrollbar-width: none;4933}49344935.peach-sort-btn {4936  padding: 2px 9px;4937  border-radius: 999px;4938  border: 1px solid transparent;4939  background: transparent;4940  color: var(--peach-t2);4941  font-family: "IBM Plex Mono", monospace;4942  font-size: 9px;4943  letter-spacing: 0.07em;4944  text-transform: uppercase;4945  cursor: pointer;4946  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4947  white-space: nowrap;4948}49494950.peach-sort-btn:hover {4951  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4952  color: var(--peach-t1);4953}49544955.peach-sort-btn.is-active {4956  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4957  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4958  color: var(--peach-t0);4959}49604961.peach-sort-domain-hint {4962  margin-left: auto;4963  font-family: "IBM Plex Mono", monospace;4964  font-size: 9px;4965  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4966  white-space: nowrap;4967  overflow: hidden;4968  text-overflow: ellipsis;4969  max-width: 110px;4970}49714972/* Tab-match badge on entry rows */4973.peach-tab-match-badge {4974  display: inline-block;4975  width: 6px;4976  height: 6px;4977  border-radius: 50%;4978  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4979  margin-left: 5px;4980  vertical-align: middle;4981  flex-shrink: 0;4982  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4983}49844985.peach-entry-row.is-tab-match {4986  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4987  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4988}49894990.peach-entry-row.is-tab-match:hover {4991  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4992}49934994/* Entry list stagger entrance */4995@keyframes peach-entry-fadein {4996  from { opacity: 0; transform: translateY(4px); }4997  to   { opacity: 1; transform: translateY(0); }4998}49995000.peach-vault-list .peach-entry-row {5001  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;5002  content-visibility: auto;5003  contain-intrinsic-size: auto 44px;5004}50055006/* Button press micro-interaction */5007.peach-btn:active {5008  transform: scale(0.95);5009  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5010}50115012.peach-sort-btn:active,5013.peach-tag-filter-chip:active {5014  transform: scale(0.93);5015  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5016}50175018/* Password strength bar (Lock view + shared) */5019.peach-password-strength {5020  display: flex;5021  align-items: center;5022  gap: 8px;5023  margin-top: 6px;5024}50255026.peach-strength-bar {5027  flex: 1;5028  height: 3px;5029  border-radius: 2px;5030  background: var(--peach-t3);5031  overflow: hidden;5032}50335034.peach-strength-fill {5035  height: 100%;5036  border-radius: 2px;5037  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5038              background 300ms ease;5039}50405041.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5042.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5043.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5044.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }50455046.peach-strength-label {5047  font-family: "IBM Plex Mono", monospace;5048  font-style: italic;5049  font-size: 9px;5050  font-weight: 300;5051  letter-spacing: 0.06em;5052  color: var(--peach-t2);5053  min-width: 36px;5054  text-align: right;5055}50565057.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5058.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5059.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5060.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }50615062/* Duress form */5063.peach-duress-status {5064  padding: 2px 8px;5065  border-radius: 999px;5066  border: 1px solid var(--peach-t3);5067  font-family: "IBM Plex Mono", monospace;5068  font-size: 9px;5069  letter-spacing: 0.07em;5070  text-transform: uppercase;5071  color: var(--peach-t2);5072  flex-shrink: 0;5073}50745075.peach-duress-status.is-active {5076  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5077  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5078  color: var(--peach-t0);5079}50805081.peach-duress-form {5082  padding: 8px 0 4px;5083  display: flex;5084  flex-direction: column;5085  gap: 6px;5086}50875088.peach-duress-form .peach-label {5089  margin-top: 4px;5090}50915092.peach-duress-actions {5093  display: flex;5094  gap: 6px;5095  align-items: center;5096  margin-top: 4px;5097}50985099.peach-duress-actions .peach-btn:first-child {5100  margin-right: auto;5101}51025103/* Improved overlay spring entrance */5104.peach-overlay-view.ov-enter-up {5105  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5106}51075108@keyframes ov-enter-up-spring {5109  from { opacity: 0; transform: translateY(16px) scale(0.98); }5110  to   { opacity: 1; transform: translateY(0) scale(1); }5111}51125113.peach-overlay-view.ov-enter-right {5114  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5115}51165117@keyframes ov-enter-right-spring {5118  from { opacity: 0; transform: translateX(18px) scale(0.98); }5119  to   { opacity: 1; transform: translateX(0) scale(1); }5120}51215122/* ── Onboarding-mode restore screens (file import) ── */5123/* Used when MainImportView renders during onboarding (no vault yet).5124   Animates like a lock-screen transition. */5125.peach-lock-view {5126  position: absolute;5127  inset: 0;5128  display: flex;5129  flex-direction: column;5130  background:5131    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5132    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5133    var(--peach-bg);5134  z-index: 2;5135  overflow: hidden;5136  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5137}51385139.peach-lock-view-header {5140  display: flex;5141  align-items: center;5142  justify-content: space-between;5143  padding: 16px 18px 12px;5144  flex-shrink: 0;5145}51465147/* ───────── Settings: auto-lock select ───────── */5148.peach-settings-select {5149  font-family: "IBM Plex Mono", monospace;5150  font-size: 11px;5151  background: transparent;5152  border: 1px solid var(--peach-t3);5153  border-radius: 4px;5154  color: var(--peach-t1);5155  padding: 3px 6px;5156  cursor: pointer;5157  outline: none;5158}5159.peach-settings-select:focus {5160  border-color: var(--peach-accent);5161}51625163/* ───────── Duress status pill (new polished) ───────── */5164.peach-duress-status-pill {5165  font-family: "IBM Plex Mono", monospace;5166  font-size: 9px;5167  text-transform: uppercase;5168  letter-spacing: 0.12em;5169  padding: 2px 8px;5170  border-radius: 12px;5171  background: var(--peach-t3);5172  color: var(--peach-t2);5173  flex-shrink: 0;5174}5175.peach-duress-status-pill.is-active {5176  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5177  color: var(--peach-accent);5178}51795180/* ───────── Entry advanced disclosure (canary) ───────── */5181.peach-entry-advanced {5182  margin-top: 12px;5183  border-top: 1px solid var(--peach-t3);5184  padding-top: 10px;5185  position: relative;5186  z-index: 1;5187}5188.peach-entry-advanced-toggle {5189  display: flex;5190  align-items: center;5191  justify-content: space-between;5192  width: 100%;5193  background: transparent;5194  border: none;5195  cursor: pointer;5196  padding: 0;5197  color: var(--peach-t2);5198}5199.peach-canary-section {5200  margin-top: 10px;5201  display: grid;5202  gap: 6px;5203}52045205/* ───────── Import: merge/replace radio choices ───────── */5206.peach-import-choice {5207  display: flex;5208  align-items: flex-start;5209  gap: 10px;5210  padding: 8px 10px;5211  border: 1px solid var(--peach-t3);5212  border-radius: 10px;5213  cursor: pointer;5214  margin-bottom: 6px;5215  transition: border-color 120ms ease, background 120ms ease;5216}5217.peach-import-choice:hover {5218  border-color: var(--peach-accent);5219}5220.peach-import-choice input[type="radio"] {5221  margin-top: 3px;5222  accent-color: var(--peach-accent);5223  flex-shrink: 0;5224}5225.peach-import-choice-main {5226  display: flex;5227  flex-direction: column;5228  gap: 2px;5229  min-width: 0;5230}5231.peach-import-choice-label {5232  font-size: 12px;5233  color: var(--peach-t0);5234}5235.peach-import-choice-sub {5236  font-size: 11px;5237  color: var(--peach-t2);5238  line-height: 1.5;5239}52405241/* ───────── Export: success confirmation strip ───────── */5242.peach-export-success {5243  display: flex;5244  align-items: flex-start;5245  gap: 10px;5246  padding: 12px;5247  border-radius: 12px;5248  border: 1px solid rgba(150, 175, 110, 0.3);5249  background: rgba(150, 175, 110, 0.08);5250  color: var(--peach-t0);5251  font-size: 12px;5252  line-height: 1.55;5253}5254.peach-export-success-check {5255  color: rgba(150, 175, 110, 0.9);5256  font-size: 14px;5257  flex-shrink: 0;5258}52595260/* ── Trash view ──────────────────────────────────────────────────────── */5261.peach-trash-entry-row {5262  display: flex;5263  align-items: center;5264  justify-content: space-between;5265  gap: 8px;5266  padding: 8px 0;5267  border-bottom: 1px solid var(--peach-border);5268}5269.peach-trash-entry-info {5270  flex: 1;5271  min-width: 0;5272  display: flex;5273  flex-direction: column;5274  gap: 2px;5275}5276.peach-trash-entry-title {5277  font-size: 13px;5278  color: var(--peach-t0);5279  overflow: hidden;5280  text-overflow: ellipsis;5281  white-space: nowrap;5282}5283.peach-trash-entry-meta {5284  font-family: var(--font-mono);5285  font-size: 9px;5286  color: var(--peach-t2);5287  letter-spacing: 0.04em;5288}5289.peach-trash-entry-actions {5290  display: flex;5291  align-items: center;5292  gap: 4px;5293  flex-shrink: 0;5294}5295.peach-trash-delete-btn {5296  background: transparent;5297  border: 0;5298  color: var(--peach-t3);5299  font-size: 16px;5300  line-height: 1;5301  cursor: pointer;5302  padding: 2px 5px;5303  transition: color 0.15s;5304}5305.peach-trash-delete-btn:hover { color: var(--peach-breach); }5306.peach-trash-list {5307  overflow-y: auto;5308}5309.peach-trash-footer {5310  display: flex;5311  align-items: center;5312  gap: 8px;5313  padding: 8px 0 0;5314  border-top: 1px solid var(--peach-border);5315  margin-top: 4px;5316}5317.peach-trash-purge-all {5318  background: transparent;5319  border: 0;5320  color: var(--peach-t3);5321  font-size: 10px;5322  cursor: pointer;5323  padding: 4px 0;5324  letter-spacing: 0.03em;5325  transition: color 0.2s;5326}5327.peach-trash-purge-all:hover { color: var(--peach-breach); }5328.peach-trash-purge-confirm-label {5329  font-size: 10px;5330  color: var(--peach-t1);5331  flex: 1;5332}53335334/* ── Settings shortcuts grid ─────────────────────────────────────────── */5335.peach-shortcuts-grid {5336  display: grid;5337  grid-template-columns: auto 1fr;5338  gap: 6px 12px;5339  align-items: center;5340  padding: 4px 0;5341}5342.peach-shortcut-key {5343  font-family: var(--font-mono);5344  font-size: 10px;5345  color: var(--peach-t0);5346  background: var(--peach-t3);5347  border-radius: 4px;5348  padding: 2px 6px;5349  white-space: nowrap;5350  text-align: center;5351}5352.peach-shortcut-desc {5353  font-size: 11px;5354  color: var(--peach-t1);5355}53565357/* ── Sort bar trash button ───────────────────────────────────────────── */5358.peach-sort-trash-btn {5359  display: flex;5360  align-items: center;5361  justify-content: center;5362  padding: 3px 5px;5363  background: transparent;5364  border: none;5365  cursor: pointer;5366  color: var(--peach-t2);5367  border-radius: 4px;5368  transition: color 140ms ease, background 140ms ease;5369}5370.peach-sort-trash-btn:hover {5371  color: var(--peach-t1);5372  background: var(--peach-t3);5373}5374.peach-sort-trash-btn.is-active {5375  color: var(--peach-accent);5376}53775378/* Accent color picker */5379.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5380.peach-accent-picker {5381  display: flex;5382  flex-wrap: wrap;5383  gap: 7px;5384  padding: 2px 0;5385}5386.peach-accent-swatch {5387  width: 22px;5388  height: 22px;5389  border-radius: 50%;5390  border: 2px solid transparent;5391  cursor: pointer;5392  padding: 0;5393  transition: transform 100ms;5394  outline-offset: 2px;5395}5396.peach-accent-swatch:hover { transform: scale(1.15); }5397.peach-accent-swatch.is-active {5398  border-color: var(--peach-t0);5399  transform: scale(1.1);5400}54015402/* Display font picker — swatch shows an "Aa" preview rendered with each5403   font option so the user can see what they're picking before they pick. */5404.peach-settings-row--font { align-items: flex-start; padding-top: 10px; }5405.peach-font-picker {5406  display: flex;5407  flex-wrap: wrap;5408  gap: 6px;5409  padding: 2px 0;5410  flex: 1;5411  justify-content: flex-end;5412}5413.peach-font-swatch {5414  display: flex;5415  flex-direction: column;5416  align-items: center;5417  gap: 2px;5418  padding: 4px 8px;5419  background: transparent;5420  border: 1px solid var(--peach-t3);5421  border-radius: 6px;5422  cursor: pointer;5423  transition: border-color 100ms, background 100ms;5424  min-width: 56px;5425}5426.peach-font-swatch:hover {5427  border-color: var(--peach-accent-dim);5428  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5429}5430.peach-font-swatch.is-active {5431  border-color: var(--peach-accent);5432  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5433}5434.peach-font-swatch-glyph {5435  font-size: 18px;5436  line-height: 1;5437  color: var(--peach-t0);5438}5439.peach-font-swatch[data-font-preview="cormorant-italic"] .peach-font-swatch-glyph {5440  font-family: "Cormorant Garamond", serif;5441  font-style: italic;5442  font-weight: 400;5443}5444.peach-font-swatch[data-font-preview="cormorant"] .peach-font-swatch-glyph {5445  font-family: "Cormorant Garamond", serif;5446  font-style: normal;5447  font-weight: 400;5448}5449.peach-font-swatch[data-font-preview="inter"] .peach-font-swatch-glyph {5450  font-family: "Inter Variable", "Inter", sans-serif;5451  font-style: normal;5452  font-weight: 400;5453}5454.peach-font-swatch[data-font-preview="system"] .peach-font-swatch-glyph {5455  font-family: system-ui, -apple-system, sans-serif;5456  font-style: normal;5457  font-weight: 400;5458}5459.peach-font-swatch-name {5460  font-family: var(--font-mono);5461  font-size: 8px;5462  letter-spacing: 0.06em;5463  color: var(--peach-t2);5464  text-transform: lowercase;5465}54665467.peach-pill-group {5468  display: flex;5469  gap: 6px;5470}5471.peach-pill-group .peach-btn.is-active {5472  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5473  border-color: var(--peach-accent);5474  color: var(--peach-t0);5475}54765477/* ── Card entry styles ───────────────────────────────────────── */5478.peach-card-number {5479  font-family: var(--peach-mono);5480  letter-spacing: 0.08em;5481}54825483.peach-card-network-badge {5484  font-size: 10px;5485  padding: 1px 5px;5486  border-radius: 4px;5487  border: 0.5px solid var(--peach-border);5488  color: var(--peach-text-dim);5489  margin-left: 6px;5490  vertical-align: middle;5491}54925493.peach-card-expiry-row {5494  display: flex;5495  align-items: center;5496  gap: 8px;5497}54985499.peach-card-expiry-sep {5500  color: var(--peach-text-dim);5501}55025503/* ── Pro tier — upgrade screen ──────────────────────────────── */5504.peach-pro-mark {5505  font-size: 9px;5506  color: var(--peach-accent);5507  margin-left: 6px;5508  vertical-align: super;5509  opacity: 0.7;5510}55115512.peach-pro-mini-badge {5513  display: block;5514  font-size: 10px;5515  font-style: italic;5516  color: var(--peach-accent);5517  letter-spacing: 0.04em;5518  margin-top: -2px;5519  padding-left: 2px;5520  opacity: 0.85;5521  text-align: center;5522}55235524.peach-wordmark-stack {5525  display: inline-flex;5526  flex-direction: column;5527  align-items: center;5528}55295530/* ── Pro tier — upgrade page ─────────────────────────────────── */5531.peach-pro-upgrade {5532  display: flex;5533  flex-direction: column;5534  align-items: stretch;5535  gap: 10px;5536  padding: 0 4px 8px;5537}55385539.peach-pro-upgrade-hero {5540  display: flex;5541  flex-direction: column;5542  align-items: center;5543  gap: 4px;5544  padding: 10px 0 6px;5545}55465547.peach-pro-upgrade-mark-wrap {5548  display: flex;5549  align-items: center;5550  justify-content: center;5551  margin-bottom: 2px;5552}55535554.peach-pro-upgrade-mark {5555  width: 38px;5556  height: 38px;5557  filter:5558    drop-shadow(0 0 7px color-mix(in srgb, var(--peach-accent) 45%, transparent))5559    drop-shadow(0 0 18px color-mix(in srgb, var(--peach-accent) 18%, transparent));5560}55615562.peach-pro-upgrade-title {5563  font-family: var(--font-display, var(--font-ui));5564  font-size: 22px;5565  margin: 0;5566  color: var(--peach-t0);5567  letter-spacing: 0.01em;5568}55695570.peach-pro-upgrade-tagline {5571  margin: 0;5572  font-style: italic;5573  color: var(--peach-t2);5574  font-size: 11px;5575}55765577.peach-pro-features {5578  display: flex;5579  flex-direction: column;5580  gap: 8px;5581  border-top: 1px solid var(--peach-border);5582  border-bottom: 1px solid var(--peach-border);5583  padding: 10px 4px;5584}55855586.peach-pro-feature {5587  display: flex;5588  gap: 9px;5589  align-items: baseline;5590}55915592.peach-pro-feature-mark {5593  color: var(--peach-accent);5594  font-size: 11px;5595  flex-shrink: 0;5596  display: inline-block;5597  transform-origin: center;5598  opacity: 0.8;5599}56005601.peach-pro-feature-text {5602  display: flex;5603  flex-direction: column;5604  gap: 1px;5605}56065607.peach-pro-feature-name {5608  font-size: 12px;5609  color: var(--peach-t0);5610}56115612.peach-pro-feature-desc {5613  font-size: 10px;5614  color: var(--peach-t2);5615}56165617.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5618  animation: peach-pulse-accent 600ms ease-out forwards;5619}56205621@keyframes peach-pulse-accent {5622  0%   { opacity: 1; transform: scale(1.4); }5623  100% { opacity: 0.7; transform: scale(1); }5624}56255626.peach-pro-upgrade-actions {5627  display: flex;5628  flex-direction: column;5629  align-items: center;5630  gap: 8px;5631  padding-top: 2px;5632}56335634.peach-pro-pricing {5635  margin: 0;5636  text-align: center;5637  font-size: 11px;5638  color: var(--peach-t2);5639  letter-spacing: 0.04em;5640}56415642.peach-pro-upgrade-cta {5643  align-self: stretch;5644  text-align: center;5645  text-decoration: none;5646  display: block;5647  padding: 9px 20px;5648  font-size: 13px;5649  box-sizing: border-box;5650}56515652.peach-pro-key-divider {5653  display: flex;5654  align-items: center;5655  gap: 8px;5656  width: 100%;5657  color: var(--peach-t3);5658  font-size: 10px;5659  letter-spacing: 0.08em;5660}56615662.peach-pro-key-divider::before,5663.peach-pro-key-divider::after {5664  content: "";5665  flex: 1;5666  height: 1px;5667  background: var(--peach-border);5668}56695670.peach-pro-key-link {5671  background: transparent;5672  border: 1px solid var(--peach-border);5673  border-radius: 8px;5674  color: var(--peach-t1);5675  font-size: 12px;5676  cursor: pointer;5677  align-self: stretch;5678  padding: 8px 12px;5679  text-align: center;5680  transition: border-color 0.2s, color 0.2s;5681}56825683.peach-pro-key-link:hover {5684  border-color: var(--peach-accent);5685  color: var(--peach-accent);5686}56875688/* ── Pro tier — key ceremony ─────────────────────────────────── */5689.peach-pro-key-ceremony {5690  display: flex;5691  flex-direction: column;5692  align-items: center;5693  gap: 12px;5694  padding: 20px 4px 16px;5695}56965697.peach-pro-key-ceremony .peach-lock-rune-string {5698  font-size: 16px;5699  gap: 12px;5700  flex: 0;5701  justify-content: center;5702}57035704.peach-pro-key-ceremony-label {5705  margin: 0;5706  font-size: 11px;5707  color: var(--peach-t2);5708  font-style: italic;5709  letter-spacing: 0.04em;5710}57115712.peach-pro-key-input {5713  font-family: var(--font-mono, monospace);5714  letter-spacing: 0.06em;5715  text-align: center;5716  width: 100%;5717  box-sizing: border-box;5718}57195720.peach-pro-key-error {5721  margin: 0;5722  font-size: 12px;5723  text-align: center;5724  color: var(--peach-breach, #e55);5725  padding: 0;5726}57275728.peach-pro-key-activate {5729  width: 100%;5730  text-align: center;5731  box-sizing: border-box;5732  padding: 10px 20px;5733  font-size: 13px;5734}57355736.peach-pro-key-cancel {5737  background: transparent;5738  border: 0;5739  color: var(--peach-t2);5740  font-size: 11px;5741  cursor: pointer;5742  padding: 2px 8px;5743  transition: color 0.2s;5744}57455746.peach-pro-key-cancel:hover { color: var(--peach-accent); }57475748/* ── Pro tier — active state ─────────────────────────────────── */5749.peach-pro-active {5750  display: flex;5751  flex-direction: column;5752  align-items: center;5753  gap: 0;5754  padding: 8px 4px 16px;5755  min-height: 280px;5756}57575758.peach-pro-active-hero {5759  display: flex;5760  flex-direction: column;5761  align-items: center;5762  gap: 6px;5763  padding: 20px 0 22px;5764}57655766.peach-pro-active-mark-wrap {5767  display: flex;5768  align-items: center;5769  justify-content: center;5770  margin-bottom: 4px;5771}57725773.peach-pro-active-mark {5774  width: 60px;5775  height: 60px;5776  filter:5777    drop-shadow(0 0 10px color-mix(in srgb, var(--peach-accent) 55%, transparent))5778    drop-shadow(0 0 26px color-mix(in srgb, var(--peach-accent) 22%, transparent));5779}57805781.peach-pro-active-title {5782  font-family: var(--font-display, var(--font-ui));5783  font-size: 26px;5784  margin: 0;5785  color: var(--peach-t0);5786  letter-spacing: 0.01em;5787}57885789.peach-pro-active-since {5790  margin: 0;5791  font-size: 11px;5792  color: var(--peach-t2);5793  font-style: italic;5794}57955796.peach-pro-active-features {5797  display: flex;5798  flex-direction: column;5799  gap: 8px;5800  width: 100%;5801  padding: 14px 8px 0;5802  border-top: 1px solid var(--peach-border);5803  flex: 1;5804}58055806.peach-pro-active-feature {5807  display: flex;5808  align-items: center;5809  gap: 9px;5810}58115812.peach-pro-active-feature-mark {5813  color: var(--peach-accent);5814  font-size: 10px;5815  opacity: 0.65;5816  flex-shrink: 0;5817}58185819.peach-pro-active-feature-name {5820  font-size: 12px;5821  color: var(--peach-t1);5822}58235824.peach-pro-deactivate {5825  align-self: center;5826  background: transparent;5827  border: 0;5828  color: var(--peach-t3);5829  font-size: 10px;5830  cursor: pointer;5831  padding: 8px 0 0;5832  margin-top: 16px;5833  letter-spacing: 0.03em;5834  transition: color 0.2s;5835}58365837.peach-pro-deactivate:hover { color: var(--peach-t2); }58385839.peach-pro-deactivate:disabled {5840  opacity: 0.5;5841  cursor: default;5842}58435844/* ── Pro advanced health remediation queue ──────────────────── */5845.peach-health-pro-queue {5846  display: flex;5847  flex-direction: column;5848  gap: 10px;5849  padding: 12px;5850  margin: 0 0 12px;5851  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5852  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5853  border-radius: 10px;5854}58555856.peach-health-pro-queue-head {5857  display: flex;5858  justify-content: space-between;5859  align-items: baseline;5860}58615862.peach-health-pro-queue-title {5863  font-size: 12px;5864  font-weight: 500;5865  letter-spacing: 0.04em;5866  text-transform: uppercase;5867  color: var(--peach-accent);5868}58695870.peach-health-pro-queue-score {5871  font-size: 11px;5872  color: var(--peach-t2);5873}58745875.peach-health-pro-row {5876  display: flex;5877  gap: 10px;5878  align-items: center;5879  padding: 8px 0;5880  border-top: 1px solid var(--peach-border);5881}58825883.peach-health-pro-row-info {5884  flex: 1;5885  display: flex;5886  flex-direction: column;5887  gap: 4px;5888  min-width: 0;5889}58905891.peach-health-pro-row-name {5892  font-size: 13px;5893  color: var(--peach-t0);5894  overflow: hidden;5895  text-overflow: ellipsis;5896  white-space: nowrap;5897}58985899.peach-health-pro-row-meta {5900  font-size: 11px;5901  color: var(--peach-t2);5902}59035904.peach-health-pro-bar {5905  height: 2px;5906  background: var(--peach-border);5907  border-radius: 2px;5908  overflow: hidden;5909  margin-top: 2px;5910}59115912.peach-health-pro-bar-fill {5913  height: 100%;5914  background: var(--peach-accent);5915  transition: width 200ms ease-out;5916}59175918/* ── Pro activation celebration ── */5919@keyframes peach-pro-bloom {5920  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5921  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5922                 drop-shadow(0 0 48px var(--peach-glow)); }5923  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5924}59255926@keyframes peach-pro-wordmark-in {5927  from { opacity: 0; transform: translateY(4px); }5928  to   { opacity: 1; transform: translateY(0); }5929}59305931@keyframes peach-pro-fade-out {5932  from { opacity: 1; }5933  to   { opacity: 0; }5934}59355936.peach-pro-celebration {5937  background:5938    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5939    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5940    var(--peach-bg);5941  border: 1px solid var(--peach-t3);5942  box-shadow:5943    0 2px 8px rgba(0,0,0,0.55),5944    0 14px 48px rgba(0,0,0,0.7),5945    0 0 0 1px rgba(240,232,216,0.04);5946  overflow: hidden;5947  width: 320px;5948  height: 520px;5949  display: flex;5950  flex-direction: column;5951  align-items: center;5952  justify-content: center;5953  gap: 8px;5954  padding: 32px 24px;5955  text-align: center;5956}59575958.peach-pro-celebration.is-leaving {5959  animation: peach-pro-fade-out 400ms ease forwards;5960}59615962.peach-pro-bloom-target {5963  font-size: 48px;5964  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5965  margin-bottom: 12px;5966}59675968.peach-pro-wordmark {5969  font-family: var(--font-display);5970  font-size: 22px;5971  font-style: italic;5972  font-weight: 400;5973  color: var(--peach-accent);5974  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5975}59765977.peach-pro-thankyou {5978  font-size: 12px;5979  font-style: italic;5980  color: var(--peach-t2);5981  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5982}598359845985/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5986.peach-pro-notice-banner {5987  display: flex;5988  align-items: center;5989  gap: 8px;5990  padding: 7px 12px;5991  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5992  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5993  font-size: 11px;5994  color: var(--peach-t2);5995  font-family: "IBM Plex Mono", monospace;5996  flex-shrink: 0;5997}59985999.peach-pro-notice-link {6000  background: none;6001  border: none;6002  padding: 0;6003  cursor: pointer;6004  font-size: 11px;6005  color: var(--peach-accent);6006  font-family: "IBM Plex Mono", monospace;6007  margin-left: auto;6008  white-space: nowrap;6009}60106011.peach-pro-notice-close {6012  background: none;6013  border: none;6014  padding: 0 0 0 4px;6015  cursor: pointer;6016  font-size: 10px;6017  color: var(--peach-t3);6018  line-height: 1;6019}60206021/* ─── First-run onboarding ──────────────────────────────────────────────6022   Three-card welcome shown once before vault creation. The PeachScript6023   rune background drifts behind everything at very low opacity — it's6024   atmosphere, not focus. The cards themselves use the same panel6025   language as the rest of the popup so the transition into NewVault is6026   continuous, not a jarring switch of visual register. */60276028.peach-onboarding {6029  position: relative;6030  display: flex;6031  flex-direction: column;6032  width: 100%;6033  height: 100%;6034  padding: 16px 16px 18px;6035  box-sizing: border-box;6036  overflow: hidden;6037  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6038}60396040.peach-onboarding.is-completing {6041  animation: peach-onboard-exit 200ms ease-out forwards;6042}60436044.peach-rune-background {6045  position: absolute;6046  inset: 0;6047  width: 100%;6048  height: 100%;6049  pointer-events: none;6050  z-index: 0;6051  transition: opacity 500ms ease-out;6052}60536054.peach-onboarding.is-completing .peach-rune-background {6055  opacity: 0;6056}60576058.peach-onboarding-header {6059  position: relative;6060  z-index: 1;6061  display: flex;6062  align-items: center;6063  margin-bottom: 14px;6064}60656066.peach-onboarding-card {6067  position: relative;6068  z-index: 1;6069  flex: 1;6070  display: flex;6071  flex-direction: column;6072  gap: 10px;6073  padding: 22px 20px;6074  border-radius: 16px;6075  border: 1px solid var(--peach-t3);6076  background:6077    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6078  backdrop-filter: blur(3px);6079  -webkit-backdrop-filter: blur(3px);6080  box-shadow:6081    inset 0 1px 0 rgba(240, 232, 216, 0.04),6082    0 12px 28px rgba(0, 0, 0, 0.12);6083  cursor: pointer;6084  user-select: none;6085  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6086}60876088.peach-onboarding-card.is-exiting {6089  animation: peach-card-out 120ms ease-in forwards;6090  pointer-events: none;6091}60926093.peach-onboarding-card-headline {6094  margin: 0;6095  font-family: var(--font-display);6096  font-style: italic;6097  font-weight: 400;6098  font-size: 22px;6099  line-height: 1.05;6100  color: var(--peach-t0);6101  white-space: pre-line;6102}61036104.peach-onboarding-divider {6105  margin: 4px 0 6px;6106  border: 0;6107  border-top: 1px solid var(--peach-t3);6108  width: 100%;6109}61106111.peach-onboarding-body {6112  margin: 0;6113  font-size: 13px;6114  line-height: 1.6;6115  color: var(--peach-t1);6116}61176118.peach-onboarding-warning {6119  display: flex;6120  align-items: flex-start;6121  gap: 8px;6122  margin: 6px 0 0;6123  padding-top: 8px;6124  border-top: 1px dashed var(--peach-t3);6125  font-size: 13px;6126  line-height: 1.5;6127  color: var(--peach-t1);6128}61296130.peach-onboarding-warning-icon {6131  color: var(--peach-accent);6132  font-size: 13px;6133  line-height: 1.5;6134  flex: 0 0 auto;6135}61366137.peach-onboarding-nav {6138  position: relative;6139  z-index: 1;6140  display: flex;6141  align-items: center;6142  justify-content: space-between;6143  margin-top: 12px;6144  padding: 0 4px;6145}61466147.peach-onboarding-dots {6148  display: flex;6149  align-items: center;6150  gap: 6px;6151}61526153.peach-onboarding-dot {6154  width: 6px;6155  height: 6px;6156  border-radius: 50%;6157  background: var(--peach-t2);6158  transition: width 200ms ease, height 200ms ease, background 200ms ease;6159}61606161.peach-onboarding-dot.is-active {6162  width: 8px;6163  height: 8px;6164  background: var(--peach-accent);6165}61666167.peach-onboarding-next {6168  background: none;6169  border: none;6170  padding: 4px 0;6171  cursor: pointer;6172  font-family: "IBM Plex Mono", monospace;6173  font-size: 11px;6174  letter-spacing: 0.04em;6175  color: var(--peach-t1);6176  transition: color 150ms ease;6177}61786179.peach-onboarding-next:hover {6180  color: var(--peach-t0);6181}61826183.peach-onboarding-next:disabled {6184  opacity: 0.5;6185  cursor: default;6186}61876188.peach-onboarding-mobile-card-buttons {6189  display: flex;6190  flex-direction: column;6191  gap: 8px;6192  margin-top: 16px;6193}61946195@keyframes peach-onboard-enter {6196  from { opacity: 0; transform: translateY(20px); }6197  to   { opacity: 1; transform: translateY(0); }6198}61996200@keyframes peach-onboard-exit {6201  from { opacity: 1; }6202  to   { opacity: 0; }6203}62046205@keyframes peach-card-in {6206  from { opacity: 0; transform: translateX(12px); }6207  to   { opacity: 1; transform: translateX(0); }6208}62096210@keyframes peach-card-out {6211  from { opacity: 1; transform: translateX(0); }6212  to   { opacity: 0; transform: translateX(-12px); }6213}62146215/* ─── New vault screen — matched to onboarding card language ─────────── */62166217.peach-newvault {6218  position: relative;6219  display: flex;6220  flex-direction: column;6221  gap: 12px;6222  padding: 16px 16px 18px;6223  overflow: hidden;6224}62256226/* Suppress the warm-blob ambient art inherited from .lock-screen — the6227   new vault card now carries the visual weight. */6228.peach-newvault::before {6229  content: none;6230}62316232.peach-newvault-header {6233  position: relative;6234  z-index: 2;6235  display: flex;6236  align-items: center;6237  gap: 10px;6238  margin-bottom: 2px;6239}62406241.peach-newvault-back {6242  display: inline-flex;6243  align-items: center;6244  gap: 4px;6245  background: transparent;6246  border: none;6247  color: var(--peach-t2);6248  font-family: "IBM Plex Mono", monospace;6249  font-size: 10px;6250  letter-spacing: 0.06em;6251  cursor: pointer;6252  padding: 4px 6px;6253  border-radius: 6px;6254  transition: color 120ms ease, background 120ms ease;6255}62566257.peach-newvault-back:hover {6258  color: var(--peach-t0);6259  background: rgba(240, 232, 216, 0.04);6260}62616262.peach-newvault-mark {6263  position: absolute;6264  right: -12px;6265  top: 6px;6266  width: 110px;6267  height: 110px;6268  pointer-events: none;6269  opacity: 0.10;6270  filter: saturate(0.9);6271  z-index: 0;6272}6273.peach-newvault-mark-art {6274  width: 100%;6275  height: 100%;6276}6277.peach-newvault-mark-art path:nth-child(2),6278.peach-newvault-mark-art path:nth-child(3) {6279  stroke: rgba(123, 144, 96, 0.88);6280  fill: rgba(123, 144, 96, 0.88);6281}62826283.peach-newvault-card {6284  position: relative;6285  z-index: 1;6286  display: flex;6287  flex-direction: column;6288  gap: 12px;6289  padding: 22px 20px 18px;6290  border-radius: 16px;6291  border: 1px solid var(--peach-t3);6292  background:6293    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6294  backdrop-filter: blur(3px);6295  -webkit-backdrop-filter: blur(3px);6296  box-shadow:6297    inset 0 1px 0 rgba(240, 232, 216, 0.04),6298    0 12px 28px rgba(0, 0, 0, 0.12);6299  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;6300}63016302.peach-newvault-headline {6303  margin: 0;6304  font-family: var(--font-display);6305  font-style: italic;6306  font-weight: 400;6307  font-size: 24px;6308  line-height: 1.05;6309  color: var(--peach-t0);6310  white-space: pre-line;6311}63126313.peach-newvault-divider {6314  margin: 2px 0 4px;6315  border: 0;6316  border-top: 1px solid var(--peach-t3);6317  width: 100%;6318}63196320.peach-newvault-field {6321  display: flex;6322  flex-direction: column;6323  gap: 4px;6324}63256326.peach-newvault-label-row {6327  display: flex;6328  align-items: center;6329  justify-content: space-between;6330}63316332/* Monospace input scaled to the card. Replaces the 22px unlock-input6333   so the placeholder no longer overflows and the field reads as part6334   of the same surface as the body copy. */6335.peach-newvault-input {6336  font-size: 14px;6337  letter-spacing: 0.18em;6338  padding: 8px 0;6339}6340.peach-newvault-input::placeholder {6341  letter-spacing: 0.18em;6342  color: var(--peach-t2);6343}63446345.peach-newvault-hint {6346  margin: 2px 0 0;6347  font-family: "IBM Plex Mono", monospace;6348  font-size: 10px;6349  color: var(--peach-t2);6350  letter-spacing: 0.04em;6351}63526353.peach-newvault-submit {6354  margin-top: 4px;6355}63566357.peach-newvault-warning {6358  display: flex;6359  align-items: flex-start;6360  gap: 8px;6361  margin: 4px 0 0;6362  padding-top: 10px;6363  border-top: 1px dashed var(--peach-t3);6364  font-size: 12px;6365  line-height: 1.5;6366  color: var(--peach-t1);6367}63686369.peach-newvault-warning-icon {6370  color: var(--peach-accent);6371  font-size: 13px;6372  line-height: 1.4;6373  flex: 0 0 auto;6374}63756376.peach-newvault-footer {6377  position: relative;6378  z-index: 1;6379  display: flex;6380  flex-direction: column;6381  gap: 4px;6382  padding: 4px 4px 0;6383}63846385/* Settings body — warm accent gradient gives the glass something to blur against */6386.peach-settings-body {6387  background:6388    radial-gradient(6389      ellipse at 30% 20%,6390      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,6391      transparent 60%6392    );6393}63946395/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */6396/* ── Danger cards (Replace + Destroy) ────────────────────────────────────6397 * Two severity levels: "warn" for actions that are dangerous-but-recoverable6398 * (replacing the vault from a backup file) and "hazard" for actions that6399 * are absolutely irreversible (Panic). Both use the same card scaffold so6400 * they read as a pair, but the colour family signals the severity at a6401 * glance — yellow for caution, red for don't.6402 */6403.peach-danger-card {6404  --danger-tint: 235, 158, 52; /* amber */6405  display: flex;6406  flex-direction: column;6407  gap: 8px;6408  padding: 14px;6409  margin-top: 10px;6410  border-radius: 12px;6411  border: 1px solid rgba(var(--danger-tint), 0.32);6412  background:6413    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),6414    rgba(var(--danger-tint), 0.04);6415  box-shadow:6416    inset 0 1px 0 rgba(var(--danger-tint), 0.08),6417    0 0 24px rgba(var(--danger-tint), 0.04);6418  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;6419}64206421.peach-danger-card:hover {6422  border-color: rgba(var(--danger-tint), 0.55);6423  box-shadow:6424    inset 0 1px 0 rgba(var(--danger-tint), 0.12),6425    0 0 36px rgba(var(--danger-tint), 0.10);6426}64276428.peach-danger-card--hazard {6429  --danger-tint: 220, 38, 38; /* red */6430}64316432.peach-danger-card-head {6433  display: flex;6434  align-items: center;6435  gap: 10px;6436}64376438.peach-danger-card-glyph {6439  width: 28px;6440  height: 28px;6441  flex-shrink: 0;6442  display: flex;6443  align-items: center;6444  justify-content: center;6445  border-radius: 8px;6446  background: rgba(var(--danger-tint), 0.12);6447  color: rgba(var(--danger-tint), 0.95);6448  font-size: 16px;6449  line-height: 1;6450}64516452.peach-danger-card-title {6453  margin: 0;6454  font-size: 13px;6455  font-weight: 600;6456  color: rgba(var(--danger-tint), 0.92);6457  letter-spacing: 0.01em;6458}64596460.peach-danger-card-copy {6461  margin: 0;6462  font-size: 11px;6463  line-height: 1.5;6464  color: var(--peach-t2);6465}64666467.peach-danger-card-button {6468  width: 100%;6469  padding: 9px;6470  margin-top: 4px;6471  background: transparent;6472  border: 1px solid rgba(var(--danger-tint), 0.45);6473  border-radius: 8px;6474  color: rgba(var(--danger-tint), 0.9);6475  font-size: 12px;6476  font-weight: 500;6477  letter-spacing: 0.02em;6478  cursor: pointer;6479  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6480}64816482.peach-danger-card-button:hover {6483  background: rgba(var(--danger-tint), 0.10);6484  border-color: rgba(var(--danger-tint), 0.75);6485  color: rgb(var(--danger-tint));6486}64876488/* ── Panic flow (three-step destruction) ───────────────────────────────── */6489.peach-panic {6490  display: flex;6491  flex-direction: column;6492  flex: 1;6493  min-height: 0;6494  padding: 28px 20px 20px;6495  gap: 18px;6496  overflow-y: auto;6497  scrollbar-width: none;6498  -ms-overflow-style: none;6499}65006501.peach-panic::-webkit-scrollbar { display: none; }65026503.peach-panic-step2 {6504  background: rgba(220, 38, 38, 0.04);6505}65066507.peach-panic-step3 {6508  position: relative;6509  background: #0f0505;6510  color: #ffffff;6511  overflow: hidden;6512}65136514.peach-panic-rune-bg {6515  position: absolute;6516  inset: 0;6517  opacity: 0.22;6518  pointer-events: none;6519  overflow: hidden;6520}65216522.peach-panic-rune-bg canvas {6523  width: 100% !important;6524  height: 100% !important;6525}65266527.peach-panic-icon {6528  font-size: 32px;6529  color: rgb(220, 38, 38);6530  line-height: 1;6531}65326533.peach-panic-title {6534  margin: 0;6535  font-size: 18px;6536  font-weight: 500;6537  color: var(--peach-t1);6538}65396540.peach-panic-title--severe {6541  font-size: 20px;6542  font-weight: 700;6543  color: rgb(220, 38, 38);6544}65456546.peach-panic-body {6547  margin: 0;6548  font-size: 13px;6549  line-height: 1.55;6550  color: var(--peach-t2);6551}65526553.peach-panic-body--severe {6554  color: rgba(220, 38, 38, 0.85);6555}65566557.peach-panic-body--final {6558  font-size: 16px;6559  font-weight: 700;6560  color: rgb(255, 80, 80);6561  line-height: 1.4;6562}65636564.peach-panic-body--final-intro {6565  font-size: 16px;6566  color: #ffffff;6567  font-weight: 400;6568}65696570.peach-panic-divider {6571  height: 1px;6572  background: rgba(255, 255, 255, 0.08);6573  margin: 4px 0;6574}65756576.peach-panic-confirm-input {6577  width: 100%;6578  padding: 10px 12px;6579  background: rgba(255, 255, 255, 0.02);6580  border: 1px solid rgba(220, 38, 38, 0.4);6581  border-radius: 8px;6582  color: var(--peach-t1);6583  font-family: "IBM Plex Mono", monospace;6584  font-size: 14px;6585  letter-spacing: 0.12em;6586  text-transform: uppercase;6587}65886589.peach-panic-confirm-input:focus {6590  outline: none;6591  border-color: rgb(220, 38, 38);6592}65936594.peach-panic-confirm-input--match {6595  border-color: rgb(220, 38, 38);6596  color: rgb(220, 38, 38);6597}65986599.peach-panic-confirm-label {6600  font-size: 11px;6601  color: var(--peach-t2);6602  margin: 0 0 -8px;6603  letter-spacing: 0.06em;6604}66056606.peach-panic-actions {6607  display: flex;6608  flex-direction: column;6609  gap: 10px;6610  margin-top: auto;6611}66126613.peach-panic-button {6614  width: 100%;6615  padding: 12px;6616  border-radius: 8px;6617  font-size: 13px;6618  cursor: pointer;6619  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6620}66216622.peach-panic-button--primary {6623  background: var(--peach-accent);6624  border: 1px solid var(--peach-accent);6625  color: #ffffff;6626  font-weight: 600;6627}66286629.peach-panic-button--primary:hover {6630  background: color-mix(in srgb, var(--peach-accent) 88%, white);6631}66326633.peach-panic-button--danger {6634  background: rgb(220, 38, 38);6635  border: 1px solid rgb(220, 38, 38);6636  color: #ffffff;6637  font-weight: 600;6638}66396640.peach-panic-button--danger:disabled {6641  opacity: 0.35;6642  cursor: not-allowed;6643}66446645.peach-panic-button--ghost {6646  background: transparent;6647  border: 1px solid rgba(255, 255, 255, 0.18);6648  color: var(--peach-t2);6649}66506651.peach-panic-button--ghost:hover {6652  border-color: rgba(255, 255, 255, 0.32);6653  color: var(--peach-t1);6654}66556656.peach-panic-link {6657  background: transparent;6658  border: none;6659  padding: 4px 0;6660  color: rgba(220, 38, 38, 0.65);6661  font-size: 12px;6662  cursor: pointer;6663  text-align: left;6664  text-decoration: underline;6665  text-underline-offset: 3px;6666}66676668.peach-panic-link:hover {6669  color: rgb(220, 38, 38);6670}66716672.peach-panic-bar {6673  background: rgb(220, 38, 38);6674  padding: 16px 20px;6675  margin: -28px -20px 0;6676  text-align: center;6677  font-size: 13px;6678  font-weight: 700;6679  letter-spacing: 0.12em;6680  color: #ffffff;6681}66826683.peach-panic-final-button {6684  width: 100%;6685  padding: 14px;6686  background: rgb(220, 38, 38);6687  border: none;6688  border-radius: 8px;6689  color: #ffffff;6690  font-size: 14px;6691  font-weight: 700;6692  letter-spacing: 0.08em;6693  text-transform: uppercase;6694  cursor: pointer;6695  animation: peach-panic-pulse 2s ease-in-out infinite;6696}66976698.peach-settings-license {6699  margin-top: 10px;6700  padding-top: 10px;6701  border-top: 1px solid var(--peach-t3);6702}67036704.peach-settings-label {6705  font-size: 10px;6706  letter-spacing: 0.08em;6707  color: var(--peach-t3);6708  display: block;6709  margin-bottom: 6px;6710}67116712.peach-settings-license-row {6713  display: flex;6714  align-items: center;6715  justify-content: space-between;6716  gap: 8px;6717}67186719.peach-settings-license-key {6720  font-family: 'IBM Plex Mono', monospace;6721  font-size: 12px;6722  color: var(--peach-t0);6723  letter-spacing: 0.04em;6724  word-break: break-all;6725}67266727.peach-settings-license-copy {6728  font-size: 11px;6729  color: var(--peach-accent);6730  background: transparent;6731  border: none;6732  cursor: pointer;6733  padding: 4px 8px;6734  border-radius: 4px;6735  flex-shrink: 0;6736  transition: opacity 150ms ease;6737}67386739.peach-settings-license-copy:hover {6740  opacity: 0.75;6741}67426743@keyframes peach-panic-pulse {6744  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }6745  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }6746}67476748[data-motion="reduce"] .peach-panic-final-button {6749  animation: none;6750}67516752.peach-mobile-row {6753  display: flex;6754  align-items: center;6755  justify-content: space-between;6756  padding: 8px 0;6757}67586759.peach-mobile-status {6760  color: #9a8b7a;6761  font-size: 14px;6762}