popup.css

149.7 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/* Copy button */875.peach-copy-btn {876  position: relative; overflow: hidden;877  color: var(--peach-t2); border-color: var(--peach-t3);878}879.peach-copy-icon {880  display: inline-flex; align-items: center; justify-content: center;881  position: relative; z-index: 1;882}883.peach-copy-icon-svg { display: block; }884.peach-copy-sheen {885  position: absolute; inset: 0;886  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%);887  opacity: 0; transform: scaleX(0.15); transform-origin: left center;888}889.peach-copy-btn.is-copied {890  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;891  box-shadow:892    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),893    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),894    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);895}896.peach-copy-btn.is-copied .peach-copy-icon {897  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;898}899.peach-copy-btn.is-copied .peach-copy-sheen {900  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;901}902.peach-copy-btn.is-retreat {903  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;904}905.peach-copy-btn.is-retreat .peach-copy-sheen {906  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;907}908.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }909.peach-copy-drain-bar {910  display: block; width: 100%; height: 100%;911  background: var(--peach-accent); opacity: 0.7;912  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;913}914915/* Unlock screen elements */916.peach-unlock-headline {917  margin: 2px 0 0;918  font-family: var(--font-display);919  font-size: 52px; line-height: 0.95;920  font-style: italic; font-weight: 400;921}922.peach-subline {923  margin: 0;924  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;925  font-size: 10px; color: var(--peach-t2); font-style: italic;926}927.peach-subline--lock {928  max-width: 248px;929  line-height: 1.5;930}931.peach-underline-input {932  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);933  padding: 6px 0; background: transparent; color: var(--peach-t0);934  outline: none;935  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;936  font-size: 13px;937  caret-color: var(--peach-accent);938}939.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }940.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }941.peach-hint {942  margin: 0;943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;944  font-size: 10px; color: var(--peach-t2);945}946.peach-unlock-footer {947  margin-top: 4px; display: flex; align-items: center; gap: 7px;948  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;949  font-size: 10px; color: var(--peach-t2);950}951.peach-unlock-footer--lock {952  padding-top: 2px;953}954955/* Breach badge */956.peach-breach-badge {957  display: flex;958  position: relative;959  z-index: 1;960  align-items: center;961  gap: 7px;962  font-size: 9px;963  color: var(--peach-breach);964  padding: 5px 10px;965  margin-bottom: 4px;966  border-radius: 8px;967  background: rgba(220, 80, 60, 0.07);968  border: 1px solid rgba(220, 80, 60, 0.18);969  letter-spacing: 0.04em;970}971972.peach-breach-action {973  margin-left: auto;974  font-size: 10px;975  padding: 3px 8px;976}977978.peach-password-value.is-breached {979  color: rgba(220, 80, 60, 0.75);980  border-bottom: 1px solid rgba(220, 80, 60, 0.22);981}982983/* ── Overlay views ─────────────────────────────────────────────────── */984.peach-overlay-view {985  position: absolute;986  inset: 0;987  display: flex;988  flex-direction: column;989  background:990    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),991    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),992    var(--peach-bg);993  z-index: 2;994  overflow: hidden;995  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;996}997@keyframes overlay-in {998  from { opacity: 0; transform: translateY(8px); }999  to   { opacity: 1; transform: translateY(0); }1000}1001.peach-overlay-view.ov-enter-up {1002  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1003}1004.peach-overlay-view.ov-exit-up {1005  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1006}1007.peach-overlay-view.ov-enter-right {1008  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1009}1010.peach-overlay-view.ov-exit-right {1011  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1012}10131014@keyframes ov-enter-up {1015  from { opacity: 0; transform: translateY(18px); }1016  to   { opacity: 1; transform: translateY(0); }1017}1018@keyframes ov-exit-up {1019  from { opacity: 1; transform: translateY(0); }1020  to   { opacity: 0; transform: translateY(-12px); }1021}1022@keyframes ov-enter-right {1023  from { opacity: 0; transform: translateX(20px); }1024  to   { opacity: 1; transform: translateX(0); }1025}1026@keyframes ov-exit-right {1027  from { opacity: 1; transform: translateX(0); }1028  to   { opacity: 0; transform: translateX(20px); }1029}10301031/* Overlay shared header */1032.peach-overlay-header {1033  padding: 10px 12px;1034  display: flex;1035  align-items: center;1036  gap: 8px;1037  border-bottom: 1px solid var(--peach-t3);1038  flex-shrink: 0;1039}1040.peach-overlay-title {1041  font-family: "IBM Plex Mono", monospace;1042  font-size: 9px;1043  text-transform: uppercase;1044  letter-spacing: 0.18em;1045  color: var(--peach-t2);1046  flex: 1;1047  text-align: center;1048}10491050.peach-overlay-card {1051  background: var(--peach-s1);1052  border: 1px solid var(--peach-t3);1053  border-radius: 12px;1054  overflow: hidden;1055  width: 100%;1056}10571058.peach-onboarding-alt-actions {1059  display: flex;1060  flex-direction: column;1061  gap: 4px;1062  padding: 0;1063}10641065.peach-settings-copy {1066  margin: 0 0 10px;1067  font-size: 11px;1068  line-height: 1.5;1069  color: var(--peach-t2);1070}10711072.peach-settings-copy strong {1073  color: var(--peach-t0);1074}10751076.peach-settings-copy--spacious {1077  margin-bottom: 12px;1078}10791080.peach-settings-copy--result {1081  color: var(--peach-accent);1082  font-size: 13px;1083  text-align: center;1084  padding: 8px 0;1085}10861087.peach-settings-copy--danger {1088  color: var(--peach-breach);1089}10901091.peach-settings-copy--success {1092  color: var(--peach-accent);1093}10941095.peach-inline-feedback {1096  font-size: 11px;1097  margin: 10px 0 0;1098}10991100.peach-inline-feedback--ok {1101  color: var(--peach-accent);1102}11031104.peach-inline-feedback--error {1105  color: var(--peach-breach);1106}11071108.peach-inline-feedback--muted {1109  color: var(--peach-t2);1110  font-size: 10px;1111  margin: 4px 0;1112}11131114.peach-inline-feedback--spaced {1115  margin-top: 12px;1116}11171118.peach-settings-actions--row {1119  display: flex;1120  gap: 6px;1121}11221123.peach-settings-actions--end {1124  margin-top: 14px;1125  justify-content: flex-end;1126}11271128.peach-settings-stack {1129  display: flex;1130  flex-direction: column;1131  gap: 6px;1132}11331134.peach-settings-stack--tight {1135  gap: 4px;1136}11371138.peach-settings-stack--spacious {1139  gap: 8px;1140}11411142.peach-settings-input {1143  width: 100%;1144  box-sizing: border-box;1145  padding: 8px 10px;1146  background: rgba(0, 0, 0, 0.22);1147  border: 1px solid transparent;1148  border-radius: 6px;1149  color: var(--peach-t0);1150  font-family: var(--font-ui);1151  font-size: 12px;1152  outline: none;1153  transition: border-color 120ms ease, background 120ms ease;1154}11551156.peach-settings-input:focus {1157  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1158  background: rgba(0, 0, 0, 0.28);1159}11601161.peach-settings-input[type="password"] {1162  font-family: var(--font-mono);1163  letter-spacing: 0.04em;1164}11651166.peach-hidden-file-input {1167  display: none;1168}11691170.peach-checkbox-note {1171  display: flex;1172  align-items: flex-start;1173  gap: 8px;1174  font-size: 11px;1175  color: var(--peach-t1);1176  cursor: pointer;1177  margin: 12px 0;1178}11791180.peach-checkbox-note input {1181  margin-top: 1px;1182}11831184.peach-danger-notice {1185  background: rgba(220, 80, 60, 0.08);1186  border: 1px solid rgba(220, 80, 60, 0.2);1187  border-radius: 6px;1188  padding: 9px 11px;1189  font-size: 11px;1190  color: var(--peach-t1);1191  line-height: 1.5;1192}11931194.peach-info-notice {1195  font-size: 11px;1196  color: var(--peach-t1);1197  line-height: 1.5;1198  background: var(--surface-card);1199  border: 1px solid var(--peach-t3);1200  border-radius: 6px;1201  padding: 8px 10px;1202}12031204.peach-info-notice--warn {1205  border-color: rgba(220, 38, 38, 0.4);1206  background: rgba(220, 38, 38, 0.06);1207  color: rgba(220, 38, 38, 0.92);1208  margin-bottom: 8px;1209}12101211.peach-strength-row {1212  display: flex;1213  align-items: center;1214  gap: 8px;1215  margin-bottom: 10px;1216}12171218.peach-strength-track {1219  flex: 1;1220  height: 4px;1221  background: var(--peach-s2);1222  border-radius: 2px;1223  overflow: hidden;1224}12251226.peach-strength-fill {1227  height: 100%;1228  border-radius: 2px;1229  transition: width 120ms ease, background 120ms ease;1230}12311232/* ── Type selector tabs ── */1233.peach-type-tabs {1234  display: flex;1235  gap: 0;1236  background: var(--peach-t4);1237  border-radius: 8px;1238  padding: 3px;1239}12401241.peach-type-tab {1242  flex: 1;1243  display: flex;1244  align-items: center;1245  justify-content: center;1246  gap: 6px;1247  padding: 6px 10px;1248  border-radius: 6px;1249  border: none;1250  background: transparent;1251  cursor: pointer;1252  font-family: Inter, system-ui, sans-serif;1253  font-size: 11px;1254  font-weight: 400;1255  letter-spacing: 0.04em;1256  color: var(--peach-t1);1257  transition: background 150ms ease, color 150ms ease;1258}12591260.peach-type-tab.is-active {1261  background: var(--peach-s2);1262  color: var(--peach-t0);1263  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1264}12651266.peach-type-tab:not(.is-active):hover {1267  color: var(--peach-t0);1268}12691270.peach-type-tab svg {1271  opacity: 0.7;1272  flex-shrink: 0;1273}12741275.peach-type-tab.is-active svg {1276  opacity: 1;1277}12781279/* ── List view ───────────────────────────────────────────────────────── */1280.peach-list-top {1281  padding: 0 10px;1282  min-height: 46px;1283  display: flex;1284  align-items: center;1285  gap: 6px;1286  border-bottom: 1px solid var(--peach-t3);1287  flex-shrink: 0;1288  background: var(--peach-s1);1289}1290.peach-vault-list {1291  flex: 1;1292  overflow-y: auto;1293  scrollbar-width: none;1294}1295.peach-vault-list::-webkit-scrollbar { display: none; }12961297/* Scrollbar — vault list */1298.peach-vault-list {1299  scrollbar-width: thin;1300  scrollbar-color: var(--peach-t3) transparent;1301}13021303.peach-vault-list::-webkit-scrollbar {1304  width: 3px;1305}13061307.peach-vault-list::-webkit-scrollbar-thumb {1308  background: var(--peach-t3);1309  border-radius: 2px;1310}13111312.peach-entry-row {1313  width: 100%;1314  display: flex;1315  align-items: center;1316  gap: 10px;1317  padding: 9px 16px;1318  background: transparent;1319  border: none;1320  border-bottom: 1px solid var(--peach-t3);1321  cursor: pointer;1322  color: inherit;1323  text-align: left;1324  transition: background 80ms ease;1325}1326.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1327.peach-entry-row:last-child { border-bottom: none; }1328.peach-entry-row.is-active {1329  box-shadow: inset 2px 0 0 var(--peach-accent);1330  background: rgba(240,232,216,0.03);1331}1332.peach-entry-row:focus-visible {1333  outline: none;1334  box-shadow: 0 0 0 1px var(--peach-border-accent);1335  background: rgba(240,232,216,0.03);1336}1337.peach-entry-row-icon {1338  width: 26px; height: 26px;1339  border-radius: 7px;1340  border: 1px solid var(--peach-t3);1341  display: flex; align-items: center; justify-content: center;1342  color: var(--peach-t2);1343  flex-shrink: 0;1344}1345.peach-entry-row-icon.is-breach {1346  border-color: rgba(220,80,60,0.3);1347  color: rgba(220,80,60,0.7);1348}1349.peach-entry-row-info { flex: 1; min-width: 0; }1350.peach-entry-row-name {1351  display: block;1352  font-family: var(--font-display);1353  font-size: 17px;1354  font-style: italic;1355  font-weight: 400;1356  color: var(--peach-t0);1357  line-height: 1.2;1358  white-space: nowrap;1359  overflow: hidden;1360  text-overflow: ellipsis;1361}1362.peach-entry-row-meta {1363  display: block;1364  font-family: "IBM Plex Mono", monospace;1365  font-size: 9px;1366  color: var(--peach-t2);1367  margin-top: 1px;1368  letter-spacing: 0.05em;1369}1370.peach-entry-row-dot {1371  width: 5px; height: 5px;1372  border-radius: 50%;1373  background: rgba(220,80,60,0.7);1374  flex-shrink: 0;1375}1376.peach-new-entry-row {1377  display: flex;1378  align-items: center;1379  justify-content: center;1380  gap: 6px;1381  width: 100%;1382  padding: 11px;1383  background: transparent;1384  border: none;1385  border-top: 1px solid var(--peach-t3);1386  color: var(--peach-t2);1387  font-family: "IBM Plex Mono", monospace;1388  font-size: 9px;1389  text-transform: uppercase;1390  letter-spacing: 0.14em;1391  cursor: pointer;1392  flex-shrink: 0;1393  transition: color 120ms ease, background 120ms ease;1394}1395.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13961397/* ── Multi-select mode ─────────────────────────────────────────────── */13981399/* Select-mode trigger button in sort bar — same shape as trash btn */1400.peach-sort-select-btn {1401  display: flex;1402  align-items: center;1403  justify-content: center;1404  padding: 3px 5px;1405  background: transparent;1406  border: none;1407  cursor: pointer;1408  color: var(--peach-t2);1409  border-radius: 4px;1410  transition: color 140ms ease, background 140ms ease;1411}1412.peach-sort-select-btn:hover {1413  color: var(--peach-t1);1414  background: var(--peach-t3);1415}14161417/* Sort bar in select mode */1418.peach-select-cancel-btn {1419  background: transparent;1420  border: none;1421  padding: 0 4px;1422  cursor: pointer;1423  font-family: "IBM Plex Mono", monospace;1424  font-size: 9px;1425  letter-spacing: 0.12em;1426  text-transform: uppercase;1427  color: var(--peach-t2);1428  transition: color 140ms ease;1429  flex-shrink: 0;1430}1431.peach-select-cancel-btn:hover { color: var(--peach-t0); }14321433.peach-select-count-label {1434  flex: 1;1435  text-align: center;1436  font-family: "IBM Plex Mono", monospace;1437  font-size: 9px;1438  letter-spacing: 0.14em;1439  text-transform: uppercase;1440  color: var(--peach-t1);1441}14421443.peach-select-all-btn {1444  background: transparent;1445  border: none;1446  padding: 0 4px;1447  cursor: pointer;1448  font-family: "IBM Plex Mono", monospace;1449  font-size: 9px;1450  letter-spacing: 0.12em;1451  text-transform: uppercase;1452  color: var(--peach-t2);1453  transition: color 140ms ease;1454  flex-shrink: 0;1455}1456.peach-select-all-btn:hover { color: var(--peach-accent); }14571458/* List in select mode */1459.peach-vault-list.is-selecting .peach-entry-row {1460  cursor: default;1461}1462.peach-vault-list.is-selecting .peach-entry-row:hover {1463  background: rgba(240,232,216,0.02);1464}1465.peach-vault-list.is-selecting .peach-entry-row.is-selected {1466  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1467}1468.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1469  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1470}14711472/* Select indicator circles in icon slot */1473.peach-entry-row-icon.is-select-icon {1474  color: var(--peach-t2);1475}1476.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1477  color: var(--peach-accent);1478}14791480/* Delete action bar at bottom (replaces new-entry row) */1481.peach-select-action-bar {1482  display: flex;1483  align-items: center;1484  justify-content: center;1485  gap: 7px;1486  width: 100%;1487  padding: 11px;1488  background: transparent;1489  border: none;1490  border-top: 1px solid var(--peach-t3);1491  color: var(--peach-t1);1492  font-family: "IBM Plex Mono", monospace;1493  font-size: 9px;1494  text-transform: uppercase;1495  letter-spacing: 0.14em;1496  cursor: pointer;1497  flex-shrink: 0;1498  transition: color 120ms ease, background 120ms ease;1499}1500.peach-select-action-bar:not(:disabled):hover {1501  color: var(--peach-t0);1502  background: rgba(220,80,60,0.06);1503}1504.peach-select-action-bar:not(:disabled):hover svg {1505  stroke: rgba(220,80,60,0.8);1506}1507.peach-select-action-bar:disabled,1508.peach-select-action-bar.is-empty {1509  color: var(--peach-t2);1510  cursor: default;1511  opacity: 0.5;1512}1513.peach-search-counter-list {1514  white-space: nowrap;1515  flex-shrink: 0;1516}1517.peach-list-empty {1518  min-height: 180px;1519  display: grid;1520  place-items: center;1521  color: var(--peach-t2);1522  font-family: "IBM Plex Mono", monospace;1523  font-size: 11px;1524}15251526/* ── Settings view ───────────────────────────────────────────────────── */1527.peach-settings-body {1528  flex: 1;1529  overflow-y: auto;1530  min-height: 0;1531  display: flex;1532  flex-direction: column;1533  padding: 2px 0 10px;1534}1535.peach-settings-group {1536  margin: 4px 10px;1537  padding: 9px 14px 11px;1538  border-radius: 12px;1539  border: 1px solid rgba(255, 255, 255, 0.07);1540  background: rgba(26, 20, 16, 0.60);1541  backdrop-filter: blur(10px) saturate(1.3);1542  -webkit-backdrop-filter: blur(10px) saturate(1.3);1543}15441545.peach-settings-group + .peach-settings-group {1546  margin-top: 6px;1547}15481549@supports not (backdrop-filter: blur(1px)) {1550  .peach-settings-group {1551    background: rgba(26, 20, 16, 0.90);1552    border-color: rgba(255, 255, 255, 0.09);1553    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1554  }1555}15561557.light .peach-settings-group,1558[data-theme="light"] .peach-settings-group {1559  background: rgba(253, 248, 244, 0.68);1560  border-color: rgba(0, 0, 0, 0.07);1561  backdrop-filter: blur(10px) saturate(1.2);1562  -webkit-backdrop-filter: blur(10px) saturate(1.2);1563}15641565@supports not (backdrop-filter: blur(1px)) {1566  .light .peach-settings-group,1567  [data-theme="light"] .peach-settings-group {1568    background: rgba(253, 248, 244, 0.95);1569    border-color: rgba(0, 0, 0, 0.09);1570  }1571}1572.peach-export-intro {1573  padding-bottom: 8px;1574}1575.peach-export-card {1576  display: grid;1577  gap: 10px;1578}1579.peach-rune-canvas {1580  border-radius: 8px;1581  background: rgba(0, 0, 0, 0.22);1582  flex: 1;1583  align-self: center;1584}1585.peach-script-input {1586  font-family: "PeachScript", monospace;1587  font-size: 11px;1588  line-height: 1.9;1589  letter-spacing: 0.06em;1590  color: var(--peach-t0);1591  background: rgba(0, 0, 0, 0.22);1592  border: none;1593  border-radius: 6px;1594  padding: 12px;1595  width: 100%;1596  min-height: 96px;1597  resize: vertical;1598  word-break: break-all;1599}1600.peach-qr-canvas-wrap {1601  display: flex;1602  justify-content: center;1603  padding: 12px 0 6px;1604}1605.peach-qr-canvas-wrap canvas {1606  display: block;1607  background: #ffffff;1608  border-radius: 6px;1609  max-width: 100%;1610  height: auto;1611}1612.peach-csv-warning {1613  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1614  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1615  color: var(--peach-t0);1616  border-radius: 6px;1617  padding: 10px 12px;1618  margin-bottom: 8px;1619  font-size: 12px;1620  line-height: 1.45;1621}1622.peach-export-card--primary {1623  background:1624    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1625}16261627/* Export menu — distribute the three format cards across the popup. */1628.peach-export-menu {1629  display: flex;1630  flex-direction: column;1631  flex: 1;1632  min-height: 0;1633}1634.peach-export-menu .peach-settings-group {1635  flex: 1;1636  display: flex;1637  flex-direction: column;1638  justify-content: center;1639  gap: 10px;1640}16411642/* Result view — the script-string fills the remaining vertical surface. */1643.peach-export-result-group {1644  flex: 1;1645  display: flex;1646  flex-direction: column;1647  min-height: 0;1648  border-bottom: none;1649}1650.peach-export-result-group .peach-export-card {1651  flex: 1;1652  min-height: 0;1653  display: flex;1654  flex-direction: column;1655  gap: 10px;1656}1657.peach-export-result-group .peach-export-card-copy {1658  flex-shrink: 0;1659}1660.peach-export-result-group .peach-settings-label {1661  flex-shrink: 0;1662}1663.peach-export-result-group button {1664  flex-shrink: 0;1665}1666.peach-export-card-head {1667  display: flex;1668  align-items: center;1669  justify-content: space-between;1670  gap: 10px;1671}1672.peach-export-card-copy {1673  margin: 0;1674  font-size: 12px;1675  line-height: 1.55;1676  color: var(--peach-t1);1677}1678.peach-export-note {1679  margin: 0;1680  font-size: 10px;1681  line-height: 1.5;1682  color: var(--peach-t2);1683}1684.peach-export-pill {1685  display: inline-flex;1686  align-items: center;1687  padding: 4px 8px;1688  border-radius: 999px;1689  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1690  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1691  color: var(--peach-accent);1692  font-family: "IBM Plex Mono", monospace;1693  font-size: 8px;1694  letter-spacing: 0.12em;1695  text-transform: uppercase;1696  white-space: nowrap;1697}1698.peach-export-pill--danger {1699  border-color: rgba(220,80,60,0.22);1700  background: rgba(220,80,60,0.08);1701  color: var(--peach-breach);1702}1703.peach-export-password-stack {1704  gap: 8px;1705}1706.peach-settings-label {1707  margin: 0 0 6px;1708  font-family: "IBM Plex Mono", monospace;1709  font-size: 8px;1710  text-transform: uppercase;1711  letter-spacing: 0.18em;1712  color: var(--peach-t2);1713}1714.peach-settings-row {1715  display: flex;1716  align-items: center;1717  justify-content: space-between;1718  gap: 12px;1719  min-height: 34px;1720  padding: 6px 0;1721  font-size: 13px;1722  color: var(--peach-t1);1723}1724.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1725.peach-settings-value {1726  font-family: "IBM Plex Mono", monospace;1727  font-size: 10px;1728  color: var(--peach-t2);1729}17301731.peach-settings-value--status {1732  display: flex;1733  align-items: center;1734  gap: 6px;1735}17361737.peach-settings-link {1738  font-family: "IBM Plex Mono", monospace;1739  font-size: 10px;1740  color: var(--peach-accent);1741  text-decoration: none;1742  cursor: pointer;1743}1744.peach-settings-link:hover {1745  text-decoration: underline;1746}17471748.peach-settings-row--stack {1749  flex-direction: column;1750  align-items: stretch;1751  gap: 6px;1752}17531754.peach-settings-row--top {1755  align-items: flex-start;1756}17571758.peach-settings-row-main {1759  display: flex;1760  flex-direction: column;1761  gap: 4px;1762  flex: 1;1763}1764.peach-toggle {1765  width: 28px; height: 16px;1766  border-radius: 999px;1767  background: var(--peach-t3);1768  border: 1px solid var(--peach-t3);1769  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1770  flex-shrink: 0;1771  transition: background 200ms ease, border-color 200ms ease;1772  cursor: pointer;1773}1774.peach-toggle.is-on {1775  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1776  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1777}1778.peach-toggle-knob {1779  width: 10px; height: 10px;1780  border-radius: 50%;1781  background: var(--peach-t2);1782  flex-shrink: 0;1783  transform: translateX(0px);1784  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1785}1786.peach-toggle.is-on .peach-toggle-knob {1787  background: var(--peach-accent);1788  transform: translateX(12px);1789}1790.peach-settings-footer {1791  display: flex;1792  align-items: center;1793  gap: 8px;1794  margin-top: auto;1795  padding: 14px 16px 8px;1796  font-family: "IBM Plex Mono", monospace;1797  font-size: 9px;1798  color: var(--peach-t2);1799}18001801/* ── Settings home navigation ──────────────────────────────────────────── */1802.peach-settings-nav-label {1803  margin: 0 0 2px;1804  padding: 12px 16px 4px;1805  font-family: "IBM Plex Mono", monospace;1806  font-size: 8px;1807  text-transform: uppercase;1808  letter-spacing: 0.18em;1809  color: var(--peach-t2);1810}18111812.peach-settings-cat-row {1813  display: flex;1814  align-items: center;1815  gap: 10px;1816  width: 100%;1817  padding: 9px 16px;1818  background: none;1819  border: none;1820  border-bottom: 1px solid var(--peach-t3);1821  cursor: pointer;1822  text-align: left;1823  color: inherit;1824  transition: background var(--peach-dur-80) ease;1825}1826.peach-settings-cat-row:hover {1827  background: var(--peach-t3);1828}1829.peach-settings-cat-row:last-child {1830  border-bottom: none;1831}18321833.peach-settings-cat-icon {1834  width: 28px;1835  height: 28px;1836  border-radius: 7px;1837  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1838  color: var(--peach-accent);1839  display: flex;1840  align-items: center;1841  justify-content: center;1842  flex-shrink: 0;1843}1844/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1845   Darken the icon stroke to ink and bump the bg tint so the icon reads1846   sharply while the cell still feels accent-tinted. */1847.light .peach-settings-cat-icon {1848  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1849  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1850}18511852.peach-settings-cat-content {1853  flex: 1;1854  display: flex;1855  flex-direction: column;1856  gap: 2px;1857  min-width: 0;1858}18591860.peach-settings-cat-name {1861  font-size: 13px;1862  font-weight: 450;1863  color: var(--peach-t0);1864  line-height: 1.2;1865}18661867.peach-settings-cat-desc {1868  font-size: 10px;1869  color: var(--peach-t2);1870  line-height: 1.3;1871  white-space: nowrap;1872  overflow: hidden;1873  text-overflow: ellipsis;1874}18751876.peach-settings-cat-chevron {1877  color: var(--peach-t2);1878  flex-shrink: 0;1879  opacity: 0.5;1880}18811882/* ── Settings sub-view section labels ──────────────────────────────────── */1883.peach-settings-sub-label {1884  margin: 12px 0 4px;1885  font-family: "IBM Plex Mono", monospace;1886  font-size: 8px;1887  text-transform: uppercase;1888  letter-spacing: 0.18em;1889  color: var(--peach-t2);1890}1891.peach-settings-sub-label:first-child {1892  margin-top: 4px;1893}18941895/* ── Feedback form ──────────────────────────────────────────────────────── */1896.peach-feedback-group {1897  flex: 1;1898  display: flex;1899  flex-direction: column;1900  border-bottom: none;1901}19021903.peach-feedback-intro {1904  margin: 4px 0 14px;1905  font-size: 12px;1906  line-height: 1.55;1907  color: var(--peach-t1);1908}19091910.peach-feedback-chips {1911  display: flex;1912  flex-wrap: wrap;1913  gap: 6px;1914  margin-bottom: 14px;1915}19161917.peach-feedback-chip {1918  padding: 4px 10px;1919  border-radius: 999px;1920  border: 1px solid var(--peach-t3);1921  background: none;1922  color: var(--peach-t2);1923  font-size: 11px;1924  font-family: var(--font-ui);1925  cursor: pointer;1926  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1927    background var(--peach-dur-80) ease;1928}1929.peach-feedback-chip:hover {1930  border-color: var(--peach-t2);1931  color: var(--peach-t1);1932}1933.peach-feedback-chip.is-active {1934  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1935  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1936  color: var(--peach-accent);1937}19381939.peach-feedback-textarea {1940  flex: 1;1941  width: 100%;1942  min-height: 120px;1943  box-sizing: border-box;1944  background: rgba(0, 0, 0, 0.22);1945  border: 1px solid transparent;1946  border-radius: 6px;1947  color: var(--peach-t0);1948  font-size: 12px;1949  font-family: var(--font-ui);1950  line-height: 1.5;1951  padding: 8px 10px;1952  resize: none;1953  outline: none;1954  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;1955}1956.peach-feedback-textarea:focus {1957  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1958  background: rgba(0, 0, 0, 0.28);1959}1960.peach-feedback-textarea:focus {1961  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1962}1963.peach-feedback-textarea::placeholder {1964  color: var(--peach-t2);1965}19661967.peach-feedback-meta {1968  margin: 6px 0 0;1969  font-size: 10px;1970  color: var(--peach-t2);1971  font-family: "IBM Plex Mono", monospace;1972}19731974.peach-feedback-result {1975  margin: 8px 0 0;1976  font-size: 11px;1977  font-family: "IBM Plex Mono", monospace;1978}1979.peach-feedback-result--ok { color: var(--peach-sync-ok); }1980.peach-feedback-result--err { color: var(--peach-breach); }19811982.peach-feedback-submit {1983  width: 100%;1984  margin-top: 12px;1985  justify-content: center;1986}19871988.peach-feedback-anon {1989  margin: 8px 0 0;1990  font-size: 10px;1991  color: var(--peach-t2);1992  text-align: center;1993}19941995.peach-passkey-badge {1996  margin-left: 8px;1997  font-size: 10px;1998  letter-spacing: 0.06em;1999  text-transform: uppercase;2000  color: var(--peach-t2);2001  font-family: var(--font-ui);2002  vertical-align: middle;2003}20042005.peach-passkey-delete-btn {2006  color: var(--peach-breach);2007  border-color: rgba(229, 85, 85, 0.25);2008}20092010.peach-passkey-delete-confirm {2011  display: flex;2012  align-items: center;2013  gap: 8px;2014  padding: 8px 10px;2015  background: rgba(229, 85, 85, 0.06);2016  border: 1px solid rgba(229, 85, 85, 0.2);2017  border-radius: 6px;2018}20192020.peach-passkey-delete-confirm-copy {2021  flex: 1;2022  font-size: 11px;2023  color: var(--peach-t1);2024}20252026.peach-passkey-delete-btn--confirm {2027  color: var(--peach-breach);2028  border-color: rgba(229, 85, 85, 0.4);2029}20302031.peach-passkey-activity {2032  flex-direction: column;2033  align-items: flex-start;2034  gap: 4px;2035}20362037.peach-passkey-meta {2038  font-size: 11px;2039  color: var(--peach-t2);2040}20412042.peach-passkey-actions {2043  position: relative;2044  z-index: 1;2045  margin-top: 14px;2046  display: flex;2047  flex-direction: column;2048  gap: 8px;2049}20502051.peach-passkey-approval {2052  display: flex;2053  flex-direction: column;2054  align-items: center;2055  padding: 22px 20px 18px;2056  gap: 10px;2057  text-align: center;2058}20592060.peach-passkey-approval-icon {2061  width: 46px;2062  height: 46px;2063  border-radius: 12px;2064  background: var(--peach-s2);2065  border: 1px solid var(--peach-t3);2066  display: flex;2067  align-items: center;2068  justify-content: center;2069  flex-shrink: 0;2070  color: var(--peach-accent);2071}20722073.peach-passkey-approval-icon img,2074.peach-passkey-approval-icon svg {2075  width: 28px;2076  height: 28px;2077  border-radius: 6px;2078}20792080.peach-passkey-approval-rp {2081  font-family: var(--font-ui);2082  font-size: 12px;2083  color: var(--peach-t2);2084  letter-spacing: 0.03em;2085}20862087.peach-passkey-approval-action {2088  font-family: var(--font-display);2089  font-style: italic;2090  font-weight: 300;2091  font-size: 22px;2092  color: var(--peach-t0);2093  line-height: 1.1;2094  margin: 2px 0;2095}20962097.peach-passkey-approval-user {2098  font-family: var(--font-mono);2099  font-size: 11px;2100  color: var(--peach-t1);2101  background: var(--peach-s2);2102  border: 1px solid var(--peach-t3);2103  border-radius: 4px;2104  padding: 3px 8px;2105}21062107.peach-passkey-approval-notice {2108  font-size: 10px;2109  color: var(--peach-t2);2110  line-height: 1.5;2111  max-width: 220px;2112}21132114.peach-passkey-approval-actions {2115  display: flex;2116  gap: 8px;2117  width: 100%;2118  margin-top: 6px;2119}21202121.peach-passkey-approval-actions .peach-btn {2122  flex: 1;2123}21242125/* ── Inline generator drawer ── */2126.peach-generator-drawer {2127  display: grid;2128  grid-template-rows: 0fr;2129  transition: grid-template-rows 320ms var(--peach-curve-arrival);2130  overflow: hidden;2131}2132.peach-generator-drawer.is-open {2133  grid-template-rows: 1fr;2134}2135.peach-generator-drawer-inner {2136  min-height: 0;2137  overflow: hidden;2138}2139.peach-generator-drawer-content {2140  border-top: 1px solid var(--peach-t3);2141  padding: 8px 0 4px;2142  display: flex;2143  flex-direction: column;2144  gap: 8px;2145}21462147/* ── Compact generator (inside entry edit) ── */2148.peach-generator-drawer-content--compact {2149  border-top: 1px solid var(--peach-t3);2150  padding: 8px 0 2px;2151  gap: 7px;2152}2153.peach-pwgen-compact-display-row {2154  display: flex;2155  align-items: center;2156  gap: 6px;2157}2158.peach-pwgen-compact-output {2159  flex: 1;2160  min-width: 0;2161  font-family: "IBM Plex Mono", monospace;2162  font-size: 11px;2163  font-weight: 400;2164  letter-spacing: 0.04em;2165  color: var(--peach-t0);2166  background: rgba(240, 232, 216, 0.04);2167  border: 1px solid var(--peach-t3);2168  border-radius: 5px;2169  padding: 5px 8px;2170  word-break: break-all;2171  line-height: 1.5;2172}2173.peach-pwgen-compact-controls {2174  display: flex;2175  align-items: center;2176  gap: 6px;2177}2178.peach-pwgen-compact-slider {2179  flex: 1;2180  min-width: 0;2181  height: 2px !important;2182}2183.peach-pwgen-compact-controls .peach-pwgen-len-num {2184  flex-shrink: 0;2185  min-width: 18px;2186  text-align: right;2187}2188.peach-pwgen-compact-pills {2189  display: flex;2190  gap: 3px;2191  flex-shrink: 0;2192}2193.peach-pwgen-compact-pills .peach-pwgen-pill {2194  padding: 2px 7px;2195  font-size: 8px;2196}2197.peach-pwgen-compact-use {2198  flex-shrink: 0;2199  font-size: 10px !important;2200  padding: 3px 9px !important;2201  min-height: 22px !important;2202  border-radius: 5px !important;2203}22042205/* ── Password edit row (input + eye toggle side-by-side) ── */2206.peach-password-edit-row {2207  display: flex;2208  align-items: center;2209  gap: 6px;2210}2211.peach-password-edit-row .peach-inline-input {2212  flex: 1;2213  min-width: 0;2214}22152216/* ── Generate toggle link ── */2217.peach-generate-toggle-link {2218  display: inline-flex;2219  align-items: center;2220  gap: 5px;2221  background: none;2222  border: none;2223  padding: 0;2224  cursor: pointer;2225  font-family: "IBM Plex Mono", monospace;2226  font-size: 10px;2227  color: var(--peach-t2);2228  letter-spacing: 0.04em;2229  transition: color 120ms ease;2230  align-self: flex-start;2231}2232.peach-generate-toggle-link:hover {2233  color: var(--peach-accent);2234}22352236/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2237.peach-entry-body {2238  flex: 1;2239  overflow-y: auto;2240  overflow-x: hidden;2241  scrollbar-width: none;2242  -ms-overflow-style: none;2243  overscroll-behavior: contain;2244  display: grid;2245  gap: 10px;2246  align-content: start;2247  padding: 10px 20px 14px;2248  min-width: 0;2249  min-height: 0;2250}2251.peach-entry-body::-webkit-scrollbar { display: none; }22522253/* Type-toggle pills + inline note toolbar */2254.peach-new-type-row {2255  display: flex;2256  align-items: center;2257  gap: 6px;2258  margin-bottom: 2px;2259}2260.peach-new-type-btn {2261  background: transparent;2262  border: 1px solid var(--peach-t3);2263  border-radius: 12px;2264  padding: 3px 10px;2265  font-family: "IBM Plex Mono", monospace;2266  font-size: 9px;2267  letter-spacing: 0.12em;2268  text-transform: uppercase;2269  color: var(--peach-t2);2270  cursor: pointer;2271  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2272}2273.peach-new-type-btn.is-active {2274  color: var(--peach-t0);2275  border-color: var(--peach-accent);2276  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2277}2278.peach-new-type-btn:not(.is-active):hover {2279  color: var(--peach-t1);2280  border-color: var(--peach-t2);2281}22822283/* Editable title */2284.peach-new-title-wrap { margin: 0 0 2px; }2285.peach-new-title-input {2286  background: transparent;2287  border: none;2288  outline: none;2289  width: 100%;2290  color: var(--peach-t0);2291  font-family: var(--font-display);2292  font-style: italic;2293  font-weight: 400;2294  font-size: 40px;2295  line-height: 0.95;2296  caret-color: var(--peach-accent);2297}2298.peach-new-title-input::placeholder { color: var(--peach-t2); }22992300/* Editable domain field */2301.peach-domain-value--edit {2302  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2303  font-size: 10px;2304  font-style: italic;2305  letter-spacing: 0.12em;2306  color: var(--peach-t1);2307  background: transparent;2308  border: none;2309  border-bottom: 1px solid var(--peach-t3);2310  outline: none;2311  width: 100%;2312  padding: 2px 0;2313  caret-color: var(--peach-accent);2314  transition: border-color 140ms ease, color 140ms ease;2315}2316.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2317.peach-domain-value--edit:focus {2318  border-bottom-color: rgba(240, 232, 216, 0.28);2319  color: var(--peach-t0);2320}23212322/* Editable field values (username, password, totp) */2323.peach-field-value--edit {2324  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2325  font-size: 13px;2326  color: var(--peach-t0);2327  background: transparent;2328  border: none;2329  border-bottom: 1px solid var(--peach-t3);2330  outline: none;2331  flex: 1;2332  min-width: 0;2333  padding: 3px 0;2334  caret-color: var(--peach-accent);2335  transition: border-color 140ms ease, color 140ms ease;2336}2337.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2338.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2339.peach-field-value--edit:focus {2340  border-bottom-color: rgba(240, 232, 216, 0.28);2341  color: var(--peach-t0);2342}23432344/* "+ add optional field" links */2345.peach-entry-add-links {2346  display: flex;2347  gap: 12px;2348  flex-wrap: wrap;2349  margin-top: -2px;2350}2351.peach-add-field-link {2352  background: transparent;2353  border: none;2354  padding: 0;2355  cursor: pointer;2356  font-family: "IBM Plex Mono", monospace;2357  font-size: 9px;2358  letter-spacing: 0.1em;2359  text-transform: uppercase;2360  color: var(--peach-t2);2361  transition: color 140ms ease;2362}2363.peach-add-field-link:hover { color: var(--peach-accent); }23642365/* ── New entry form (legacy classes) ────────────────────────────────── */2366.peach-new-body {2367  flex: 1;2368  overflow-y: auto;2369  padding: 10px 20px 14px;2370}2371.peach-new-name-input {2372  background: transparent;2373  border: none;2374  outline: none;2375  width: 100%;2376  color: var(--peach-t0);2377  font-family: var(--font-display);2378  font-style: italic;2379  font-weight: 400;2380  font-size: 40px;2381  line-height: 0.95;2382  caret-color: var(--peach-accent);2383}2384.peach-new-name-input::placeholder { color: var(--peach-t2); }2385.peach-new-field-input {2386  background: transparent;2387  border: none;2388  outline: none;2389  flex: 1;2390  min-width: 0;2391  caret-color: var(--peach-accent);2392}2393.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }23942395/* ── Canary card ── */2396.peach-canary-card {2397  border: 1px solid rgba(217, 160, 48, 0.2);2398  background: rgba(217, 160, 48, 0.03);2399  border-radius: 8px;2400  padding: 12px;2401}24022403.peach-canary-settings-header {2404  display: flex;2405  align-items: center;2406  justify-content: space-between;2407  cursor: pointer;2408  user-select: none;2409}24102411.peach-canary-card .peach-label {2412  color: rgba(217, 160, 48, 0.85);2413}24142415.peach-canary-card .peach-new-field-input {2416  border-color: rgba(217, 160, 48, 0.25);2417}24182419.peach-canary-card .peach-new-field-input:focus {2420  border-color: rgba(217, 160, 48, 0.5);2421}24222423.peach-canary-body {2424  margin-top: 12px;2425  display: flex;2426  flex-direction: column;2427  gap: 10px;2428}24292430.peach-canary-explainer {2431  display: flex;2432  gap: 10px;2433  padding: 10px 12px;2434  border-radius: 10px;2435  background: rgba(217, 160, 48, 0.06);2436  border: 1px solid rgba(217, 160, 48, 0.22);2437  margin-bottom: 4px;2438}24392440.peach-canary-explainer-icon {2441  font-size: 16px;2442  flex-shrink: 0;2443  line-height: 1.2;2444}24452446.peach-canary-explainer-title {2447  font-family: var(--font-ui);2448  font-size: 11px;2449  font-weight: 500;2450  color: rgba(217, 160, 48, 0.9);2451  margin: 0 0 3px;2452}24532454.peach-canary-explainer-copy {2455  font-family: var(--font-ui);2456  font-size: 10px;2457  color: var(--peach-t2);2458  line-height: 1.55;2459  margin: 0;2460}24612462.peach-canary-hint {2463  font-size: 10px;2464  color: var(--peach-t2);2465  font-family: Inter, system-ui, sans-serif;2466  line-height: 1.5;2467  margin-top: 4px;2468}24692470.peach-canary-actions-row {2471  display: flex;2472  align-items: center;2473  gap: 8px;2474}24752476.peach-canary-test-btn {2477  border-color: rgba(217, 160, 48, 0.3);2478  color: rgba(217, 160, 48, 0.85);2479}24802481.peach-canary-test-result {2482  font-size: 10px;2483  font-family: Inter, system-ui, sans-serif;2484}24852486.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2487.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }24882489.peach-canary-badge {2490  display: flex;2491  position: relative;2492  z-index: 1;2493  align-items: center;2494  gap: 5px;2495  padding: 4px 10px;2496  background: rgba(217, 160, 48, 0.12);2497  border: 1px solid rgba(217, 160, 48, 0.35);2498  border-radius: 6px;2499  margin-bottom: 6px;2500  width: fit-content;2501}25022503.peach-canary-badge-label {2504  font-size: 10px;2505  letter-spacing: 0.06em;2506  color: rgba(217, 160, 48, 0.9);2507  font-family: var(--font-ui);2508  text-transform: uppercase;2509}25102511.peach-canary-badge-icon {2512  font-size: 11px;2513}25142515.peach-canary-suppress-row {2516  display: flex;2517  align-items: center;2518  gap: 8px;2519  padding: 6px 10px;2520  background: rgba(217, 160, 48, 0.08);2521  border-radius: 6px;2522  margin-bottom: 8px;2523}25242525.peach-canary-suppress-label {2526  font-size: 11px;2527  color: rgba(217, 160, 48, 0.85);2528  cursor: pointer;2529  font-family: var(--font-ui);2530  letter-spacing: 0.04em;2531}25322533.peach-regen-panel {2534  position: relative;2535  z-index: 1;2536  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2537  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2538  border-radius: 8px;2539  padding: 12px;2540  margin-bottom: 8px;2541}25422543.peach-regen-panel-header {2544  display: flex;2545  align-items: center;2546  justify-content: space-between;2547  margin-bottom: 10px;2548}25492550.peach-regen-panel-title {2551  font-size: 11px;2552  font-weight: 600;2553  letter-spacing: 0.06em;2554  text-transform: uppercase;2555  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2556}25572558.peach-regen-output {2559  background: rgba(0, 0, 0, 0.2);2560  border-radius: 6px;2561  padding: 10px;2562  margin-bottom: 10px;2563  font-family: var(--font-mono);2564  font-size: 13px;2565  word-break: break-all;2566  color: var(--peach-t1);2567}25682569.peach-regen-actions {2570  display: flex;2571  gap: 6px;2572}25732574.peach-regen-actions--spaced {2575  margin-bottom: 8px;2576}25772578.peach-regen-action-grow {2579  flex: 1;2580}25812582.peach-regen-copy-btn {2583  padding: 0 8px;2584}25852586.peach-regen-success {2587  position: relative;2588  z-index: 1;2589  background: rgba(40, 180, 80, 0.1);2590  border: 1px solid rgba(40, 180, 80, 0.3);2591  border-radius: 8px;2592  padding: 10px 12px;2593  margin-bottom: 8px;2594  display: flex;2595  align-items: center;2596  gap: 8px;2597  font-size: 11px;2598  color: rgba(40, 180, 80, 0.9);2599}26002601/* ── Note editor overlay ── */2602.peach-note-editor {2603  position: absolute;2604  inset: 0;2605  z-index: 200;2606  display: flex;2607  flex-direction: column;2608  background:2609    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2610    var(--peach-bg);2611  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2612}26132614.peach-note-editor-header {2615  display: flex;2616  align-items: center;2617  gap: 10px;2618  padding: 14px 16px 10px;2619  border-bottom: 1px solid var(--peach-t3);2620  flex-shrink: 0;2621}26222623.peach-note-editor-back {2624  background: transparent;2625  border: none;2626  cursor: pointer;2627  color: var(--peach-t2);2628  padding: 4px 6px;2629  border-radius: 6px;2630  display: flex;2631  align-items: center;2632  transition: color 120ms ease, background 120ms ease;2633  flex-shrink: 0;2634}2635.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }26362637.peach-note-editor-label {2638  flex: 1;2639  font-family: var(--font-display);2640  font-style: italic;2641  font-size: 15px;2642  color: var(--peach-t1);2643  letter-spacing: 0.02em;2644}26452646.peach-note-editor-save-btn {2647  background: transparent;2648  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2649  border-radius: 8px;2650  color: var(--peach-accent);2651  font-family: "IBM Plex Mono", monospace;2652  font-size: 10px;2653  letter-spacing: 0.06em;2654  text-transform: uppercase;2655  padding: 3px 10px;2656  cursor: pointer;2657  transition: background 120ms ease, border-color 120ms ease;2658}2659.peach-note-editor-save-btn:hover:not(:disabled) {2660  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2661  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2662}2663.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }26642665.peach-note-toolbar {2666  display: flex;2667  align-items: center;2668  gap: 3px;2669  padding: 6px 14px 5px;2670  border-bottom: 1px solid var(--peach-t3);2671  flex-shrink: 0;2672}26732674.peach-note-tool-btn {2675  background: transparent;2676  border: 1px solid transparent;2677  border-radius: 5px;2678  color: var(--peach-t2);2679  font-family: "IBM Plex Mono", monospace;2680  font-size: 10px;2681  letter-spacing: 0.04em;2682  padding: 2px 8px;2683  cursor: pointer;2684  line-height: 1.6;2685  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2686}2687.peach-note-tool-btn:hover {2688  background: var(--peach-t4);2689  color: var(--peach-t0);2690  border-color: var(--peach-t3);2691}26922693.peach-note-tool-icon {2694  padding: 3px 7px;2695  display: inline-flex;2696  align-items: center;2697  justify-content: center;2698}26992700.peach-note-tool-divider {2701  width: 1px;2702  height: 14px;2703  background: var(--peach-t3);2704  margin: 0 4px;2705  flex-shrink: 0;2706}27072708.peach-note-editor-body {2709  flex: 1;2710  overflow-y: auto;2711  padding: 16px 20px 20px;2712  outline: none;2713  font-family: var(--font-display);2714  font-size: 16px;2715  line-height: 1.75;2716  color: var(--peach-t0);2717  scrollbar-width: none;2718  word-break: break-word;2719}2720.peach-note-editor-body:empty::before {2721  content: "write your note…";2722  color: var(--peach-t3);2723  font-style: italic;2724  pointer-events: none;2725}27262727/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2728.peach-note-editor-inline {2729  display: flex;2730  flex-direction: column;2731  flex: 1;2732  min-height: 0;2733}2734.peach-note-editor-body--inline {2735  flex: 1;2736  min-height: 0;2737  font-size: 15px;2738  padding: 10px 20px 14px;2739}27402741/* Full-width toolbar row inside the body (Add.tsx note type).2742   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2743.peach-note-toolbar-body {2744  display: flex;2745  align-items: center;2746  gap: 3px;2747  padding: 5px 20px 4px;2748  margin: 2px -20px 0;2749  border-bottom: 1px solid var(--peach-t3);2750  flex-shrink: 0;2751}27522753/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2754   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2755   and .peach-note-tool-divider button-level styles. */2756.peach-note-toolbar-inline {2757  display: flex;2758  align-items: center;2759  gap: 3px;2760  margin-left: auto;2761  padding-left: 10px;2762  border-left: 1px solid var(--peach-t3);2763  min-height: 22px;2764}27652766/* Entry.tsx toolbar row (no tabs, toolbar only) */2767.peach-entry-note-toolbar-row {2768  display: flex;2769  align-items: center;2770  margin: 4px 0 6px;2771  position: relative;2772  z-index: 1;2773}2774.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2775  border-left: none;2776  padding-left: 0;2777  margin-left: 0;2778}27792780/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2781.peach-note-body {2782  display: flex;2783  flex-direction: column;2784  flex: 1;2785  min-height: 0;2786  margin: 4px 0 0;2787}2788.peach-entry-body--new .peach-note-body {2789  margin: 8px -20px 0;2790}27912792/* Add.tsx body is a grid by default; swap to a flex column when a note is2793   active so the note body can stretch and pin the tags row to the bottom. */2794.peach-entry-body--new:has(.peach-note-body) {2795  display: flex;2796  flex-direction: column;2797}27982799/* Rich content element styles (editor + display) */2800.peach-note-editor-body h2,2801.peach-note-content h2 {2802  font-family: var(--font-display);2803  font-size: 20px;2804  font-weight: 600;2805  font-style: italic;2806  color: var(--peach-t0);2807  margin: 6px 0 2px;2808  line-height: 1.3;2809}2810.peach-note-editor-body ul,2811.peach-note-content ul {2812  padding-left: 18px;2813  margin: 3px 0;2814  list-style: disc;2815}2816.peach-note-editor-body ol,2817.peach-note-content ol {2818  padding-left: 18px;2819  margin: 3px 0;2820  list-style: decimal;2821}2822.peach-note-editor-body li,2823.peach-note-content li { margin: 2px 0; }2824.peach-note-editor-body hr,2825.peach-note-content hr {2826  border: none;2827  border-top: 1px solid var(--peach-t3);2828  margin: 10px 0;2829}28302831/* font size elements from execCommand */2832.peach-note-editor-body font[size="1"],2833.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2834.peach-note-editor-body font[size="2"],2835.peach-note-content font[size="2"] { font-size: 13px; }2836.peach-note-editor-body font[size="3"],2837.peach-note-content font[size="3"] { font-size: 16px; }2838.peach-note-editor-body font[size="4"],2839.peach-note-content font[size="4"] { font-size: 20px; }2840.peach-note-editor-body font[size="5"],2841.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }28422843/* bold / italic inside the editor and note display */2844.peach-note-editor-body b, .peach-note-editor-body strong,2845.peach-note-content b, .peach-note-content strong { font-weight: 700; }2846.peach-note-editor-body em, .peach-note-editor-body i,2847.peach-note-content em, .peach-note-content i { font-style: italic; }28482849/* note display — rendered HTML, no pre-wrap */2850.peach-note-content {2851  overflow: auto;2852  max-height: 340px;2853  word-break: break-word;2854}28552856/* ── Note textarea ── */2857.peach-note-textarea {2858  width: 100%;2859  min-height: 180px;2860  max-height: 280px;2861  resize: vertical;2862  background: var(--peach-t4);2863  border: 1px solid var(--peach-t3);2864  border-radius: 8px;2865  padding: 10px 12px;2866  font-family: "IBM Plex Mono", monospace;2867  font-size: 12px;2868  line-height: 1.7;2869  color: var(--peach-t1);2870  outline: none;2871  transition: border-color 150ms ease;2872}28732874.peach-note-textarea:focus {2875  border-color: var(--peach-t2);2876}28772878.peach-note-char-count {2879  font-family: "IBM Plex Mono", monospace;2880  font-size: 9px;2881  color: var(--peach-t3);2882  text-align: right;2883  margin-top: 4px;2884  letter-spacing: 0.1em;2885}28862887/* ── Field input baseline ── */2888.peach-new-field-input {2889  width: 100%;2890  background: transparent;2891  border: none;2892  border-bottom: 1px solid var(--peach-t3);2893  padding: 4px 0;2894  color: var(--peach-t1);2895  font-family: "IBM Plex Mono", monospace;2896  font-size: 13px;2897  outline: none;2898  transition: border-color 150ms ease;2899}29002901.peach-new-field-input:focus {2902  border-bottom-color: var(--peach-t0);2903  color: var(--peach-t0);2904}29052906.peach-new-name-input {2907  width: 100%;2908  background: transparent;2909  border: none;2910  border-bottom: 1px solid var(--peach-t3);2911  padding: 6px 0;2912  font-family: var(--font-display);2913  font-style: italic;2914  font-size: 28px;2915  color: var(--peach-t0);2916  outline: none;2917  transition: border-color 150ms ease;2918}29192920.peach-new-name-input:focus {2921  border-bottom-color: var(--peach-t1);2922}29232924.peach-new-name-input::placeholder {2925  color: var(--peach-t2);2926  font-style: italic;2927}29282929.peach-new-field-input::placeholder {2930  color: var(--peach-t3);2931}29322933/* ── Demo entrance animation ── */2934#hd-shell {2935  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2936}2937@keyframes hd-shell-enter {2938  from { opacity: 0; transform: scale(0.96) translateY(16px); }2939  to   { opacity: 1; transform: scale(1) translateY(0); }2940}29412942/* ── Keyframes ── */2943@keyframes peach-char-enter {2944  from { opacity: 0; transform: translateY(0.22em); }2945  to   { opacity: 1; transform: translateY(0); }2946}2947@keyframes peach-content-enter {2948  from { opacity: 0.96; transform: translateY(4px); }2949  to   { opacity: 1; transform: translateY(0); }2950}2951@keyframes peach-content-exit {2952  from { opacity: 1; transform: translateY(0); }2953  to   { opacity: 0.92; transform: translateY(-3px); }2954}2955@keyframes peach-screen-enter {2956  from { opacity: 0; transform: translateY(14px); }2957  to   { opacity: 1; transform: translateY(0); }2958}2959@keyframes peach-shell-fade-in {2960  from { opacity: 0; }2961  to   { opacity: 1; }2962}2963@keyframes peach-veil-in {2964  from { opacity: 0; }2965  to   { opacity: 1; }2966}2967@keyframes peach-lock-settle {2968  0%   { transform: scale(0.9); }2969  65%  { transform: scale(1.08); }2970  100% { transform: scale(1); }2971}2972@keyframes peach-copy-confirm {2973  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2974  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); }2975}2976@keyframes peach-copy-retreat {2977  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); }2978  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2979}2980@keyframes peach-copy-flood {2981  from { opacity: 0; transform: scaleX(0.15); }2982  to   { opacity: 1; transform: scaleX(1); }2983}2984@keyframes peach-copy-icon-settle {2985  from  { transform: scale(0.84); }2986  70%   { transform: scale(1.08); }2987  to    { transform: scale(1); }2988}2989@keyframes peach-copy-sheen-retreat {2990  from { opacity: 1; transform: scaleX(1); }2991  to   { opacity: 0; transform: scaleX(0.15); }2992}2993@keyframes peach-copy-drain {2994  from { width: 100%; }2995  to   { width: 0; }2996}2997@keyframes peach-shake {2998  0%, 100% { transform: translateX(0); }2999  20%      { transform: translateX(-6px); }3000  40%      { transform: translateX(6px); }3001  60%      { transform: translateX(-4px); }3002  80%      { transform: translateX(4px); }3003}30043005@keyframes pip-pulse {3006  0% { transform: scale(1); }3007  40% { transform: scale(2.2); }3008  100% { transform: scale(1); }3009}301030113012/* ── Password generator ── */3013.peach-pwgen-body {3014  flex: 1; overflow-y: auto;3015  display: flex; flex-direction: column;3016}3017.peach-policy-badge {3018  display: flex; align-items: center;3019  padding: 6px 20px 0;3020  font-size: 10px; font-family: Inter, sans-serif;3021  color: var(--peach-t2); letter-spacing: 0.04em;3022}3023.peach-pwgen-display {3024  padding: 14px 20px 12px;3025  border-bottom: 1px solid var(--peach-t3);3026  display: flex; align-items: flex-start; gap: 10px;3027}3028.peach-pwgen-display-row {3029  display: flex;3030  align-items: flex-start;3031  gap: 8px;3032  padding-bottom: 8px;3033  border-bottom: 1px solid var(--peach-t3);3034}3035.peach-pwgen-output {3036  flex: 1; min-width: 0; margin: 0;3037  font-family: "IBM Plex Mono", monospace;3038  font-size: 13px; color: var(--peach-t0);3039  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3040  white-space: normal;3041  padding: 10px 12px;3042  background: var(--peach-t4);3043  border-radius: 6px;3044  min-height: 36px;3045}3046.peach-pwgen-output-display {3047  flex: 1;3048  min-width: 0;3049  margin: 0;3050  font-family: var(--font-display);3051  font-style: italic;3052  font-weight: 300;3053  font-size: 32px;3054  line-height: 1.05;3055  color: var(--peach-t0);3056  word-break: break-all;3057  overflow-wrap: break-word;3058  white-space: normal;3059  letter-spacing: 0.02em;3060}3061.peach-pwgen-display-actions {3062  display: flex;3063  flex-direction: column;3064  gap: 4px;3065  flex-shrink: 0;3066  margin-top: 2px;3067}3068.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3069.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3070.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3071.peach-pwgen-len-num {3072  font-family: "IBM Plex Mono", monospace;3073  font-size: 12px; color: var(--peach-accent);3074}3075.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3076.peach-pwgen-toggles { display: flex; flex-direction: column; }3077.peach-pwgen-charset-pills {3078  display: flex;3079  gap: 6px;3080  flex-wrap: wrap;3081}3082.peach-pwgen-pill {3083  padding: 4px 11px;3084  border-radius: 999px;3085  border: 1px solid var(--peach-t3);3086  background: transparent;3087  color: var(--peach-t2);3088  font-family: "IBM Plex Mono", monospace;3089  font-size: 9px;3090  letter-spacing: 0.08em;3091  cursor: pointer;3092  transition: all 150ms ease;3093}3094.peach-pwgen-pill.is-on {3095  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3096  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3097  color: var(--peach-accent);3098}3099.peach-pwgen-pill:not(.is-on):hover {3100  color: var(--peach-t1);3101  border-color: var(--peach-t2);3102}3103.peach-pwgen-use-btn {3104  width: 100%;3105  min-height: 34px;3106  border-radius: 8px;3107  margin-top: 2px;3108}3109.peach-pwgen-toggle-row {3110  display: flex; align-items: center; justify-content: space-between;3111  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3112}3113.peach-pwgen-toggle-row:last-child { border-bottom: none; }3114.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }31153116.peach-screen-prelock {3117  z-index: 10;3118}31193120.prelock-form {3121  display: grid;3122  gap: 12px;3123}31243125/* Peach popup should not expose native scrollbars on internal panels. */3126.peach-settings-body,3127.peach-new-body,3128.peach-pwgen-body,3129.lock-screen,3130.peach-import-preview {3131  scrollbar-width: none;3132  -ms-overflow-style: none;3133  overscroll-behavior: contain;3134}3135.peach-settings-body::-webkit-scrollbar,3136.peach-new-body::-webkit-scrollbar,3137.peach-pwgen-body::-webkit-scrollbar,3138.lock-screen::-webkit-scrollbar,3139.peach-import-preview::-webkit-scrollbar {3140  width: 0;3141  height: 0;3142  display: none;3143}31443145.lock-screen {3146  height: 100%;3147  min-height: 100%;3148  overflow-y: auto;3149  padding: 18px 18px 16px;3150  gap: 14px;3151  grid-template-rows: auto auto auto 1fr auto;3152  align-content: stretch;3153  position: relative;3154  isolation: isolate;3155}3156.peach-screen.lock-screen--vault-stage {3157  display: flex;3158  flex-direction: column;3159  justify-content: flex-start;3160  gap: 18px;3161  padding: 20px 18px 18px;3162  overflow: hidden;3163}3164.peach-screen.lock-screen--vault-stage .peach-lock-panel {3165  margin-top: 0;3166}3167.lock-screen--onboarding {3168  display: flex;3169  flex-direction: column;3170  gap: 12px;3171  justify-content: flex-start;3172}31733174.lock-screen::before {3175  content: "";3176  position: absolute;3177  inset: 12px 18px auto auto;3178  width: 160px;3179  height: 160px;3180  border-radius: 999px;3181  background:3182    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%);3183  filter: blur(6px);3184  opacity: 0.7;3185  pointer-events: none;3186  z-index: 0;3187}31883189.peach-lock-rune-string {3190  flex: 1;3191  display: flex;3192  align-items: center;3193  justify-content: center;3194  gap: 6px;3195  font-family: PeachScript, monospace;3196  font-size: 13px;3197  letter-spacing: 0.05em;3198  pointer-events: none;3199  user-select: none;3200  position: relative;3201  z-index: 1;3202}32033204.peach-lock-rune-string span {3205  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3206  text-shadow:3207    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3208    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3209  transition: color 0.9s ease, text-shadow 0.9s ease;3210}32113212.peach-lock-rune-string span.is-glowing {3213  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3214  text-shadow:3215    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3216    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3217}32183219.lock-screen-header {3220  display: flex;3221  align-items: center;3222  justify-content: space-between;3223  position: relative;3224  z-index: 1;3225}32263227.lock-password-input.shake {3228  animation: peach-shake 300ms ease-in-out;3229}32303231.peach-hint-error {3232  color: rgba(220, 80, 60, 0.92);3233}32343235.peach-onboarding-headline {3236  margin: 0;3237  font-family: var(--font-display);3238  font-size: 35px;3239  line-height: 0.88;3240  font-style: italic;3241  font-weight: 400;3242  max-width: 252px;3243}32443245.peach-lock-copy {3246  display: grid;3247  gap: 8px;3248  position: relative;3249  z-index: 1;3250}32513252.peach-lock-copy--onboarding {3253  gap: 10px;3254}32553256.peach-lock-hero {3257  position: relative;3258  z-index: 1;3259  display: grid;3260  gap: 8px;3261  min-height: 0;3262  padding: 4px 2px 0;3263  border: none;3264  border-radius: 0;3265  background: transparent;3266  box-shadow: none;3267}3268.peach-lock-hero-art {3269  position: absolute;3270  right: -8px;3271  top: -6px;3272  width: 120px;3273  height: 120px;3274  display: flex;3275  align-items: center;3276  justify-content: center;3277  pointer-events: none;3278  opacity: 0.12;3279  filter: saturate(0.9);3280}3281.peach-lock-hero-mark {3282  width: 100%;3283  height: 100%;3284}3285/* Peach body stays brand-peach across every accent — we don't want a3286   green or blue peach when sage/sky is selected. Leaf + stem keep the3287   sage tint because a real peach has a sage leaf. */3288.peach-lock-hero-mark path:nth-child(2),3289.peach-lock-hero-mark path:nth-child(3) {3290  stroke: rgba(123, 144, 96, 0.88);3291  fill: rgba(123, 144, 96, 0.88);3292}3293.peach-lock-hero > *:not(.peach-lock-hero-art) {3294  position: relative;3295  z-index: 1;3296}32973298.peach-lock-eyebrow {3299  display: inline-flex;3300  align-items: center;3301  width: fit-content;3302  padding: 4px 9px;3303  border-radius: 999px;3304  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3305  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3306  color: var(--peach-t0);3307  font-family: "IBM Plex Mono", monospace;3308  font-size: 8px;3309  letter-spacing: 0.18em;3310  text-transform: uppercase;3311}33123313.peach-lock-label-row {3314  display: flex;3315  align-items: center;3316  justify-content: space-between;3317  margin-bottom: 0;3318}33193320.peach-lock-reveal-btn {3321  display: inline-flex;3322  align-items: center;3323  gap: 4px;3324  background: none;3325  border: none;3326  cursor: pointer;3327  font-family: "IBM Plex Mono", monospace;3328  font-size: 9px;3329  letter-spacing: 0.06em;3330  color: var(--peach-t2);3331  padding: 2px 0;3332  transition: color 150ms ease;3333}33343335.peach-lock-reveal-btn:hover {3336  color: var(--peach-t1);3337}33383339.peach-lock-warning {3340  color: rgba(220, 80, 60, 0.85) !important;3341  line-height: 1.5;3342}33433344.peach-onboarding-cards {3345  display: grid;3346  gap: 8px;3347  position: relative;3348  z-index: 1;3349}33503351.peach-lock-panel {3352  position: relative;3353  z-index: 1;3354  display: grid;3355  gap: 9px;3356  padding: 14px 16px 15px;3357  border-radius: 18px;3358  border: 1px solid var(--peach-t3);3359  background:3360    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3361  box-shadow:3362    inset 0 1px 0 rgba(240, 232, 216, 0.04),3363    0 12px 28px rgba(0, 0, 0, 0.12);3364}33653366/* Glass surface — lock panel and settings groups */3367.peach-glass {3368  background: rgba(26, 20, 16, 0.65);3369  border: 1px solid rgba(255, 255, 255, 0.08);3370  border-radius: 12px;3371  backdrop-filter: blur(12px) saturate(1.4);3372  -webkit-backdrop-filter: blur(12px) saturate(1.4);3373}33743375@supports not (backdrop-filter: blur(1px)) {3376  .peach-glass {3377    background: rgba(26, 20, 16, 0.92);3378    border: 1px solid rgba(255, 255, 255, 0.10);3379    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3380  }3381}33823383.light .peach-glass,3384[data-theme="light"] .peach-glass {3385  background: rgba(253, 248, 244, 0.70);3386  border: 1px solid rgba(0, 0, 0, 0.07);3387  backdrop-filter: blur(12px) saturate(1.2);3388  -webkit-backdrop-filter: blur(12px) saturate(1.2);3389}33903391@supports not (backdrop-filter: blur(1px)) {3392  .light .peach-glass,3393  [data-theme="light"] .peach-glass {3394    background: rgba(253, 248, 244, 0.95);3395    border: 1px solid rgba(0, 0, 0, 0.09);3396  }3397}33983399/* Lock panel keeps its own border-radius over the generic glass token */3400.peach-lock-panel.peach-glass {3401  border-radius: 18px;3402  background: rgba(26, 20, 16, 0.65);3403  border: 1px solid rgba(255, 255, 255, 0.08);3404  box-shadow:3405    inset 0 1px 0 rgba(255, 255, 255, 0.05),3406    0 12px 28px rgba(0, 0, 0, 0.3);3407}34083409.light .peach-lock-panel.peach-glass,3410[data-theme="light"] .peach-lock-panel.peach-glass {3411  background: rgba(238, 227, 204, 0.75);3412  border: 1px solid rgba(34, 24, 9, 0.10);3413  box-shadow:3414    inset 0 1px 0 rgba(255, 255, 255, 0.5),3415    0 8px 24px rgba(80, 56, 32, 0.15);3416}34173418@supports not (backdrop-filter: blur(1px)) {3419  .peach-lock-panel.peach-glass {3420    background: rgba(26, 20, 16, 0.92);3421    box-shadow:3422      inset 0 1px 0 rgba(255, 255, 255, 0.05),3423      0 12px 28px rgba(0, 0, 0, 0.4);3424  }3425  .light .peach-lock-panel.peach-glass,3426  [data-theme="light"] .peach-lock-panel.peach-glass {3427    background: rgba(238, 227, 204, 0.96);3428  }3429}34303431.peach-lock-panel--secondary {3432  gap: 12px;3433}34343435.peach-lock-panel-header {3436  display: flex;3437  align-items: baseline;3438  justify-content: space-between;3439  gap: 12px;3440}34413442.peach-lock-option-grid {3443  display: grid;3444  gap: 10px;3445}34463447.peach-lock-option {3448  width: 100%;3449  display: grid;3450  gap: 6px;3451  padding: 14px 15px;3452  border-radius: 16px;3453  border: 1px solid rgba(240, 232, 216, 0.08);3454  background: rgba(240, 232, 216, 0.02);3455  color: var(--peach-t0);3456  text-align: left;3457  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3458}34593460.peach-lock-option:hover {3461  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3462  background: rgba(240, 232, 216, 0.04);3463  transform: translateY(-1px);3464}34653466.peach-lock-option-title {3467  font-size: 12px;3468  color: var(--peach-t0);3469}34703471.peach-lock-option-copy {3472  font-size: 11px;3473  line-height: 1.55;3474  color: var(--peach-t1);3475}34763477.peach-onboarding-stack {3478  margin-top: 2px;3479}3480.peach-lock-panel-footer {3481  display: grid;3482  gap: 6px;3483  margin-top: 2px;3484  padding-top: 10px;3485  border-top: 1px solid rgba(240, 232, 216, 0.06);3486}34873488/* Restore picker panel — method option cards */3489.peach-lock-panel--restore {3490  gap: 10px;3491}3492.peach-lock-option--history {3493  border-color: rgba(240, 232, 216, 0.06);3494  opacity: 0.85;3495}34963497/* Snapshot restore panel */3498.peach-snapshot-panel {3499  gap: 10px;3500  overflow-y: auto;3501  max-height: 340px;3502}3503.peach-snapshot-list {3504  display: flex;3505  flex-direction: column;3506  gap: 4px;3507}3508.peach-snapshot-row {3509  display: flex;3510  align-items: center;3511  justify-content: space-between;3512  width: 100%;3513  padding: 8px 10px;3514  border-radius: 8px;3515  border: 1px solid rgba(240, 232, 216, 0.07);3516  background: transparent;3517  cursor: pointer;3518  transition: border-color 120ms, background 120ms;3519  text-align: left;3520  gap: 8px;3521}3522.peach-snapshot-row:hover {3523  border-color: rgba(240, 232, 216, 0.14);3524  background: rgba(240, 232, 216, 0.03);3525}3526.peach-snapshot-row.is-selected {3527  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3528  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3529}3530.peach-snapshot-time {3531  font-size: 11.5px;3532  color: var(--peach-t0);3533  flex: 1;3534}3535.peach-snapshot-count {3536  font-family: "IBM Plex Mono", monospace;3537  font-size: 10px;3538  color: var(--peach-t2);3539  flex-shrink: 0;3540}3541.peach-snapshot-confirm {3542  display: flex;3543  flex-direction: column;3544  gap: 8px;3545  padding-top: 10px;3546  border-top: 1px solid rgba(240, 232, 216, 0.06);3547}3548.peach-snapshot-warning {3549  display: flex;3550  align-items: flex-start;3551  gap: 6px;3552  font-size: 10.5px;3553  color: rgba(220, 80, 60, 0.85);3554  line-height: 1.55;3555}3556.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3557.peach-snapshot-confirm-row {3558  display: flex;3559  gap: 6px;3560  align-items: center;3561}3562.peach-snapshot-restore-btn {3563  width: 100%;3564}3565.peach-lock-hero--unlock .peach-lock-hero-art {3566  width: 112px;3567  height: 112px;3568  right: 0;3569  top: 2px;3570  opacity: 0.1;3571}35723573.peach-card {3574  border: 1px solid var(--peach-t3);3575  border-radius: 18px;3576  background:3577    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3578  box-shadow:3579    inset 0 0 0 1px var(--peach-border-accent),3580    inset 0 1px 0 rgba(240, 232, 216, 0.04),3581    0 12px 32px rgba(0, 0, 0, 0.14);3582  overflow: hidden;3583}35843585.peach-card-active {3586  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3587  box-shadow:3588    inset 0 1px 0 rgba(240, 232, 216, 0.05),3589    0 16px 38px rgba(0, 0, 0, 0.18),3590    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3591}35923593.peach-card-disabled {3594  opacity: 0.72;3595}35963597.peach-card-header {3598  width: 100%;3599  padding: 13px 16px 11px;3600  background: transparent;3601  color: var(--peach-t0);3602  display: flex;3603  justify-content: space-between;3604  align-items: center;3605  text-align: left;3606  font-size: 12px;3607}36083609.peach-card-body {3610  padding: 0 16px 16px;3611  display: grid;3612  gap: 9px;3613}36143615.peach-card-tag {3616  color: var(--peach-t2);3617  font-family: "IBM Plex Mono", monospace;3618  font-size: 9px;3619  letter-spacing: 0.12em;3620  text-transform: uppercase;3621}36223623.peach-empty-copy {3624  display: grid;3625  gap: 6px;3626  color: var(--peach-t1);3627  font-size: 13px;3628}36293630.peach-lock-submit {3631  width: 100%;3632  box-shadow:3633    0 1px 0 rgba(255,255,255,0.10) inset,3634    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3635    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3636    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3637}36383639.peach-lock-secondary {3640  width: 100%;3641  border-color: var(--peach-t3);3642  background: rgba(240, 232, 216, 0.02);3643}36443645.peach-lock-secondary:hover {3646  background: rgba(240, 232, 216, 0.04);3647}36483649.peach-lock-note {3650  max-width: none;3651  line-height: 1.55;3652  margin: 0;3653}36543655.peach-overlay-action {3656  font-size: 10px;3657  padding: 4px 8px;3658  letter-spacing: 0.06em;3659  min-width: 44px;3660  text-align: center;3661}36623663.peach-overlay-spacer {3664  width: 32px;3665}36663667.peach-inline-action {3668  flex-shrink: 0;3669  font-size: 9px;3670  letter-spacing: 0.1em;3671  text-transform: uppercase;3672  padding: 4px 7px;3673}3674.peach-password-toggle-btn {3675  display: inline-flex;3676  align-items: center;3677  justify-content: center;3678  min-width: 30px;3679  min-height: 26px;3680  padding: 0 7px;3681  border: 1px solid var(--peach-t3);3682  border-radius: 999px;3683  background: rgba(240, 232, 216, 0.04);3684  color: var(--peach-t2);3685  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3686}3687.peach-password-toggle-btn:hover {3688  border-color: var(--peach-t2);3689  color: var(--peach-t0);3690  background: rgba(240, 232, 216, 0.06);3691}36923693.peach-new-textarea {3694  width: 100%;3695  min-height: 88px;3696  resize: vertical;3697  border: 0;3698  outline: none;3699  background: transparent;3700  color: var(--peach-t1);3701  font-family: "IBM Plex Mono", monospace;3702  font-size: 12px;3703  line-height: 1.65;3704  caret-color: var(--peach-accent);3705}37063707.peach-new-textarea::placeholder {3708  color: var(--peach-t2);3709  opacity: 0.7;3710}37113712.peach-settings-actions {3713  display: grid;3714  gap: 8px;3715}37163717.peach-sync-section-label {3718  font-size: 11px;3719  color: var(--peach-t2);3720  text-transform: uppercase;3721  letter-spacing: 0.05em;3722}37233724.peach-sync-device-row {3725  display: flex;3726  justify-content: space-between;3727  align-items: center;3728  padding: 6px 0;3729  border-bottom: 1px solid var(--peach-t3);3730}37313732.peach-sync-device-info {3733  display: flex;3734  flex-direction: column;3735  gap: 2px;3736}37373738.peach-sync-device-name {3739  font-size: 13px;3740  color: var(--peach-t0);3741}37423743.peach-sync-device-meta {3744  font-size: 11px;3745  color: var(--peach-t2);3746}37473748.peach-sync-status-dot {3749  display: inline-block;3750  width: 8px;3751  height: 8px;3752  border-radius: 50%;3753  vertical-align: middle;3754}37553756.peach-sync-remove-btn {3757  color: var(--peach-breach);3758}37593760.peach-sync-hero-icon {3761  color: var(--peach-t1);3762  opacity: 0.85;3763}37643765.peach-import-preview {3766  margin-bottom: 12px;3767  max-height: 152px;3768  overflow-y: auto;3769  border: 1px solid var(--peach-t3);3770  border-radius: 10px;3771  padding: 8px 10px;3772  display: grid;3773  gap: 8px;3774  background: rgba(240, 232, 216, 0.02);3775}37763777.peach-import-preview-row {3778  display: flex;3779  justify-content: space-between;3780  gap: 10px;3781  font-size: 11px;3782  color: var(--peach-t1);3783}37843785.peach-import-preview-title {3786  color: var(--peach-t0);3787  flex: 1;3788  min-width: 0;3789  overflow: hidden;3790  text-overflow: ellipsis;3791  white-space: nowrap;3792}37933794.peach-import-preview-meta {3795  color: var(--peach-t2);3796  flex-shrink: 0;3797  max-width: 42%;3798  overflow: hidden;3799  text-overflow: ellipsis;3800  white-space: nowrap;3801}38023803.peach-import-preview-more {3804  color: var(--peach-t2);3805  font-size: 10px;3806}38073808.peach-restore-copy {3809  margin: 0;3810  color: var(--peach-t1);3811  font-size: 11px;3812  line-height: 1.6;3813}38143815.peach-restore-warning {3816  padding: 10px 12px;3817  border-radius: 12px;3818  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);3819  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3820  color: var(--peach-t0);3821  font-size: 11px;3822  line-height: 1.55;3823}38243825.peach-provider-chips {3826  display: flex;3827  flex-wrap: wrap;3828  gap: 6px;3829}38303831.peach-provider-chip {3832  display: inline-flex;3833  align-items: center;3834  padding: 5px 8px;3835  border-radius: 999px;3836  border: 1px solid var(--peach-t3);3837  background: rgba(240, 232, 216, 0.02);3838  color: var(--peach-t1);3839  font-family: "IBM Plex Mono", monospace;3840  font-size: 8px;3841  letter-spacing: 0.08em;3842  text-transform: uppercase;3843}38443845.peach-restore-file,3846.peach-restore-input {3847  width: 100%;3848  border-radius: 10px;3849  border: 1px solid var(--peach-t3);3850  background: var(--peach-s2);3851  color: var(--peach-t0);3852  font-size: 12px;3853}38543855.peach-restore-file {3856  padding: 9px 10px;3857}38583859.peach-restore-file::file-selector-button {3860  margin-right: 10px;3861  padding: 7px 10px;3862  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3863  border-radius: 999px;3864  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3865  color: var(--peach-t0);3866  font-size: 10px;3867  letter-spacing: 0.08em;3868  text-transform: uppercase;3869  cursor: pointer;3870}38713872.peach-restore-input {3873  padding: 10px 12px;3874}38753876.peach-auth-grid {3877  display: grid;3878  gap: 10px;3879}38803881.peach-import-summary {3882  color: var(--peach-t1);3883  font-size: 12px;3884  line-height: 1.6;3885  margin-bottom: 12px;3886}38873888.peach-restore-error {3889  color: rgba(220, 80, 60, 0.95);3890  font-size: 12px;3891  line-height: 1.55;3892}38933894.peach-passkey-card {3895  max-width: 400px;3896  margin: auto 16px;3897  align-self: center;3898  width: calc(100% - 32px);3899}39003901/* Center the approval card vertically inside the overlay-view (which sets3902 * flex-direction: column without justify-content). Without this, the card3903 * sits at the top with a tall empty band below — looks unfinished on the3904 * 320px popup. */3905.peach-overlay-view:has(.peach-passkey-card) {3906  justify-content: center;3907}39083909.peach-pro-badge {3910  padding: 2px 6px;3911  border-radius: 999px;3912  font-family: var(--font-ui);3913  font-size: 10px;3914  letter-spacing: 0.08em;3915  text-transform: uppercase;3916  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3917  color: var(--peach-accent);3918}39193920/* ── Shortcuts rebind table ─────────────────────────────────── */3921.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }3922.peach-shortcut-row {3923  display: flex;3924  align-items: center;3925  gap: 10px;3926  padding: 6px 0;3927}3928.peach-shortcut-row-label {3929  flex: 1;3930  font-size: 12px;3931  color: var(--peach-t0);3932}3933.peach-shortcut-chip {3934  min-width: 64px;3935  padding: 4px 10px;3936  border-radius: 6px;3937  border: 1px solid var(--peach-t3);3938  background: var(--peach-input-bg, var(--surface-card));3939  color: var(--peach-t0);3940  font-family: var(--font-mono);3941  font-size: 11px;3942  letter-spacing: 0.04em;3943  cursor: pointer;3944  text-align: center;3945  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;3946}3947.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }3948.peach-shortcut-chip.is-custom {3949  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3950  color: var(--peach-accent);3951}3952.peach-shortcut-chip.is-capturing {3953  border-color: var(--peach-accent);3954  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3955  color: var(--peach-accent);3956  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;3957}3958@keyframes peach-shortcut-capture-pulse {3959  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }3960  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3961}3962.peach-shortcut-reset {3963  background: transparent;3964  border: none;3965  cursor: pointer;3966  color: var(--peach-t2);3967  padding: 4px 6px;3968  border-radius: 5px;3969  font-size: 14px;3970  line-height: 1;3971  transition: color 120ms ease, background 120ms ease;3972}3973.peach-shortcut-reset:hover {3974  color: var(--peach-t0);3975  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);3976}3977.peach-shortcuts-conflict {3978  margin: 4px 0 0;3979  padding: 8px 10px;3980  border-radius: 7px;3981  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3982  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);3983  font-family: var(--font-mono);3984  font-size: 11px;3985  color: var(--peach-t0);3986}39873988/* ── Help dialog overlay (? to open) ────────────────────────── */3989.peach-shortcuts-help-backdrop {3990  position: fixed;3991  inset: 0;3992  background: rgba(0, 0, 0, 0.55);3993  backdrop-filter: blur(2px);3994  display: flex;3995  align-items: center;3996  justify-content: center;3997  z-index: 1000;3998  animation: peach-help-fade-in 140ms ease forwards;3999}4000@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4001.peach-shortcuts-help-card {4002  width: min(320px, 92vw);4003  max-height: 80vh;4004  overflow-y: auto;4005  border-radius: 14px;4006  border: 1px solid var(--peach-t3);4007  background: var(--peach-bg);4008  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4009  padding: 16px 18px 18px;4010  display: flex;4011  flex-direction: column;4012  gap: 12px;4013}4014.peach-shortcuts-help-head {4015  display: flex; align-items: center; justify-content: space-between;4016}4017.peach-shortcuts-help-head h3 {4018  margin: 0;4019  font-family: var(--font-display);4020  font-style: italic;4021  font-weight: 400;4022  font-size: 22px;4023  color: var(--peach-t0);4024}4025.peach-shortcuts-help-close {4026  background: transparent;4027  border: none;4028  color: var(--peach-t2);4029  cursor: pointer;4030  font-size: 14px;4031  padding: 4px 8px;4032  border-radius: 5px;4033}4034.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4035.peach-shortcuts-help-body ul {4036  list-style: none; padding: 0; margin: 4px 0 12px;4037  display: grid; gap: 8px;4038}4039.peach-shortcuts-help-body li {4040  display: flex; align-items: center; justify-content: space-between; gap: 12px;4041  font-size: 12px; color: var(--peach-t0);4042}4043.peach-shortcuts-help-body kbd {4044  font-family: var(--font-mono);4045  font-size: 11px;4046  padding: 3px 8px;4047  border-radius: 6px;4048  background: var(--surface-card);4049  border: 1px solid var(--peach-t3);4050  color: var(--peach-accent);4051  letter-spacing: 0.04em;4052}40534054/* ── Pro promo on Account screen ────────────────────────────── */4055.peach-pro-promo {4056  position: relative;4057  border-radius: 14px;4058  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4059  background:4060    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4061    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4062    var(--surface-card);4063  overflow: hidden;4064  margin-bottom: 14px;4065}4066.peach-pro-promo-glow {4067  position: absolute;4068  inset: -40% -20% auto auto;4069  width: 220px; height: 220px;4070  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4071  pointer-events: none;4072  filter: blur(8px);4073}4074.peach-pro-promo-inner {4075  position: relative;4076  padding: 18px 18px 16px;4077}4078.peach-pro-promo-title {4079  font-family: var(--font-display);4080  font-style: italic;4081  font-weight: 400;4082  font-size: 28px;4083  line-height: 1;4084  letter-spacing: -0.005em;4085  color: var(--peach-t0);4086  margin: 0 0 4px;4087}4088.peach-pro-promo-tagline {4089  font-family: var(--font-mono);4090  font-size: 10px;4091  letter-spacing: 0.06em;4092  color: var(--peach-t2);4093  margin: 0 0 14px;4094}4095.peach-pro-promo-list {4096  list-style: none;4097  margin: 0 0 16px;4098  padding: 0;4099  display: grid;4100  gap: 9px;4101}4102.peach-pro-promo-list li {4103  display: flex;4104  align-items: flex-start;4105  gap: 9px;4106  font-size: 12px;4107  color: var(--peach-t1);4108  line-height: 1.4;4109}4110.peach-pro-promo-list svg {4111  width: 14px;4112  height: 14px;4113  flex-shrink: 0;4114  color: var(--peach-accent);4115  margin-top: 2px;4116}4117.peach-pro-promo-list span {4118  color: var(--peach-t0);4119}4120.peach-pro-promo-cta {4121  width: 100%;4122  background: var(--peach-accent);4123  color: #fff;4124  border: none;4125  padding: 9px 12px;4126  border-radius: 9px;4127  font-size: 12px;4128  font-weight: 500;4129  font-family: var(--font-ui);4130  letter-spacing: 0.02em;4131  text-decoration: none;4132  display: inline-flex;4133  align-items: center;4134  justify-content: center;4135  cursor: pointer;4136  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4137  box-shadow: 0 2px 16px var(--peach-glow);4138}4139.peach-pro-promo-cta:hover {4140  filter: brightness(1.07);4141  box-shadow: 0 4px 24px var(--peach-glow);4142  transform: translateY(-1px);4143}4144.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }41454146.peach-pro-or-divider {4147  display: flex;4148  align-items: center;4149  gap: 10px;4150  margin: 4px 0 12px;4151  font-family: var(--font-mono);4152  font-size: 10px;4153  letter-spacing: 0.06em;4154  color: var(--peach-t2);4155  text-transform: uppercase;4156}4157.peach-pro-or-divider::before,4158.peach-pro-or-divider::after {4159  content: "";4160  flex: 1;4161  height: 1px;4162  background: var(--peach-t3);4163}41644165.peach-loading {4166  position: absolute;4167  inset: 0;4168  display: flex;4169  align-items: center;4170  justify-content: center;4171  background: var(--bg);4172  animation: peach-loading-pulse 1.2s ease-in-out infinite;4173}41744175@keyframes peach-loading-pulse {4176  0%, 100% { opacity: 0.6; }4177  50% { opacity: 1; }4178}41794180/* ── Health Dashboard ─────────────────────────────────────────────────── */4181.peach-health-body {4182  flex: 1;4183  overflow-y: auto;4184  display: flex;4185  flex-direction: column;4186  /* Hide the platform scrollbar — every other scrollable surface in the4187   * popup hides it; the Health view was the one outlier and it ruined the4188   * polish. Behavior unchanged, just no rail rendered. */4189  scrollbar-width: none;4190  -ms-overflow-style: none;4191}4192.peach-health-body::-webkit-scrollbar { display: none; }41934194/* Loading skeleton for the remediation queue — shown while the background4195 * computes the advanced health report on Pro vaults. Shimmer + pulse so the4196 * view doesn't read as "empty/broken" during the (sometimes multi-second)4197 * scan. */4198.peach-health-skeleton {4199  display: flex;4200  flex-direction: column;4201  gap: 10px;4202  padding: 14px 16px;4203}42044205.peach-health-skeleton-head {4206  display: flex;4207  align-items: center;4208  justify-content: space-between;4209  margin-bottom: 4px;4210}42114212.peach-health-skeleton-title {4213  font-family: "IBM Plex Mono", monospace;4214  font-size: 9px;4215  letter-spacing: 0.16em;4216  text-transform: uppercase;4217  color: var(--peach-accent);4218  opacity: 0.85;4219}42204221.peach-health-skeleton-meta {4222  font-family: "IBM Plex Mono", monospace;4223  font-size: 10px;4224  color: var(--peach-t2);4225  display: inline-flex;4226  align-items: center;4227  gap: 6px;4228}42294230.peach-health-skeleton-dot {4231  width: 6px;4232  height: 6px;4233  border-radius: 50%;4234  background: var(--peach-accent);4235  animation: peach-health-skeleton-pulse 1.2s ease-in-out infinite;4236}42374238.peach-health-skeleton-row {4239  display: flex;4240  align-items: center;4241  gap: 12px;4242  padding: 12px;4243  border-radius: 10px;4244  background: rgba(0, 0, 0, 0.18);4245  animation: peach-health-skeleton-pulse 1.6s ease-in-out infinite;4246}42474248.peach-health-skeleton-row:nth-child(2) { animation-delay: 0.10s; }4249.peach-health-skeleton-row:nth-child(3) { animation-delay: 0.20s; }4250.peach-health-skeleton-row:nth-child(4) { animation-delay: 0.30s; }42514252.peach-health-skeleton-bar {4253  height: 10px;4254  border-radius: 4px;4255  background: linear-gradient(4256    90deg,4257    rgba(240, 232, 216, 0.04) 0%,4258    rgba(240, 232, 216, 0.10) 50%,4259    rgba(240, 232, 216, 0.04) 100%4260  );4261  background-size: 240% 100%;4262  animation: peach-health-skeleton-shimmer 1.6s ease-in-out infinite;4263}42644265.peach-health-skeleton-bar--name { width: 55%; }4266.peach-health-skeleton-bar--meta { width: 40%; height: 7px; opacity: 0.6; margin-top: 6px; }4267.peach-health-skeleton-bar--cta { width: 90px; height: 26px; border-radius: 6px; flex-shrink: 0; margin-left: auto; }42684269.peach-health-skeleton-row > div:first-child {4270  flex: 1;4271  min-width: 0;4272}42734274@keyframes peach-health-skeleton-pulse {4275  0%, 100% { opacity: 0.55; }4276  50%      { opacity: 1; }4277}42784279@keyframes peach-health-skeleton-shimmer {4280  0%   { background-position: 200% 50%; }4281  100% { background-position: -100% 50%; }4282}42834284[data-motion="reduce"] .peach-health-skeleton-row,4285[data-motion="reduce"] .peach-health-skeleton-bar,4286[data-motion="reduce"] .peach-health-skeleton-dot {4287  animation: none;4288}42894290.peach-health-summary {4291  padding: 10px 16px 6px;4292  font-family: "IBM Plex Mono", monospace;4293  font-size: 11px;4294}4295.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4296.peach-health-summary-ok { color: var(--peach-t2); }42974298.peach-health-check-row {4299  padding: 0 16px 10px;4300}4301.peach-health-check-btn {4302  width: 100%;4303  display: flex;4304  align-items: center;4305  justify-content: center;4306}43074308.peach-health-sections {4309  flex: 1;4310  display: flex;4311  flex-direction: column;4312}43134314.peach-health-section {4315  border-bottom: 1px solid var(--peach-t3);4316}43174318.peach-health-section-header {4319  width: 100%;4320  display: flex;4321  align-items: center;4322  justify-content: space-between;4323  padding: 9px 16px;4324  background: transparent;4325  cursor: pointer;4326  color: var(--peach-t0);4327}43284329.peach-health-section-title-row {4330  display: flex;4331  align-items: center;4332  gap: 8px;4333}43344335.peach-health-count-badge {4336  display: inline-flex;4337  align-items: center;4338  justify-content: center;4339  min-width: 20px;4340  height: 18px;4341  padding: 0 5px;4342  border-radius: 999px;4343  background: rgba(220,80,60,0.15);4344  border: 1px solid rgba(220,80,60,0.25);4345  font-family: "IBM Plex Mono", monospace;4346  font-size: 9px;4347  color: rgba(220,80,60,0.9);4348}43494350.peach-health-section-title {4351  font-family: "IBM Plex Mono", monospace;4352  font-size: 11px;4353  text-transform: uppercase;4354  letter-spacing: 0.1em;4355  color: var(--peach-t1);4356}43574358.peach-health-chevron {4359  color: var(--peach-t2);4360  transition: transform 200ms ease;4361  flex-shrink: 0;4362}4363.peach-health-chevron.is-expanded {4364  transform: rotate(180deg);4365}43664367.peach-health-section-body {4368  padding: 0 16px 10px;4369  display: flex;4370  flex-direction: column;4371  gap: 4px;4372}43734374.peach-health-row {4375  display: flex;4376  align-items: flex-start;4377  justify-content: space-between;4378  gap: 8px;4379  padding: 6px 8px;4380  border-radius: 8px;4381  background: rgba(240,232,216,0.02);4382}43834384.peach-health-row-info {4385  flex: 1;4386  min-width: 0;4387  display: flex;4388  flex-direction: column;4389  gap: 2px;4390}43914392.peach-health-row-name {4393  font-family: var(--font-display);4394  font-size: 15px;4395  font-style: italic;4396  font-weight: 400;4397  color: var(--peach-t0);4398  white-space: nowrap;4399  overflow: hidden;4400  text-overflow: ellipsis;4401}44024403.peach-health-row-meta {4404  font-family: "IBM Plex Mono", monospace;4405  font-size: 9px;4406  color: var(--peach-t2);4407  letter-spacing: 0.05em;4408}44094410.peach-health-fix-btn {4411  font-size: 9px;4412  letter-spacing: 0.08em;4413  text-transform: uppercase;4414  padding: 4px 7px;4415  flex-shrink: 0;4416  display: flex;4417  align-items: center;4418}44194420.peach-health-empty {4421  font-family: "IBM Plex Mono", monospace;4422  font-size: 10px;4423  color: var(--peach-t2);4424  padding: 6px 0;4425}44264427.peach-health-loading {4428  font-family: "IBM Plex Mono", monospace;4429  font-size: 10px;4430  color: var(--peach-t2);4431  padding: 6px 0;4432  display: flex;4433  align-items: center;4434  gap: 6px;4435}44364437.peach-health-loading::before {4438  content: "";4439  width: 10px;4440  height: 10px;4441  border: 1.5px solid var(--peach-t3);4442  border-top-color: var(--peach-accent);4443  border-radius: 50%;4444  animation: peach-spin 600ms linear infinite;4445}44464447@keyframes peach-spin {4448  to { transform: rotate(360deg); }4449}44504451.peach-spinner {4452  width: 32px;4453  height: 32px;4454  border: 2px solid var(--peach-s2);4455  border-top-color: var(--peach-accent);4456  border-radius: 50%;4457  margin: 0 auto 16px;4458  animation: peach-spin 0.8s linear infinite;4459}44604461.peach-progress-screen {4462  text-align: center;4463  padding: 32px 16px;4464}44654466.peach-progress-screen-title {4467  font-size: 13px;4468  color: var(--peach-t0);4469  margin-bottom: 16px;4470}44714472.peach-progress-screen-stage {4473  font-size: 11px;4474  color: var(--peach-t2);4475  min-height: 14px;4476}44774478.peach-progress-screen-note {4479  font-size: 10px;4480  color: var(--peach-t2);4481  margin-top: 8px;4482}44834484.peach-pairing-body {4485  flex: 1;4486  overflow-y: auto;4487  display: flex;4488  flex-direction: column;4489}44904491.peach-pairing-content {4492  flex: 1;4493  display: flex;4494  flex-direction: column;4495  align-items: center;4496  justify-content: center;4497  gap: 14px;4498  padding: 28px 20px;4499  text-align: center;4500}45014502.peach-pairing-headline {4503  font-family: var(--font-display);4504  font-style: italic;4505  font-weight: 300;4506  font-size: 28px;4507  color: var(--peach-t0);4508  margin: 0;4509  line-height: 1;4510}45114512.peach-pairing-subline {4513  font-size: 12px;4514  color: var(--peach-t2);4515  max-width: 220px;4516  line-height: 1.5;4517  margin: 0;4518}45194520.peach-pairing-subline--center {4521  text-align: center;4522}45234524.peach-pairing-code-display {4525  display: flex;4526  gap: 6px;4527}45284529.peach-pairing-code-digit {4530  display: flex;4531  align-items: center;4532  justify-content: center;4533  width: 36px;4534  height: 48px;4535  background: var(--peach-s2);4536  border: 1px solid var(--peach-t3);4537  border-radius: 6px;4538  font-family: var(--font-mono);4539  font-size: 22px;4540  color: var(--peach-t0);4541  letter-spacing: 0;4542}45434544.peach-pairing-countdown-ring {4545  position: relative;4546  display: inline-flex;4547  align-items: center;4548  justify-content: center;4549}45504551.peach-pairing-countdown-num {4552  position: absolute;4553  font-family: var(--font-mono);4554  font-size: 14px;4555  color: var(--peach-t1);4556}45574558.peach-pairing-ring-track {4559  fill: none;4560  stroke: var(--peach-t3);4561  stroke-width: 2;4562}45634564.peach-pairing-ring-progress {4565  fill: none;4566  stroke: var(--peach-accent);4567  stroke-width: 2;4568  stroke-linecap: round;4569  transform: rotate(-90deg);4570  transform-origin: 50% 50%;4571  transition: stroke-dashoffset 0.5s linear;4572}45734574.peach-pairing-code-inputs {4575  display: flex;4576  gap: 8px;4577}45784579.peach-pairing-code-box {4580  width: 36px;4581  height: 48px;4582  text-align: center;4583  background: var(--peach-s2);4584  border: 1px solid var(--peach-t3);4585  border-radius: 6px;4586  font-family: var(--font-mono);4587  font-size: 20px;4588  color: var(--peach-t0);4589  outline: none;4590  transition: border-color 120ms ease;4591}45924593.peach-pairing-code-box:focus {4594  border-color: var(--peach-accent);4595}45964597.peach-pairing-code-box.has-error {4598  border-color: rgba(220, 80, 60, 0.45);4599}46004601.peach-pairing-status {4602  display: flex;4603  align-items: center;4604  gap: 8px;4605  margin: 0;4606  font-size: 12px;4607  color: var(--peach-t1);4608}46094610.peach-pairing-error {4611  margin: 0;4612  font-size: 11px;4613  color: var(--peach-breach);4614}46154616.peach-pairing-error-msg {4617  color: var(--peach-t1);4618}46194620.peach-pairing-spinner {4621  width: 12px;4622  height: 12px;4623  border: 1.5px solid var(--peach-t3);4624  border-top-color: var(--peach-accent);4625  border-radius: 50%;4626  animation: peach-spin 0.8s linear infinite;4627}46284629.peach-pairing-success-icon,4630.peach-pairing-error-icon,4631.peach-pairing-hero {4632  display: inline-flex;4633  align-items: center;4634  justify-content: center;4635}46364637/* Tag chips */4638.peach-tag-chip {4639  display: inline-flex;4640  align-items: center;4641  gap: 4px;4642  padding: 3px 8px;4643  border-radius: 999px;4644  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4645  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4646  color: var(--peach-t0);4647  font-family: "IBM Plex Mono", monospace;4648  font-size: 10px;4649  letter-spacing: 0.04em;4650}46514652.peach-tag-chip-remove {4653  background: transparent;4654  border: none;4655  color: inherit;4656  opacity: 0.6;4657  cursor: pointer;4658  padding: 0;4659  font-size: 12px;4660  line-height: 1;4661}46624663.peach-tag-chip-remove:hover {4664  opacity: 1;4665}46664667/* Tag input */4668.peach-tag-input-wrap {4669  border-bottom: 1px solid var(--peach-t3);4670}46714672.peach-tag-suggestions {4673  display: flex;4674  flex-wrap: wrap;4675  gap: 4px;4676  padding: 6px 0;4677}46784679.peach-tag-suggestion {4680  padding: 2px 8px;4681  border-radius: 999px;4682  border: 1px solid var(--peach-t3);4683  background: var(--peach-s2);4684  color: var(--peach-t1);4685  font-family: "IBM Plex Mono", monospace;4686  font-size: 10px;4687  cursor: pointer;4688  transition: border-color 80ms ease, background 80ms ease;4689}46904691.peach-tag-suggestion:hover {4692  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4693  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4694}46954696/* Tag filter strip */4697.peach-tag-filter-strip {4698  border-bottom: 1px solid var(--peach-t3);4699  flex-shrink: 0;4700}47014702.peach-tag-filter-chip {4703  display: inline-flex;4704  align-items: center;4705  padding: 4px 10px;4706  border-radius: 999px;4707  border: 1px solid var(--peach-t3);4708  background: transparent;4709  color: var(--peach-t2);4710  font-family: "IBM Plex Mono", monospace;4711  font-size: 9px;4712  letter-spacing: 0.06em;4713  text-transform: uppercase;4714  cursor: pointer;4715  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4716  white-space: nowrap;4717}47184719.peach-tag-filter-chip:hover {4720  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4721  color: var(--peach-t1);4722}47234724.peach-tag-filter-chip.is-selected {4725  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4726  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4727  color: var(--peach-t0);4728}47294730/* ─────────────────────────────────────────────────────────────────────────4731   v1.4.12 additions4732   ─────────────────────────────────────────────────────────────────────── */47334734/* Sort bar */4735.peach-sort-bar {4736  display: flex;4737  align-items: center;4738  gap: 4px;4739  padding: 5px 12px;4740  border-bottom: 1px solid var(--peach-t3);4741  flex-shrink: 0;4742  overflow-x: auto;4743  scrollbar-width: none;4744}47454746.peach-sort-btn {4747  padding: 2px 9px;4748  border-radius: 999px;4749  border: 1px solid transparent;4750  background: transparent;4751  color: var(--peach-t2);4752  font-family: "IBM Plex Mono", monospace;4753  font-size: 9px;4754  letter-spacing: 0.07em;4755  text-transform: uppercase;4756  cursor: pointer;4757  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4758  white-space: nowrap;4759}47604761.peach-sort-btn:hover {4762  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4763  color: var(--peach-t1);4764}47654766.peach-sort-btn.is-active {4767  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4768  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4769  color: var(--peach-t0);4770}47714772.peach-sort-domain-hint {4773  margin-left: auto;4774  font-family: "IBM Plex Mono", monospace;4775  font-size: 9px;4776  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4777  white-space: nowrap;4778  overflow: hidden;4779  text-overflow: ellipsis;4780  max-width: 110px;4781}47824783/* Tab-match badge on entry rows */4784.peach-tab-match-badge {4785  display: inline-block;4786  width: 6px;4787  height: 6px;4788  border-radius: 50%;4789  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4790  margin-left: 5px;4791  vertical-align: middle;4792  flex-shrink: 0;4793  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4794}47954796.peach-entry-row.is-tab-match {4797  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4798  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4799}48004801.peach-entry-row.is-tab-match:hover {4802  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4803}48044805/* Entry list stagger entrance */4806@keyframes peach-entry-fadein {4807  from { opacity: 0; transform: translateY(4px); }4808  to   { opacity: 1; transform: translateY(0); }4809}48104811.peach-vault-list .peach-entry-row {4812  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4813  content-visibility: auto;4814  contain-intrinsic-size: auto 44px;4815}48164817/* Button press micro-interaction */4818.peach-btn:active {4819  transform: scale(0.95);4820  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4821}48224823.peach-sort-btn:active,4824.peach-tag-filter-chip:active {4825  transform: scale(0.93);4826  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4827}48284829/* Password strength bar (Lock view + shared) */4830.peach-password-strength {4831  display: flex;4832  align-items: center;4833  gap: 8px;4834  margin-top: 6px;4835}48364837.peach-strength-bar {4838  flex: 1;4839  height: 3px;4840  border-radius: 2px;4841  background: var(--peach-t3);4842  overflow: hidden;4843}48444845.peach-strength-fill {4846  height: 100%;4847  border-radius: 2px;4848  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4849              background 300ms ease;4850}48514852.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4853.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4854.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4855.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }48564857.peach-strength-label {4858  font-family: "IBM Plex Mono", monospace;4859  font-style: italic;4860  font-size: 9px;4861  font-weight: 300;4862  letter-spacing: 0.06em;4863  color: var(--peach-t2);4864  min-width: 36px;4865  text-align: right;4866}48674868.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4869.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4870.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4871.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }48724873/* Duress form */4874.peach-duress-status {4875  padding: 2px 8px;4876  border-radius: 999px;4877  border: 1px solid var(--peach-t3);4878  font-family: "IBM Plex Mono", monospace;4879  font-size: 9px;4880  letter-spacing: 0.07em;4881  text-transform: uppercase;4882  color: var(--peach-t2);4883  flex-shrink: 0;4884}48854886.peach-duress-status.is-active {4887  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4888  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4889  color: var(--peach-t0);4890}48914892.peach-duress-form {4893  padding: 8px 0 4px;4894  display: flex;4895  flex-direction: column;4896  gap: 6px;4897}48984899.peach-duress-form .peach-label {4900  margin-top: 4px;4901}49024903.peach-duress-actions {4904  display: flex;4905  gap: 6px;4906  align-items: center;4907  margin-top: 4px;4908}49094910.peach-duress-actions .peach-btn:first-child {4911  margin-right: auto;4912}49134914/* Improved overlay spring entrance */4915.peach-overlay-view.ov-enter-up {4916  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4917}49184919@keyframes ov-enter-up-spring {4920  from { opacity: 0; transform: translateY(16px) scale(0.98); }4921  to   { opacity: 1; transform: translateY(0) scale(1); }4922}49234924.peach-overlay-view.ov-enter-right {4925  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4926}49274928@keyframes ov-enter-right-spring {4929  from { opacity: 0; transform: translateX(18px) scale(0.98); }4930  to   { opacity: 1; transform: translateX(0) scale(1); }4931}49324933/* ── Onboarding-mode restore screens (file import) ── */4934/* Used when MainImportView renders during onboarding (no vault yet).4935   Animates like a lock-screen transition. */4936.peach-lock-view {4937  position: absolute;4938  inset: 0;4939  display: flex;4940  flex-direction: column;4941  background:4942    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4943    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4944    var(--peach-bg);4945  z-index: 2;4946  overflow: hidden;4947  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4948}49494950.peach-lock-view-header {4951  display: flex;4952  align-items: center;4953  justify-content: space-between;4954  padding: 16px 18px 12px;4955  flex-shrink: 0;4956}49574958/* ───────── Settings: auto-lock select ───────── */4959.peach-settings-select {4960  font-family: "IBM Plex Mono", monospace;4961  font-size: 11px;4962  background: transparent;4963  border: 1px solid var(--peach-t3);4964  border-radius: 4px;4965  color: var(--peach-t1);4966  padding: 3px 6px;4967  cursor: pointer;4968  outline: none;4969}4970.peach-settings-select:focus {4971  border-color: var(--peach-accent);4972}49734974/* ───────── Duress status pill (new polished) ───────── */4975.peach-duress-status-pill {4976  font-family: "IBM Plex Mono", monospace;4977  font-size: 9px;4978  text-transform: uppercase;4979  letter-spacing: 0.12em;4980  padding: 2px 8px;4981  border-radius: 12px;4982  background: var(--peach-t3);4983  color: var(--peach-t2);4984  flex-shrink: 0;4985}4986.peach-duress-status-pill.is-active {4987  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4988  color: var(--peach-accent);4989}49904991/* ───────── Entry advanced disclosure (canary) ───────── */4992.peach-entry-advanced {4993  margin-top: 12px;4994  border-top: 1px solid var(--peach-t3);4995  padding-top: 10px;4996  position: relative;4997  z-index: 1;4998}4999.peach-entry-advanced-toggle {5000  display: flex;5001  align-items: center;5002  justify-content: space-between;5003  width: 100%;5004  background: transparent;5005  border: none;5006  cursor: pointer;5007  padding: 0;5008  color: var(--peach-t2);5009}5010.peach-canary-section {5011  margin-top: 10px;5012  display: grid;5013  gap: 6px;5014}50155016/* ───────── Import: merge/replace radio choices ───────── */5017.peach-import-choice {5018  display: flex;5019  align-items: flex-start;5020  gap: 10px;5021  padding: 8px 10px;5022  border: 1px solid var(--peach-t3);5023  border-radius: 10px;5024  cursor: pointer;5025  margin-bottom: 6px;5026  transition: border-color 120ms ease, background 120ms ease;5027}5028.peach-import-choice:hover {5029  border-color: var(--peach-accent);5030}5031.peach-import-choice input[type="radio"] {5032  margin-top: 3px;5033  accent-color: var(--peach-accent);5034  flex-shrink: 0;5035}5036.peach-import-choice-main {5037  display: flex;5038  flex-direction: column;5039  gap: 2px;5040  min-width: 0;5041}5042.peach-import-choice-label {5043  font-size: 12px;5044  color: var(--peach-t0);5045}5046.peach-import-choice-sub {5047  font-size: 11px;5048  color: var(--peach-t2);5049  line-height: 1.5;5050}50515052/* ───────── Export: success confirmation strip ───────── */5053.peach-export-success {5054  display: flex;5055  align-items: flex-start;5056  gap: 10px;5057  padding: 12px;5058  border-radius: 12px;5059  border: 1px solid rgba(150, 175, 110, 0.3);5060  background: rgba(150, 175, 110, 0.08);5061  color: var(--peach-t0);5062  font-size: 12px;5063  line-height: 1.55;5064}5065.peach-export-success-check {5066  color: rgba(150, 175, 110, 0.9);5067  font-size: 14px;5068  flex-shrink: 0;5069}50705071/* ── Trash view ──────────────────────────────────────────────────────── */5072.peach-trash-entry-row {5073  display: flex;5074  align-items: center;5075  justify-content: space-between;5076  gap: 8px;5077  padding: 8px 0;5078  border-bottom: 1px solid var(--peach-border);5079}5080.peach-trash-entry-info {5081  flex: 1;5082  min-width: 0;5083  display: flex;5084  flex-direction: column;5085  gap: 2px;5086}5087.peach-trash-entry-title {5088  font-size: 13px;5089  color: var(--peach-t0);5090  overflow: hidden;5091  text-overflow: ellipsis;5092  white-space: nowrap;5093}5094.peach-trash-entry-meta {5095  font-family: var(--font-mono);5096  font-size: 9px;5097  color: var(--peach-t2);5098  letter-spacing: 0.04em;5099}5100.peach-trash-entry-actions {5101  display: flex;5102  align-items: center;5103  gap: 4px;5104  flex-shrink: 0;5105}5106.peach-trash-delete-btn {5107  background: transparent;5108  border: 0;5109  color: var(--peach-t3);5110  font-size: 16px;5111  line-height: 1;5112  cursor: pointer;5113  padding: 2px 5px;5114  transition: color 0.15s;5115}5116.peach-trash-delete-btn:hover { color: var(--peach-breach); }5117.peach-trash-list {5118  overflow-y: auto;5119}5120.peach-trash-footer {5121  display: flex;5122  align-items: center;5123  gap: 8px;5124  padding: 8px 0 0;5125  border-top: 1px solid var(--peach-border);5126  margin-top: 4px;5127}5128.peach-trash-purge-all {5129  background: transparent;5130  border: 0;5131  color: var(--peach-t3);5132  font-size: 10px;5133  cursor: pointer;5134  padding: 4px 0;5135  letter-spacing: 0.03em;5136  transition: color 0.2s;5137}5138.peach-trash-purge-all:hover { color: var(--peach-breach); }5139.peach-trash-purge-confirm-label {5140  font-size: 10px;5141  color: var(--peach-t1);5142  flex: 1;5143}51445145/* ── Settings shortcuts grid ─────────────────────────────────────────── */5146.peach-shortcuts-grid {5147  display: grid;5148  grid-template-columns: auto 1fr;5149  gap: 6px 12px;5150  align-items: center;5151  padding: 4px 0;5152}5153.peach-shortcut-key {5154  font-family: var(--font-mono);5155  font-size: 10px;5156  color: var(--peach-t0);5157  background: var(--peach-t3);5158  border-radius: 4px;5159  padding: 2px 6px;5160  white-space: nowrap;5161  text-align: center;5162}5163.peach-shortcut-desc {5164  font-size: 11px;5165  color: var(--peach-t1);5166}51675168/* ── Sort bar trash button ───────────────────────────────────────────── */5169.peach-sort-trash-btn {5170  display: flex;5171  align-items: center;5172  justify-content: center;5173  padding: 3px 5px;5174  background: transparent;5175  border: none;5176  cursor: pointer;5177  color: var(--peach-t2);5178  border-radius: 4px;5179  transition: color 140ms ease, background 140ms ease;5180}5181.peach-sort-trash-btn:hover {5182  color: var(--peach-t1);5183  background: var(--peach-t3);5184}5185.peach-sort-trash-btn.is-active {5186  color: var(--peach-accent);5187}51885189/* Accent color picker */5190.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5191.peach-accent-picker {5192  display: flex;5193  flex-wrap: wrap;5194  gap: 7px;5195  padding: 2px 0;5196}5197.peach-accent-swatch {5198  width: 22px;5199  height: 22px;5200  border-radius: 50%;5201  border: 2px solid transparent;5202  cursor: pointer;5203  padding: 0;5204  transition: transform 100ms;5205  outline-offset: 2px;5206}5207.peach-accent-swatch:hover { transform: scale(1.15); }5208.peach-accent-swatch.is-active {5209  border-color: var(--peach-t0);5210  transform: scale(1.1);5211}52125213/* Display font picker — swatch shows an "Aa" preview rendered with each5214   font option so the user can see what they're picking before they pick. */5215.peach-settings-row--font { align-items: flex-start; padding-top: 10px; }5216.peach-font-picker {5217  display: flex;5218  flex-wrap: wrap;5219  gap: 6px;5220  padding: 2px 0;5221  flex: 1;5222  justify-content: flex-end;5223}5224.peach-font-swatch {5225  display: flex;5226  flex-direction: column;5227  align-items: center;5228  gap: 2px;5229  padding: 4px 8px;5230  background: transparent;5231  border: 1px solid var(--peach-t3);5232  border-radius: 6px;5233  cursor: pointer;5234  transition: border-color 100ms, background 100ms;5235  min-width: 56px;5236}5237.peach-font-swatch:hover {5238  border-color: var(--peach-accent-dim);5239  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5240}5241.peach-font-swatch.is-active {5242  border-color: var(--peach-accent);5243  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5244}5245.peach-font-swatch-glyph {5246  font-size: 18px;5247  line-height: 1;5248  color: var(--peach-t0);5249}5250.peach-font-swatch[data-font-preview="cormorant-italic"] .peach-font-swatch-glyph {5251  font-family: "Cormorant Garamond", serif;5252  font-style: italic;5253  font-weight: 400;5254}5255.peach-font-swatch[data-font-preview="cormorant"] .peach-font-swatch-glyph {5256  font-family: "Cormorant Garamond", serif;5257  font-style: normal;5258  font-weight: 400;5259}5260.peach-font-swatch[data-font-preview="inter"] .peach-font-swatch-glyph {5261  font-family: "Inter Variable", "Inter", sans-serif;5262  font-style: normal;5263  font-weight: 400;5264}5265.peach-font-swatch[data-font-preview="system"] .peach-font-swatch-glyph {5266  font-family: system-ui, -apple-system, sans-serif;5267  font-style: normal;5268  font-weight: 400;5269}5270.peach-font-swatch-name {5271  font-family: var(--font-mono);5272  font-size: 8px;5273  letter-spacing: 0.06em;5274  color: var(--peach-t2);5275  text-transform: lowercase;5276}52775278.peach-pill-group {5279  display: flex;5280  gap: 6px;5281}5282.peach-pill-group .peach-btn.is-active {5283  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5284  border-color: var(--peach-accent);5285  color: var(--peach-t0);5286}52875288/* ── Card entry styles ───────────────────────────────────────── */5289.peach-card-number {5290  font-family: var(--peach-mono);5291  letter-spacing: 0.08em;5292}52935294.peach-card-network-badge {5295  font-size: 10px;5296  padding: 1px 5px;5297  border-radius: 4px;5298  border: 0.5px solid var(--peach-border);5299  color: var(--peach-text-dim);5300  margin-left: 6px;5301  vertical-align: middle;5302}53035304.peach-card-expiry-row {5305  display: flex;5306  align-items: center;5307  gap: 8px;5308}53095310.peach-card-expiry-sep {5311  color: var(--peach-text-dim);5312}53135314/* ── Pro tier — upgrade screen ──────────────────────────────── */5315.peach-pro-mark {5316  font-size: 9px;5317  color: var(--peach-accent);5318  margin-left: 6px;5319  vertical-align: super;5320  opacity: 0.7;5321}53225323.peach-pro-mini-badge {5324  display: block;5325  font-size: 10px;5326  font-style: italic;5327  color: var(--peach-accent);5328  letter-spacing: 0.04em;5329  margin-top: -2px;5330  padding-left: 2px;5331  opacity: 0.85;5332  text-align: center;5333}53345335.peach-wordmark-stack {5336  display: inline-flex;5337  flex-direction: column;5338  align-items: center;5339}53405341/* ── Pro tier — upgrade page ─────────────────────────────────── */5342.peach-pro-upgrade {5343  display: flex;5344  flex-direction: column;5345  align-items: stretch;5346  gap: 10px;5347  padding: 0 4px 8px;5348}53495350.peach-pro-upgrade-hero {5351  display: flex;5352  flex-direction: column;5353  align-items: center;5354  gap: 4px;5355  padding: 10px 0 6px;5356}53575358.peach-pro-upgrade-mark-wrap {5359  display: flex;5360  align-items: center;5361  justify-content: center;5362  margin-bottom: 2px;5363}53645365.peach-pro-upgrade-mark {5366  width: 38px;5367  height: 38px;5368  filter:5369    drop-shadow(0 0 7px color-mix(in srgb, var(--peach-accent) 45%, transparent))5370    drop-shadow(0 0 18px color-mix(in srgb, var(--peach-accent) 18%, transparent));5371}53725373.peach-pro-upgrade-title {5374  font-family: var(--font-display, var(--font-ui));5375  font-size: 22px;5376  margin: 0;5377  color: var(--peach-t0);5378  letter-spacing: 0.01em;5379}53805381.peach-pro-upgrade-tagline {5382  margin: 0;5383  font-style: italic;5384  color: var(--peach-t2);5385  font-size: 11px;5386}53875388.peach-pro-features {5389  display: flex;5390  flex-direction: column;5391  gap: 8px;5392  border-top: 1px solid var(--peach-border);5393  border-bottom: 1px solid var(--peach-border);5394  padding: 10px 4px;5395}53965397.peach-pro-feature {5398  display: flex;5399  gap: 9px;5400  align-items: baseline;5401}54025403.peach-pro-feature-mark {5404  color: var(--peach-accent);5405  font-size: 11px;5406  flex-shrink: 0;5407  display: inline-block;5408  transform-origin: center;5409  opacity: 0.8;5410}54115412.peach-pro-feature-text {5413  display: flex;5414  flex-direction: column;5415  gap: 1px;5416}54175418.peach-pro-feature-name {5419  font-size: 12px;5420  color: var(--peach-t0);5421}54225423.peach-pro-feature-desc {5424  font-size: 10px;5425  color: var(--peach-t2);5426}54275428.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5429  animation: peach-pulse-accent 600ms ease-out forwards;5430}54315432@keyframes peach-pulse-accent {5433  0%   { opacity: 1; transform: scale(1.4); }5434  100% { opacity: 0.7; transform: scale(1); }5435}54365437.peach-pro-upgrade-actions {5438  display: flex;5439  flex-direction: column;5440  align-items: center;5441  gap: 8px;5442  padding-top: 2px;5443}54445445.peach-pro-pricing {5446  margin: 0;5447  text-align: center;5448  font-size: 11px;5449  color: var(--peach-t2);5450  letter-spacing: 0.04em;5451}54525453.peach-pro-upgrade-cta {5454  align-self: stretch;5455  text-align: center;5456  text-decoration: none;5457  display: block;5458  padding: 9px 20px;5459  font-size: 13px;5460  box-sizing: border-box;5461}54625463.peach-pro-key-divider {5464  display: flex;5465  align-items: center;5466  gap: 8px;5467  width: 100%;5468  color: var(--peach-t3);5469  font-size: 10px;5470  letter-spacing: 0.08em;5471}54725473.peach-pro-key-divider::before,5474.peach-pro-key-divider::after {5475  content: "";5476  flex: 1;5477  height: 1px;5478  background: var(--peach-border);5479}54805481.peach-pro-key-link {5482  background: transparent;5483  border: 1px solid var(--peach-border);5484  border-radius: 8px;5485  color: var(--peach-t1);5486  font-size: 12px;5487  cursor: pointer;5488  align-self: stretch;5489  padding: 8px 12px;5490  text-align: center;5491  transition: border-color 0.2s, color 0.2s;5492}54935494.peach-pro-key-link:hover {5495  border-color: var(--peach-accent);5496  color: var(--peach-accent);5497}54985499/* ── Pro tier — key ceremony ─────────────────────────────────── */5500.peach-pro-key-ceremony {5501  display: flex;5502  flex-direction: column;5503  align-items: center;5504  gap: 12px;5505  padding: 20px 4px 16px;5506}55075508.peach-pro-key-ceremony .peach-lock-rune-string {5509  font-size: 16px;5510  gap: 12px;5511  flex: 0;5512  justify-content: center;5513}55145515.peach-pro-key-ceremony-label {5516  margin: 0;5517  font-size: 11px;5518  color: var(--peach-t2);5519  font-style: italic;5520  letter-spacing: 0.04em;5521}55225523.peach-pro-key-input {5524  font-family: var(--font-mono, monospace);5525  letter-spacing: 0.06em;5526  text-align: center;5527  width: 100%;5528  box-sizing: border-box;5529}55305531.peach-pro-key-error {5532  margin: 0;5533  font-size: 12px;5534  text-align: center;5535  color: var(--peach-breach, #e55);5536  padding: 0;5537}55385539.peach-pro-key-activate {5540  width: 100%;5541  text-align: center;5542  box-sizing: border-box;5543  padding: 10px 20px;5544  font-size: 13px;5545}55465547.peach-pro-key-cancel {5548  background: transparent;5549  border: 0;5550  color: var(--peach-t2);5551  font-size: 11px;5552  cursor: pointer;5553  padding: 2px 8px;5554  transition: color 0.2s;5555}55565557.peach-pro-key-cancel:hover { color: var(--peach-accent); }55585559/* ── Pro tier — active state ─────────────────────────────────── */5560.peach-pro-active {5561  display: flex;5562  flex-direction: column;5563  align-items: center;5564  gap: 0;5565  padding: 8px 4px 16px;5566  min-height: 280px;5567}55685569.peach-pro-active-hero {5570  display: flex;5571  flex-direction: column;5572  align-items: center;5573  gap: 6px;5574  padding: 20px 0 22px;5575}55765577.peach-pro-active-mark-wrap {5578  display: flex;5579  align-items: center;5580  justify-content: center;5581  margin-bottom: 4px;5582}55835584.peach-pro-active-mark {5585  width: 60px;5586  height: 60px;5587  filter:5588    drop-shadow(0 0 10px color-mix(in srgb, var(--peach-accent) 55%, transparent))5589    drop-shadow(0 0 26px color-mix(in srgb, var(--peach-accent) 22%, transparent));5590}55915592.peach-pro-active-title {5593  font-family: var(--font-display, var(--font-ui));5594  font-size: 26px;5595  margin: 0;5596  color: var(--peach-t0);5597  letter-spacing: 0.01em;5598}55995600.peach-pro-active-since {5601  margin: 0;5602  font-size: 11px;5603  color: var(--peach-t2);5604  font-style: italic;5605}56065607.peach-pro-active-features {5608  display: flex;5609  flex-direction: column;5610  gap: 8px;5611  width: 100%;5612  padding: 14px 8px 0;5613  border-top: 1px solid var(--peach-border);5614  flex: 1;5615}56165617.peach-pro-active-feature {5618  display: flex;5619  align-items: center;5620  gap: 9px;5621}56225623.peach-pro-active-feature-mark {5624  color: var(--peach-accent);5625  font-size: 10px;5626  opacity: 0.65;5627  flex-shrink: 0;5628}56295630.peach-pro-active-feature-name {5631  font-size: 12px;5632  color: var(--peach-t1);5633}56345635.peach-pro-deactivate {5636  align-self: center;5637  background: transparent;5638  border: 0;5639  color: var(--peach-t3);5640  font-size: 10px;5641  cursor: pointer;5642  padding: 8px 0 0;5643  margin-top: 16px;5644  letter-spacing: 0.03em;5645  transition: color 0.2s;5646}56475648.peach-pro-deactivate:hover { color: var(--peach-t2); }56495650.peach-pro-deactivate:disabled {5651  opacity: 0.5;5652  cursor: default;5653}56545655/* ── Pro advanced health remediation queue ──────────────────── */5656.peach-health-pro-queue {5657  display: flex;5658  flex-direction: column;5659  gap: 10px;5660  padding: 12px;5661  margin: 0 0 12px;5662  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5663  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5664  border-radius: 10px;5665}56665667.peach-health-pro-queue-head {5668  display: flex;5669  justify-content: space-between;5670  align-items: baseline;5671}56725673.peach-health-pro-queue-title {5674  font-size: 12px;5675  font-weight: 500;5676  letter-spacing: 0.04em;5677  text-transform: uppercase;5678  color: var(--peach-accent);5679}56805681.peach-health-pro-queue-score {5682  font-size: 11px;5683  color: var(--peach-t2);5684}56855686.peach-health-pro-row {5687  display: flex;5688  gap: 10px;5689  align-items: center;5690  padding: 8px 0;5691  border-top: 1px solid var(--peach-border);5692}56935694.peach-health-pro-row-info {5695  flex: 1;5696  display: flex;5697  flex-direction: column;5698  gap: 4px;5699  min-width: 0;5700}57015702.peach-health-pro-row-name {5703  font-size: 13px;5704  color: var(--peach-t0);5705  overflow: hidden;5706  text-overflow: ellipsis;5707  white-space: nowrap;5708}57095710.peach-health-pro-row-meta {5711  font-size: 11px;5712  color: var(--peach-t2);5713}57145715.peach-health-pro-bar {5716  height: 2px;5717  background: var(--peach-border);5718  border-radius: 2px;5719  overflow: hidden;5720  margin-top: 2px;5721}57225723.peach-health-pro-bar-fill {5724  height: 100%;5725  background: var(--peach-accent);5726  transition: width 200ms ease-out;5727}57285729/* ── Pro activation celebration ── */5730@keyframes peach-pro-bloom {5731  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5732  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5733                 drop-shadow(0 0 48px var(--peach-glow)); }5734  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5735}57365737@keyframes peach-pro-wordmark-in {5738  from { opacity: 0; transform: translateY(4px); }5739  to   { opacity: 1; transform: translateY(0); }5740}57415742@keyframes peach-pro-fade-out {5743  from { opacity: 1; }5744  to   { opacity: 0; }5745}57465747.peach-pro-celebration {5748  background:5749    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5750    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5751    var(--peach-bg);5752  border: 1px solid var(--peach-t3);5753  box-shadow:5754    0 2px 8px rgba(0,0,0,0.55),5755    0 14px 48px rgba(0,0,0,0.7),5756    0 0 0 1px rgba(240,232,216,0.04);5757  overflow: hidden;5758  width: 320px;5759  height: 520px;5760  display: flex;5761  flex-direction: column;5762  align-items: center;5763  justify-content: center;5764  gap: 8px;5765  padding: 32px 24px;5766  text-align: center;5767}57685769.peach-pro-celebration.is-leaving {5770  animation: peach-pro-fade-out 400ms ease forwards;5771}57725773.peach-pro-bloom-target {5774  font-size: 48px;5775  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5776  margin-bottom: 12px;5777}57785779.peach-pro-wordmark {5780  font-family: var(--font-display);5781  font-size: 22px;5782  font-style: italic;5783  font-weight: 400;5784  color: var(--peach-accent);5785  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5786}57875788.peach-pro-thankyou {5789  font-size: 12px;5790  font-style: italic;5791  color: var(--peach-t2);5792  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5793}579457955796/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5797.peach-pro-notice-banner {5798  display: flex;5799  align-items: center;5800  gap: 8px;5801  padding: 7px 12px;5802  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5803  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5804  font-size: 11px;5805  color: var(--peach-t2);5806  font-family: "IBM Plex Mono", monospace;5807  flex-shrink: 0;5808}58095810.peach-pro-notice-link {5811  background: none;5812  border: none;5813  padding: 0;5814  cursor: pointer;5815  font-size: 11px;5816  color: var(--peach-accent);5817  font-family: "IBM Plex Mono", monospace;5818  margin-left: auto;5819  white-space: nowrap;5820}58215822.peach-pro-notice-close {5823  background: none;5824  border: none;5825  padding: 0 0 0 4px;5826  cursor: pointer;5827  font-size: 10px;5828  color: var(--peach-t3);5829  line-height: 1;5830}58315832/* ─── First-run onboarding ──────────────────────────────────────────────5833   Three-card welcome shown once before vault creation. The PeachScript5834   rune background drifts behind everything at very low opacity — it's5835   atmosphere, not focus. The cards themselves use the same panel5836   language as the rest of the popup so the transition into NewVault is5837   continuous, not a jarring switch of visual register. */58385839.peach-onboarding {5840  position: relative;5841  display: flex;5842  flex-direction: column;5843  width: 100%;5844  height: 100%;5845  padding: 16px 16px 18px;5846  box-sizing: border-box;5847  overflow: hidden;5848  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;5849}58505851.peach-onboarding.is-completing {5852  animation: peach-onboard-exit 200ms ease-out forwards;5853}58545855.peach-rune-background {5856  position: absolute;5857  inset: 0;5858  width: 100%;5859  height: 100%;5860  pointer-events: none;5861  z-index: 0;5862  transition: opacity 500ms ease-out;5863}58645865.peach-onboarding.is-completing .peach-rune-background {5866  opacity: 0;5867}58685869.peach-onboarding-header {5870  position: relative;5871  z-index: 1;5872  display: flex;5873  align-items: center;5874  margin-bottom: 14px;5875}58765877.peach-onboarding-card {5878  position: relative;5879  z-index: 1;5880  flex: 1;5881  display: flex;5882  flex-direction: column;5883  gap: 10px;5884  padding: 22px 20px;5885  border-radius: 16px;5886  border: 1px solid var(--peach-t3);5887  background:5888    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));5889  backdrop-filter: blur(3px);5890  -webkit-backdrop-filter: blur(3px);5891  box-shadow:5892    inset 0 1px 0 rgba(240, 232, 216, 0.04),5893    0 12px 28px rgba(0, 0, 0, 0.12);5894  cursor: pointer;5895  user-select: none;5896  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;5897}58985899.peach-onboarding-card.is-exiting {5900  animation: peach-card-out 120ms ease-in forwards;5901  pointer-events: none;5902}59035904.peach-onboarding-card-headline {5905  margin: 0;5906  font-family: var(--font-display);5907  font-style: italic;5908  font-weight: 400;5909  font-size: 22px;5910  line-height: 1.05;5911  color: var(--peach-t0);5912  white-space: pre-line;5913}59145915.peach-onboarding-divider {5916  margin: 4px 0 6px;5917  border: 0;5918  border-top: 1px solid var(--peach-t3);5919  width: 100%;5920}59215922.peach-onboarding-body {5923  margin: 0;5924  font-size: 13px;5925  line-height: 1.6;5926  color: var(--peach-t1);5927}59285929.peach-onboarding-warning {5930  display: flex;5931  align-items: flex-start;5932  gap: 8px;5933  margin: 6px 0 0;5934  padding-top: 8px;5935  border-top: 1px dashed var(--peach-t3);5936  font-size: 13px;5937  line-height: 1.5;5938  color: var(--peach-t1);5939}59405941.peach-onboarding-warning-icon {5942  color: var(--peach-accent);5943  font-size: 13px;5944  line-height: 1.5;5945  flex: 0 0 auto;5946}59475948.peach-onboarding-nav {5949  position: relative;5950  z-index: 1;5951  display: flex;5952  align-items: center;5953  justify-content: space-between;5954  margin-top: 12px;5955  padding: 0 4px;5956}59575958.peach-onboarding-dots {5959  display: flex;5960  align-items: center;5961  gap: 6px;5962}59635964.peach-onboarding-dot {5965  width: 6px;5966  height: 6px;5967  border-radius: 50%;5968  background: var(--peach-t2);5969  transition: width 200ms ease, height 200ms ease, background 200ms ease;5970}59715972.peach-onboarding-dot.is-active {5973  width: 8px;5974  height: 8px;5975  background: var(--peach-accent);5976}59775978.peach-onboarding-next {5979  background: none;5980  border: none;5981  padding: 4px 0;5982  cursor: pointer;5983  font-family: "IBM Plex Mono", monospace;5984  font-size: 11px;5985  letter-spacing: 0.04em;5986  color: var(--peach-t1);5987  transition: color 150ms ease;5988}59895990.peach-onboarding-next:hover {5991  color: var(--peach-t0);5992}59935994.peach-onboarding-next:disabled {5995  opacity: 0.5;5996  cursor: default;5997}59985999@keyframes peach-onboard-enter {6000  from { opacity: 0; transform: translateY(20px); }6001  to   { opacity: 1; transform: translateY(0); }6002}60036004@keyframes peach-onboard-exit {6005  from { opacity: 1; }6006  to   { opacity: 0; }6007}60086009@keyframes peach-card-in {6010  from { opacity: 0; transform: translateX(12px); }6011  to   { opacity: 1; transform: translateX(0); }6012}60136014@keyframes peach-card-out {6015  from { opacity: 1; transform: translateX(0); }6016  to   { opacity: 0; transform: translateX(-12px); }6017}60186019/* ─── New vault screen — matched to onboarding card language ─────────── */60206021.peach-newvault {6022  position: relative;6023  display: flex;6024  flex-direction: column;6025  gap: 12px;6026  padding: 16px 16px 18px;6027  overflow: hidden;6028}60296030/* Suppress the warm-blob ambient art inherited from .lock-screen — the6031   new vault card now carries the visual weight. */6032.peach-newvault::before {6033  content: none;6034}60356036.peach-newvault-header {6037  position: relative;6038  z-index: 2;6039  display: flex;6040  align-items: center;6041  margin-bottom: 2px;6042}60436044.peach-newvault-mark {6045  position: absolute;6046  right: -12px;6047  top: 6px;6048  width: 110px;6049  height: 110px;6050  pointer-events: none;6051  opacity: 0.10;6052  filter: saturate(0.9);6053  z-index: 0;6054}6055.peach-newvault-mark-art {6056  width: 100%;6057  height: 100%;6058}6059.peach-newvault-mark-art path:nth-child(2),6060.peach-newvault-mark-art path:nth-child(3) {6061  stroke: rgba(123, 144, 96, 0.88);6062  fill: rgba(123, 144, 96, 0.88);6063}60646065.peach-newvault-card {6066  position: relative;6067  z-index: 1;6068  display: flex;6069  flex-direction: column;6070  gap: 12px;6071  padding: 22px 20px 18px;6072  border-radius: 16px;6073  border: 1px solid var(--peach-t3);6074  background:6075    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6076  backdrop-filter: blur(3px);6077  -webkit-backdrop-filter: blur(3px);6078  box-shadow:6079    inset 0 1px 0 rgba(240, 232, 216, 0.04),6080    0 12px 28px rgba(0, 0, 0, 0.12);6081  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;6082}60836084.peach-newvault-headline {6085  margin: 0;6086  font-family: var(--font-display);6087  font-style: italic;6088  font-weight: 400;6089  font-size: 24px;6090  line-height: 1.05;6091  color: var(--peach-t0);6092  white-space: pre-line;6093}60946095.peach-newvault-divider {6096  margin: 2px 0 4px;6097  border: 0;6098  border-top: 1px solid var(--peach-t3);6099  width: 100%;6100}61016102.peach-newvault-field {6103  display: flex;6104  flex-direction: column;6105  gap: 4px;6106}61076108.peach-newvault-label-row {6109  display: flex;6110  align-items: center;6111  justify-content: space-between;6112}61136114/* Monospace input scaled to the card. Replaces the 22px unlock-input6115   so the placeholder no longer overflows and the field reads as part6116   of the same surface as the body copy. */6117.peach-newvault-input {6118  font-size: 14px;6119  letter-spacing: 0.18em;6120  padding: 8px 0;6121}6122.peach-newvault-input::placeholder {6123  letter-spacing: 0.18em;6124  color: var(--peach-t2);6125}61266127.peach-newvault-hint {6128  margin: 2px 0 0;6129  font-family: "IBM Plex Mono", monospace;6130  font-size: 10px;6131  color: var(--peach-t2);6132  letter-spacing: 0.04em;6133}61346135.peach-newvault-submit {6136  margin-top: 4px;6137}61386139.peach-newvault-warning {6140  display: flex;6141  align-items: flex-start;6142  gap: 8px;6143  margin: 4px 0 0;6144  padding-top: 10px;6145  border-top: 1px dashed var(--peach-t3);6146  font-size: 12px;6147  line-height: 1.5;6148  color: var(--peach-t1);6149}61506151.peach-newvault-warning-icon {6152  color: var(--peach-accent);6153  font-size: 13px;6154  line-height: 1.4;6155  flex: 0 0 auto;6156}61576158.peach-newvault-footer {6159  position: relative;6160  z-index: 1;6161  display: flex;6162  flex-direction: column;6163  gap: 4px;6164  padding: 4px 4px 0;6165}61666167/* Settings body — warm accent gradient gives the glass something to blur against */6168.peach-settings-body {6169  background:6170    radial-gradient(6171      ellipse at 30% 20%,6172      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,6173      transparent 60%6174    );6175}61766177/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */6178/* ── Danger cards (Replace + Destroy) ────────────────────────────────────6179 * Two severity levels: "warn" for actions that are dangerous-but-recoverable6180 * (replacing the vault from a backup file) and "hazard" for actions that6181 * are absolutely irreversible (Panic). Both use the same card scaffold so6182 * they read as a pair, but the colour family signals the severity at a6183 * glance — yellow for caution, red for don't.6184 */6185.peach-danger-card {6186  --danger-tint: 235, 158, 52; /* amber */6187  display: flex;6188  flex-direction: column;6189  gap: 8px;6190  padding: 14px;6191  margin-top: 10px;6192  border-radius: 12px;6193  border: 1px solid rgba(var(--danger-tint), 0.32);6194  background:6195    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),6196    rgba(var(--danger-tint), 0.04);6197  box-shadow:6198    inset 0 1px 0 rgba(var(--danger-tint), 0.08),6199    0 0 24px rgba(var(--danger-tint), 0.04);6200  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;6201}62026203.peach-danger-card:hover {6204  border-color: rgba(var(--danger-tint), 0.55);6205  box-shadow:6206    inset 0 1px 0 rgba(var(--danger-tint), 0.12),6207    0 0 36px rgba(var(--danger-tint), 0.10);6208}62096210.peach-danger-card--hazard {6211  --danger-tint: 220, 38, 38; /* red */6212}62136214.peach-danger-card-head {6215  display: flex;6216  align-items: center;6217  gap: 10px;6218}62196220.peach-danger-card-glyph {6221  width: 28px;6222  height: 28px;6223  flex-shrink: 0;6224  display: flex;6225  align-items: center;6226  justify-content: center;6227  border-radius: 8px;6228  background: rgba(var(--danger-tint), 0.12);6229  color: rgba(var(--danger-tint), 0.95);6230  font-size: 16px;6231  line-height: 1;6232}62336234.peach-danger-card-title {6235  margin: 0;6236  font-size: 13px;6237  font-weight: 600;6238  color: rgba(var(--danger-tint), 0.92);6239  letter-spacing: 0.01em;6240}62416242.peach-danger-card-copy {6243  margin: 0;6244  font-size: 11px;6245  line-height: 1.5;6246  color: var(--peach-t2);6247}62486249.peach-danger-card-button {6250  width: 100%;6251  padding: 9px;6252  margin-top: 4px;6253  background: transparent;6254  border: 1px solid rgba(var(--danger-tint), 0.45);6255  border-radius: 8px;6256  color: rgba(var(--danger-tint), 0.9);6257  font-size: 12px;6258  font-weight: 500;6259  letter-spacing: 0.02em;6260  cursor: pointer;6261  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6262}62636264.peach-danger-card-button:hover {6265  background: rgba(var(--danger-tint), 0.10);6266  border-color: rgba(var(--danger-tint), 0.75);6267  color: rgb(var(--danger-tint));6268}62696270/* ── Panic flow (three-step destruction) ───────────────────────────────── */6271.peach-panic {6272  display: flex;6273  flex-direction: column;6274  height: 100%;6275  padding: 28px 20px 20px;6276  gap: 18px;6277  overflow-y: auto;6278}62796280.peach-panic-step2 {6281  background: rgba(220, 38, 38, 0.04);6282}62836284.peach-panic-step3 {6285  background: #0f0505;6286  color: #ffffff;6287}62886289.peach-panic-icon {6290  font-size: 32px;6291  color: rgb(220, 38, 38);6292  line-height: 1;6293}62946295.peach-panic-title {6296  margin: 0;6297  font-size: 18px;6298  font-weight: 500;6299  color: var(--peach-t1);6300}63016302.peach-panic-title--severe {6303  font-size: 20px;6304  font-weight: 700;6305  color: rgb(220, 38, 38);6306}63076308.peach-panic-body {6309  margin: 0;6310  font-size: 13px;6311  line-height: 1.55;6312  color: var(--peach-t2);6313}63146315.peach-panic-body--severe {6316  color: rgba(220, 38, 38, 0.85);6317}63186319.peach-panic-body--final {6320  font-size: 16px;6321  font-weight: 700;6322  color: rgb(255, 80, 80);6323  line-height: 1.4;6324}63256326.peach-panic-body--final-intro {6327  font-size: 16px;6328  color: #ffffff;6329  font-weight: 400;6330}63316332.peach-panic-divider {6333  height: 1px;6334  background: rgba(255, 255, 255, 0.08);6335  margin: 4px 0;6336}63376338.peach-panic-confirm-input {6339  width: 100%;6340  padding: 10px 12px;6341  background: rgba(255, 255, 255, 0.02);6342  border: 1px solid rgba(220, 38, 38, 0.4);6343  border-radius: 8px;6344  color: var(--peach-t1);6345  font-family: "IBM Plex Mono", monospace;6346  font-size: 14px;6347  letter-spacing: 0.12em;6348  text-transform: uppercase;6349}63506351.peach-panic-confirm-input:focus {6352  outline: none;6353  border-color: rgb(220, 38, 38);6354}63556356.peach-panic-confirm-input--match {6357  border-color: rgb(220, 38, 38);6358  color: rgb(220, 38, 38);6359}63606361.peach-panic-confirm-label {6362  font-size: 11px;6363  color: var(--peach-t2);6364  margin: 0 0 -8px;6365  letter-spacing: 0.06em;6366}63676368.peach-panic-actions {6369  display: flex;6370  flex-direction: column;6371  gap: 10px;6372  margin-top: auto;6373}63746375.peach-panic-button {6376  width: 100%;6377  padding: 12px;6378  border-radius: 8px;6379  font-size: 13px;6380  cursor: pointer;6381  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6382}63836384.peach-panic-button--primary {6385  background: var(--peach-accent);6386  border: 1px solid var(--peach-accent);6387  color: #ffffff;6388  font-weight: 600;6389}63906391.peach-panic-button--primary:hover {6392  background: color-mix(in srgb, var(--peach-accent) 88%, white);6393}63946395.peach-panic-button--danger {6396  background: rgb(220, 38, 38);6397  border: 1px solid rgb(220, 38, 38);6398  color: #ffffff;6399  font-weight: 600;6400}64016402.peach-panic-button--danger:disabled {6403  opacity: 0.35;6404  cursor: not-allowed;6405}64066407.peach-panic-button--ghost {6408  background: transparent;6409  border: 1px solid rgba(255, 255, 255, 0.18);6410  color: var(--peach-t2);6411}64126413.peach-panic-button--ghost:hover {6414  border-color: rgba(255, 255, 255, 0.32);6415  color: var(--peach-t1);6416}64176418.peach-panic-link {6419  background: transparent;6420  border: none;6421  padding: 4px 0;6422  color: rgba(220, 38, 38, 0.65);6423  font-size: 12px;6424  cursor: pointer;6425  text-align: left;6426  text-decoration: underline;6427  text-underline-offset: 3px;6428}64296430.peach-panic-link:hover {6431  color: rgb(220, 38, 38);6432}64336434.peach-panic-bar {6435  background: rgb(220, 38, 38);6436  padding: 16px 20px;6437  margin: -28px -20px 0;6438  text-align: center;6439  font-size: 13px;6440  font-weight: 700;6441  letter-spacing: 0.12em;6442  color: #ffffff;6443}64446445.peach-panic-final-button {6446  width: 100%;6447  padding: 14px;6448  background: rgb(220, 38, 38);6449  border: none;6450  border-radius: 8px;6451  color: #ffffff;6452  font-size: 14px;6453  font-weight: 700;6454  letter-spacing: 0.08em;6455  text-transform: uppercase;6456  cursor: pointer;6457  animation: peach-panic-pulse 2s ease-in-out infinite;6458}64596460@keyframes peach-panic-pulse {6461  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }6462  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }6463}64646465[data-motion="reduce"] .peach-panic-final-button {6466  animation: none;6467}