popup.css

132.5 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: var(--peach-s2);1147  border: 1px solid var(--peach-t3);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;1154}11551156.peach-settings-input:focus {1157  border-color: var(--peach-accent);1158}11591160.peach-settings-input[type="password"] {1161  font-family: var(--font-mono);1162  letter-spacing: 0.04em;1163}11641165.peach-hidden-file-input {1166  display: none;1167}11681169.peach-checkbox-note {1170  display: flex;1171  align-items: flex-start;1172  gap: 8px;1173  font-size: 11px;1174  color: var(--peach-t1);1175  cursor: pointer;1176  margin: 12px 0;1177}11781179.peach-checkbox-note input {1180  margin-top: 1px;1181}11821183.peach-danger-notice {1184  background: rgba(220, 80, 60, 0.08);1185  border: 1px solid rgba(220, 80, 60, 0.2);1186  border-radius: 6px;1187  padding: 9px 11px;1188  font-size: 11px;1189  color: var(--peach-t1);1190  line-height: 1.5;1191}11921193.peach-info-notice {1194  font-size: 11px;1195  color: var(--peach-t1);1196  line-height: 1.5;1197  background: var(--surface-card);1198  border: 1px solid var(--peach-t3);1199  border-radius: 6px;1200  padding: 8px 10px;1201}12021203.peach-strength-row {1204  display: flex;1205  align-items: center;1206  gap: 8px;1207  margin-bottom: 10px;1208}12091210.peach-strength-track {1211  flex: 1;1212  height: 4px;1213  background: var(--peach-s2);1214  border-radius: 2px;1215  overflow: hidden;1216}12171218.peach-strength-fill {1219  height: 100%;1220  border-radius: 2px;1221  transition: width 120ms ease, background 120ms ease;1222}12231224/* ── Type selector tabs ── */1225.peach-type-tabs {1226  display: flex;1227  gap: 0;1228  background: var(--peach-t4);1229  border-radius: 8px;1230  padding: 3px;1231}12321233.peach-type-tab {1234  flex: 1;1235  display: flex;1236  align-items: center;1237  justify-content: center;1238  gap: 6px;1239  padding: 6px 10px;1240  border-radius: 6px;1241  border: none;1242  background: transparent;1243  cursor: pointer;1244  font-family: Inter, system-ui, sans-serif;1245  font-size: 11px;1246  font-weight: 400;1247  letter-spacing: 0.04em;1248  color: var(--peach-t1);1249  transition: background 150ms ease, color 150ms ease;1250}12511252.peach-type-tab.is-active {1253  background: var(--peach-s2);1254  color: var(--peach-t0);1255  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1256}12571258.peach-type-tab:not(.is-active):hover {1259  color: var(--peach-t0);1260}12611262.peach-type-tab svg {1263  opacity: 0.7;1264  flex-shrink: 0;1265}12661267.peach-type-tab.is-active svg {1268  opacity: 1;1269}12701271/* ── List view ───────────────────────────────────────────────────────── */1272.peach-list-top {1273  padding: 0 10px;1274  min-height: 46px;1275  display: flex;1276  align-items: center;1277  gap: 6px;1278  border-bottom: 1px solid var(--peach-t3);1279  flex-shrink: 0;1280  background: var(--peach-s1);1281}1282.peach-vault-list {1283  flex: 1;1284  overflow-y: auto;1285  scrollbar-width: none;1286}1287.peach-vault-list::-webkit-scrollbar { display: none; }12881289/* Scrollbar — vault list */1290.peach-vault-list {1291  scrollbar-width: thin;1292  scrollbar-color: var(--peach-t3) transparent;1293}12941295.peach-vault-list::-webkit-scrollbar {1296  width: 3px;1297}12981299.peach-vault-list::-webkit-scrollbar-thumb {1300  background: var(--peach-t3);1301  border-radius: 2px;1302}13031304.peach-entry-row {1305  width: 100%;1306  display: flex;1307  align-items: center;1308  gap: 10px;1309  padding: 9px 16px;1310  background: transparent;1311  border: none;1312  border-bottom: 1px solid var(--peach-t3);1313  cursor: pointer;1314  color: inherit;1315  text-align: left;1316  transition: background 80ms ease;1317}1318.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1319.peach-entry-row:last-child { border-bottom: none; }1320.peach-entry-row.is-active {1321  box-shadow: inset 2px 0 0 var(--peach-accent);1322  background: rgba(240,232,216,0.03);1323}1324.peach-entry-row:focus-visible {1325  outline: none;1326  box-shadow: 0 0 0 1px var(--peach-border-accent);1327  background: rgba(240,232,216,0.03);1328}1329.peach-entry-row-icon {1330  width: 26px; height: 26px;1331  border-radius: 7px;1332  border: 1px solid var(--peach-t3);1333  display: flex; align-items: center; justify-content: center;1334  color: var(--peach-t2);1335  flex-shrink: 0;1336}1337.peach-entry-row-icon.is-breach {1338  border-color: rgba(220,80,60,0.3);1339  color: rgba(220,80,60,0.7);1340}1341.peach-entry-row-info { flex: 1; min-width: 0; }1342.peach-entry-row-name {1343  display: block;1344  font-family: var(--font-display);1345  font-size: 17px;1346  font-style: italic;1347  font-weight: 400;1348  color: var(--peach-t0);1349  line-height: 1.2;1350  white-space: nowrap;1351  overflow: hidden;1352  text-overflow: ellipsis;1353}1354.peach-entry-row-meta {1355  display: block;1356  font-family: "IBM Plex Mono", monospace;1357  font-size: 9px;1358  color: var(--peach-t2);1359  margin-top: 1px;1360  letter-spacing: 0.05em;1361}1362.peach-entry-row-dot {1363  width: 5px; height: 5px;1364  border-radius: 50%;1365  background: rgba(220,80,60,0.7);1366  flex-shrink: 0;1367}1368.peach-new-entry-row {1369  display: flex;1370  align-items: center;1371  justify-content: center;1372  gap: 6px;1373  width: 100%;1374  padding: 11px;1375  background: transparent;1376  border: none;1377  border-top: 1px solid var(--peach-t3);1378  color: var(--peach-t2);1379  font-family: "IBM Plex Mono", monospace;1380  font-size: 9px;1381  text-transform: uppercase;1382  letter-spacing: 0.14em;1383  cursor: pointer;1384  flex-shrink: 0;1385  transition: color 120ms ease, background 120ms ease;1386}1387.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }13881389/* ── Multi-select mode ─────────────────────────────────────────────── */13901391/* Select-mode trigger button in sort bar — same shape as trash btn */1392.peach-sort-select-btn {1393  display: flex;1394  align-items: center;1395  justify-content: center;1396  padding: 3px 5px;1397  background: transparent;1398  border: none;1399  cursor: pointer;1400  color: var(--peach-t2);1401  border-radius: 4px;1402  transition: color 140ms ease, background 140ms ease;1403}1404.peach-sort-select-btn:hover {1405  color: var(--peach-t1);1406  background: var(--peach-t3);1407}14081409/* Sort bar in select mode */1410.peach-select-cancel-btn {1411  background: transparent;1412  border: none;1413  padding: 0 4px;1414  cursor: pointer;1415  font-family: "IBM Plex Mono", monospace;1416  font-size: 9px;1417  letter-spacing: 0.12em;1418  text-transform: uppercase;1419  color: var(--peach-t2);1420  transition: color 140ms ease;1421  flex-shrink: 0;1422}1423.peach-select-cancel-btn:hover { color: var(--peach-t0); }14241425.peach-select-count-label {1426  flex: 1;1427  text-align: center;1428  font-family: "IBM Plex Mono", monospace;1429  font-size: 9px;1430  letter-spacing: 0.14em;1431  text-transform: uppercase;1432  color: var(--peach-t1);1433}14341435.peach-select-all-btn {1436  background: transparent;1437  border: none;1438  padding: 0 4px;1439  cursor: pointer;1440  font-family: "IBM Plex Mono", monospace;1441  font-size: 9px;1442  letter-spacing: 0.12em;1443  text-transform: uppercase;1444  color: var(--peach-t2);1445  transition: color 140ms ease;1446  flex-shrink: 0;1447}1448.peach-select-all-btn:hover { color: var(--peach-accent); }14491450/* List in select mode */1451.peach-vault-list.is-selecting .peach-entry-row {1452  cursor: default;1453}1454.peach-vault-list.is-selecting .peach-entry-row:hover {1455  background: rgba(240,232,216,0.02);1456}1457.peach-vault-list.is-selecting .peach-entry-row.is-selected {1458  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1459}1460.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1461  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1462}14631464/* Select indicator circles in icon slot */1465.peach-entry-row-icon.is-select-icon {1466  color: var(--peach-t2);1467}1468.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1469  color: var(--peach-accent);1470}14711472/* Delete action bar at bottom (replaces new-entry row) */1473.peach-select-action-bar {1474  display: flex;1475  align-items: center;1476  justify-content: center;1477  gap: 7px;1478  width: 100%;1479  padding: 11px;1480  background: transparent;1481  border: none;1482  border-top: 1px solid var(--peach-t3);1483  color: var(--peach-t1);1484  font-family: "IBM Plex Mono", monospace;1485  font-size: 9px;1486  text-transform: uppercase;1487  letter-spacing: 0.14em;1488  cursor: pointer;1489  flex-shrink: 0;1490  transition: color 120ms ease, background 120ms ease;1491}1492.peach-select-action-bar:not(:disabled):hover {1493  color: var(--peach-t0);1494  background: rgba(220,80,60,0.06);1495}1496.peach-select-action-bar:not(:disabled):hover svg {1497  stroke: rgba(220,80,60,0.8);1498}1499.peach-select-action-bar:disabled,1500.peach-select-action-bar.is-empty {1501  color: var(--peach-t2);1502  cursor: default;1503  opacity: 0.5;1504}1505.peach-search-counter-list {1506  white-space: nowrap;1507  flex-shrink: 0;1508}1509.peach-list-empty {1510  min-height: 180px;1511  display: grid;1512  place-items: center;1513  color: var(--peach-t2);1514  font-family: "IBM Plex Mono", monospace;1515  font-size: 11px;1516}15171518/* ── Settings view ───────────────────────────────────────────────────── */1519.peach-settings-body {1520  flex: 1;1521  overflow-y: auto;1522  min-height: 0;1523  display: flex;1524  flex-direction: column;1525  padding: 2px 0 10px;1526}1527.peach-settings-group {1528  padding: 9px 16px 11px;1529  border-bottom: 1px solid var(--peach-t3);1530}1531.peach-export-intro {1532  padding-bottom: 8px;1533}1534.peach-export-card {1535  display: grid;1536  gap: 10px;1537}1538.peach-rune-canvas {1539  border-radius: 8px;1540  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, var(--peach-t3));1541  background: #1a1410;1542  flex: 1;1543  align-self: center;1544}1545.peach-script-input {1546  font-family: "PeachScript", monospace;1547  font-size: 11px;1548  line-height: 1.9;1549  letter-spacing: 0.06em;1550  color: var(--peach-t0);1551  background: var(--peach-input-bg, var(--surface-card));1552  border: 1px solid var(--peach-t3);1553  border-radius: 6px;1554  padding: 12px;1555  width: 100%;1556  min-height: 96px;1557  resize: vertical;1558  word-break: break-all;1559}1560.peach-qr-canvas-wrap {1561  display: flex;1562  justify-content: center;1563  padding: 12px 0 6px;1564}1565.peach-qr-canvas-wrap canvas {1566  display: block;1567  background: #ffffff;1568  border-radius: 6px;1569  max-width: 100%;1570  height: auto;1571}1572.peach-csv-warning {1573  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1574  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1575  color: var(--peach-t0);1576  border-radius: 6px;1577  padding: 10px 12px;1578  margin-bottom: 8px;1579  font-size: 12px;1580  line-height: 1.45;1581}1582.peach-export-card--primary {1583  background:1584    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1585}15861587/* Export menu — distribute the three format cards across the popup. */1588.peach-export-menu {1589  display: flex;1590  flex-direction: column;1591  flex: 1;1592  min-height: 0;1593}1594.peach-export-menu .peach-settings-group {1595  flex: 1;1596  display: flex;1597  flex-direction: column;1598  justify-content: center;1599  gap: 10px;1600}16011602/* Result view — the script-string fills the remaining vertical surface. */1603.peach-export-result-group {1604  flex: 1;1605  display: flex;1606  flex-direction: column;1607  min-height: 0;1608  border-bottom: none;1609}1610.peach-export-result-group .peach-export-card {1611  flex: 1;1612  min-height: 0;1613  display: flex;1614  flex-direction: column;1615  gap: 10px;1616}1617.peach-export-result-group .peach-export-card-copy {1618  flex-shrink: 0;1619}1620.peach-export-result-group .peach-settings-label {1621  flex-shrink: 0;1622}1623.peach-export-result-group button {1624  flex-shrink: 0;1625}1626.peach-export-card-head {1627  display: flex;1628  align-items: center;1629  justify-content: space-between;1630  gap: 10px;1631}1632.peach-export-card-copy {1633  margin: 0;1634  font-size: 12px;1635  line-height: 1.55;1636  color: var(--peach-t1);1637}1638.peach-export-note {1639  margin: 0;1640  font-size: 10px;1641  line-height: 1.5;1642  color: var(--peach-t2);1643}1644.peach-export-pill {1645  display: inline-flex;1646  align-items: center;1647  padding: 4px 8px;1648  border-radius: 999px;1649  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1650  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1651  color: var(--peach-accent);1652  font-family: "IBM Plex Mono", monospace;1653  font-size: 8px;1654  letter-spacing: 0.12em;1655  text-transform: uppercase;1656  white-space: nowrap;1657}1658.peach-export-pill--danger {1659  border-color: rgba(220,80,60,0.22);1660  background: rgba(220,80,60,0.08);1661  color: var(--peach-breach);1662}1663.peach-export-password-stack {1664  gap: 8px;1665}1666.peach-settings-label {1667  margin: 0 0 6px;1668  font-family: "IBM Plex Mono", monospace;1669  font-size: 8px;1670  text-transform: uppercase;1671  letter-spacing: 0.18em;1672  color: var(--peach-t2);1673}1674.peach-settings-row {1675  display: flex;1676  align-items: center;1677  justify-content: space-between;1678  gap: 12px;1679  min-height: 34px;1680  padding: 6px 0;1681  font-size: 13px;1682  color: var(--peach-t1);1683}1684.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1685.peach-settings-value {1686  font-family: "IBM Plex Mono", monospace;1687  font-size: 10px;1688  color: var(--peach-t2);1689}16901691.peach-settings-value--status {1692  display: flex;1693  align-items: center;1694  gap: 6px;1695}16961697.peach-settings-link {1698  font-family: "IBM Plex Mono", monospace;1699  font-size: 10px;1700  color: var(--peach-accent);1701  text-decoration: none;1702  cursor: pointer;1703}1704.peach-settings-link:hover {1705  text-decoration: underline;1706}17071708.peach-settings-row--stack {1709  flex-direction: column;1710  align-items: stretch;1711  gap: 6px;1712}17131714.peach-settings-row--top {1715  align-items: flex-start;1716}17171718.peach-settings-row-main {1719  display: flex;1720  flex-direction: column;1721  gap: 4px;1722  flex: 1;1723}1724.peach-toggle {1725  width: 28px; height: 16px;1726  border-radius: 999px;1727  background: var(--peach-t3);1728  border: 1px solid var(--peach-t3);1729  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1730  flex-shrink: 0;1731  transition: background 200ms ease, border-color 200ms ease;1732  cursor: pointer;1733}1734.peach-toggle.is-on {1735  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1736  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1737}1738.peach-toggle-knob {1739  width: 10px; height: 10px;1740  border-radius: 50%;1741  background: var(--peach-t2);1742  flex-shrink: 0;1743  transform: translateX(0px);1744  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1745}1746.peach-toggle.is-on .peach-toggle-knob {1747  background: var(--peach-accent);1748  transform: translateX(12px);1749}1750.peach-settings-footer {1751  display: flex;1752  align-items: center;1753  gap: 8px;1754  margin-top: auto;1755  padding: 14px 16px 8px;1756  font-family: "IBM Plex Mono", monospace;1757  font-size: 9px;1758  color: var(--peach-t2);1759}17601761/* ── Settings home navigation ──────────────────────────────────────────── */1762.peach-settings-nav-label {1763  margin: 0 0 2px;1764  padding: 12px 16px 4px;1765  font-family: "IBM Plex Mono", monospace;1766  font-size: 8px;1767  text-transform: uppercase;1768  letter-spacing: 0.18em;1769  color: var(--peach-t2);1770}17711772.peach-settings-cat-row {1773  display: flex;1774  align-items: center;1775  gap: 10px;1776  width: 100%;1777  padding: 9px 16px;1778  background: none;1779  border: none;1780  border-bottom: 1px solid var(--peach-t3);1781  cursor: pointer;1782  text-align: left;1783  color: inherit;1784  transition: background var(--peach-dur-80) ease;1785}1786.peach-settings-cat-row:hover {1787  background: var(--peach-t3);1788}1789.peach-settings-cat-row:last-child {1790  border-bottom: none;1791}17921793.peach-settings-cat-icon {1794  width: 28px;1795  height: 28px;1796  border-radius: 7px;1797  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1798  color: var(--peach-accent);1799  display: flex;1800  align-items: center;1801  justify-content: center;1802  flex-shrink: 0;1803}1804/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1805   Darken the icon stroke to ink and bump the bg tint so the icon reads1806   sharply while the cell still feels accent-tinted. */1807.light .peach-settings-cat-icon {1808  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1809  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1810}18111812.peach-settings-cat-content {1813  flex: 1;1814  display: flex;1815  flex-direction: column;1816  gap: 2px;1817  min-width: 0;1818}18191820.peach-settings-cat-name {1821  font-size: 13px;1822  font-weight: 450;1823  color: var(--peach-t0);1824  line-height: 1.2;1825}18261827.peach-settings-cat-desc {1828  font-size: 10px;1829  color: var(--peach-t2);1830  line-height: 1.3;1831  white-space: nowrap;1832  overflow: hidden;1833  text-overflow: ellipsis;1834}18351836.peach-settings-cat-chevron {1837  color: var(--peach-t2);1838  flex-shrink: 0;1839  opacity: 0.5;1840}18411842/* ── Settings sub-view section labels ──────────────────────────────────── */1843.peach-settings-sub-label {1844  margin: 12px 0 4px;1845  font-family: "IBM Plex Mono", monospace;1846  font-size: 8px;1847  text-transform: uppercase;1848  letter-spacing: 0.18em;1849  color: var(--peach-t2);1850}1851.peach-settings-sub-label:first-child {1852  margin-top: 4px;1853}18541855/* ── Feedback form ──────────────────────────────────────────────────────── */1856.peach-feedback-group {1857  flex: 1;1858  display: flex;1859  flex-direction: column;1860  border-bottom: none;1861}18621863.peach-feedback-intro {1864  margin: 4px 0 14px;1865  font-size: 12px;1866  line-height: 1.55;1867  color: var(--peach-t1);1868}18691870.peach-feedback-chips {1871  display: flex;1872  flex-wrap: wrap;1873  gap: 6px;1874  margin-bottom: 14px;1875}18761877.peach-feedback-chip {1878  padding: 4px 10px;1879  border-radius: 999px;1880  border: 1px solid var(--peach-t3);1881  background: none;1882  color: var(--peach-t2);1883  font-size: 11px;1884  font-family: var(--font-ui);1885  cursor: pointer;1886  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1887    background var(--peach-dur-80) ease;1888}1889.peach-feedback-chip:hover {1890  border-color: var(--peach-t2);1891  color: var(--peach-t1);1892}1893.peach-feedback-chip.is-active {1894  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1895  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1896  color: var(--peach-accent);1897}18981899.peach-feedback-textarea {1900  flex: 1;1901  width: 100%;1902  min-height: 120px;1903  box-sizing: border-box;1904  background: var(--peach-t3);1905  border: 1px solid var(--peach-t3);1906  border-radius: 6px;1907  color: var(--peach-t0);1908  font-size: 12px;1909  font-family: var(--font-ui);1910  line-height: 1.5;1911  padding: 8px 10px;1912  resize: none;1913  outline: none;1914  transition: border-color var(--peach-dur-150) ease;1915}1916.peach-feedback-textarea:focus {1917  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1918}1919.peach-feedback-textarea::placeholder {1920  color: var(--peach-t2);1921}19221923.peach-feedback-meta {1924  margin: 6px 0 0;1925  font-size: 10px;1926  color: var(--peach-t2);1927  font-family: "IBM Plex Mono", monospace;1928}19291930.peach-feedback-result {1931  margin: 8px 0 0;1932  font-size: 11px;1933  font-family: "IBM Plex Mono", monospace;1934}1935.peach-feedback-result--ok { color: var(--peach-sync-ok); }1936.peach-feedback-result--err { color: var(--peach-breach); }19371938.peach-feedback-submit {1939  width: 100%;1940  margin-top: 12px;1941  justify-content: center;1942}19431944.peach-feedback-anon {1945  margin: 8px 0 0;1946  font-size: 10px;1947  color: var(--peach-t2);1948  text-align: center;1949}19501951.peach-passkey-badge {1952  margin-left: 8px;1953  font-size: 10px;1954  letter-spacing: 0.06em;1955  text-transform: uppercase;1956  color: var(--peach-t2);1957  font-family: var(--font-ui);1958  vertical-align: middle;1959}19601961.peach-passkey-delete-btn {1962  color: var(--peach-breach);1963  border-color: rgba(229, 85, 85, 0.25);1964}19651966.peach-passkey-delete-confirm {1967  display: flex;1968  align-items: center;1969  gap: 8px;1970  padding: 8px 10px;1971  background: rgba(229, 85, 85, 0.06);1972  border: 1px solid rgba(229, 85, 85, 0.2);1973  border-radius: 6px;1974}19751976.peach-passkey-delete-confirm-copy {1977  flex: 1;1978  font-size: 11px;1979  color: var(--peach-t1);1980}19811982.peach-passkey-delete-btn--confirm {1983  color: var(--peach-breach);1984  border-color: rgba(229, 85, 85, 0.4);1985}19861987.peach-passkey-activity {1988  flex-direction: column;1989  align-items: flex-start;1990  gap: 4px;1991}19921993.peach-passkey-meta {1994  font-size: 11px;1995  color: var(--peach-t2);1996}19971998.peach-passkey-actions {1999  position: relative;2000  z-index: 1;2001  margin-top: 14px;2002  display: flex;2003  flex-direction: column;2004  gap: 8px;2005}20062007.peach-passkey-approval {2008  display: flex;2009  flex-direction: column;2010  align-items: center;2011  padding: 28px 22px 22px;2012  gap: 14px;2013  text-align: center;2014}20152016.peach-passkey-approval-icon {2017  width: 46px;2018  height: 46px;2019  border-radius: 12px;2020  background: var(--peach-s2);2021  border: 1px solid var(--peach-t3);2022  display: flex;2023  align-items: center;2024  justify-content: center;2025  flex-shrink: 0;2026  color: var(--peach-accent);2027}20282029.peach-passkey-approval-icon img,2030.peach-passkey-approval-icon svg {2031  width: 28px;2032  height: 28px;2033  border-radius: 6px;2034}20352036.peach-passkey-approval-rp {2037  font-family: var(--font-ui);2038  font-size: 12px;2039  color: var(--peach-t2);2040  letter-spacing: 0.03em;2041}20422043.peach-passkey-approval-action {2044  font-family: var(--font-display);2045  font-style: italic;2046  font-weight: 300;2047  font-size: 26px;2048  color: var(--peach-t0);2049  line-height: 1;2050}20512052.peach-passkey-approval-user {2053  font-family: var(--font-mono);2054  font-size: 11px;2055  color: var(--peach-t1);2056  background: var(--peach-s2);2057  border: 1px solid var(--peach-t3);2058  border-radius: 4px;2059  padding: 3px 8px;2060}20612062.peach-passkey-approval-notice {2063  font-size: 10px;2064  color: var(--peach-t2);2065  line-height: 1.5;2066  max-width: 220px;2067}20682069.peach-passkey-approval-actions {2070  display: flex;2071  gap: 8px;2072  width: 100%;2073  margin-top: 6px;2074}20752076.peach-passkey-approval-actions .peach-btn {2077  flex: 1;2078}20792080/* ── Inline generator drawer ── */2081.peach-generator-drawer {2082  display: grid;2083  grid-template-rows: 0fr;2084  transition: grid-template-rows 320ms var(--peach-curve-arrival);2085  overflow: hidden;2086}2087.peach-generator-drawer.is-open {2088  grid-template-rows: 1fr;2089}2090.peach-generator-drawer-inner {2091  min-height: 0;2092  overflow: hidden;2093}2094.peach-generator-drawer-content {2095  border-top: 1px solid var(--peach-t3);2096  padding: 8px 0 4px;2097  display: flex;2098  flex-direction: column;2099  gap: 8px;2100}21012102/* ── Compact generator (inside entry edit) ── */2103.peach-generator-drawer-content--compact {2104  border-top: 1px solid var(--peach-t3);2105  padding: 8px 0 2px;2106  gap: 7px;2107}2108.peach-pwgen-compact-display-row {2109  display: flex;2110  align-items: center;2111  gap: 6px;2112}2113.peach-pwgen-compact-output {2114  flex: 1;2115  min-width: 0;2116  font-family: "IBM Plex Mono", monospace;2117  font-size: 11px;2118  font-weight: 400;2119  letter-spacing: 0.04em;2120  color: var(--peach-t0);2121  background: rgba(240, 232, 216, 0.04);2122  border: 1px solid var(--peach-t3);2123  border-radius: 5px;2124  padding: 5px 8px;2125  word-break: break-all;2126  line-height: 1.5;2127}2128.peach-pwgen-compact-controls {2129  display: flex;2130  align-items: center;2131  gap: 6px;2132}2133.peach-pwgen-compact-slider {2134  flex: 1;2135  min-width: 0;2136  height: 2px !important;2137}2138.peach-pwgen-compact-controls .peach-pwgen-len-num {2139  flex-shrink: 0;2140  min-width: 18px;2141  text-align: right;2142}2143.peach-pwgen-compact-pills {2144  display: flex;2145  gap: 3px;2146  flex-shrink: 0;2147}2148.peach-pwgen-compact-pills .peach-pwgen-pill {2149  padding: 2px 7px;2150  font-size: 8px;2151}2152.peach-pwgen-compact-use {2153  flex-shrink: 0;2154  font-size: 10px !important;2155  padding: 3px 9px !important;2156  min-height: 22px !important;2157  border-radius: 5px !important;2158}21592160/* ── Password edit row (input + eye toggle side-by-side) ── */2161.peach-password-edit-row {2162  display: flex;2163  align-items: center;2164  gap: 6px;2165}2166.peach-password-edit-row .peach-inline-input {2167  flex: 1;2168  min-width: 0;2169}21702171/* ── Generate toggle link ── */2172.peach-generate-toggle-link {2173  display: inline-flex;2174  align-items: center;2175  gap: 5px;2176  background: none;2177  border: none;2178  padding: 0;2179  cursor: pointer;2180  font-family: "IBM Plex Mono", monospace;2181  font-size: 10px;2182  color: var(--peach-t2);2183  letter-spacing: 0.04em;2184  transition: color 120ms ease;2185  align-self: flex-start;2186}2187.peach-generate-toggle-link:hover {2188  color: var(--peach-accent);2189}21902191/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2192.peach-entry-body {2193  flex: 1;2194  overflow-y: auto;2195  overflow-x: hidden;2196  scrollbar-width: none;2197  -ms-overflow-style: none;2198  overscroll-behavior: contain;2199  display: grid;2200  gap: 10px;2201  align-content: start;2202  padding: 10px 20px 14px;2203  min-width: 0;2204  min-height: 0;2205}2206.peach-entry-body::-webkit-scrollbar { display: none; }22072208/* Type-toggle pills + inline note toolbar */2209.peach-new-type-row {2210  display: flex;2211  align-items: center;2212  gap: 6px;2213  margin-bottom: 2px;2214}2215.peach-new-type-btn {2216  background: transparent;2217  border: 1px solid var(--peach-t3);2218  border-radius: 12px;2219  padding: 3px 10px;2220  font-family: "IBM Plex Mono", monospace;2221  font-size: 9px;2222  letter-spacing: 0.12em;2223  text-transform: uppercase;2224  color: var(--peach-t2);2225  cursor: pointer;2226  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2227}2228.peach-new-type-btn.is-active {2229  color: var(--peach-t0);2230  border-color: var(--peach-accent);2231  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2232}2233.peach-new-type-btn:not(.is-active):hover {2234  color: var(--peach-t1);2235  border-color: var(--peach-t2);2236}22372238/* Editable title */2239.peach-new-title-wrap { margin: 0 0 2px; }2240.peach-new-title-input {2241  background: transparent;2242  border: none;2243  outline: none;2244  width: 100%;2245  color: var(--peach-t0);2246  font-family: var(--font-display);2247  font-style: italic;2248  font-weight: 400;2249  font-size: 40px;2250  line-height: 0.95;2251  caret-color: var(--peach-accent);2252}2253.peach-new-title-input::placeholder { color: var(--peach-t2); }22542255/* Editable domain field */2256.peach-domain-value--edit {2257  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2258  font-size: 10px;2259  font-style: italic;2260  letter-spacing: 0.12em;2261  color: var(--peach-t1);2262  background: transparent;2263  border: none;2264  border-bottom: 1px solid var(--peach-t3);2265  outline: none;2266  width: 100%;2267  padding: 2px 0;2268  caret-color: var(--peach-accent);2269  transition: border-color 140ms ease, color 140ms ease;2270}2271.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2272.peach-domain-value--edit:focus {2273  border-bottom-color: rgba(240, 232, 216, 0.28);2274  color: var(--peach-t0);2275}22762277/* Editable field values (username, password, totp) */2278.peach-field-value--edit {2279  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2280  font-size: 13px;2281  color: var(--peach-t0);2282  background: transparent;2283  border: none;2284  border-bottom: 1px solid var(--peach-t3);2285  outline: none;2286  flex: 1;2287  min-width: 0;2288  padding: 3px 0;2289  caret-color: var(--peach-accent);2290  transition: border-color 140ms ease, color 140ms ease;2291}2292.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2293.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2294.peach-field-value--edit:focus {2295  border-bottom-color: rgba(240, 232, 216, 0.28);2296  color: var(--peach-t0);2297}22982299/* "+ add optional field" links */2300.peach-entry-add-links {2301  display: flex;2302  gap: 12px;2303  flex-wrap: wrap;2304  margin-top: -2px;2305}2306.peach-add-field-link {2307  background: transparent;2308  border: none;2309  padding: 0;2310  cursor: pointer;2311  font-family: "IBM Plex Mono", monospace;2312  font-size: 9px;2313  letter-spacing: 0.1em;2314  text-transform: uppercase;2315  color: var(--peach-t2);2316  transition: color 140ms ease;2317}2318.peach-add-field-link:hover { color: var(--peach-accent); }23192320/* ── New entry form (legacy classes) ────────────────────────────────── */2321.peach-new-body {2322  flex: 1;2323  overflow-y: auto;2324  padding: 10px 20px 14px;2325}2326.peach-new-name-input {2327  background: transparent;2328  border: none;2329  outline: none;2330  width: 100%;2331  color: var(--peach-t0);2332  font-family: var(--font-display);2333  font-style: italic;2334  font-weight: 400;2335  font-size: 40px;2336  line-height: 0.95;2337  caret-color: var(--peach-accent);2338}2339.peach-new-name-input::placeholder { color: var(--peach-t2); }2340.peach-new-field-input {2341  background: transparent;2342  border: none;2343  outline: none;2344  flex: 1;2345  min-width: 0;2346  caret-color: var(--peach-accent);2347}2348.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }23492350/* ── Canary card ── */2351.peach-canary-card {2352  border: 1px solid rgba(217, 160, 48, 0.2);2353  background: rgba(217, 160, 48, 0.03);2354  border-radius: 8px;2355  padding: 12px;2356}23572358.peach-canary-settings-header {2359  display: flex;2360  align-items: center;2361  justify-content: space-between;2362  cursor: pointer;2363  user-select: none;2364}23652366.peach-canary-card .peach-label {2367  color: rgba(217, 160, 48, 0.85);2368}23692370.peach-canary-card .peach-new-field-input {2371  border-color: rgba(217, 160, 48, 0.25);2372}23732374.peach-canary-card .peach-new-field-input:focus {2375  border-color: rgba(217, 160, 48, 0.5);2376}23772378.peach-canary-body {2379  margin-top: 12px;2380  display: flex;2381  flex-direction: column;2382  gap: 10px;2383}23842385.peach-canary-explainer {2386  display: flex;2387  gap: 10px;2388  padding: 10px 12px;2389  border-radius: 10px;2390  background: rgba(217, 160, 48, 0.06);2391  border: 1px solid rgba(217, 160, 48, 0.22);2392  margin-bottom: 4px;2393}23942395.peach-canary-explainer-icon {2396  font-size: 16px;2397  flex-shrink: 0;2398  line-height: 1.2;2399}24002401.peach-canary-explainer-title {2402  font-family: var(--font-ui);2403  font-size: 11px;2404  font-weight: 500;2405  color: rgba(217, 160, 48, 0.9);2406  margin: 0 0 3px;2407}24082409.peach-canary-explainer-copy {2410  font-family: var(--font-ui);2411  font-size: 10px;2412  color: var(--peach-t2);2413  line-height: 1.55;2414  margin: 0;2415}24162417.peach-canary-hint {2418  font-size: 10px;2419  color: var(--peach-t2);2420  font-family: Inter, system-ui, sans-serif;2421  line-height: 1.5;2422  margin-top: 4px;2423}24242425.peach-canary-actions-row {2426  display: flex;2427  align-items: center;2428  gap: 8px;2429}24302431.peach-canary-test-btn {2432  border-color: rgba(217, 160, 48, 0.3);2433  color: rgba(217, 160, 48, 0.85);2434}24352436.peach-canary-test-result {2437  font-size: 10px;2438  font-family: Inter, system-ui, sans-serif;2439}24402441.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2442.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }24432444.peach-canary-badge {2445  display: flex;2446  position: relative;2447  z-index: 1;2448  align-items: center;2449  gap: 5px;2450  padding: 4px 10px;2451  background: rgba(217, 160, 48, 0.12);2452  border: 1px solid rgba(217, 160, 48, 0.35);2453  border-radius: 6px;2454  margin-bottom: 6px;2455  width: fit-content;2456}24572458.peach-canary-badge-label {2459  font-size: 10px;2460  letter-spacing: 0.06em;2461  color: rgba(217, 160, 48, 0.9);2462  font-family: var(--font-ui);2463  text-transform: uppercase;2464}24652466.peach-canary-badge-icon {2467  font-size: 11px;2468}24692470.peach-canary-suppress-row {2471  display: flex;2472  align-items: center;2473  gap: 8px;2474  padding: 6px 10px;2475  background: rgba(217, 160, 48, 0.08);2476  border-radius: 6px;2477  margin-bottom: 8px;2478}24792480.peach-canary-suppress-label {2481  font-size: 11px;2482  color: rgba(217, 160, 48, 0.85);2483  cursor: pointer;2484  font-family: var(--font-ui);2485  letter-spacing: 0.04em;2486}24872488.peach-regen-panel {2489  position: relative;2490  z-index: 1;2491  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2492  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2493  border-radius: 8px;2494  padding: 12px;2495  margin-bottom: 8px;2496}24972498.peach-regen-panel-header {2499  display: flex;2500  align-items: center;2501  justify-content: space-between;2502  margin-bottom: 10px;2503}25042505.peach-regen-panel-title {2506  font-size: 11px;2507  font-weight: 600;2508  letter-spacing: 0.06em;2509  text-transform: uppercase;2510  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2511}25122513.peach-regen-output {2514  background: rgba(0, 0, 0, 0.2);2515  border-radius: 6px;2516  padding: 10px;2517  margin-bottom: 10px;2518  font-family: var(--font-mono);2519  font-size: 13px;2520  word-break: break-all;2521  color: var(--peach-t1);2522}25232524.peach-regen-actions {2525  display: flex;2526  gap: 6px;2527}25282529.peach-regen-actions--spaced {2530  margin-bottom: 8px;2531}25322533.peach-regen-action-grow {2534  flex: 1;2535}25362537.peach-regen-copy-btn {2538  padding: 0 8px;2539}25402541.peach-regen-success {2542  position: relative;2543  z-index: 1;2544  background: rgba(40, 180, 80, 0.1);2545  border: 1px solid rgba(40, 180, 80, 0.3);2546  border-radius: 8px;2547  padding: 10px 12px;2548  margin-bottom: 8px;2549  display: flex;2550  align-items: center;2551  gap: 8px;2552  font-size: 11px;2553  color: rgba(40, 180, 80, 0.9);2554}25552556/* ── Note editor overlay ── */2557.peach-note-editor {2558  position: absolute;2559  inset: 0;2560  z-index: 200;2561  display: flex;2562  flex-direction: column;2563  background:2564    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2565    var(--peach-bg);2566  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2567}25682569.peach-note-editor-header {2570  display: flex;2571  align-items: center;2572  gap: 10px;2573  padding: 14px 16px 10px;2574  border-bottom: 1px solid var(--peach-t3);2575  flex-shrink: 0;2576}25772578.peach-note-editor-back {2579  background: transparent;2580  border: none;2581  cursor: pointer;2582  color: var(--peach-t2);2583  padding: 4px 6px;2584  border-radius: 6px;2585  display: flex;2586  align-items: center;2587  transition: color 120ms ease, background 120ms ease;2588  flex-shrink: 0;2589}2590.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }25912592.peach-note-editor-label {2593  flex: 1;2594  font-family: var(--font-display);2595  font-style: italic;2596  font-size: 15px;2597  color: var(--peach-t1);2598  letter-spacing: 0.02em;2599}26002601.peach-note-editor-save-btn {2602  background: transparent;2603  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2604  border-radius: 8px;2605  color: var(--peach-accent);2606  font-family: "IBM Plex Mono", monospace;2607  font-size: 10px;2608  letter-spacing: 0.06em;2609  text-transform: uppercase;2610  padding: 3px 10px;2611  cursor: pointer;2612  transition: background 120ms ease, border-color 120ms ease;2613}2614.peach-note-editor-save-btn:hover:not(:disabled) {2615  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2616  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2617}2618.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }26192620.peach-note-toolbar {2621  display: flex;2622  align-items: center;2623  gap: 3px;2624  padding: 6px 14px 5px;2625  border-bottom: 1px solid var(--peach-t3);2626  flex-shrink: 0;2627}26282629.peach-note-tool-btn {2630  background: transparent;2631  border: 1px solid transparent;2632  border-radius: 5px;2633  color: var(--peach-t2);2634  font-family: "IBM Plex Mono", monospace;2635  font-size: 10px;2636  letter-spacing: 0.04em;2637  padding: 2px 8px;2638  cursor: pointer;2639  line-height: 1.6;2640  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2641}2642.peach-note-tool-btn:hover {2643  background: var(--peach-t4);2644  color: var(--peach-t0);2645  border-color: var(--peach-t3);2646}26472648.peach-note-tool-icon {2649  padding: 3px 7px;2650  display: inline-flex;2651  align-items: center;2652  justify-content: center;2653}26542655.peach-note-tool-divider {2656  width: 1px;2657  height: 14px;2658  background: var(--peach-t3);2659  margin: 0 4px;2660  flex-shrink: 0;2661}26622663.peach-note-editor-body {2664  flex: 1;2665  overflow-y: auto;2666  padding: 16px 20px 20px;2667  outline: none;2668  font-family: var(--font-display);2669  font-size: 16px;2670  line-height: 1.75;2671  color: var(--peach-t0);2672  scrollbar-width: none;2673  word-break: break-word;2674}2675.peach-note-editor-body:empty::before {2676  content: "write your note…";2677  color: var(--peach-t3);2678  font-style: italic;2679  pointer-events: none;2680}26812682/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2683.peach-note-editor-inline {2684  display: flex;2685  flex-direction: column;2686  flex: 1;2687  min-height: 0;2688}2689.peach-note-editor-body--inline {2690  flex: 1;2691  min-height: 0;2692  font-size: 15px;2693  padding: 10px 20px 14px;2694}26952696/* Full-width toolbar row inside the body (Add.tsx note type).2697   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2698.peach-note-toolbar-body {2699  display: flex;2700  align-items: center;2701  gap: 3px;2702  padding: 5px 20px 4px;2703  margin: 2px -20px 0;2704  border-bottom: 1px solid var(--peach-t3);2705  flex-shrink: 0;2706}27072708/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2709   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2710   and .peach-note-tool-divider button-level styles. */2711.peach-note-toolbar-inline {2712  display: flex;2713  align-items: center;2714  gap: 3px;2715  margin-left: auto;2716  padding-left: 10px;2717  border-left: 1px solid var(--peach-t3);2718  min-height: 22px;2719}27202721/* Entry.tsx toolbar row (no tabs, toolbar only) */2722.peach-entry-note-toolbar-row {2723  display: flex;2724  align-items: center;2725  margin: 4px 0 6px;2726  position: relative;2727  z-index: 1;2728}2729.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2730  border-left: none;2731  padding-left: 0;2732  margin-left: 0;2733}27342735/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2736.peach-note-body {2737  display: flex;2738  flex-direction: column;2739  flex: 1;2740  min-height: 0;2741  margin: 4px 0 0;2742}2743.peach-entry-body--new .peach-note-body {2744  margin: 8px -20px 0;2745}27462747/* Add.tsx body is a grid by default; swap to a flex column when a note is2748   active so the note body can stretch and pin the tags row to the bottom. */2749.peach-entry-body--new:has(.peach-note-body) {2750  display: flex;2751  flex-direction: column;2752}27532754/* Rich content element styles (editor + display) */2755.peach-note-editor-body h2,2756.peach-note-content h2 {2757  font-family: var(--font-display);2758  font-size: 20px;2759  font-weight: 600;2760  font-style: italic;2761  color: var(--peach-t0);2762  margin: 6px 0 2px;2763  line-height: 1.3;2764}2765.peach-note-editor-body ul,2766.peach-note-content ul {2767  padding-left: 18px;2768  margin: 3px 0;2769  list-style: disc;2770}2771.peach-note-editor-body ol,2772.peach-note-content ol {2773  padding-left: 18px;2774  margin: 3px 0;2775  list-style: decimal;2776}2777.peach-note-editor-body li,2778.peach-note-content li { margin: 2px 0; }2779.peach-note-editor-body hr,2780.peach-note-content hr {2781  border: none;2782  border-top: 1px solid var(--peach-t3);2783  margin: 10px 0;2784}27852786/* font size elements from execCommand */2787.peach-note-editor-body font[size="1"],2788.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2789.peach-note-editor-body font[size="2"],2790.peach-note-content font[size="2"] { font-size: 13px; }2791.peach-note-editor-body font[size="3"],2792.peach-note-content font[size="3"] { font-size: 16px; }2793.peach-note-editor-body font[size="4"],2794.peach-note-content font[size="4"] { font-size: 20px; }2795.peach-note-editor-body font[size="5"],2796.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }27972798/* bold / italic inside the editor and note display */2799.peach-note-editor-body b, .peach-note-editor-body strong,2800.peach-note-content b, .peach-note-content strong { font-weight: 700; }2801.peach-note-editor-body em, .peach-note-editor-body i,2802.peach-note-content em, .peach-note-content i { font-style: italic; }28032804/* note display — rendered HTML, no pre-wrap */2805.peach-note-content {2806  overflow: auto;2807  max-height: 340px;2808  word-break: break-word;2809}28102811/* ── Note textarea ── */2812.peach-note-textarea {2813  width: 100%;2814  min-height: 180px;2815  max-height: 280px;2816  resize: vertical;2817  background: var(--peach-t4);2818  border: 1px solid var(--peach-t3);2819  border-radius: 8px;2820  padding: 10px 12px;2821  font-family: "IBM Plex Mono", monospace;2822  font-size: 12px;2823  line-height: 1.7;2824  color: var(--peach-t1);2825  outline: none;2826  transition: border-color 150ms ease;2827}28282829.peach-note-textarea:focus {2830  border-color: var(--peach-t2);2831}28322833.peach-note-char-count {2834  font-family: "IBM Plex Mono", monospace;2835  font-size: 9px;2836  color: var(--peach-t3);2837  text-align: right;2838  margin-top: 4px;2839  letter-spacing: 0.1em;2840}28412842/* ── Field input baseline ── */2843.peach-new-field-input {2844  width: 100%;2845  background: transparent;2846  border: none;2847  border-bottom: 1px solid var(--peach-t3);2848  padding: 4px 0;2849  color: var(--peach-t1);2850  font-family: "IBM Plex Mono", monospace;2851  font-size: 13px;2852  outline: none;2853  transition: border-color 150ms ease;2854}28552856.peach-new-field-input:focus {2857  border-bottom-color: var(--peach-t0);2858  color: var(--peach-t0);2859}28602861.peach-new-name-input {2862  width: 100%;2863  background: transparent;2864  border: none;2865  border-bottom: 1px solid var(--peach-t3);2866  padding: 6px 0;2867  font-family: var(--font-display);2868  font-style: italic;2869  font-size: 28px;2870  color: var(--peach-t0);2871  outline: none;2872  transition: border-color 150ms ease;2873}28742875.peach-new-name-input:focus {2876  border-bottom-color: var(--peach-t1);2877}28782879.peach-new-name-input::placeholder {2880  color: var(--peach-t2);2881  font-style: italic;2882}28832884.peach-new-field-input::placeholder {2885  color: var(--peach-t3);2886}28872888/* ── Demo entrance animation ── */2889#hd-shell {2890  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2891}2892@keyframes hd-shell-enter {2893  from { opacity: 0; transform: scale(0.96) translateY(16px); }2894  to   { opacity: 1; transform: scale(1) translateY(0); }2895}28962897/* ── Keyframes ── */2898@keyframes peach-char-enter {2899  from { opacity: 0; transform: translateY(0.22em); }2900  to   { opacity: 1; transform: translateY(0); }2901}2902@keyframes peach-content-enter {2903  from { opacity: 0.96; transform: translateY(4px); }2904  to   { opacity: 1; transform: translateY(0); }2905}2906@keyframes peach-content-exit {2907  from { opacity: 1; transform: translateY(0); }2908  to   { opacity: 0.92; transform: translateY(-3px); }2909}2910@keyframes peach-screen-enter {2911  from { opacity: 0; transform: translateY(14px); }2912  to   { opacity: 1; transform: translateY(0); }2913}2914@keyframes peach-shell-fade-in {2915  from { opacity: 0; }2916  to   { opacity: 1; }2917}2918@keyframes peach-veil-in {2919  from { opacity: 0; }2920  to   { opacity: 1; }2921}2922@keyframes peach-lock-settle {2923  0%   { transform: scale(0.9); }2924  65%  { transform: scale(1.08); }2925  100% { transform: scale(1); }2926}2927@keyframes peach-copy-confirm {2928  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2929  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); }2930}2931@keyframes peach-copy-retreat {2932  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); }2933  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2934}2935@keyframes peach-copy-flood {2936  from { opacity: 0; transform: scaleX(0.15); }2937  to   { opacity: 1; transform: scaleX(1); }2938}2939@keyframes peach-copy-icon-settle {2940  from  { transform: scale(0.84); }2941  70%   { transform: scale(1.08); }2942  to    { transform: scale(1); }2943}2944@keyframes peach-copy-sheen-retreat {2945  from { opacity: 1; transform: scaleX(1); }2946  to   { opacity: 0; transform: scaleX(0.15); }2947}2948@keyframes peach-copy-drain {2949  from { width: 100%; }2950  to   { width: 0; }2951}2952@keyframes peach-shake {2953  0%, 100% { transform: translateX(0); }2954  20%      { transform: translateX(-6px); }2955  40%      { transform: translateX(6px); }2956  60%      { transform: translateX(-4px); }2957  80%      { transform: translateX(4px); }2958}29592960@keyframes pip-pulse {2961  0% { transform: scale(1); }2962  40% { transform: scale(2.2); }2963  100% { transform: scale(1); }2964}296529662967/* ── Password generator ── */2968.peach-pwgen-body {2969  flex: 1; overflow-y: auto;2970  display: flex; flex-direction: column;2971}2972.peach-policy-badge {2973  display: flex; align-items: center;2974  padding: 6px 20px 0;2975  font-size: 10px; font-family: Inter, sans-serif;2976  color: var(--peach-t2); letter-spacing: 0.04em;2977}2978.peach-pwgen-display {2979  padding: 14px 20px 12px;2980  border-bottom: 1px solid var(--peach-t3);2981  display: flex; align-items: flex-start; gap: 10px;2982}2983.peach-pwgen-display-row {2984  display: flex;2985  align-items: flex-start;2986  gap: 8px;2987  padding-bottom: 8px;2988  border-bottom: 1px solid var(--peach-t3);2989}2990.peach-pwgen-output {2991  flex: 1; min-width: 0; margin: 0;2992  font-family: "IBM Plex Mono", monospace;2993  font-size: 13px; color: var(--peach-t0);2994  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2995  white-space: normal;2996  padding: 10px 12px;2997  background: var(--peach-t4);2998  border-radius: 6px;2999  min-height: 36px;3000}3001.peach-pwgen-output-display {3002  flex: 1;3003  min-width: 0;3004  margin: 0;3005  font-family: var(--font-display);3006  font-style: italic;3007  font-weight: 300;3008  font-size: 32px;3009  line-height: 1.05;3010  color: var(--peach-t0);3011  word-break: break-all;3012  overflow-wrap: break-word;3013  white-space: normal;3014  letter-spacing: 0.02em;3015}3016.peach-pwgen-display-actions {3017  display: flex;3018  flex-direction: column;3019  gap: 4px;3020  flex-shrink: 0;3021  margin-top: 2px;3022}3023.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3024.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3025.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3026.peach-pwgen-len-num {3027  font-family: "IBM Plex Mono", monospace;3028  font-size: 12px; color: var(--peach-accent);3029}3030.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3031.peach-pwgen-toggles { display: flex; flex-direction: column; }3032.peach-pwgen-charset-pills {3033  display: flex;3034  gap: 6px;3035  flex-wrap: wrap;3036}3037.peach-pwgen-pill {3038  padding: 4px 11px;3039  border-radius: 999px;3040  border: 1px solid var(--peach-t3);3041  background: transparent;3042  color: var(--peach-t2);3043  font-family: "IBM Plex Mono", monospace;3044  font-size: 9px;3045  letter-spacing: 0.08em;3046  cursor: pointer;3047  transition: all 150ms ease;3048}3049.peach-pwgen-pill.is-on {3050  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3051  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3052  color: var(--peach-accent);3053}3054.peach-pwgen-pill:not(.is-on):hover {3055  color: var(--peach-t1);3056  border-color: var(--peach-t2);3057}3058.peach-pwgen-use-btn {3059  width: 100%;3060  min-height: 34px;3061  border-radius: 8px;3062  margin-top: 2px;3063}3064.peach-pwgen-toggle-row {3065  display: flex; align-items: center; justify-content: space-between;3066  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3067}3068.peach-pwgen-toggle-row:last-child { border-bottom: none; }3069.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }30703071.peach-screen-prelock {3072  z-index: 10;3073}30743075.prelock-form {3076  display: grid;3077  gap: 12px;3078}30793080/* Peach popup should not expose native scrollbars on internal panels. */3081.peach-settings-body,3082.peach-new-body,3083.peach-pwgen-body,3084.lock-screen,3085.peach-import-preview {3086  scrollbar-width: none;3087  -ms-overflow-style: none;3088  overscroll-behavior: contain;3089}3090.peach-settings-body::-webkit-scrollbar,3091.peach-new-body::-webkit-scrollbar,3092.peach-pwgen-body::-webkit-scrollbar,3093.lock-screen::-webkit-scrollbar,3094.peach-import-preview::-webkit-scrollbar {3095  width: 0;3096  height: 0;3097  display: none;3098}30993100.lock-screen {3101  height: 100%;3102  min-height: 100%;3103  overflow-y: auto;3104  padding: 18px 18px 16px;3105  gap: 14px;3106  grid-template-rows: auto auto auto 1fr auto;3107  align-content: stretch;3108  position: relative;3109  isolation: isolate;3110}3111.peach-screen.lock-screen--vault-stage {3112  display: flex;3113  flex-direction: column;3114  justify-content: flex-start;3115  gap: 18px;3116  padding: 20px 18px 18px;3117  overflow: hidden;3118}3119.peach-screen.lock-screen--vault-stage .peach-lock-panel {3120  margin-top: auto;3121}3122.lock-screen--onboarding {3123  display: flex;3124  flex-direction: column;3125  gap: 12px;3126  justify-content: flex-start;3127}31283129.lock-screen::before {3130  content: "";3131  position: absolute;3132  inset: 12px 18px auto auto;3133  width: 160px;3134  height: 160px;3135  border-radius: 999px;3136  background:3137    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%);3138  filter: blur(6px);3139  opacity: 0.7;3140  pointer-events: none;3141  z-index: 0;3142}31433144.lock-screen-header {3145  display: flex;3146  align-items: center;3147  justify-content: space-between;3148  position: relative;3149  z-index: 1;3150}31513152.lock-password-input.shake {3153  animation: peach-shake 300ms ease-in-out;3154}31553156.peach-hint-error {3157  color: rgba(220, 80, 60, 0.92);3158}31593160.peach-onboarding-headline {3161  margin: 0;3162  font-family: var(--font-display);3163  font-size: 35px;3164  line-height: 0.88;3165  font-style: italic;3166  font-weight: 400;3167  max-width: 252px;3168}31693170.peach-lock-copy {3171  display: grid;3172  gap: 8px;3173  position: relative;3174  z-index: 1;3175}31763177.peach-lock-copy--onboarding {3178  gap: 10px;3179}31803181.peach-lock-hero {3182  position: relative;3183  z-index: 1;3184  display: grid;3185  gap: 8px;3186  min-height: 0;3187  padding: 4px 2px 0;3188  border: none;3189  border-radius: 0;3190  background: transparent;3191  box-shadow: none;3192}3193.peach-lock-hero-art {3194  position: absolute;3195  right: -8px;3196  top: -6px;3197  width: 120px;3198  height: 120px;3199  display: flex;3200  align-items: center;3201  justify-content: center;3202  pointer-events: none;3203  opacity: 0.12;3204  filter: saturate(0.9);3205}3206.peach-lock-hero-mark {3207  width: 100%;3208  height: 100%;3209}3210/* Peach body stays brand-peach across every accent — we don't want a3211   green or blue peach when sage/sky is selected. Leaf + stem keep the3212   sage tint because a real peach has a sage leaf. */3213.peach-lock-hero-mark path:nth-child(2),3214.peach-lock-hero-mark path:nth-child(3) {3215  stroke: rgba(123, 144, 96, 0.88);3216  fill: rgba(123, 144, 96, 0.88);3217}3218.peach-lock-hero > *:not(.peach-lock-hero-art) {3219  position: relative;3220  z-index: 1;3221}32223223.peach-lock-eyebrow {3224  display: inline-flex;3225  align-items: center;3226  width: fit-content;3227  padding: 4px 9px;3228  border-radius: 999px;3229  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3230  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3231  color: var(--peach-t0);3232  font-family: "IBM Plex Mono", monospace;3233  font-size: 8px;3234  letter-spacing: 0.18em;3235  text-transform: uppercase;3236}32373238.peach-lock-label-row {3239  display: flex;3240  align-items: center;3241  justify-content: space-between;3242  margin-bottom: 0;3243}32443245.peach-lock-reveal-btn {3246  display: inline-flex;3247  align-items: center;3248  gap: 4px;3249  background: none;3250  border: none;3251  cursor: pointer;3252  font-family: "IBM Plex Mono", monospace;3253  font-size: 9px;3254  letter-spacing: 0.06em;3255  color: var(--peach-t2);3256  padding: 2px 0;3257  transition: color 150ms ease;3258}32593260.peach-lock-reveal-btn:hover {3261  color: var(--peach-t1);3262}32633264.peach-lock-warning {3265  color: rgba(220, 80, 60, 0.85) !important;3266  line-height: 1.5;3267}32683269.peach-onboarding-cards {3270  display: grid;3271  gap: 8px;3272  position: relative;3273  z-index: 1;3274}32753276.peach-lock-panel {3277  position: relative;3278  z-index: 1;3279  display: grid;3280  gap: 9px;3281  padding: 14px 16px 15px;3282  border-radius: 18px;3283  border: 1px solid var(--peach-t3);3284  background:3285    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3286  box-shadow:3287    inset 0 1px 0 rgba(240, 232, 216, 0.04),3288    0 12px 28px rgba(0, 0, 0, 0.12);3289}32903291.peach-lock-panel--secondary {3292  gap: 12px;3293}32943295.peach-lock-panel-header {3296  display: flex;3297  align-items: baseline;3298  justify-content: space-between;3299  gap: 12px;3300}33013302.peach-lock-option-grid {3303  display: grid;3304  gap: 10px;3305}33063307.peach-lock-option {3308  width: 100%;3309  display: grid;3310  gap: 6px;3311  padding: 14px 15px;3312  border-radius: 16px;3313  border: 1px solid rgba(240, 232, 216, 0.08);3314  background: rgba(240, 232, 216, 0.02);3315  color: var(--peach-t0);3316  text-align: left;3317  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3318}33193320.peach-lock-option:hover {3321  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3322  background: rgba(240, 232, 216, 0.04);3323  transform: translateY(-1px);3324}33253326.peach-lock-option-title {3327  font-size: 12px;3328  color: var(--peach-t0);3329}33303331.peach-lock-option-copy {3332  font-size: 11px;3333  line-height: 1.55;3334  color: var(--peach-t1);3335}33363337.peach-onboarding-stack {3338  margin-top: 2px;3339}3340.peach-lock-panel-footer {3341  display: grid;3342  gap: 6px;3343  margin-top: 2px;3344  padding-top: 10px;3345  border-top: 1px solid rgba(240, 232, 216, 0.06);3346}33473348/* Restore picker panel — method option cards */3349.peach-lock-panel--restore {3350  gap: 10px;3351}3352.peach-lock-option--history {3353  border-color: rgba(240, 232, 216, 0.06);3354  opacity: 0.85;3355}33563357/* Snapshot restore panel */3358.peach-snapshot-panel {3359  gap: 10px;3360  overflow-y: auto;3361  max-height: 340px;3362}3363.peach-snapshot-list {3364  display: flex;3365  flex-direction: column;3366  gap: 4px;3367}3368.peach-snapshot-row {3369  display: flex;3370  align-items: center;3371  justify-content: space-between;3372  width: 100%;3373  padding: 8px 10px;3374  border-radius: 8px;3375  border: 1px solid rgba(240, 232, 216, 0.07);3376  background: transparent;3377  cursor: pointer;3378  transition: border-color 120ms, background 120ms;3379  text-align: left;3380  gap: 8px;3381}3382.peach-snapshot-row:hover {3383  border-color: rgba(240, 232, 216, 0.14);3384  background: rgba(240, 232, 216, 0.03);3385}3386.peach-snapshot-row.is-selected {3387  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3388  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3389}3390.peach-snapshot-time {3391  font-size: 11.5px;3392  color: var(--peach-t0);3393  flex: 1;3394}3395.peach-snapshot-count {3396  font-family: "IBM Plex Mono", monospace;3397  font-size: 10px;3398  color: var(--peach-t2);3399  flex-shrink: 0;3400}3401.peach-snapshot-confirm {3402  display: flex;3403  flex-direction: column;3404  gap: 8px;3405  padding-top: 10px;3406  border-top: 1px solid rgba(240, 232, 216, 0.06);3407}3408.peach-snapshot-warning {3409  display: flex;3410  align-items: flex-start;3411  gap: 6px;3412  font-size: 10.5px;3413  color: rgba(220, 80, 60, 0.85);3414  line-height: 1.55;3415}3416.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3417.peach-snapshot-confirm-row {3418  display: flex;3419  gap: 6px;3420  align-items: center;3421}3422.peach-snapshot-restore-btn {3423  width: 100%;3424}3425.peach-lock-hero--unlock .peach-lock-hero-art {3426  width: 112px;3427  height: 112px;3428  right: 0;3429  top: 2px;3430  opacity: 0.1;3431}34323433.peach-card {3434  border: 1px solid var(--peach-t3);3435  border-radius: 18px;3436  background:3437    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3438  box-shadow:3439    inset 0 0 0 1px var(--peach-border-accent),3440    inset 0 1px 0 rgba(240, 232, 216, 0.04),3441    0 12px 32px rgba(0, 0, 0, 0.14);3442  overflow: hidden;3443}34443445.peach-card-active {3446  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3447  box-shadow:3448    inset 0 1px 0 rgba(240, 232, 216, 0.05),3449    0 16px 38px rgba(0, 0, 0, 0.18),3450    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3451}34523453.peach-card-disabled {3454  opacity: 0.72;3455}34563457.peach-card-header {3458  width: 100%;3459  padding: 13px 16px 11px;3460  background: transparent;3461  color: var(--peach-t0);3462  display: flex;3463  justify-content: space-between;3464  align-items: center;3465  text-align: left;3466  font-size: 12px;3467}34683469.peach-card-body {3470  padding: 0 16px 16px;3471  display: grid;3472  gap: 9px;3473}34743475.peach-card-tag {3476  color: var(--peach-t2);3477  font-family: "IBM Plex Mono", monospace;3478  font-size: 9px;3479  letter-spacing: 0.12em;3480  text-transform: uppercase;3481}34823483.peach-empty-copy {3484  display: grid;3485  gap: 6px;3486  color: var(--peach-t1);3487  font-size: 13px;3488}34893490.peach-lock-submit {3491  width: 100%;3492  box-shadow:3493    0 1px 0 rgba(255,255,255,0.10) inset,3494    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3495    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3496    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3497}34983499.peach-lock-secondary {3500  width: 100%;3501  border-color: var(--peach-t3);3502  background: rgba(240, 232, 216, 0.02);3503}35043505.peach-lock-secondary:hover {3506  background: rgba(240, 232, 216, 0.04);3507}35083509.peach-lock-note {3510  max-width: none;3511  line-height: 1.55;3512  margin: 0;3513}35143515.peach-overlay-action {3516  font-size: 10px;3517  padding: 4px 8px;3518  letter-spacing: 0.06em;3519  min-width: 44px;3520  text-align: center;3521}35223523.peach-overlay-spacer {3524  width: 32px;3525}35263527.peach-inline-action {3528  flex-shrink: 0;3529  font-size: 9px;3530  letter-spacing: 0.1em;3531  text-transform: uppercase;3532  padding: 4px 7px;3533}3534.peach-password-toggle-btn {3535  display: inline-flex;3536  align-items: center;3537  justify-content: center;3538  min-width: 30px;3539  min-height: 26px;3540  padding: 0 7px;3541  border: 1px solid var(--peach-t3);3542  border-radius: 999px;3543  background: rgba(240, 232, 216, 0.04);3544  color: var(--peach-t2);3545  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3546}3547.peach-password-toggle-btn:hover {3548  border-color: var(--peach-t2);3549  color: var(--peach-t0);3550  background: rgba(240, 232, 216, 0.06);3551}35523553.peach-new-textarea {3554  width: 100%;3555  min-height: 88px;3556  resize: vertical;3557  border: 0;3558  outline: none;3559  background: transparent;3560  color: var(--peach-t1);3561  font-family: "IBM Plex Mono", monospace;3562  font-size: 12px;3563  line-height: 1.65;3564  caret-color: var(--peach-accent);3565}35663567.peach-new-textarea::placeholder {3568  color: var(--peach-t2);3569  opacity: 0.7;3570}35713572.peach-settings-actions {3573  display: grid;3574  gap: 8px;3575}35763577.peach-sync-section-label {3578  font-size: 11px;3579  color: var(--peach-t2);3580  text-transform: uppercase;3581  letter-spacing: 0.05em;3582}35833584.peach-sync-device-row {3585  display: flex;3586  justify-content: space-between;3587  align-items: center;3588  padding: 6px 0;3589  border-bottom: 1px solid var(--peach-t3);3590}35913592.peach-sync-device-info {3593  display: flex;3594  flex-direction: column;3595  gap: 2px;3596}35973598.peach-sync-device-name {3599  font-size: 13px;3600  color: var(--peach-t0);3601}36023603.peach-sync-device-meta {3604  font-size: 11px;3605  color: var(--peach-t2);3606}36073608.peach-sync-status-dot {3609  display: inline-block;3610  width: 8px;3611  height: 8px;3612  border-radius: 50%;3613  vertical-align: middle;3614}36153616.peach-sync-remove-btn {3617  color: var(--peach-breach);3618}36193620.peach-sync-hero-icon {3621  color: var(--peach-t1);3622  opacity: 0.85;3623}36243625.peach-import-preview {3626  margin-bottom: 12px;3627  max-height: 152px;3628  overflow-y: auto;3629  border: 1px solid var(--peach-t3);3630  border-radius: 10px;3631  padding: 8px 10px;3632  display: grid;3633  gap: 8px;3634  background: rgba(240, 232, 216, 0.02);3635}36363637.peach-import-preview-row {3638  display: flex;3639  justify-content: space-between;3640  gap: 10px;3641  font-size: 11px;3642  color: var(--peach-t1);3643}36443645.peach-import-preview-title {3646  color: var(--peach-t0);3647  flex: 1;3648  min-width: 0;3649  overflow: hidden;3650  text-overflow: ellipsis;3651  white-space: nowrap;3652}36533654.peach-import-preview-meta {3655  color: var(--peach-t2);3656  flex-shrink: 0;3657  max-width: 42%;3658  overflow: hidden;3659  text-overflow: ellipsis;3660  white-space: nowrap;3661}36623663.peach-import-preview-more {3664  color: var(--peach-t2);3665  font-size: 10px;3666}36673668.peach-restore-copy {3669  margin: 0;3670  color: var(--peach-t1);3671  font-size: 11px;3672  line-height: 1.6;3673}36743675.peach-restore-warning {3676  padding: 10px 12px;3677  border-radius: 12px;3678  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);3679  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3680  color: var(--peach-t0);3681  font-size: 11px;3682  line-height: 1.55;3683}36843685.peach-provider-chips {3686  display: flex;3687  flex-wrap: wrap;3688  gap: 6px;3689}36903691.peach-provider-chip {3692  display: inline-flex;3693  align-items: center;3694  padding: 5px 8px;3695  border-radius: 999px;3696  border: 1px solid var(--peach-t3);3697  background: rgba(240, 232, 216, 0.02);3698  color: var(--peach-t1);3699  font-family: "IBM Plex Mono", monospace;3700  font-size: 8px;3701  letter-spacing: 0.08em;3702  text-transform: uppercase;3703}37043705.peach-restore-file,3706.peach-restore-input {3707  width: 100%;3708  border-radius: 10px;3709  border: 1px solid var(--peach-t3);3710  background: var(--peach-s2);3711  color: var(--peach-t0);3712  font-size: 12px;3713}37143715.peach-restore-file {3716  padding: 9px 10px;3717}37183719.peach-restore-file::file-selector-button {3720  margin-right: 10px;3721  padding: 7px 10px;3722  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3723  border-radius: 999px;3724  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3725  color: var(--peach-t0);3726  font-size: 10px;3727  letter-spacing: 0.08em;3728  text-transform: uppercase;3729  cursor: pointer;3730}37313732.peach-restore-input {3733  padding: 10px 12px;3734}37353736.peach-auth-grid {3737  display: grid;3738  gap: 10px;3739}37403741.peach-import-summary {3742  color: var(--peach-t1);3743  font-size: 12px;3744  line-height: 1.6;3745  margin-bottom: 12px;3746}37473748.peach-restore-error {3749  color: rgba(220, 80, 60, 0.95);3750  font-size: 12px;3751  line-height: 1.55;3752}37533754.peach-passkey-card {3755  max-width: 400px;3756  margin: auto;3757}37583759.peach-pro-badge {3760  padding: 2px 6px;3761  border-radius: 999px;3762  font-family: var(--font-ui);3763  font-size: 10px;3764  letter-spacing: 0.08em;3765  text-transform: uppercase;3766  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3767  color: var(--peach-accent);3768}37693770/* ── Shortcuts rebind table ─────────────────────────────────── */3771.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }3772.peach-shortcut-row {3773  display: flex;3774  align-items: center;3775  gap: 10px;3776  padding: 6px 0;3777}3778.peach-shortcut-row-label {3779  flex: 1;3780  font-size: 12px;3781  color: var(--peach-t0);3782}3783.peach-shortcut-chip {3784  min-width: 64px;3785  padding: 4px 10px;3786  border-radius: 6px;3787  border: 1px solid var(--peach-t3);3788  background: var(--peach-input-bg, var(--surface-card));3789  color: var(--peach-t0);3790  font-family: var(--font-mono);3791  font-size: 11px;3792  letter-spacing: 0.04em;3793  cursor: pointer;3794  text-align: center;3795  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;3796}3797.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }3798.peach-shortcut-chip.is-custom {3799  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3800  color: var(--peach-accent);3801}3802.peach-shortcut-chip.is-capturing {3803  border-color: var(--peach-accent);3804  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3805  color: var(--peach-accent);3806  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;3807}3808@keyframes peach-shortcut-capture-pulse {3809  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }3810  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3811}3812.peach-shortcut-reset {3813  background: transparent;3814  border: none;3815  cursor: pointer;3816  color: var(--peach-t2);3817  padding: 4px 6px;3818  border-radius: 5px;3819  font-size: 14px;3820  line-height: 1;3821  transition: color 120ms ease, background 120ms ease;3822}3823.peach-shortcut-reset:hover {3824  color: var(--peach-t0);3825  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);3826}3827.peach-shortcuts-conflict {3828  margin: 4px 0 0;3829  padding: 8px 10px;3830  border-radius: 7px;3831  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3832  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);3833  font-family: var(--font-mono);3834  font-size: 11px;3835  color: var(--peach-t0);3836}38373838/* ── Help dialog overlay (? to open) ────────────────────────── */3839.peach-shortcuts-help-backdrop {3840  position: fixed;3841  inset: 0;3842  background: rgba(0, 0, 0, 0.55);3843  backdrop-filter: blur(2px);3844  display: flex;3845  align-items: center;3846  justify-content: center;3847  z-index: 1000;3848  animation: peach-help-fade-in 140ms ease forwards;3849}3850@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }3851.peach-shortcuts-help-card {3852  width: min(320px, 92vw);3853  max-height: 80vh;3854  overflow-y: auto;3855  border-radius: 14px;3856  border: 1px solid var(--peach-t3);3857  background: var(--peach-bg);3858  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);3859  padding: 16px 18px 18px;3860  display: flex;3861  flex-direction: column;3862  gap: 12px;3863}3864.peach-shortcuts-help-head {3865  display: flex; align-items: center; justify-content: space-between;3866}3867.peach-shortcuts-help-head h3 {3868  margin: 0;3869  font-family: var(--font-display);3870  font-style: italic;3871  font-weight: 400;3872  font-size: 22px;3873  color: var(--peach-t0);3874}3875.peach-shortcuts-help-close {3876  background: transparent;3877  border: none;3878  color: var(--peach-t2);3879  cursor: pointer;3880  font-size: 14px;3881  padding: 4px 8px;3882  border-radius: 5px;3883}3884.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }3885.peach-shortcuts-help-body ul {3886  list-style: none; padding: 0; margin: 4px 0 12px;3887  display: grid; gap: 8px;3888}3889.peach-shortcuts-help-body li {3890  display: flex; align-items: center; justify-content: space-between; gap: 12px;3891  font-size: 12px; color: var(--peach-t0);3892}3893.peach-shortcuts-help-body kbd {3894  font-family: var(--font-mono);3895  font-size: 11px;3896  padding: 3px 8px;3897  border-radius: 6px;3898  background: var(--surface-card);3899  border: 1px solid var(--peach-t3);3900  color: var(--peach-accent);3901  letter-spacing: 0.04em;3902}39033904/* ── Pro promo on Account screen ────────────────────────────── */3905.peach-pro-promo {3906  position: relative;3907  border-radius: 14px;3908  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3909  background:3910    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),3911    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),3912    var(--surface-card);3913  overflow: hidden;3914  margin-bottom: 14px;3915}3916.peach-pro-promo-glow {3917  position: absolute;3918  inset: -40% -20% auto auto;3919  width: 220px; height: 220px;3920  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);3921  pointer-events: none;3922  filter: blur(8px);3923}3924.peach-pro-promo-inner {3925  position: relative;3926  padding: 18px 18px 16px;3927}3928.peach-pro-promo-title {3929  font-family: var(--font-display);3930  font-style: italic;3931  font-weight: 400;3932  font-size: 28px;3933  line-height: 1;3934  letter-spacing: -0.005em;3935  color: var(--peach-t0);3936  margin: 0 0 4px;3937}3938.peach-pro-promo-tagline {3939  font-family: var(--font-mono);3940  font-size: 10px;3941  letter-spacing: 0.06em;3942  color: var(--peach-t2);3943  margin: 0 0 14px;3944}3945.peach-pro-promo-list {3946  list-style: none;3947  margin: 0 0 16px;3948  padding: 0;3949  display: grid;3950  gap: 9px;3951}3952.peach-pro-promo-list li {3953  display: flex;3954  align-items: flex-start;3955  gap: 9px;3956  font-size: 12px;3957  color: var(--peach-t1);3958  line-height: 1.4;3959}3960.peach-pro-promo-list svg {3961  width: 14px;3962  height: 14px;3963  flex-shrink: 0;3964  color: var(--peach-accent);3965  margin-top: 2px;3966}3967.peach-pro-promo-list span {3968  color: var(--peach-t0);3969}3970.peach-pro-promo-cta {3971  width: 100%;3972  background: var(--peach-accent);3973  color: #fff;3974  border: none;3975  padding: 9px 12px;3976  border-radius: 9px;3977  font-size: 12px;3978  font-weight: 500;3979  font-family: var(--font-ui);3980  letter-spacing: 0.02em;3981  text-decoration: none;3982  display: inline-flex;3983  align-items: center;3984  justify-content: center;3985  cursor: pointer;3986  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;3987  box-shadow: 0 2px 16px var(--peach-glow);3988}3989.peach-pro-promo-cta:hover {3990  filter: brightness(1.07);3991  box-shadow: 0 4px 24px var(--peach-glow);3992  transform: translateY(-1px);3993}3994.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }39953996.peach-pro-or-divider {3997  display: flex;3998  align-items: center;3999  gap: 10px;4000  margin: 4px 0 12px;4001  font-family: var(--font-mono);4002  font-size: 10px;4003  letter-spacing: 0.06em;4004  color: var(--peach-t2);4005  text-transform: uppercase;4006}4007.peach-pro-or-divider::before,4008.peach-pro-or-divider::after {4009  content: "";4010  flex: 1;4011  height: 1px;4012  background: var(--peach-t3);4013}40144015.peach-loading {4016  position: absolute;4017  inset: 0;4018  display: flex;4019  align-items: center;4020  justify-content: center;4021  background: var(--bg);4022  animation: peach-loading-pulse 1.2s ease-in-out infinite;4023}40244025@keyframes peach-loading-pulse {4026  0%, 100% { opacity: 0.6; }4027  50% { opacity: 1; }4028}40294030/* ── Health Dashboard ─────────────────────────────────────────────────── */4031.peach-health-body {4032  flex: 1;4033  overflow-y: auto;4034  display: flex;4035  flex-direction: column;4036}40374038.peach-health-summary {4039  padding: 10px 16px 6px;4040  font-family: "IBM Plex Mono", monospace;4041  font-size: 11px;4042}4043.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4044.peach-health-summary-ok { color: var(--peach-t2); }40454046.peach-health-check-row {4047  padding: 0 16px 10px;4048}4049.peach-health-check-btn {4050  width: 100%;4051  display: flex;4052  align-items: center;4053  justify-content: center;4054}40554056.peach-health-sections {4057  flex: 1;4058  display: flex;4059  flex-direction: column;4060}40614062.peach-health-section {4063  border-bottom: 1px solid var(--peach-t3);4064}40654066.peach-health-section-header {4067  width: 100%;4068  display: flex;4069  align-items: center;4070  justify-content: space-between;4071  padding: 9px 16px;4072  background: transparent;4073  cursor: pointer;4074  color: var(--peach-t0);4075}40764077.peach-health-section-title-row {4078  display: flex;4079  align-items: center;4080  gap: 8px;4081}40824083.peach-health-count-badge {4084  display: inline-flex;4085  align-items: center;4086  justify-content: center;4087  min-width: 20px;4088  height: 18px;4089  padding: 0 5px;4090  border-radius: 999px;4091  background: rgba(220,80,60,0.15);4092  border: 1px solid rgba(220,80,60,0.25);4093  font-family: "IBM Plex Mono", monospace;4094  font-size: 9px;4095  color: rgba(220,80,60,0.9);4096}40974098.peach-health-section-title {4099  font-family: "IBM Plex Mono", monospace;4100  font-size: 11px;4101  text-transform: uppercase;4102  letter-spacing: 0.1em;4103  color: var(--peach-t1);4104}41054106.peach-health-chevron {4107  color: var(--peach-t2);4108  transition: transform 200ms ease;4109  flex-shrink: 0;4110}4111.peach-health-chevron.is-expanded {4112  transform: rotate(180deg);4113}41144115.peach-health-section-body {4116  padding: 0 16px 10px;4117  display: flex;4118  flex-direction: column;4119  gap: 4px;4120}41214122.peach-health-row {4123  display: flex;4124  align-items: flex-start;4125  justify-content: space-between;4126  gap: 8px;4127  padding: 6px 8px;4128  border-radius: 8px;4129  background: rgba(240,232,216,0.02);4130}41314132.peach-health-row-info {4133  flex: 1;4134  min-width: 0;4135  display: flex;4136  flex-direction: column;4137  gap: 2px;4138}41394140.peach-health-row-name {4141  font-family: var(--font-display);4142  font-size: 15px;4143  font-style: italic;4144  font-weight: 400;4145  color: var(--peach-t0);4146  white-space: nowrap;4147  overflow: hidden;4148  text-overflow: ellipsis;4149}41504151.peach-health-row-meta {4152  font-family: "IBM Plex Mono", monospace;4153  font-size: 9px;4154  color: var(--peach-t2);4155  letter-spacing: 0.05em;4156}41574158.peach-health-fix-btn {4159  font-size: 9px;4160  letter-spacing: 0.08em;4161  text-transform: uppercase;4162  padding: 4px 7px;4163  flex-shrink: 0;4164  display: flex;4165  align-items: center;4166}41674168.peach-health-empty {4169  font-family: "IBM Plex Mono", monospace;4170  font-size: 10px;4171  color: var(--peach-t2);4172  padding: 6px 0;4173}41744175.peach-health-loading {4176  font-family: "IBM Plex Mono", monospace;4177  font-size: 10px;4178  color: var(--peach-t2);4179  padding: 6px 0;4180  display: flex;4181  align-items: center;4182  gap: 6px;4183}41844185.peach-health-loading::before {4186  content: "";4187  width: 10px;4188  height: 10px;4189  border: 1.5px solid var(--peach-t3);4190  border-top-color: var(--peach-accent);4191  border-radius: 50%;4192  animation: peach-spin 600ms linear infinite;4193}41944195@keyframes peach-spin {4196  to { transform: rotate(360deg); }4197}41984199.peach-spinner {4200  width: 32px;4201  height: 32px;4202  border: 2px solid var(--peach-s2);4203  border-top-color: var(--peach-accent);4204  border-radius: 50%;4205  margin: 0 auto 16px;4206  animation: peach-spin 0.8s linear infinite;4207}42084209.peach-progress-screen {4210  text-align: center;4211  padding: 32px 16px;4212}42134214.peach-progress-screen-title {4215  font-size: 13px;4216  color: var(--peach-t0);4217  margin-bottom: 16px;4218}42194220.peach-progress-screen-stage {4221  font-size: 11px;4222  color: var(--peach-t2);4223  min-height: 14px;4224}42254226.peach-progress-screen-note {4227  font-size: 10px;4228  color: var(--peach-t2);4229  margin-top: 8px;4230}42314232.peach-pairing-body {4233  flex: 1;4234  overflow-y: auto;4235  display: flex;4236  flex-direction: column;4237}42384239.peach-pairing-content {4240  flex: 1;4241  display: flex;4242  flex-direction: column;4243  align-items: center;4244  justify-content: center;4245  gap: 14px;4246  padding: 28px 20px;4247  text-align: center;4248}42494250.peach-pairing-headline {4251  font-family: var(--font-display);4252  font-style: italic;4253  font-weight: 300;4254  font-size: 28px;4255  color: var(--peach-t0);4256  margin: 0;4257  line-height: 1;4258}42594260.peach-pairing-subline {4261  font-size: 12px;4262  color: var(--peach-t2);4263  max-width: 220px;4264  line-height: 1.5;4265  margin: 0;4266}42674268.peach-pairing-subline--center {4269  text-align: center;4270}42714272.peach-pairing-code-display {4273  display: flex;4274  gap: 6px;4275}42764277.peach-pairing-code-digit {4278  display: flex;4279  align-items: center;4280  justify-content: center;4281  width: 36px;4282  height: 48px;4283  background: var(--peach-s2);4284  border: 1px solid var(--peach-t3);4285  border-radius: 6px;4286  font-family: var(--font-mono);4287  font-size: 22px;4288  color: var(--peach-t0);4289  letter-spacing: 0;4290}42914292.peach-pairing-countdown-ring {4293  position: relative;4294  display: inline-flex;4295  align-items: center;4296  justify-content: center;4297}42984299.peach-pairing-countdown-num {4300  position: absolute;4301  font-family: var(--font-mono);4302  font-size: 14px;4303  color: var(--peach-t1);4304}43054306.peach-pairing-ring-track {4307  fill: none;4308  stroke: var(--peach-t3);4309  stroke-width: 2;4310}43114312.peach-pairing-ring-progress {4313  fill: none;4314  stroke: var(--peach-accent);4315  stroke-width: 2;4316  stroke-linecap: round;4317  transform: rotate(-90deg);4318  transform-origin: 50% 50%;4319  transition: stroke-dashoffset 0.5s linear;4320}43214322.peach-pairing-code-inputs {4323  display: flex;4324  gap: 8px;4325}43264327.peach-pairing-code-box {4328  width: 36px;4329  height: 48px;4330  text-align: center;4331  background: var(--peach-s2);4332  border: 1px solid var(--peach-t3);4333  border-radius: 6px;4334  font-family: var(--font-mono);4335  font-size: 20px;4336  color: var(--peach-t0);4337  outline: none;4338  transition: border-color 120ms ease;4339}43404341.peach-pairing-code-box:focus {4342  border-color: var(--peach-accent);4343}43444345.peach-pairing-code-box.has-error {4346  border-color: rgba(220, 80, 60, 0.45);4347}43484349.peach-pairing-status {4350  display: flex;4351  align-items: center;4352  gap: 8px;4353  margin: 0;4354  font-size: 12px;4355  color: var(--peach-t1);4356}43574358.peach-pairing-error {4359  margin: 0;4360  font-size: 11px;4361  color: var(--peach-breach);4362}43634364.peach-pairing-error-msg {4365  color: var(--peach-t1);4366}43674368.peach-pairing-spinner {4369  width: 12px;4370  height: 12px;4371  border: 1.5px solid var(--peach-t3);4372  border-top-color: var(--peach-accent);4373  border-radius: 50%;4374  animation: peach-spin 0.8s linear infinite;4375}43764377.peach-pairing-success-icon,4378.peach-pairing-error-icon,4379.peach-pairing-hero {4380  display: inline-flex;4381  align-items: center;4382  justify-content: center;4383}43844385/* Tag chips */4386.peach-tag-chip {4387  display: inline-flex;4388  align-items: center;4389  gap: 4px;4390  padding: 3px 8px;4391  border-radius: 999px;4392  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4393  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4394  color: var(--peach-t0);4395  font-family: "IBM Plex Mono", monospace;4396  font-size: 10px;4397  letter-spacing: 0.04em;4398}43994400.peach-tag-chip-remove {4401  background: transparent;4402  border: none;4403  color: inherit;4404  opacity: 0.6;4405  cursor: pointer;4406  padding: 0;4407  font-size: 12px;4408  line-height: 1;4409}44104411.peach-tag-chip-remove:hover {4412  opacity: 1;4413}44144415/* Tag input */4416.peach-tag-input-wrap {4417  border-bottom: 1px solid var(--peach-t3);4418}44194420.peach-tag-suggestions {4421  display: flex;4422  flex-wrap: wrap;4423  gap: 4px;4424  padding: 6px 0;4425}44264427.peach-tag-suggestion {4428  padding: 2px 8px;4429  border-radius: 999px;4430  border: 1px solid var(--peach-t3);4431  background: var(--peach-s2);4432  color: var(--peach-t1);4433  font-family: "IBM Plex Mono", monospace;4434  font-size: 10px;4435  cursor: pointer;4436  transition: border-color 80ms ease, background 80ms ease;4437}44384439.peach-tag-suggestion:hover {4440  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4441  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4442}44434444/* Tag filter strip */4445.peach-tag-filter-strip {4446  border-bottom: 1px solid var(--peach-t3);4447  flex-shrink: 0;4448}44494450.peach-tag-filter-chip {4451  display: inline-flex;4452  align-items: center;4453  padding: 4px 10px;4454  border-radius: 999px;4455  border: 1px solid var(--peach-t3);4456  background: transparent;4457  color: var(--peach-t2);4458  font-family: "IBM Plex Mono", monospace;4459  font-size: 9px;4460  letter-spacing: 0.06em;4461  text-transform: uppercase;4462  cursor: pointer;4463  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4464  white-space: nowrap;4465}44664467.peach-tag-filter-chip:hover {4468  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4469  color: var(--peach-t1);4470}44714472.peach-tag-filter-chip.is-selected {4473  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4474  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4475  color: var(--peach-t0);4476}44774478/* ─────────────────────────────────────────────────────────────────────────4479   v1.4.12 additions4480   ─────────────────────────────────────────────────────────────────────── */44814482/* Sort bar */4483.peach-sort-bar {4484  display: flex;4485  align-items: center;4486  gap: 4px;4487  padding: 5px 12px;4488  border-bottom: 1px solid var(--peach-t3);4489  flex-shrink: 0;4490  overflow-x: auto;4491  scrollbar-width: none;4492}44934494.peach-sort-btn {4495  padding: 2px 9px;4496  border-radius: 999px;4497  border: 1px solid transparent;4498  background: transparent;4499  color: var(--peach-t2);4500  font-family: "IBM Plex Mono", monospace;4501  font-size: 9px;4502  letter-spacing: 0.07em;4503  text-transform: uppercase;4504  cursor: pointer;4505  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4506  white-space: nowrap;4507}45084509.peach-sort-btn:hover {4510  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4511  color: var(--peach-t1);4512}45134514.peach-sort-btn.is-active {4515  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4516  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4517  color: var(--peach-t0);4518}45194520.peach-sort-domain-hint {4521  margin-left: auto;4522  font-family: "IBM Plex Mono", monospace;4523  font-size: 9px;4524  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4525  white-space: nowrap;4526  overflow: hidden;4527  text-overflow: ellipsis;4528  max-width: 110px;4529}45304531/* Tab-match badge on entry rows */4532.peach-tab-match-badge {4533  display: inline-block;4534  width: 6px;4535  height: 6px;4536  border-radius: 50%;4537  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4538  margin-left: 5px;4539  vertical-align: middle;4540  flex-shrink: 0;4541  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4542}45434544.peach-entry-row.is-tab-match {4545  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4546  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4547}45484549.peach-entry-row.is-tab-match:hover {4550  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4551}45524553/* Entry list stagger entrance */4554@keyframes peach-entry-fadein {4555  from { opacity: 0; transform: translateY(4px); }4556  to   { opacity: 1; transform: translateY(0); }4557}45584559.peach-vault-list .peach-entry-row {4560  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4561  content-visibility: auto;4562  contain-intrinsic-size: auto 44px;4563}45644565/* Button press micro-interaction */4566.peach-btn:active {4567  transform: scale(0.95);4568  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4569}45704571.peach-sort-btn:active,4572.peach-tag-filter-chip:active {4573  transform: scale(0.93);4574  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4575}45764577/* Password strength bar (Lock view + shared) */4578.peach-password-strength {4579  display: flex;4580  align-items: center;4581  gap: 8px;4582  margin-top: 6px;4583}45844585.peach-strength-bar {4586  flex: 1;4587  height: 3px;4588  border-radius: 2px;4589  background: var(--peach-t3);4590  overflow: hidden;4591}45924593.peach-strength-fill {4594  height: 100%;4595  border-radius: 2px;4596  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4597              background 300ms ease;4598}45994600.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4601.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4602.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4603.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }46044605.peach-strength-label {4606  font-family: "IBM Plex Mono", monospace;4607  font-style: italic;4608  font-size: 9px;4609  font-weight: 300;4610  letter-spacing: 0.06em;4611  color: var(--peach-t2);4612  min-width: 36px;4613  text-align: right;4614}46154616.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4617.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4618.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4619.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }46204621/* Duress form */4622.peach-duress-status {4623  padding: 2px 8px;4624  border-radius: 999px;4625  border: 1px solid var(--peach-t3);4626  font-family: "IBM Plex Mono", monospace;4627  font-size: 9px;4628  letter-spacing: 0.07em;4629  text-transform: uppercase;4630  color: var(--peach-t2);4631  flex-shrink: 0;4632}46334634.peach-duress-status.is-active {4635  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4636  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4637  color: var(--peach-t0);4638}46394640.peach-duress-form {4641  padding: 8px 0 4px;4642  display: flex;4643  flex-direction: column;4644  gap: 6px;4645}46464647.peach-duress-form .peach-label {4648  margin-top: 4px;4649}46504651.peach-duress-actions {4652  display: flex;4653  gap: 6px;4654  align-items: center;4655  margin-top: 4px;4656}46574658.peach-duress-actions .peach-btn:first-child {4659  margin-right: auto;4660}46614662/* Improved overlay spring entrance */4663.peach-overlay-view.ov-enter-up {4664  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4665}46664667@keyframes ov-enter-up-spring {4668  from { opacity: 0; transform: translateY(16px) scale(0.98); }4669  to   { opacity: 1; transform: translateY(0) scale(1); }4670}46714672.peach-overlay-view.ov-enter-right {4673  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4674}46754676@keyframes ov-enter-right-spring {4677  from { opacity: 0; transform: translateX(18px) scale(0.98); }4678  to   { opacity: 1; transform: translateX(0) scale(1); }4679}46804681/* ── Onboarding-mode restore screens (file import) ── */4682/* Used when MainImportView renders during onboarding (no vault yet).4683   Animates like a lock-screen transition. */4684.peach-lock-view {4685  position: absolute;4686  inset: 0;4687  display: flex;4688  flex-direction: column;4689  background:4690    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4691    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4692    var(--peach-bg);4693  z-index: 2;4694  overflow: hidden;4695  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4696}46974698.peach-lock-view-header {4699  display: flex;4700  align-items: center;4701  justify-content: space-between;4702  padding: 16px 18px 12px;4703  flex-shrink: 0;4704}47054706/* ───────── Settings: auto-lock select ───────── */4707.peach-settings-select {4708  font-family: "IBM Plex Mono", monospace;4709  font-size: 11px;4710  background: transparent;4711  border: 1px solid var(--peach-t3);4712  border-radius: 4px;4713  color: var(--peach-t1);4714  padding: 3px 6px;4715  cursor: pointer;4716  outline: none;4717}4718.peach-settings-select:focus {4719  border-color: var(--peach-accent);4720}47214722/* ───────── Duress status pill (new polished) ───────── */4723.peach-duress-status-pill {4724  font-family: "IBM Plex Mono", monospace;4725  font-size: 9px;4726  text-transform: uppercase;4727  letter-spacing: 0.12em;4728  padding: 2px 8px;4729  border-radius: 12px;4730  background: var(--peach-t3);4731  color: var(--peach-t2);4732  flex-shrink: 0;4733}4734.peach-duress-status-pill.is-active {4735  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4736  color: var(--peach-accent);4737}47384739/* ───────── Entry advanced disclosure (canary) ───────── */4740.peach-entry-advanced {4741  margin-top: 12px;4742  border-top: 1px solid var(--peach-t3);4743  padding-top: 10px;4744  position: relative;4745  z-index: 1;4746}4747.peach-entry-advanced-toggle {4748  display: flex;4749  align-items: center;4750  justify-content: space-between;4751  width: 100%;4752  background: transparent;4753  border: none;4754  cursor: pointer;4755  padding: 0;4756  color: var(--peach-t2);4757}4758.peach-canary-section {4759  margin-top: 10px;4760  display: grid;4761  gap: 6px;4762}47634764/* ───────── Import: merge/replace radio choices ───────── */4765.peach-import-choice {4766  display: flex;4767  align-items: flex-start;4768  gap: 10px;4769  padding: 8px 10px;4770  border: 1px solid var(--peach-t3);4771  border-radius: 10px;4772  cursor: pointer;4773  margin-bottom: 6px;4774  transition: border-color 120ms ease, background 120ms ease;4775}4776.peach-import-choice:hover {4777  border-color: var(--peach-accent);4778}4779.peach-import-choice input[type="radio"] {4780  margin-top: 3px;4781  accent-color: var(--peach-accent);4782  flex-shrink: 0;4783}4784.peach-import-choice-main {4785  display: flex;4786  flex-direction: column;4787  gap: 2px;4788  min-width: 0;4789}4790.peach-import-choice-label {4791  font-size: 12px;4792  color: var(--peach-t0);4793}4794.peach-import-choice-sub {4795  font-size: 11px;4796  color: var(--peach-t2);4797  line-height: 1.5;4798}47994800/* ───────── Export: success confirmation strip ───────── */4801.peach-export-success {4802  display: flex;4803  align-items: flex-start;4804  gap: 10px;4805  padding: 12px;4806  border-radius: 12px;4807  border: 1px solid rgba(150, 175, 110, 0.3);4808  background: rgba(150, 175, 110, 0.08);4809  color: var(--peach-t0);4810  font-size: 12px;4811  line-height: 1.55;4812}4813.peach-export-success-check {4814  color: rgba(150, 175, 110, 0.9);4815  font-size: 14px;4816  flex-shrink: 0;4817}48184819/* ── Trash view ──────────────────────────────────────────────────────── */4820.peach-trash-entry-row {4821  display: flex;4822  align-items: center;4823  justify-content: space-between;4824  gap: 8px;4825  padding: 8px 0;4826  border-bottom: 1px solid var(--peach-t3);4827}4828.peach-trash-entry-row:last-child { border-bottom: none; }4829.peach-trash-entry-info {4830  flex: 1;4831  min-width: 0;4832  display: flex;4833  flex-direction: column;4834  gap: 2px;4835}4836.peach-trash-entry-title {4837  font-size: 12px;4838  color: var(--peach-t1);4839  overflow: hidden;4840  text-overflow: ellipsis;4841  white-space: nowrap;4842}4843.peach-trash-entry-meta {4844  font-family: var(--font-mono);4845  font-size: 9px;4846  color: var(--peach-t2);4847  letter-spacing: 0.06em;4848}4849.peach-trash-entry-actions {4850  display: flex;4851  align-items: center;4852  gap: 4px;4853  flex-shrink: 0;4854}4855.peach-trash-list {4856  flex: 1;4857  min-height: 0;4858  overflow-y: auto;4859}4860.peach-trash-notice {4861  margin: 0 20px 16px;4862  margin-top: auto;4863}48644865/* ── Settings shortcuts grid ─────────────────────────────────────────── */4866.peach-shortcuts-grid {4867  display: grid;4868  grid-template-columns: auto 1fr;4869  gap: 6px 12px;4870  align-items: center;4871  padding: 4px 0;4872}4873.peach-shortcut-key {4874  font-family: var(--font-mono);4875  font-size: 10px;4876  color: var(--peach-t0);4877  background: var(--peach-t3);4878  border-radius: 4px;4879  padding: 2px 6px;4880  white-space: nowrap;4881  text-align: center;4882}4883.peach-shortcut-desc {4884  font-size: 11px;4885  color: var(--peach-t1);4886}48874888/* ── Sort bar trash button ───────────────────────────────────────────── */4889.peach-sort-trash-btn {4890  display: flex;4891  align-items: center;4892  justify-content: center;4893  padding: 3px 5px;4894  background: transparent;4895  border: none;4896  cursor: pointer;4897  color: var(--peach-t2);4898  border-radius: 4px;4899  transition: color 140ms ease, background 140ms ease;4900}4901.peach-sort-trash-btn:hover {4902  color: var(--peach-t1);4903  background: var(--peach-t3);4904}4905.peach-sort-trash-btn.is-active {4906  color: var(--peach-accent);4907}49084909/* Accent color picker */4910.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4911.peach-accent-picker {4912  display: flex;4913  flex-wrap: wrap;4914  gap: 7px;4915  padding: 2px 0;4916}4917.peach-accent-swatch {4918  width: 22px;4919  height: 22px;4920  border-radius: 50%;4921  border: 2px solid transparent;4922  cursor: pointer;4923  padding: 0;4924  transition: transform 100ms;4925  outline-offset: 2px;4926}4927.peach-accent-swatch:hover { transform: scale(1.15); }4928.peach-accent-swatch.is-active {4929  border-color: var(--peach-t0);4930  transform: scale(1.1);4931}49324933/* Display font picker — swatch shows an "Aa" preview rendered with each4934   font option so the user can see what they're picking before they pick. */4935.peach-settings-row--font { align-items: flex-start; padding-top: 10px; }4936.peach-font-picker {4937  display: flex;4938  flex-wrap: wrap;4939  gap: 6px;4940  padding: 2px 0;4941  flex: 1;4942  justify-content: flex-end;4943}4944.peach-font-swatch {4945  display: flex;4946  flex-direction: column;4947  align-items: center;4948  gap: 2px;4949  padding: 4px 8px;4950  background: transparent;4951  border: 1px solid var(--peach-t3);4952  border-radius: 6px;4953  cursor: pointer;4954  transition: border-color 100ms, background 100ms;4955  min-width: 56px;4956}4957.peach-font-swatch:hover {4958  border-color: var(--peach-accent-dim);4959  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4960}4961.peach-font-swatch.is-active {4962  border-color: var(--peach-accent);4963  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4964}4965.peach-font-swatch-glyph {4966  font-size: 18px;4967  line-height: 1;4968  color: var(--peach-t0);4969}4970.peach-font-swatch[data-font-preview="cormorant-italic"] .peach-font-swatch-glyph {4971  font-family: "Cormorant Garamond", serif;4972  font-style: italic;4973  font-weight: 400;4974}4975.peach-font-swatch[data-font-preview="cormorant"] .peach-font-swatch-glyph {4976  font-family: "Cormorant Garamond", serif;4977  font-style: normal;4978  font-weight: 400;4979}4980.peach-font-swatch[data-font-preview="inter"] .peach-font-swatch-glyph {4981  font-family: "Inter Variable", "Inter", sans-serif;4982  font-style: normal;4983  font-weight: 400;4984}4985.peach-font-swatch[data-font-preview="system"] .peach-font-swatch-glyph {4986  font-family: system-ui, -apple-system, sans-serif;4987  font-style: normal;4988  font-weight: 400;4989}4990.peach-font-swatch-name {4991  font-family: var(--font-mono);4992  font-size: 8px;4993  letter-spacing: 0.06em;4994  color: var(--peach-t2);4995  text-transform: lowercase;4996}49974998.peach-pill-group {4999  display: flex;5000  gap: 6px;5001}5002.peach-pill-group .peach-btn.is-active {5003  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5004  border-color: var(--peach-accent);5005  color: var(--peach-t0);5006}50075008/* ── Card entry styles ───────────────────────────────────────── */5009.peach-card-number {5010  font-family: var(--peach-mono);5011  letter-spacing: 0.08em;5012}50135014.peach-card-network-badge {5015  font-size: 10px;5016  padding: 1px 5px;5017  border-radius: 4px;5018  border: 0.5px solid var(--peach-border);5019  color: var(--peach-text-dim);5020  margin-left: 6px;5021  vertical-align: middle;5022}50235024.peach-card-expiry-row {5025  display: flex;5026  align-items: center;5027  gap: 8px;5028}50295030.peach-card-expiry-sep {5031  color: var(--peach-text-dim);5032}50335034/* ── Pro tier — upgrade screen ──────────────────────────────── */5035.peach-pro-mark {5036  font-size: 9px;5037  color: var(--peach-accent);5038  margin-left: 6px;5039  vertical-align: super;5040  opacity: 0.7;5041}50425043.peach-pro-mini-badge {5044  display: block;5045  font-size: 10px;5046  font-style: italic;5047  color: var(--peach-accent);5048  letter-spacing: 0.04em;5049  margin-top: -2px;5050  padding-left: 2px;5051  opacity: 0.85;5052  text-align: center;5053}50545055.peach-wordmark-stack {5056  display: inline-flex;5057  flex-direction: column;5058  align-items: center;5059}50605061.peach-pro-upgrade {5062  display: flex;5063  flex-direction: column;5064  gap: 14px;5065  padding: 4px 4px 12px;5066}50675068.peach-pro-upgrade-hero {5069  display: flex;5070  flex-direction: column;5071  align-items: center;5072  gap: 4px;5073  padding: 8px 0 4px;5074}50755076.peach-pro-upgrade-mark {5077  width: 32px;5078  height: 32px;5079}50805081.peach-pro-upgrade-title {5082  font-family: var(--font-display, var(--font-ui));5083  font-size: 22px;5084  margin: 0;5085  color: var(--peach-t0);5086  letter-spacing: 0.01em;5087}50885089.peach-pro-upgrade-tagline {5090  margin: 0;5091  font-style: italic;5092  color: var(--peach-t2);5093  font-size: 12px;5094}50955096.peach-pro-features {5097  display: flex;5098  flex-direction: column;5099  gap: 10px;5100  border-top: 1px solid var(--peach-border);5101  border-bottom: 1px solid var(--peach-border);5102  padding: 14px 4px;5103}51045105.peach-pro-feature {5106  display: flex;5107  gap: 10px;5108  align-items: flex-start;5109}51105111.peach-pro-feature-mark {5112  color: var(--peach-accent);5113  font-size: 14px;5114  line-height: 1.2;5115  flex-shrink: 0;5116  display: inline-block;5117  transform-origin: center;5118}51195120.peach-pro-feature-text {5121  display: flex;5122  flex-direction: column;5123  gap: 2px;5124}51255126.peach-pro-feature-name {5127  font-size: 13px;5128  color: var(--peach-t0);5129}51305131.peach-pro-feature-desc {5132  font-size: 11px;5133  color: var(--peach-t2);5134}51355136.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5137  animation: peach-pulse-accent 600ms ease-out forwards;5138}51395140@keyframes peach-pulse-accent {5141  0%   { opacity: 1; transform: scale(1.4); }5142  100% { opacity: 0.7; transform: scale(1); }5143}51445145.peach-pro-pricing {5146  margin: 0;5147  text-align: center;5148  font-size: 12px;5149  color: var(--peach-t2);5150}51515152.peach-pro-upgrade-cta {5153  align-self: center;5154  width: auto;5155  min-width: 160px;5156  text-align: center;5157  text-decoration: none;5158  display: inline-block;5159  padding: 8px 20px;5160  font-size: 13px;5161}51625163.peach-pro-key-link {5164  background: transparent;5165  border: 0;5166  color: var(--peach-t2);5167  font-size: 11px;5168  cursor: pointer;5169  align-self: center;5170  padding: 4px 8px;5171}51725173.peach-pro-key-link:hover {5174  color: var(--peach-accent);5175}51765177.peach-pro-key-entry {5178  display: flex;5179  flex-direction: column;5180  gap: 8px;5181}51825183.peach-pro-key-input {5184  font-family: var(--font-mono, monospace);5185  letter-spacing: 0.06em;5186  text-align: center;5187}51885189.peach-pro-key-error {5190  margin: 0;5191  font-size: 11px;5192  color: var(--peach-breach, #e55);5193}51945195/* ── Pro tier — active state ─────────────────────────────────── */5196.peach-pro-active {5197  display: flex;5198  flex-direction: column;5199  gap: 8px;5200  padding: 14px 4px;5201}52025203.peach-pro-active-head {5204  display: flex;5205  align-items: center;5206  gap: 8px;5207}52085209.peach-pro-active-mark { font-size: 16px; line-height: 1; }52105211.peach-pro-active-title {5212  margin: 0;5213  font-size: 15px;5214  font-weight: 500;5215  color: var(--peach-t0);5216}52175218.peach-pro-active-since {5219  margin: 0;5220  font-size: 12px;5221  color: var(--peach-t2);5222}52235224.peach-pro-active-divider {5225  height: 1px;5226  background: var(--peach-border);5227  margin: 8px 0 4px;5228}52295230.peach-pro-active-thanks {5231  margin: 0;5232  font-size: 12px;5233  font-style: italic;5234  color: var(--peach-t2);5235}52365237.peach-pro-deactivate {5238  align-self: flex-end;5239  background: transparent;5240  border: 0;5241  color: var(--peach-t2);5242  font-size: 11px;5243  cursor: pointer;5244  padding: 6px 0;5245  margin-top: 4px;5246}52475248.peach-pro-deactivate:hover {5249  color: var(--peach-accent);5250}52515252.peach-pro-deactivate:disabled {5253  opacity: 0.6;5254  cursor: default;5255}52565257/* ── Pro advanced health remediation queue ──────────────────── */5258.peach-health-pro-queue {5259  display: flex;5260  flex-direction: column;5261  gap: 10px;5262  padding: 12px;5263  margin: 0 0 12px;5264  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5265  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5266  border-radius: 10px;5267}52685269.peach-health-pro-queue-head {5270  display: flex;5271  justify-content: space-between;5272  align-items: baseline;5273}52745275.peach-health-pro-queue-title {5276  font-size: 12px;5277  font-weight: 500;5278  letter-spacing: 0.04em;5279  text-transform: uppercase;5280  color: var(--peach-accent);5281}52825283.peach-health-pro-queue-score {5284  font-size: 11px;5285  color: var(--peach-t2);5286}52875288.peach-health-pro-row {5289  display: flex;5290  gap: 10px;5291  align-items: center;5292  padding: 8px 0;5293  border-top: 1px solid var(--peach-border);5294}52955296.peach-health-pro-row-info {5297  flex: 1;5298  display: flex;5299  flex-direction: column;5300  gap: 4px;5301  min-width: 0;5302}53035304.peach-health-pro-row-name {5305  font-size: 13px;5306  color: var(--peach-t0);5307  overflow: hidden;5308  text-overflow: ellipsis;5309  white-space: nowrap;5310}53115312.peach-health-pro-row-meta {5313  font-size: 11px;5314  color: var(--peach-t2);5315}53165317.peach-health-pro-bar {5318  height: 2px;5319  background: var(--peach-border);5320  border-radius: 2px;5321  overflow: hidden;5322  margin-top: 2px;5323}53245325.peach-health-pro-bar-fill {5326  height: 100%;5327  background: var(--peach-accent);5328  transition: width 200ms ease-out;5329}53305331/* ── Pro activation celebration ── */5332@keyframes peach-pro-bloom {5333  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5334  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5335                 drop-shadow(0 0 48px var(--peach-glow)); }5336  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5337}53385339@keyframes peach-pro-wordmark-in {5340  from { opacity: 0; transform: translateY(4px); }5341  to   { opacity: 1; transform: translateY(0); }5342}53435344@keyframes peach-pro-fade-out {5345  from { opacity: 1; }5346  to   { opacity: 0; }5347}53485349.peach-pro-celebration {5350  background:5351    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5352    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5353    var(--peach-bg);5354  border: 1px solid var(--peach-t3);5355  box-shadow:5356    0 2px 8px rgba(0,0,0,0.55),5357    0 14px 48px rgba(0,0,0,0.7),5358    0 0 0 1px rgba(240,232,216,0.04);5359  overflow: hidden;5360  width: 320px;5361  height: 520px;5362  display: flex;5363  flex-direction: column;5364  align-items: center;5365  justify-content: center;5366  gap: 8px;5367  padding: 32px 24px;5368  text-align: center;5369}53705371.peach-pro-celebration.is-leaving {5372  animation: peach-pro-fade-out 400ms ease forwards;5373}53745375.peach-pro-bloom-target {5376  font-size: 48px;5377  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5378  margin-bottom: 12px;5379}53805381.peach-pro-wordmark {5382  font-family: var(--font-display);5383  font-size: 22px;5384  font-style: italic;5385  font-weight: 400;5386  color: var(--peach-accent);5387  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5388}53895390.peach-pro-thankyou {5391  font-size: 12px;5392  font-style: italic;5393  color: var(--peach-t2);5394  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5395}539653975398/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5399.peach-pro-notice-banner {5400  display: flex;5401  align-items: center;5402  gap: 8px;5403  padding: 7px 12px;5404  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5405  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5406  font-size: 11px;5407  color: var(--peach-t2);5408  font-family: "IBM Plex Mono", monospace;5409  flex-shrink: 0;5410}54115412.peach-pro-notice-link {5413  background: none;5414  border: none;5415  padding: 0;5416  cursor: pointer;5417  font-size: 11px;5418  color: var(--peach-accent);5419  font-family: "IBM Plex Mono", monospace;5420  margin-left: auto;5421  white-space: nowrap;5422}54235424.peach-pro-notice-close {5425  background: none;5426  border: none;5427  padding: 0 0 0 4px;5428  cursor: pointer;5429  font-size: 10px;5430  color: var(--peach-t3);5431  line-height: 1;5432}54335434/* ─── First-run onboarding ──────────────────────────────────────────────5435   Three-card welcome shown once before vault creation. The PeachScript5436   rune background drifts behind everything at very low opacity — it's5437   atmosphere, not focus. The cards themselves use the same panel5438   language as the rest of the popup so the transition into NewVault is5439   continuous, not a jarring switch of visual register. */54405441.peach-onboarding {5442  position: relative;5443  display: flex;5444  flex-direction: column;5445  width: 100%;5446  height: 100%;5447  padding: 16px 16px 18px;5448  box-sizing: border-box;5449  overflow: hidden;5450  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;5451}54525453.peach-onboarding.is-completing {5454  animation: peach-onboard-exit 200ms ease-out forwards;5455}54565457.peach-rune-background {5458  position: absolute;5459  inset: 0;5460  width: 100%;5461  height: 100%;5462  pointer-events: none;5463  z-index: 0;5464  transition: opacity 500ms ease-out;5465}54665467.peach-onboarding.is-completing .peach-rune-background {5468  opacity: 0;5469}54705471.peach-onboarding-header {5472  position: relative;5473  z-index: 1;5474  display: flex;5475  align-items: center;5476  margin-bottom: 14px;5477}54785479.peach-onboarding-card {5480  position: relative;5481  z-index: 1;5482  flex: 1;5483  display: flex;5484  flex-direction: column;5485  gap: 10px;5486  padding: 22px 20px;5487  border-radius: 16px;5488  border: 1px solid var(--peach-t3);5489  background:5490    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));5491  box-shadow:5492    inset 0 1px 0 rgba(240, 232, 216, 0.04),5493    0 12px 28px rgba(0, 0, 0, 0.12);5494  cursor: pointer;5495  user-select: none;5496  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;5497}54985499.peach-onboarding-card.is-exiting {5500  animation: peach-card-out 120ms ease-in forwards;5501  pointer-events: none;5502}55035504.peach-onboarding-card-headline {5505  margin: 0;5506  font-family: var(--font-display);5507  font-style: italic;5508  font-weight: 400;5509  font-size: 22px;5510  line-height: 1.05;5511  color: var(--peach-t0);5512  white-space: pre-line;5513}55145515.peach-onboarding-divider {5516  margin: 4px 0 6px;5517  border: 0;5518  border-top: 1px solid var(--peach-t3);5519  width: 100%;5520}55215522.peach-onboarding-body {5523  margin: 0;5524  font-size: 13px;5525  line-height: 1.6;5526  color: var(--peach-t1);5527}55285529.peach-onboarding-warning {5530  display: flex;5531  align-items: flex-start;5532  gap: 8px;5533  margin: 6px 0 0;5534  padding-top: 8px;5535  border-top: 1px dashed var(--peach-t3);5536  font-size: 13px;5537  line-height: 1.5;5538  color: var(--peach-t1);5539}55405541.peach-onboarding-warning-icon {5542  color: var(--peach-accent);5543  font-size: 13px;5544  line-height: 1.5;5545  flex: 0 0 auto;5546}55475548.peach-onboarding-nav {5549  position: relative;5550  z-index: 1;5551  display: flex;5552  align-items: center;5553  justify-content: space-between;5554  margin-top: 12px;5555  padding: 0 4px;5556}55575558.peach-onboarding-dots {5559  display: flex;5560  align-items: center;5561  gap: 6px;5562}55635564.peach-onboarding-dot {5565  width: 6px;5566  height: 6px;5567  border-radius: 50%;5568  background: var(--peach-t2);5569  transition: width 200ms ease, height 200ms ease, background 200ms ease;5570}55715572.peach-onboarding-dot.is-active {5573  width: 8px;5574  height: 8px;5575  background: var(--peach-accent);5576}55775578.peach-onboarding-next {5579  background: none;5580  border: none;5581  padding: 4px 0;5582  cursor: pointer;5583  font-family: "IBM Plex Mono", monospace;5584  font-size: 11px;5585  letter-spacing: 0.04em;5586  color: var(--peach-t1);5587  transition: color 150ms ease;5588}55895590.peach-onboarding-next:hover {5591  color: var(--peach-t0);5592}55935594.peach-onboarding-next:disabled {5595  opacity: 0.5;5596  cursor: default;5597}55985599@keyframes peach-onboard-enter {5600  from { opacity: 0; transform: translateY(20px); }5601  to   { opacity: 1; transform: translateY(0); }5602}56035604@keyframes peach-onboard-exit {5605  from { opacity: 1; }5606  to   { opacity: 0; }5607}56085609@keyframes peach-card-in {5610  from { opacity: 0; transform: translateX(12px); }5611  to   { opacity: 1; transform: translateX(0); }5612}56135614@keyframes peach-card-out {5615  from { opacity: 1; transform: translateX(0); }5616  to   { opacity: 0; transform: translateX(-12px); }5617}56185619/* ─── New vault screen — matched to onboarding card language ─────────── */56205621.peach-newvault {5622  position: relative;5623  display: flex;5624  flex-direction: column;5625  gap: 12px;5626  padding: 16px 16px 18px;5627  overflow: hidden;5628}56295630/* Suppress the warm-blob ambient art inherited from .lock-screen — the5631   new vault card now carries the visual weight. */5632.peach-newvault::before {5633  content: none;5634}56355636.peach-newvault-header {5637  position: relative;5638  z-index: 2;5639  display: flex;5640  align-items: center;5641  margin-bottom: 2px;5642}56435644.peach-newvault-mark {5645  position: absolute;5646  right: -12px;5647  top: 6px;5648  width: 110px;5649  height: 110px;5650  pointer-events: none;5651  opacity: 0.10;5652  filter: saturate(0.9);5653  z-index: 0;5654}5655.peach-newvault-mark-art {5656  width: 100%;5657  height: 100%;5658}5659.peach-newvault-mark-art path:nth-child(2),5660.peach-newvault-mark-art path:nth-child(3) {5661  stroke: rgba(123, 144, 96, 0.88);5662  fill: rgba(123, 144, 96, 0.88);5663}56645665.peach-newvault-card {5666  position: relative;5667  z-index: 1;5668  display: flex;5669  flex-direction: column;5670  gap: 12px;5671  padding: 22px 20px 18px;5672  border-radius: 16px;5673  border: 1px solid var(--peach-t3);5674  background:5675    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));5676  box-shadow:5677    inset 0 1px 0 rgba(240, 232, 216, 0.04),5678    0 12px 28px rgba(0, 0, 0, 0.12);5679  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;5680}56815682.peach-newvault-headline {5683  margin: 0;5684  font-family: var(--font-display);5685  font-style: italic;5686  font-weight: 400;5687  font-size: 24px;5688  line-height: 1.05;5689  color: var(--peach-t0);5690  white-space: pre-line;5691}56925693.peach-newvault-divider {5694  margin: 2px 0 4px;5695  border: 0;5696  border-top: 1px solid var(--peach-t3);5697  width: 100%;5698}56995700.peach-newvault-field {5701  display: flex;5702  flex-direction: column;5703  gap: 4px;5704}57055706.peach-newvault-label-row {5707  display: flex;5708  align-items: center;5709  justify-content: space-between;5710}57115712/* Monospace input scaled to the card. Replaces the 22px unlock-input5713   so the placeholder no longer overflows and the field reads as part5714   of the same surface as the body copy. */5715.peach-newvault-input {5716  font-size: 14px;5717  letter-spacing: 0.18em;5718  padding: 8px 0;5719}5720.peach-newvault-input::placeholder {5721  letter-spacing: 0.18em;5722  color: var(--peach-t2);5723}57245725.peach-newvault-hint {5726  margin: 2px 0 0;5727  font-family: "IBM Plex Mono", monospace;5728  font-size: 10px;5729  color: var(--peach-t2);5730  letter-spacing: 0.04em;5731}57325733.peach-newvault-submit {5734  margin-top: 4px;5735}57365737.peach-newvault-warning {5738  display: flex;5739  align-items: flex-start;5740  gap: 8px;5741  margin: 4px 0 0;5742  padding-top: 10px;5743  border-top: 1px dashed var(--peach-t3);5744  font-size: 12px;5745  line-height: 1.5;5746  color: var(--peach-t1);5747}57485749.peach-newvault-warning-icon {5750  color: var(--peach-accent);5751  font-size: 13px;5752  line-height: 1.4;5753  flex: 0 0 auto;5754}57555756.peach-newvault-footer {5757  position: relative;5758  z-index: 1;5759  display: flex;5760  flex-direction: column;5761  gap: 4px;5762  padding: 4px 4px 0;5763}