popup.css

156.0 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 10px;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: var(--font-display);168  font-size: 15px;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }209.peach-status-pip {210  width: 5px;211  height: 5px;212  border-radius: 50%;213  background: var(--peach-t3);214  display: inline-flex;215  flex-shrink: 0;216  transition: background 400ms ease, box-shadow 400ms ease;217}218.peach-chrome-actions { display: flex; gap: 6px; }219220/* Shell body */221.peach-shell-body {222  position: relative;223  display: grid;224  grid-template-rows: 1fr auto;225  min-height: 0;226  min-width: 0;227  width: 100%;228  overflow: hidden;229  height: 100%;230}231.peach-shell-veil {232  position: absolute; inset: 0;233  background: #000; opacity: 0;234  pointer-events: none; z-index: 1;235}236.peach-shell[data-motion-phase="enter"] .peach-shell-body {237  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;238}239.peach-shell[data-motion-phase="exit"] .peach-shell-veil {240  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;241}242243/* Content frame */244.peach-content-frame {245  display: grid;246  grid-template-rows: 1fr auto;247  grid-template-columns: minmax(0, 1fr);248  align-content: start;249  min-height: 0;250  min-width: 0;251  overflow: hidden;252  transition: opacity 80ms ease, transform 80ms ease;253}254.peach-content-frame.navigating {255  opacity: 0.93;256  transform: translateX(2px);257}258.peach-content-frame[data-content-phase="enter"] {259  animation: peach-content-enter 135ms ease-out both;260}261.peach-content-frame[data-content-phase="exit"] {262  animation: peach-content-exit 95ms ease-in forwards;263}264.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }265266/* Stage */267.peach-stage {268  padding: 10px 20px 12px;269  display: grid;270  gap: 12px;271  align-content: start;272  min-width: 0;273  min-height: 0;274  max-width: 100%;275  overflow-y: auto;276  overflow-x: hidden;277  scrollbar-width: none;278  -ms-overflow-style: none;279  overscroll-behavior: contain;280}281.peach-stage::-webkit-scrollbar { display: none; }282283/* Entry name */284.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }285.peach-entry-header {286  position: relative;287  z-index: 1;288  display: flex;289  align-items: flex-start;290  gap: 6px;291  min-width: 0;292}293.peach-entry-header-name {294  flex: 1;295  min-width: 0;296}297.peach-entry-name {298  margin: 0;299  padding-bottom: 0.12em;300  font-family: var(--font-display);301  font-style: italic; font-weight: 400;302  font-size: 44px; line-height: 0.95;303  color: var(--peach-t0);304  display: -webkit-box;305  -webkit-line-clamp: 2;306  -webkit-box-orient: vertical;307  overflow: hidden;308  text-wrap: balance;309}310.peach-entry-name--lg { font-size: 40px; }311.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }312.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }313.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }314315/* Trash icon in entry header */316.peach-entry-trash-btn {317  flex-shrink: 0;318  padding: 4px;319  margin-top: 4px;320  background: transparent;321  border: none;322  cursor: pointer;323  color: var(--peach-t2);324  border-radius: 4px;325  transition: color 140ms ease, background 140ms ease;326  display: flex;327  align-items: center;328  justify-content: center;329}330.peach-entry-trash-btn:hover {331  color: var(--peach-t1);332  background: var(--peach-t3);333}334.peach-entry-trash-confirm {335  display: flex;336  align-items: center;337  gap: 6px;338  flex-shrink: 0;339  margin-top: 6px;340  flex-wrap: nowrap;341}342.peach-entry-trash-confirm-label {343  font-family: var(--font-mono);344  font-size: 9px;345  letter-spacing: 0.1em;346  color: var(--peach-t2);347  white-space: nowrap;348}349.peach-entry-name-button {350  padding: 0;351  background: transparent;352  text-align: left;353  cursor: pointer;354  max-width: 100%;355  overflow: hidden;356  display: block;357}358.peach-entry-name-char {359  display: inline-block;360  white-space: pre;361  opacity: 0;362  transform: translateY(0.22em);363  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;364  animation-delay: calc(var(--char-index, 0) * 20ms);365}366367/* Domain */368.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }369.peach-domain-row {370  width: 100%; border: 0; background: transparent; color: inherit;371  padding: 0; display: flex; justify-content: space-between; align-items: baseline;372  cursor: default;373}374.peach-domain-value {375  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;376  font-size: 10px; font-style: italic;377  letter-spacing: 0.12em; color: var(--peach-t1);378}379380/* Fields */381.peach-fields { display: grid; gap: 10px; }382.peach-field-card { display: grid; gap: 7px; }383.peach-label {384  font-family: Inter, system-ui, sans-serif;385  text-transform: uppercase; letter-spacing: 0.2em;386  font-size: 8px; color: var(--peach-t2);387}388.peach-field-value-row {389  display: flex; justify-content: space-between;390  align-items: center; gap: 8px;391  min-width: 0;392}393.peach-field-value {394  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;395  font-size: 13px; color: var(--peach-t1);396  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;397  flex: 1;398  min-width: 0;399}400.peach-password-value {401  display: inline-flex;402  align-items: center;403  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;404  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);405  overflow: hidden;406  text-overflow: ellipsis;407  white-space: nowrap;408  flex: 1;409  min-width: 0;410  max-width: 100%;411}412.peach-password-value.is-revealed {413  font-size: 14px;414  letter-spacing: 0.08em;415}416.peach-password-text,417.peach-password-mask {418  display: block;419  width: 100%;420  overflow: hidden;421  white-space: nowrap;422  /* Render as uniform mid-line bullets, not baseline periods */423  font-family: Inter, system-ui, sans-serif;424  font-size: 10px;425  letter-spacing: 3px;426  user-select: none;427}428.peach-field-actions { display: flex; gap: 4px; align-items: center; }429.peach-password-strength { display: flex; align-items: center; gap: 8px; }430.peach-strength-bar { display: flex; gap: 3px; }431.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }432.peach-strength-label {433  font-family: "IBM Plex Mono", monospace;434  font-style: italic;435  font-size: 9px;436  font-weight: 300;437  min-width: 36px;438  text-align: right;439  color: var(--peach-t2);440  letter-spacing: 0.06em;441}442443.peach-strength-hairline {444  display: flex;445  align-items: center;446  gap: 10px;447  margin-top: -2px;448}449450.peach-strength-hairline-track {451  flex: 1;452  height: 3px;453  border-radius: 2px;454  background: var(--peach-s2);455  overflow: hidden;456}457458.peach-strength-hairline-fill {459  height: 100%;460  border-radius: 2px;461  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),462    background 400ms ease;463}464465/* Note content (display) */466.peach-note-content {467  border-top: 1px solid var(--peach-t3);468  padding-top: 10px;469  font-family: var(--font-display);470  font-size: 15px;471  line-height: 1.75;472  color: var(--peach-t1);473}474475/* ── Inline editing ─────────────────────────────────────────────────── */476477/* Clickable display values */478.peach-inline-clickable {479  cursor: text;480  border-radius: 3px;481  transition: background 150ms ease;482}483.peach-inline-clickable:hover {484  background: rgba(240, 232, 216, 0.05);485}486487/* Subtle "edit" hint that appears on hover */488.peach-inline-edit-hint {489  font-family: Inter, system-ui, sans-serif;490  font-size: 9px;491  text-transform: uppercase;492  letter-spacing: 0.14em;493  color: var(--peach-t2);494  opacity: 0;495  transition: opacity 120ms ease;496  pointer-events: none;497  margin-left: 6px;498  flex-shrink: 0;499}500.peach-domain-row:hover .peach-inline-edit-hint {501  opacity: 1;502}503504/* Title editing */505.peach-inline-title-wrap {506  display: flex;507  flex-direction: column;508  gap: 6px;509}510.peach-inline-title-input {511  font-family: var(--font-display);512  font-style: italic;513  font-weight: 400;514  font-size: 40px;515  line-height: 0.95;516  color: var(--peach-t0);517  background: transparent;518  border: none;519  border-bottom: 1px solid var(--peach-accent);520  outline: none;521  width: 100%;522  padding: 2px 0;523}524525/* Generic inline field */526.peach-inline-field-wrap {527  display: flex;528  flex-direction: column;529  gap: 6px;530}531.peach-inline-input {532  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;533  font-size: 13px;534  color: var(--peach-t0);535  background: transparent;536  border: none;537  border-bottom: 1px solid var(--peach-accent);538  outline: none;539  width: 100%;540  padding: 3px 0;541}542.peach-inline-textarea {543  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;544  font-size: 11px;545  line-height: 1.7;546  color: var(--peach-t0);547  background: rgba(240, 232, 216, 0.04);548  border: 1px solid var(--peach-accent);549  border-radius: 4px;550  outline: none;551  width: 100%;552  padding: 8px;553  resize: vertical;554  min-height: 80px;555}556557/* Save / cancel row */558.peach-inline-actions {559  display: flex;560  gap: 6px;561  align-items: center;562}563.peach-inline-save-btn,564.peach-inline-cancel-btn {565  display: inline-flex;566  align-items: center;567  justify-content: center;568  width: 26px;569  height: 26px;570  border-radius: 4px;571  border: none;572  cursor: pointer;573  transition: background 140ms ease, opacity 140ms ease;574  flex-shrink: 0;575}576.peach-inline-save-btn {577  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);578  color: var(--peach-accent);579}580.peach-inline-save-btn:hover:not(:disabled) {581  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);582}583.peach-inline-cancel-btn {584  background: rgba(240, 232, 216, 0.06);585  color: var(--peach-t2);586}587.peach-inline-cancel-btn:hover:not(:disabled) {588  background: rgba(240, 232, 216, 0.12);589  color: var(--peach-t1);590}591.peach-inline-save-btn:disabled,592.peach-inline-cancel-btn:disabled {593  opacity: 0.4;594  cursor: not-allowed;595}596597/* Inline password generator wrapper */598.peach-inline-generator-wrap {599  margin-top: 10px;600  padding-top: 10px;601  border-top: 1px solid var(--peach-t3);602  display: flex;603  flex-direction: column;604  gap: 8px;605}606.peach-inline-generator-cancel {607  align-self: flex-start;608  font-size: 11px;609  color: var(--peach-t2);610}611612/* "is-editing" card state */613.peach-field-card.is-editing {614  background: rgba(240, 232, 216, 0.02);615  border-radius: 6px;616  padding: 8px;617  margin: -8px;618}619620/* Inline tag editor on Entry detail view */621.peach-inline-tag-editor {622  display: flex;623  flex-direction: column;624  gap: 6px;625}626627/* Quiet inline "+ add X" link in the entry detail body */628.peach-entry-add-link {629  justify-self: start;630  margin-top: 8px;631}632633/* Additional URLs editor revealed by clicking the URL field */634.peach-additional-urls {635  display: flex;636  flex-direction: column;637  gap: 6px;638  margin-top: 8px;639}640.peach-additional-urls-label {641  font-size: 9px;642  letter-spacing: 0.1em;643  text-transform: uppercase;644  color: var(--peach-t2);645  margin-bottom: 2px;646}647.peach-additional-url-row {648  display: flex;649  align-items: center;650  gap: 6px;651}652.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }653.peach-additional-url-remove {654  background: transparent;655  border: 1px solid var(--peach-t3);656  color: var(--peach-t2);657  width: 22px;658  height: 22px;659  border-radius: 4px;660  cursor: pointer;661  font-size: 14px;662  line-height: 1;663  display: inline-flex;664  align-items: center;665  justify-content: center;666  flex-shrink: 0;667  transition: color 120ms ease, border-color 120ms ease;668}669.peach-additional-url-remove:hover:not(:disabled) {670  color: var(--peach-accent);671  border-color: var(--peach-border-accent);672}673.peach-additional-urls-add { align-self: flex-start; }674675/* Delete row */676.peach-entry-delete-row {677  display: flex;678  align-items: center;679  gap: 8px;680  padding-top: 18px;681  margin-top: 8px;682  border-top: 1px solid var(--peach-t3);683}684.peach-delete-btn {685  font-size: 11px;686  color: var(--peach-t2);687  padding: 4px 0;688}689.peach-delete-confirm-text {690  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;691  font-size: 11px;692  font-style: italic;693  color: var(--peach-t2);694  flex-shrink: 0;695}696697/* TOTP band */698.peach-totp-band {699  border-top: 1px solid var(--peach-t3);700  padding: 12px 20px 14px;701  position: relative;702  display: grid;703  grid-template-columns: 1fr auto;704  gap: 10px;705}706.peach-totp-main {707  min-width: 0;708  cursor: pointer;709  user-select: none;710}711.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }712.peach-totp-code-row {713  display: flex;714  align-items: flex-end;715  gap: 10px;716  min-width: 0;717}718.peach-totp-code {719  margin: 2px 0 0;720  font-family: var(--font-display);721  font-style: italic;722  font-weight: 300;723  font-size: 38px; color: var(--peach-accent);724  line-height: 0.95; min-height: 1em;725  min-width: 0;726}727.peach-totp-code-text {728  display: inline-flex;729  overflow: hidden;730  text-overflow: ellipsis;731  white-space: nowrap;732}733.peach-totp-copy-btn {734  margin-bottom: 2px;735  flex-shrink: 0;736  border-color: transparent;737}738.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }739.peach-totp-countdown {740  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;741  font-size: 22px; color: var(--peach-t1);742}743.peach-totp-ring { transform: rotate(-90deg); }744.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }745.peach-totp-ring-progress {746  fill: none; stroke: var(--peach-accent); stroke-width: 2;747  stroke-linecap: round;748  transition: stroke-dashoffset 1s linear, stroke 500ms ease;749}750/* Search bar */751.peach-search-wrap {752  border-top: 1px solid var(--peach-t3);753  background: var(--peach-s1);754  min-height: 54px; position: relative;755  box-shadow: inset 0 6px 18px transparent;756  transition: box-shadow 700ms ease;757}758.peach-search-wrap::before {759  content: "";760  position: absolute;761  left: 0;762  top: 0;763  height: 2px;764  width: var(--peach-totp-progress, 0%);765  background: var(--peach-accent);766  opacity: 0;767  transition: width 1s linear, opacity 180ms ease;768  pointer-events: none;769}770.peach-shell[data-totp-active="true"] .peach-search-wrap::before {771  opacity: 0.9;772}773.peach-shell[data-totp-active="true"] .peach-search-wrap {774  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);775}776777@keyframes peach-totp-code-flare {778  0%   { filter: brightness(1); }779  25%  { filter: brightness(1.3); }780  100% { filter: brightness(1); }781}782.peach-totp-code.is-hot {783  animation: peach-totp-code-flare 3000ms ease-in-out both;784}785.peach-search-bar {786  min-height: 54px;787  display: grid;788  grid-template-columns: auto minmax(0, 1fr) auto;789  align-items: center;790  gap: 8px; padding: 0 9px 0 12px;791}792.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }793.peach-search-input {794  border: 0; background: transparent; color: var(--peach-t0);795  font-family: var(--font-display);796  font-style: italic; font-size: 18px;797  outline: none; width: 100%; min-width: 0; padding: 0;798  caret-color: var(--peach-accent);799}800.peach-search-input::placeholder { color: var(--peach-t2); }801.peach-search-meta {802  display: grid;803  grid-auto-flow: column;804  align-items: center;805  justify-content: end;806  gap: 6px;807  min-width: max-content;808}809.peach-search-counter {810  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;811  font-size: 10px; color: var(--peach-t2);812  display: inline-flex;813  align-items: center;814  line-height: 1;815}816.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }817818/* Buttons */819.peach-btn {820  border: 1px solid transparent; border-radius: 12px;821  background: transparent; color: var(--peach-t0);822  font-family: Inter, system-ui, sans-serif;823  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;824  cursor: pointer;825  transition:826    background-color var(--peach-dur-80) var(--peach-curve-arrival),827    color var(--peach-dur-80) var(--peach-curve-arrival),828    border-color var(--peach-dur-150) var(--peach-curve-arrival);829}830.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }831.peach-btn:disabled {832  opacity: 0.45;833  cursor: not-allowed;834}835.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }836.peach-btn--md { min-height: 38px; }837.peach-btn--accent {838  background: var(--peach-accent);839  color: rgba(0,0,0,0.78);840  box-shadow:841    0 1px 0 rgba(255,255,255,0.08) inset,842    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),843    0 3px 16px var(--peach-glow),844    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);845}846.peach-btn--accent:hover:not(:disabled) {847  background: var(--peach-accent);848  filter: brightness(1.10) saturate(1.05);849  box-shadow:850    0 1px 0 rgba(255,255,255,0.10) inset,851    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),852    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),853    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);854}855.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }856.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }857.peach-icon-btn {858  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;859  display: inline-flex; align-items: center; justify-content: center;860}861862.peach-btn:focus-visible {863  outline: none;864  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);865}866867/* Lock button */868.peach-lock-icon { transform-origin: center; }869.peach-lock-btn.is-locking { color: var(--peach-accent); }870.peach-lock-btn.is-locking .peach-lock-icon {871  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);872}873874/* Copy button */875.peach-copy-btn {876  position: relative; overflow: hidden;877  color: var(--peach-t2); border-color: var(--peach-t3);878}879.peach-copy-icon {880  display: inline-flex; align-items: center; justify-content: center;881  position: relative; z-index: 1;882}883.peach-copy-icon-svg { display: block; }884.peach-copy-sheen {885  position: absolute; inset: 0;886  background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 30%, color-mix(in srgb, var(--peach-accent) 8%, transparent) 100%);887  opacity: 0; transform: scaleX(0.15); transform-origin: left center;888}889.peach-copy-btn.is-copied {890  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;891  box-shadow:892    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),893    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),894    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);895}896.peach-copy-btn.is-copied .peach-copy-icon {897  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;898}899.peach-copy-btn.is-copied .peach-copy-sheen {900  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;901}902.peach-copy-btn.is-retreat {903  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;904}905.peach-copy-btn.is-retreat .peach-copy-sheen {906  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;907}908.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }909.peach-copy-drain-bar {910  display: block; width: 100%; height: 100%;911  background: var(--peach-accent); opacity: 0.7;912  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;913}914915/* Unlock screen elements */916.peach-unlock-headline {917  margin: 2px 0 0;918  font-family: var(--font-display);919  font-size: 52px; line-height: 0.95;920  font-style: italic; font-weight: 400;921}922.peach-subline {923  margin: 0;924  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;925  font-size: 10px; color: var(--peach-t2); font-style: italic;926}927.peach-subline--lock {928  max-width: 248px;929  line-height: 1.5;930}931.peach-underline-input {932  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);933  padding: 6px 0; background: transparent; color: var(--peach-t0);934  outline: none;935  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;936  font-size: 13px;937  caret-color: var(--peach-accent);938}939.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }940.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }941.peach-hint {942  margin: 0;943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;944  font-size: 10px; color: var(--peach-t2);945}946.peach-unlock-footer {947  margin-top: 4px; display: flex; align-items: center; gap: 7px;948  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;949  font-size: 10px; color: var(--peach-t2);950}951.peach-unlock-footer--lock {952  padding-top: 2px;953}954955/* Breach badge */956.peach-breach-badge {957  display: flex;958  position: relative;959  z-index: 1;960  align-items: center;961  gap: 7px;962  font-size: 9px;963  color: var(--peach-breach);964  padding: 5px 10px;965  margin-bottom: 4px;966  border-radius: 8px;967  background: rgba(220, 80, 60, 0.07);968  border: 1px solid rgba(220, 80, 60, 0.18);969  letter-spacing: 0.04em;970}971972.peach-breach-action {973  margin-left: auto;974  font-size: 10px;975  padding: 3px 8px;976}977978.peach-password-value.is-breached {979  color: rgba(220, 80, 60, 0.75);980  border-bottom: 1px solid rgba(220, 80, 60, 0.22);981}982983/* ── Overlay views ─────────────────────────────────────────────────── */984.peach-overlay-view {985  position: absolute;986  inset: 0;987  display: flex;988  flex-direction: column;989  background:990    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),991    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),992    var(--peach-bg);993  z-index: 2;994  overflow: hidden;995  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;996}997@keyframes overlay-in {998  from { opacity: 0; transform: translateY(8px); }999  to   { opacity: 1; transform: translateY(0); }1000}1001.peach-overlay-view.ov-enter-up {1002  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1003}1004.peach-overlay-view.ov-exit-up {1005  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1006}1007.peach-overlay-view.ov-enter-right {1008  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1009}1010.peach-overlay-view.ov-exit-right {1011  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1012}10131014@keyframes ov-enter-up {1015  from { opacity: 0; transform: translateY(18px); }1016  to   { opacity: 1; transform: translateY(0); }1017}1018@keyframes ov-exit-up {1019  from { opacity: 1; transform: translateY(0); }1020  to   { opacity: 0; transform: translateY(-12px); }1021}1022@keyframes ov-enter-right {1023  from { opacity: 0; transform: translateX(20px); }1024  to   { opacity: 1; transform: translateX(0); }1025}1026@keyframes ov-exit-right {1027  from { opacity: 1; transform: translateX(0); }1028  to   { opacity: 0; transform: translateX(20px); }1029}10301031/* Overlay shared header */1032.peach-overlay-header {1033  padding: 10px 12px;1034  display: flex;1035  align-items: center;1036  gap: 8px;1037  border-bottom: 1px solid var(--peach-t3);1038  flex-shrink: 0;1039}1040.peach-overlay-title {1041  font-family: "IBM Plex Mono", monospace;1042  font-size: 9px;1043  text-transform: uppercase;1044  letter-spacing: 0.18em;1045  color: var(--peach-t2);1046  flex: 1;1047  text-align: center;1048}10491050.peach-overlay-card {1051  background: var(--peach-s1);1052  border: 1px solid var(--peach-t3);1053  border-radius: 12px;1054  overflow: hidden;1055  width: 100%;1056}10571058.peach-onboarding-alt-actions {1059  display: flex;1060  flex-direction: column;1061  gap: 4px;1062  padding: 0;1063}10641065.peach-settings-copy {1066  margin: 0 0 10px;1067  font-size: 11px;1068  line-height: 1.5;1069  color: var(--peach-t2);1070}10711072.peach-settings-copy strong {1073  color: var(--peach-t0);1074}10751076.peach-settings-copy--spacious {1077  margin-bottom: 12px;1078}10791080.peach-settings-copy--result {1081  color: var(--peach-accent);1082  font-size: 13px;1083  text-align: center;1084  padding: 8px 0;1085}10861087.peach-settings-copy--danger {1088  color: var(--peach-breach);1089}10901091.peach-settings-copy--success {1092  color: var(--peach-accent);1093}10941095.peach-inline-feedback {1096  font-size: 11px;1097  margin: 10px 0 0;1098}10991100.peach-inline-feedback--ok {1101  color: var(--peach-accent);1102}11031104.peach-inline-feedback--error {1105  color: var(--peach-breach);1106}11071108.peach-inline-feedback--muted {1109  color: var(--peach-t2);1110  font-size: 10px;1111  margin: 4px 0;1112}11131114.peach-inline-feedback--spaced {1115  margin-top: 12px;1116}11171118.peach-settings-actions--row {1119  display: flex;1120  gap: 6px;1121}11221123.peach-settings-actions--end {1124  margin-top: 14px;1125  justify-content: flex-end;1126}11271128.peach-settings-stack {1129  display: flex;1130  flex-direction: column;1131  gap: 6px;1132}11331134.peach-settings-stack--tight {1135  gap: 4px;1136}11371138.peach-settings-stack--spacious {1139  gap: 8px;1140}11411142.peach-settings-input {1143  width: 100%;1144  box-sizing: border-box;1145  padding: 8px 10px;1146  background: rgba(0, 0, 0, 0.22);1147  border: 1px solid transparent;1148  border-radius: 6px;1149  color: var(--peach-t0);1150  font-family: var(--font-ui);1151  font-size: 12px;1152  outline: none;1153  transition: border-color 120ms ease, background 120ms ease;1154}11551156.peach-settings-input:focus {1157  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1158  background: rgba(0, 0, 0, 0.28);1159}11601161.peach-settings-input[type="password"] {1162  font-family: var(--font-mono);1163  letter-spacing: 0.04em;1164}11651166.peach-hidden-file-input {1167  display: none;1168}11691170.peach-checkbox-note {1171  display: flex;1172  align-items: flex-start;1173  gap: 8px;1174  font-size: 11px;1175  color: var(--peach-t1);1176  cursor: pointer;1177  margin: 12px 0;1178}11791180.peach-checkbox-note input {1181  margin-top: 1px;1182}11831184.peach-danger-notice {1185  background: rgba(220, 80, 60, 0.08);1186  border: 1px solid rgba(220, 80, 60, 0.2);1187  border-radius: 6px;1188  padding: 9px 11px;1189  font-size: 11px;1190  color: var(--peach-t1);1191  line-height: 1.5;1192}11931194.peach-info-notice {1195  font-size: 11px;1196  color: var(--peach-t1);1197  line-height: 1.5;1198  background: var(--surface-card);1199  border: 1px solid var(--peach-t3);1200  border-radius: 6px;1201  padding: 8px 10px;1202}12031204.peach-info-notice--warn {1205  border-color: rgba(220, 38, 38, 0.4);1206  background: rgba(220, 38, 38, 0.06);1207  color: rgba(220, 38, 38, 0.92);1208  margin-bottom: 8px;1209}12101211.peach-strength-row {1212  display: flex;1213  align-items: center;1214  gap: 8px;1215  margin-bottom: 10px;1216}12171218.peach-strength-track {1219  flex: 1;1220  height: 4px;1221  background: var(--peach-s2);1222  border-radius: 2px;1223  overflow: hidden;1224}12251226.peach-strength-fill {1227  height: 100%;1228  border-radius: 2px;1229  transition: width 120ms ease, background 120ms ease;1230}12311232/* ── Type selector tabs ── */1233.peach-type-tabs {1234  display: flex;1235  gap: 0;1236  background: var(--peach-t4);1237  border-radius: 8px;1238  padding: 3px;1239}12401241.peach-type-tab {1242  flex: 1;1243  display: flex;1244  align-items: center;1245  justify-content: center;1246  gap: 6px;1247  padding: 6px 10px;1248  border-radius: 6px;1249  border: none;1250  background: transparent;1251  cursor: pointer;1252  font-family: Inter, system-ui, sans-serif;1253  font-size: 11px;1254  font-weight: 400;1255  letter-spacing: 0.04em;1256  color: var(--peach-t1);1257  transition: background 150ms ease, color 150ms ease;1258}12591260.peach-type-tab.is-active {1261  background: var(--peach-s2);1262  color: var(--peach-t0);1263  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1264}12651266.peach-type-tab:not(.is-active):hover {1267  color: var(--peach-t0);1268}12691270.peach-type-tab svg {1271  opacity: 0.7;1272  flex-shrink: 0;1273}12741275.peach-type-tab.is-active svg {1276  opacity: 1;1277}12781279/* ── List view ───────────────────────────────────────────────────────── */1280.peach-list-top {1281  padding: 0 10px;1282  min-height: 46px;1283  display: flex;1284  align-items: center;1285  gap: 6px;1286  border-bottom: 1px solid var(--peach-t3);1287  flex-shrink: 0;1288  background: var(--peach-s1);1289}1290.peach-vault-list {1291  flex: 1;1292  overflow-y: auto;1293  scrollbar-width: none;1294}1295.peach-vault-list::-webkit-scrollbar { display: none; }12961297/* Scrollbar — vault list */1298.peach-vault-list {1299  scrollbar-width: thin;1300  scrollbar-color: var(--peach-t3) transparent;1301}13021303.peach-vault-list::-webkit-scrollbar {1304  width: 3px;1305}13061307.peach-vault-list::-webkit-scrollbar-thumb {1308  background: var(--peach-t3);1309  border-radius: 2px;1310}13111312.peach-entry-row {1313  width: 100%;1314  display: flex;1315  align-items: center;1316  gap: 10px;1317  padding: 9px 16px;1318  background: transparent;1319  border: none;1320  border-bottom: 1px solid var(--peach-t3);1321  cursor: pointer;1322  color: inherit;1323  text-align: left;1324  transition: background 80ms ease;1325}1326.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1327.peach-entry-row:last-child { border-bottom: none; }1328.peach-entry-row.is-active {1329  box-shadow: inset 2px 0 0 var(--peach-accent);1330  background: rgba(240,232,216,0.03);1331}1332.peach-entry-row:focus-visible {1333  outline: none;1334  box-shadow: 0 0 0 1px var(--peach-border-accent);1335  background: rgba(240,232,216,0.03);1336}1337.peach-entry-row-icon {1338  width: 26px; height: 26px;1339  border-radius: 7px;1340  border: 1px solid var(--peach-t3);1341  display: flex; align-items: center; justify-content: center;1342  color: var(--peach-t2);1343  flex-shrink: 0;1344}1345.peach-entry-row-icon.is-breach {1346  border-color: rgba(220,80,60,0.3);1347  color: rgba(220,80,60,0.7);1348}13491350/* Title-initials chip used as the favicon fallback for login entries whose1351 * real favicon hasn't been cached by the browser yet (freshly-imported,1352 * never-visited domains). Background colour is hashed from the title so1353 * the same entry always shows the same chip. The chip fits the same1354 * 26×26 row icon slot the favicon would take. */1355.peach-favicon-initials {1356  display: inline-flex;1357  align-items: center;1358  justify-content: center;1359  width: 100%;1360  height: 100%;1361  border-radius: 4px;1362  font-family: "IBM Plex Mono", monospace;1363  font-size: 9px;1364  font-weight: 600;1365  letter-spacing: 0.04em;1366  color: rgba(240, 232, 216, 0.92);1367  text-transform: uppercase;1368  user-select: none;1369}1370.peach-entry-row-info { flex: 1; min-width: 0; }1371.peach-entry-row-name {1372  display: block;1373  font-family: var(--font-display);1374  font-size: 17px;1375  font-style: italic;1376  font-weight: 400;1377  color: var(--peach-t0);1378  line-height: 1.2;1379  white-space: nowrap;1380  overflow: hidden;1381  text-overflow: ellipsis;1382}1383.peach-entry-row-meta {1384  display: block;1385  font-family: "IBM Plex Mono", monospace;1386  font-size: 9px;1387  color: var(--peach-t2);1388  margin-top: 1px;1389  letter-spacing: 0.05em;1390}1391.peach-entry-row-dot {1392  width: 5px; height: 5px;1393  border-radius: 50%;1394  background: rgba(220,80,60,0.7);1395  flex-shrink: 0;1396}1397.peach-new-entry-row {1398  display: flex;1399  align-items: center;1400  justify-content: center;1401  gap: 6px;1402  width: 100%;1403  padding: 11px;1404  background: transparent;1405  border: none;1406  border-top: 1px solid var(--peach-t3);1407  color: var(--peach-t2);1408  font-family: "IBM Plex Mono", monospace;1409  font-size: 9px;1410  text-transform: uppercase;1411  letter-spacing: 0.14em;1412  cursor: pointer;1413  flex-shrink: 0;1414  transition: color 120ms ease, background 120ms ease;1415}1416.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14171418/* ── Multi-select mode ─────────────────────────────────────────────── */14191420/* Select-mode trigger button in sort bar — same shape as trash btn */1421.peach-sort-select-btn {1422  display: flex;1423  align-items: center;1424  justify-content: center;1425  padding: 3px 5px;1426  background: transparent;1427  border: none;1428  cursor: pointer;1429  color: var(--peach-t2);1430  border-radius: 4px;1431  transition: color 140ms ease, background 140ms ease;1432}1433.peach-sort-select-btn:hover {1434  color: var(--peach-t1);1435  background: var(--peach-t3);1436}14371438/* Sort bar in select mode */1439.peach-select-cancel-btn {1440  background: transparent;1441  border: none;1442  padding: 0 4px;1443  cursor: pointer;1444  font-family: "IBM Plex Mono", monospace;1445  font-size: 9px;1446  letter-spacing: 0.12em;1447  text-transform: uppercase;1448  color: var(--peach-t2);1449  transition: color 140ms ease;1450  flex-shrink: 0;1451}1452.peach-select-cancel-btn:hover { color: var(--peach-t0); }14531454.peach-select-count-label {1455  flex: 1;1456  text-align: center;1457  font-family: "IBM Plex Mono", monospace;1458  font-size: 9px;1459  letter-spacing: 0.14em;1460  text-transform: uppercase;1461  color: var(--peach-t1);1462}14631464.peach-select-all-btn {1465  background: transparent;1466  border: none;1467  padding: 0 4px;1468  cursor: pointer;1469  font-family: "IBM Plex Mono", monospace;1470  font-size: 9px;1471  letter-spacing: 0.12em;1472  text-transform: uppercase;1473  color: var(--peach-t2);1474  transition: color 140ms ease;1475  flex-shrink: 0;1476}1477.peach-select-all-btn:hover { color: var(--peach-accent); }14781479/* List in select mode */1480.peach-vault-list.is-selecting .peach-entry-row {1481  cursor: default;1482}1483.peach-vault-list.is-selecting .peach-entry-row:hover {1484  background: rgba(240,232,216,0.02);1485}1486.peach-vault-list.is-selecting .peach-entry-row.is-selected {1487  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1488}1489.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1490  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1491}14921493/* Select indicator circles in icon slot */1494.peach-entry-row-icon.is-select-icon {1495  color: var(--peach-t2);1496}1497.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1498  color: var(--peach-accent);1499}15001501/* Delete action bar at bottom (replaces new-entry row) */1502.peach-select-action-bar {1503  display: flex;1504  align-items: center;1505  justify-content: center;1506  gap: 7px;1507  width: 100%;1508  padding: 11px;1509  background: transparent;1510  border: none;1511  border-top: 1px solid var(--peach-t3);1512  color: var(--peach-t1);1513  font-family: "IBM Plex Mono", monospace;1514  font-size: 9px;1515  text-transform: uppercase;1516  letter-spacing: 0.14em;1517  cursor: pointer;1518  flex-shrink: 0;1519  transition: color 120ms ease, background 120ms ease;1520}1521.peach-select-action-bar:not(:disabled):hover {1522  color: var(--peach-t0);1523  background: rgba(220,80,60,0.06);1524}1525.peach-select-action-bar:not(:disabled):hover svg {1526  stroke: rgba(220,80,60,0.8);1527}1528.peach-select-action-bar:disabled,1529.peach-select-action-bar.is-empty {1530  color: var(--peach-t2);1531  cursor: default;1532  opacity: 0.5;1533}1534.peach-search-counter-list {1535  white-space: nowrap;1536  flex-shrink: 0;1537}1538.peach-list-empty {1539  min-height: 180px;1540  display: grid;1541  place-items: center;1542  color: var(--peach-t2);1543  font-family: "IBM Plex Mono", monospace;1544  font-size: 11px;1545}15461547/* ── Settings view ───────────────────────────────────────────────────── */1548.peach-settings-body {1549  flex: 1;1550  overflow-y: auto;1551  min-height: 0;1552  display: flex;1553  flex-direction: column;1554  padding: 2px 0 10px;1555}1556.peach-settings-group {1557  margin: 4px 10px;1558  padding: 9px 14px 11px;1559  border-radius: 12px;1560  border: 1px solid rgba(255, 255, 255, 0.07);1561  background: rgba(26, 20, 16, 0.60);1562  backdrop-filter: blur(10px) saturate(1.3);1563  -webkit-backdrop-filter: blur(10px) saturate(1.3);1564}15651566.peach-settings-group + .peach-settings-group {1567  margin-top: 6px;1568}15691570@supports not (backdrop-filter: blur(1px)) {1571  .peach-settings-group {1572    background: rgba(26, 20, 16, 0.90);1573    border-color: rgba(255, 255, 255, 0.09);1574    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 20px rgba(0, 0, 0, 0.35);1575  }1576}15771578.light .peach-settings-group,1579[data-theme="light"] .peach-settings-group {1580  background: rgba(253, 248, 244, 0.68);1581  border-color: rgba(0, 0, 0, 0.07);1582  backdrop-filter: blur(10px) saturate(1.2);1583  -webkit-backdrop-filter: blur(10px) saturate(1.2);1584}15851586@supports not (backdrop-filter: blur(1px)) {1587  .light .peach-settings-group,1588  [data-theme="light"] .peach-settings-group {1589    background: rgba(253, 248, 244, 0.95);1590    border-color: rgba(0, 0, 0, 0.09);1591  }1592}1593.peach-export-intro {1594  padding-bottom: 8px;1595}1596.peach-export-card {1597  display: grid;1598  gap: 10px;1599}1600.peach-rune-canvas {1601  border-radius: 8px;1602  background: rgba(0, 0, 0, 0.22);1603  flex: 1;1604  align-self: center;1605}1606.peach-script-input {1607  font-family: "PeachScript", monospace;1608  font-size: 11px;1609  line-height: 1.9;1610  letter-spacing: 0.06em;1611  color: var(--peach-t0);1612  background: rgba(0, 0, 0, 0.22);1613  border: none;1614  border-radius: 6px;1615  padding: 12px;1616  width: 100%;1617  min-height: 96px;1618  resize: vertical;1619  word-break: break-all;1620  scrollbar-width: none;1621  -ms-overflow-style: none;1622}16231624.peach-script-input::-webkit-scrollbar { display: none; }1625.peach-qr-canvas-wrap {1626  display: flex;1627  justify-content: center;1628  padding: 12px 0 6px;1629}1630.peach-qr-canvas-wrap canvas {1631  display: block;1632  background: #ffffff;1633  border-radius: 6px;1634  max-width: 100%;1635  height: auto;1636}1637.peach-csv-warning {1638  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1639  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1640  color: var(--peach-t0);1641  border-radius: 6px;1642  padding: 10px 12px;1643  margin-bottom: 8px;1644  font-size: 12px;1645  line-height: 1.45;1646}1647.peach-export-card--primary {1648  background:1649    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1650}16511652/* Export menu — distribute the three format cards across the popup. */1653.peach-export-menu {1654  display: flex;1655  flex-direction: column;1656  flex: 1;1657  min-height: 0;1658}1659.peach-export-menu .peach-settings-group {1660  flex: 1;1661  display: flex;1662  flex-direction: column;1663  justify-content: center;1664  gap: 10px;1665}16661667/* Result view — the script-string fills the remaining vertical surface. */1668.peach-export-result-group {1669  flex: 1;1670  display: flex;1671  flex-direction: column;1672  min-height: 0;1673  border-bottom: none;1674}1675.peach-export-result-group .peach-export-card {1676  flex: 1;1677  min-height: 0;1678  display: flex;1679  flex-direction: column;1680  gap: 10px;1681}1682.peach-export-result-group .peach-export-card-copy {1683  flex-shrink: 0;1684}1685.peach-export-result-group .peach-settings-label {1686  flex-shrink: 0;1687}1688.peach-export-result-group button {1689  flex-shrink: 0;1690}1691.peach-export-card-head {1692  display: flex;1693  align-items: center;1694  justify-content: space-between;1695  gap: 10px;1696}1697.peach-export-card-copy {1698  margin: 0;1699  font-size: 12px;1700  line-height: 1.55;1701  color: var(--peach-t1);1702}1703.peach-export-note {1704  margin: 0;1705  font-size: 10px;1706  line-height: 1.5;1707  color: var(--peach-t2);1708}1709.peach-export-pill {1710  display: inline-flex;1711  align-items: center;1712  padding: 4px 8px;1713  border-radius: 999px;1714  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1715  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1716  color: var(--peach-accent);1717  font-family: "IBM Plex Mono", monospace;1718  font-size: 8px;1719  letter-spacing: 0.12em;1720  text-transform: uppercase;1721  white-space: nowrap;1722}1723.peach-export-pill--danger {1724  border-color: rgba(220,80,60,0.22);1725  background: rgba(220,80,60,0.08);1726  color: var(--peach-breach);1727}1728.peach-export-password-stack {1729  gap: 8px;1730}1731.peach-settings-label {1732  margin: 0 0 6px;1733  font-family: "IBM Plex Mono", monospace;1734  font-size: 8px;1735  text-transform: uppercase;1736  letter-spacing: 0.18em;1737  color: var(--peach-t2);1738}1739.peach-settings-row {1740  display: flex;1741  align-items: center;1742  justify-content: space-between;1743  gap: 12px;1744  min-height: 34px;1745  padding: 6px 0;1746  font-size: 13px;1747  color: var(--peach-t1);1748}1749.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1750.peach-settings-value {1751  font-family: "IBM Plex Mono", monospace;1752  font-size: 10px;1753  color: var(--peach-t2);1754}17551756.peach-settings-value--status {1757  display: flex;1758  align-items: center;1759  gap: 6px;1760}17611762.peach-settings-link {1763  font-family: "IBM Plex Mono", monospace;1764  font-size: 10px;1765  color: var(--peach-accent);1766  text-decoration: none;1767  cursor: pointer;1768}1769.peach-settings-link:hover {1770  text-decoration: underline;1771}17721773.peach-settings-row--stack {1774  flex-direction: column;1775  align-items: stretch;1776  gap: 6px;1777}17781779.peach-settings-row--top {1780  align-items: flex-start;1781}17821783.peach-settings-row-main {1784  display: flex;1785  flex-direction: column;1786  gap: 4px;1787  flex: 1;1788}1789.peach-toggle {1790  width: 28px; height: 16px;1791  border-radius: 999px;1792  background: var(--peach-t3);1793  border: 1px solid var(--peach-t3);1794  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1795  flex-shrink: 0;1796  transition: background 200ms ease, border-color 200ms ease;1797  cursor: pointer;1798}1799.peach-toggle.is-on {1800  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1801  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1802}1803.peach-toggle-knob {1804  width: 10px; height: 10px;1805  border-radius: 50%;1806  background: var(--peach-t2);1807  flex-shrink: 0;1808  transform: translateX(0px);1809  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1810}1811.peach-toggle.is-on .peach-toggle-knob {1812  background: var(--peach-accent);1813  transform: translateX(12px);1814}1815.peach-settings-footer {1816  display: flex;1817  align-items: center;1818  gap: 8px;1819  margin-top: auto;1820  padding: 14px 16px 8px;1821  font-family: "IBM Plex Mono", monospace;1822  font-size: 9px;1823  color: var(--peach-t2);1824}18251826/* ── Settings home navigation ──────────────────────────────────────────── */1827.peach-settings-nav-label {1828  margin: 0 0 2px;1829  padding: 12px 16px 4px;1830  font-family: "IBM Plex Mono", monospace;1831  font-size: 8px;1832  text-transform: uppercase;1833  letter-spacing: 0.18em;1834  color: var(--peach-t2);1835}18361837.peach-settings-cat-row {1838  display: flex;1839  align-items: center;1840  gap: 10px;1841  width: 100%;1842  padding: 9px 16px;1843  background: none;1844  border: none;1845  border-bottom: 1px solid var(--peach-t3);1846  cursor: pointer;1847  text-align: left;1848  color: inherit;1849  transition: background var(--peach-dur-80) ease;1850}1851.peach-settings-cat-row:hover {1852  background: var(--peach-t3);1853}1854.peach-settings-cat-row:last-child {1855  border-bottom: none;1856}18571858.peach-settings-cat-icon {1859  width: 28px;1860  height: 28px;1861  border-radius: 7px;1862  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1863  color: var(--peach-accent);1864  display: flex;1865  align-items: center;1866  justify-content: center;1867  flex-shrink: 0;1868}1869/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1870   Darken the icon stroke to ink and bump the bg tint so the icon reads1871   sharply while the cell still feels accent-tinted. */1872.light .peach-settings-cat-icon {1873  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1874  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1875}18761877.peach-settings-cat-content {1878  flex: 1;1879  display: flex;1880  flex-direction: column;1881  gap: 2px;1882  min-width: 0;1883}18841885.peach-settings-cat-name {1886  font-size: 13px;1887  font-weight: 450;1888  color: var(--peach-t0);1889  line-height: 1.2;1890}18911892.peach-settings-cat-desc {1893  font-size: 10px;1894  color: var(--peach-t2);1895  line-height: 1.3;1896  white-space: nowrap;1897  overflow: hidden;1898  text-overflow: ellipsis;1899}19001901.peach-settings-cat-chevron {1902  color: var(--peach-t2);1903  flex-shrink: 0;1904  opacity: 0.5;1905}19061907/* ── Settings sub-view section labels ──────────────────────────────────── */1908.peach-settings-sub-label {1909  margin: 12px 0 4px;1910  font-family: "IBM Plex Mono", monospace;1911  font-size: 8px;1912  text-transform: uppercase;1913  letter-spacing: 0.18em;1914  color: var(--peach-t2);1915}1916.peach-settings-sub-label:first-child {1917  margin-top: 4px;1918}19191920/* ── Feedback form ──────────────────────────────────────────────────────── */1921.peach-feedback-group {1922  flex: 1;1923  display: flex;1924  flex-direction: column;1925  border-bottom: none;1926}19271928.peach-feedback-intro {1929  margin: 4px 0 14px;1930  font-size: 12px;1931  line-height: 1.55;1932  color: var(--peach-t1);1933}19341935.peach-feedback-chips {1936  display: flex;1937  flex-wrap: wrap;1938  gap: 6px;1939  margin-bottom: 14px;1940}19411942.peach-feedback-chip {1943  padding: 4px 10px;1944  border-radius: 999px;1945  border: 1px solid var(--peach-t3);1946  background: none;1947  color: var(--peach-t2);1948  font-size: 11px;1949  font-family: var(--font-ui);1950  cursor: pointer;1951  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1952    background var(--peach-dur-80) ease;1953}1954.peach-feedback-chip:hover {1955  border-color: var(--peach-t2);1956  color: var(--peach-t1);1957}1958.peach-feedback-chip.is-active {1959  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1960  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1961  color: var(--peach-accent);1962}19631964.peach-feedback-textarea {1965  flex: 1;1966  width: 100%;1967  min-height: 120px;1968  box-sizing: border-box;1969  background: rgba(0, 0, 0, 0.22);1970  border: 1px solid transparent;1971  border-radius: 6px;1972  color: var(--peach-t0);1973  font-size: 12px;1974  font-family: var(--font-ui);1975  line-height: 1.5;1976  padding: 8px 10px;1977  resize: none;1978  outline: none;1979  transition: border-color var(--peach-dur-150) ease, background var(--peach-dur-150) ease;1980}1981.peach-feedback-textarea:focus {1982  border-color: color-mix(in srgb, var(--peach-accent) 55%, transparent);1983  background: rgba(0, 0, 0, 0.28);1984}1985.peach-feedback-textarea:focus {1986  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1987}1988.peach-feedback-textarea::placeholder {1989  color: var(--peach-t2);1990}19911992.peach-feedback-meta {1993  margin: 6px 0 0;1994  font-size: 10px;1995  color: var(--peach-t2);1996  font-family: "IBM Plex Mono", monospace;1997}19981999.peach-feedback-result {2000  margin: 8px 0 0;2001  font-size: 11px;2002  font-family: "IBM Plex Mono", monospace;2003}2004.peach-feedback-result--ok { color: var(--peach-sync-ok); }2005.peach-feedback-result--err { color: var(--peach-breach); }20062007.peach-feedback-submit {2008  width: 100%;2009  margin-top: 12px;2010  justify-content: center;2011}20122013.peach-feedback-anon {2014  margin: 8px 0 0;2015  font-size: 10px;2016  color: var(--peach-t2);2017  text-align: center;2018}20192020.peach-passkey-badge {2021  margin-left: 8px;2022  font-size: 10px;2023  letter-spacing: 0.06em;2024  text-transform: uppercase;2025  color: var(--peach-t2);2026  font-family: var(--font-ui);2027  vertical-align: middle;2028}20292030.peach-passkey-delete-btn {2031  color: var(--peach-breach);2032  border-color: rgba(229, 85, 85, 0.25);2033}20342035.peach-passkey-delete-confirm {2036  display: flex;2037  align-items: center;2038  gap: 8px;2039  padding: 8px 10px;2040  background: rgba(229, 85, 85, 0.06);2041  border: 1px solid rgba(229, 85, 85, 0.2);2042  border-radius: 6px;2043}20442045.peach-passkey-delete-confirm-copy {2046  flex: 1;2047  font-size: 11px;2048  color: var(--peach-t1);2049}20502051.peach-passkey-delete-btn--confirm {2052  color: var(--peach-breach);2053  border-color: rgba(229, 85, 85, 0.4);2054}20552056.peach-passkey-activity {2057  flex-direction: column;2058  align-items: flex-start;2059  gap: 4px;2060}20612062.peach-passkey-meta {2063  font-size: 11px;2064  color: var(--peach-t2);2065}20662067.peach-passkey-actions {2068  position: relative;2069  z-index: 1;2070  margin-top: 14px;2071  display: flex;2072  flex-direction: column;2073  gap: 8px;2074}20752076.peach-passkey-approval {2077  display: flex;2078  flex-direction: column;2079  align-items: center;2080  padding: 22px 20px 18px;2081  gap: 10px;2082  text-align: center;2083}20842085.peach-passkey-approval-icon {2086  width: 46px;2087  height: 46px;2088  border-radius: 12px;2089  background: var(--peach-s2);2090  border: 1px solid var(--peach-t3);2091  display: flex;2092  align-items: center;2093  justify-content: center;2094  flex-shrink: 0;2095  color: var(--peach-accent);2096}20972098.peach-passkey-approval-icon img,2099.peach-passkey-approval-icon svg {2100  width: 28px;2101  height: 28px;2102  border-radius: 6px;2103}21042105.peach-passkey-approval-rp {2106  font-family: var(--font-ui);2107  font-size: 12px;2108  color: var(--peach-t2);2109  letter-spacing: 0.03em;2110}21112112.peach-passkey-approval-action {2113  font-family: var(--font-display);2114  font-style: italic;2115  font-weight: 300;2116  font-size: 22px;2117  color: var(--peach-t0);2118  line-height: 1.1;2119  margin: 2px 0;2120}21212122.peach-passkey-approval-user {2123  font-family: var(--font-mono);2124  font-size: 11px;2125  color: var(--peach-t1);2126  background: var(--peach-s2);2127  border: 1px solid var(--peach-t3);2128  border-radius: 4px;2129  padding: 3px 8px;2130}21312132.peach-passkey-approval-notice {2133  font-size: 10px;2134  color: var(--peach-t2);2135  line-height: 1.5;2136  max-width: 220px;2137}21382139.peach-passkey-approval-actions {2140  display: flex;2141  gap: 8px;2142  width: 100%;2143  margin-top: 6px;2144}21452146.peach-passkey-approval-actions .peach-btn {2147  flex: 1;2148}21492150/* ── Inline generator drawer ── */2151.peach-generator-drawer {2152  display: grid;2153  grid-template-rows: 0fr;2154  transition: grid-template-rows 320ms var(--peach-curve-arrival);2155  overflow: hidden;2156}2157.peach-generator-drawer.is-open {2158  grid-template-rows: 1fr;2159}2160.peach-generator-drawer-inner {2161  min-height: 0;2162  overflow: hidden;2163}2164.peach-generator-drawer-content {2165  border-top: 1px solid var(--peach-t3);2166  padding: 8px 0 4px;2167  display: flex;2168  flex-direction: column;2169  gap: 8px;2170}21712172/* ── Compact generator (inside entry edit) ── */2173.peach-generator-drawer-content--compact {2174  border-top: 1px solid var(--peach-t3);2175  padding: 8px 0 2px;2176  gap: 7px;2177}2178.peach-pwgen-compact-display-row {2179  display: flex;2180  align-items: center;2181  gap: 6px;2182}2183.peach-pwgen-compact-output {2184  flex: 1;2185  min-width: 0;2186  font-family: "IBM Plex Mono", monospace;2187  font-size: 11px;2188  font-weight: 400;2189  letter-spacing: 0.04em;2190  color: var(--peach-t0);2191  background: rgba(240, 232, 216, 0.04);2192  border: 1px solid var(--peach-t3);2193  border-radius: 5px;2194  padding: 5px 8px;2195  word-break: break-all;2196  line-height: 1.5;2197}2198.peach-pwgen-compact-controls {2199  display: flex;2200  align-items: center;2201  gap: 6px;2202}2203.peach-pwgen-compact-slider {2204  flex: 1;2205  min-width: 0;2206  height: 2px !important;2207}2208.peach-pwgen-compact-controls .peach-pwgen-len-num {2209  flex-shrink: 0;2210  min-width: 18px;2211  text-align: right;2212}2213.peach-pwgen-compact-pills {2214  display: flex;2215  gap: 3px;2216  flex-shrink: 0;2217}2218.peach-pwgen-compact-pills .peach-pwgen-pill {2219  padding: 2px 7px;2220  font-size: 8px;2221}2222.peach-pwgen-compact-use {2223  flex-shrink: 0;2224  font-size: 10px !important;2225  padding: 3px 9px !important;2226  min-height: 22px !important;2227  border-radius: 5px !important;2228}22292230/* ── Password edit row (input + eye toggle side-by-side) ── */2231.peach-password-edit-row {2232  display: flex;2233  align-items: center;2234  gap: 6px;2235}2236.peach-password-edit-row .peach-inline-input {2237  flex: 1;2238  min-width: 0;2239}22402241/* ── Generate toggle link ── */2242.peach-generate-toggle-link {2243  display: inline-flex;2244  align-items: center;2245  gap: 5px;2246  background: none;2247  border: none;2248  padding: 0;2249  cursor: pointer;2250  font-family: "IBM Plex Mono", monospace;2251  font-size: 10px;2252  color: var(--peach-t2);2253  letter-spacing: 0.04em;2254  transition: color 120ms ease;2255  align-self: flex-start;2256}2257.peach-generate-toggle-link:hover {2258  color: var(--peach-accent);2259}22602261/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2262.peach-entry-body {2263  flex: 1;2264  overflow-y: auto;2265  overflow-x: hidden;2266  scrollbar-width: none;2267  -ms-overflow-style: none;2268  overscroll-behavior: contain;2269  display: grid;2270  gap: 10px;2271  align-content: start;2272  padding: 10px 20px 14px;2273  min-width: 0;2274  min-height: 0;2275}2276.peach-entry-body::-webkit-scrollbar { display: none; }22772278/* Type-toggle pills + inline note toolbar */2279.peach-new-type-row {2280  display: flex;2281  align-items: center;2282  gap: 6px;2283  margin-bottom: 2px;2284}2285.peach-new-type-btn {2286  background: transparent;2287  border: 1px solid var(--peach-t3);2288  border-radius: 12px;2289  padding: 3px 10px;2290  font-family: "IBM Plex Mono", monospace;2291  font-size: 9px;2292  letter-spacing: 0.12em;2293  text-transform: uppercase;2294  color: var(--peach-t2);2295  cursor: pointer;2296  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2297}2298.peach-new-type-btn.is-active {2299  color: var(--peach-t0);2300  border-color: var(--peach-accent);2301  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2302}2303.peach-new-type-btn:not(.is-active):hover {2304  color: var(--peach-t1);2305  border-color: var(--peach-t2);2306}23072308/* Editable title */2309.peach-new-title-wrap { margin: 0 0 2px; }2310.peach-new-title-input {2311  background: transparent;2312  border: none;2313  outline: none;2314  width: 100%;2315  color: var(--peach-t0);2316  font-family: var(--font-display);2317  font-style: italic;2318  font-weight: 400;2319  font-size: 40px;2320  line-height: 0.95;2321  caret-color: var(--peach-accent);2322}2323.peach-new-title-input::placeholder { color: var(--peach-t2); }23242325/* Editable domain field */2326.peach-domain-value--edit {2327  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2328  font-size: 10px;2329  font-style: italic;2330  letter-spacing: 0.12em;2331  color: var(--peach-t1);2332  background: transparent;2333  border: none;2334  border-bottom: 1px solid var(--peach-t3);2335  outline: none;2336  width: 100%;2337  padding: 2px 0;2338  caret-color: var(--peach-accent);2339  transition: border-color 140ms ease, color 140ms ease;2340}2341.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2342.peach-domain-value--edit:focus {2343  border-bottom-color: rgba(240, 232, 216, 0.28);2344  color: var(--peach-t0);2345}23462347/* Editable field values (username, password, totp) */2348.peach-field-value--edit {2349  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2350  font-size: 13px;2351  color: var(--peach-t0);2352  background: transparent;2353  border: none;2354  border-bottom: 1px solid var(--peach-t3);2355  outline: none;2356  flex: 1;2357  min-width: 0;2358  padding: 3px 0;2359  caret-color: var(--peach-accent);2360  transition: border-color 140ms ease, color 140ms ease;2361}2362.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2363.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2364.peach-field-value--edit:focus {2365  border-bottom-color: rgba(240, 232, 216, 0.28);2366  color: var(--peach-t0);2367}23682369/* "+ add optional field" links */2370.peach-entry-add-links {2371  display: flex;2372  gap: 12px;2373  flex-wrap: wrap;2374  margin-top: -2px;2375}2376.peach-add-field-link {2377  background: transparent;2378  border: none;2379  padding: 0;2380  cursor: pointer;2381  font-family: "IBM Plex Mono", monospace;2382  font-size: 9px;2383  letter-spacing: 0.1em;2384  text-transform: uppercase;2385  color: var(--peach-t2);2386  transition: color 140ms ease;2387}2388.peach-add-field-link:hover { color: var(--peach-accent); }23892390/* ── New entry form (legacy classes) ────────────────────────────────── */2391.peach-new-body {2392  flex: 1;2393  overflow-y: auto;2394  padding: 10px 20px 14px;2395}2396.peach-new-name-input {2397  background: transparent;2398  border: none;2399  outline: none;2400  width: 100%;2401  color: var(--peach-t0);2402  font-family: var(--font-display);2403  font-style: italic;2404  font-weight: 400;2405  font-size: 40px;2406  line-height: 0.95;2407  caret-color: var(--peach-accent);2408}2409.peach-new-name-input::placeholder { color: var(--peach-t2); }2410.peach-new-field-input {2411  background: transparent;2412  border: none;2413  outline: none;2414  flex: 1;2415  min-width: 0;2416  caret-color: var(--peach-accent);2417}2418.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }24192420/* ── Canary card ── */2421.peach-canary-card {2422  border: 1px solid rgba(217, 160, 48, 0.2);2423  background: rgba(217, 160, 48, 0.03);2424  border-radius: 8px;2425  padding: 12px;2426}24272428.peach-canary-settings-header {2429  display: flex;2430  align-items: center;2431  justify-content: space-between;2432  cursor: pointer;2433  user-select: none;2434}24352436.peach-canary-card .peach-label {2437  color: rgba(217, 160, 48, 0.85);2438}24392440.peach-canary-card .peach-new-field-input {2441  border-color: rgba(217, 160, 48, 0.25);2442}24432444.peach-canary-card .peach-new-field-input:focus {2445  border-color: rgba(217, 160, 48, 0.5);2446}24472448.peach-canary-body {2449  margin-top: 12px;2450  display: flex;2451  flex-direction: column;2452  gap: 10px;2453}24542455.peach-canary-explainer {2456  display: flex;2457  gap: 10px;2458  padding: 10px 12px;2459  border-radius: 10px;2460  background: rgba(217, 160, 48, 0.06);2461  border: 1px solid rgba(217, 160, 48, 0.22);2462  margin-bottom: 4px;2463}24642465.peach-canary-explainer-icon {2466  font-size: 16px;2467  flex-shrink: 0;2468  line-height: 1.2;2469}24702471.peach-canary-explainer-title {2472  font-family: var(--font-ui);2473  font-size: 11px;2474  font-weight: 500;2475  color: rgba(217, 160, 48, 0.9);2476  margin: 0 0 3px;2477}24782479.peach-canary-explainer-copy {2480  font-family: var(--font-ui);2481  font-size: 10px;2482  color: var(--peach-t2);2483  line-height: 1.55;2484  margin: 0;2485}24862487.peach-canary-hint {2488  font-size: 10px;2489  color: var(--peach-t2);2490  font-family: Inter, system-ui, sans-serif;2491  line-height: 1.5;2492  margin-top: 4px;2493}24942495.peach-canary-actions-row {2496  display: flex;2497  align-items: center;2498  gap: 8px;2499}25002501.peach-canary-test-btn {2502  border-color: rgba(217, 160, 48, 0.3);2503  color: rgba(217, 160, 48, 0.85);2504}25052506.peach-canary-test-result {2507  font-size: 10px;2508  font-family: Inter, system-ui, sans-serif;2509}25102511.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2512.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }25132514.peach-canary-badge {2515  display: flex;2516  position: relative;2517  z-index: 1;2518  align-items: center;2519  gap: 5px;2520  padding: 4px 10px;2521  background: rgba(217, 160, 48, 0.12);2522  border: 1px solid rgba(217, 160, 48, 0.35);2523  border-radius: 6px;2524  margin-bottom: 6px;2525  width: fit-content;2526}25272528.peach-canary-badge-label {2529  font-size: 10px;2530  letter-spacing: 0.06em;2531  color: rgba(217, 160, 48, 0.9);2532  font-family: var(--font-ui);2533  text-transform: uppercase;2534}25352536.peach-canary-badge-icon {2537  font-size: 11px;2538}25392540.peach-canary-suppress-row {2541  display: flex;2542  align-items: center;2543  gap: 8px;2544  padding: 6px 10px;2545  background: rgba(217, 160, 48, 0.08);2546  border-radius: 6px;2547  margin-bottom: 8px;2548}25492550.peach-canary-suppress-label {2551  font-size: 11px;2552  color: rgba(217, 160, 48, 0.85);2553  cursor: pointer;2554  font-family: var(--font-ui);2555  letter-spacing: 0.04em;2556}25572558.peach-regen-panel {2559  position: relative;2560  z-index: 1;2561  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2562  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2563  border-radius: 8px;2564  padding: 12px;2565  margin-bottom: 8px;2566}25672568.peach-regen-panel-header {2569  display: flex;2570  align-items: center;2571  justify-content: space-between;2572  margin-bottom: 10px;2573}25742575.peach-regen-panel-title {2576  font-size: 11px;2577  font-weight: 600;2578  letter-spacing: 0.06em;2579  text-transform: uppercase;2580  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2581}25822583.peach-regen-output {2584  background: rgba(0, 0, 0, 0.2);2585  border-radius: 6px;2586  padding: 10px;2587  margin-bottom: 10px;2588  font-family: var(--font-mono);2589  font-size: 13px;2590  word-break: break-all;2591  color: var(--peach-t1);2592}25932594.peach-regen-actions {2595  display: flex;2596  gap: 6px;2597}25982599.peach-regen-actions--spaced {2600  margin-bottom: 8px;2601}26022603.peach-regen-action-grow {2604  flex: 1;2605}26062607.peach-regen-copy-btn {2608  padding: 0 8px;2609}26102611.peach-regen-success {2612  position: relative;2613  z-index: 1;2614  background: rgba(40, 180, 80, 0.1);2615  border: 1px solid rgba(40, 180, 80, 0.3);2616  border-radius: 8px;2617  padding: 10px 12px;2618  margin-bottom: 8px;2619  display: flex;2620  align-items: center;2621  gap: 8px;2622  font-size: 11px;2623  color: rgba(40, 180, 80, 0.9);2624}26252626/* ── Note editor overlay ── */2627.peach-note-editor {2628  position: absolute;2629  inset: 0;2630  z-index: 200;2631  display: flex;2632  flex-direction: column;2633  background:2634    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2635    var(--peach-bg);2636  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2637}26382639.peach-note-editor-header {2640  display: flex;2641  align-items: center;2642  gap: 10px;2643  padding: 14px 16px 10px;2644  border-bottom: 1px solid var(--peach-t3);2645  flex-shrink: 0;2646}26472648.peach-note-editor-back {2649  background: transparent;2650  border: none;2651  cursor: pointer;2652  color: var(--peach-t2);2653  padding: 4px 6px;2654  border-radius: 6px;2655  display: flex;2656  align-items: center;2657  transition: color 120ms ease, background 120ms ease;2658  flex-shrink: 0;2659}2660.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }26612662.peach-note-editor-label {2663  flex: 1;2664  font-family: var(--font-display);2665  font-style: italic;2666  font-size: 15px;2667  color: var(--peach-t1);2668  letter-spacing: 0.02em;2669}26702671.peach-note-editor-save-btn {2672  background: transparent;2673  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2674  border-radius: 8px;2675  color: var(--peach-accent);2676  font-family: "IBM Plex Mono", monospace;2677  font-size: 10px;2678  letter-spacing: 0.06em;2679  text-transform: uppercase;2680  padding: 3px 10px;2681  cursor: pointer;2682  transition: background 120ms ease, border-color 120ms ease;2683}2684.peach-note-editor-save-btn:hover:not(:disabled) {2685  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2686  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2687}2688.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }26892690.peach-note-toolbar {2691  display: flex;2692  align-items: center;2693  gap: 3px;2694  padding: 6px 14px 5px;2695  border-bottom: 1px solid var(--peach-t3);2696  flex-shrink: 0;2697}26982699.peach-note-tool-btn {2700  background: transparent;2701  border: 1px solid transparent;2702  border-radius: 5px;2703  color: var(--peach-t2);2704  font-family: "IBM Plex Mono", monospace;2705  font-size: 10px;2706  letter-spacing: 0.04em;2707  padding: 2px 8px;2708  cursor: pointer;2709  line-height: 1.6;2710  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2711}2712.peach-note-tool-btn:hover {2713  background: var(--peach-t4);2714  color: var(--peach-t0);2715  border-color: var(--peach-t3);2716}27172718.peach-note-tool-icon {2719  padding: 3px 7px;2720  display: inline-flex;2721  align-items: center;2722  justify-content: center;2723}27242725.peach-note-tool-divider {2726  width: 1px;2727  height: 14px;2728  background: var(--peach-t3);2729  margin: 0 4px;2730  flex-shrink: 0;2731}27322733.peach-note-editor-body {2734  flex: 1;2735  overflow-y: auto;2736  padding: 16px 20px 20px;2737  outline: none;2738  font-family: var(--font-display);2739  font-size: 16px;2740  line-height: 1.75;2741  color: var(--peach-t0);2742  scrollbar-width: none;2743  word-break: break-word;2744}2745.peach-note-editor-body:empty::before {2746  content: "write your note…";2747  color: var(--peach-t3);2748  font-style: italic;2749  pointer-events: none;2750}27512752/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2753.peach-note-editor-inline {2754  display: flex;2755  flex-direction: column;2756  flex: 1;2757  min-height: 0;2758}2759.peach-note-editor-body--inline {2760  flex: 1;2761  min-height: 0;2762  font-size: 15px;2763  padding: 10px 20px 14px;2764}27652766/* Full-width toolbar row inside the body (Add.tsx note type).2767   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2768.peach-note-toolbar-body {2769  display: flex;2770  align-items: center;2771  gap: 3px;2772  padding: 5px 20px 4px;2773  margin: 2px -20px 0;2774  border-bottom: 1px solid var(--peach-t3);2775  flex-shrink: 0;2776}27772778/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2779   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2780   and .peach-note-tool-divider button-level styles. */2781.peach-note-toolbar-inline {2782  display: flex;2783  align-items: center;2784  gap: 3px;2785  margin-left: auto;2786  padding-left: 10px;2787  border-left: 1px solid var(--peach-t3);2788  min-height: 22px;2789}27902791/* Entry.tsx toolbar row (no tabs, toolbar only) */2792.peach-entry-note-toolbar-row {2793  display: flex;2794  align-items: center;2795  margin: 4px 0 6px;2796  position: relative;2797  z-index: 1;2798}2799.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2800  border-left: none;2801  padding-left: 0;2802  margin-left: 0;2803}28042805/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2806.peach-note-body {2807  display: flex;2808  flex-direction: column;2809  flex: 1;2810  min-height: 0;2811  margin: 4px 0 0;2812}2813.peach-entry-body--new .peach-note-body {2814  margin: 8px -20px 0;2815}28162817/* Add.tsx body is a grid by default; swap to a flex column when a note is2818   active so the note body can stretch and pin the tags row to the bottom. */2819.peach-entry-body--new:has(.peach-note-body) {2820  display: flex;2821  flex-direction: column;2822}28232824/* Rich content element styles (editor + display) */2825.peach-note-editor-body h2,2826.peach-note-content h2 {2827  font-family: var(--font-display);2828  font-size: 20px;2829  font-weight: 600;2830  font-style: italic;2831  color: var(--peach-t0);2832  margin: 6px 0 2px;2833  line-height: 1.3;2834}2835.peach-note-editor-body ul,2836.peach-note-content ul {2837  padding-left: 18px;2838  margin: 3px 0;2839  list-style: disc;2840}2841.peach-note-editor-body ol,2842.peach-note-content ol {2843  padding-left: 18px;2844  margin: 3px 0;2845  list-style: decimal;2846}2847.peach-note-editor-body li,2848.peach-note-content li { margin: 2px 0; }2849.peach-note-editor-body hr,2850.peach-note-content hr {2851  border: none;2852  border-top: 1px solid var(--peach-t3);2853  margin: 10px 0;2854}28552856/* font size elements from execCommand */2857.peach-note-editor-body font[size="1"],2858.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2859.peach-note-editor-body font[size="2"],2860.peach-note-content font[size="2"] { font-size: 13px; }2861.peach-note-editor-body font[size="3"],2862.peach-note-content font[size="3"] { font-size: 16px; }2863.peach-note-editor-body font[size="4"],2864.peach-note-content font[size="4"] { font-size: 20px; }2865.peach-note-editor-body font[size="5"],2866.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }28672868/* bold / italic inside the editor and note display */2869.peach-note-editor-body b, .peach-note-editor-body strong,2870.peach-note-content b, .peach-note-content strong { font-weight: 700; }2871.peach-note-editor-body em, .peach-note-editor-body i,2872.peach-note-content em, .peach-note-content i { font-style: italic; }28732874/* note display — rendered HTML, no pre-wrap */2875.peach-note-content {2876  overflow: auto;2877  max-height: 340px;2878  word-break: break-word;2879}28802881/* ── Note textarea ── */2882.peach-note-textarea {2883  width: 100%;2884  min-height: 180px;2885  max-height: 280px;2886  resize: vertical;2887  background: var(--peach-t4);2888  border: 1px solid var(--peach-t3);2889  border-radius: 8px;2890  padding: 10px 12px;2891  font-family: "IBM Plex Mono", monospace;2892  font-size: 12px;2893  line-height: 1.7;2894  color: var(--peach-t1);2895  outline: none;2896  transition: border-color 150ms ease;2897}28982899.peach-note-textarea:focus {2900  border-color: var(--peach-t2);2901}29022903.peach-note-char-count {2904  font-family: "IBM Plex Mono", monospace;2905  font-size: 9px;2906  color: var(--peach-t3);2907  text-align: right;2908  margin-top: 4px;2909  letter-spacing: 0.1em;2910}29112912/* ── Field input baseline ── */2913.peach-new-field-input {2914  width: 100%;2915  background: transparent;2916  border: none;2917  border-bottom: 1px solid var(--peach-t3);2918  padding: 4px 0;2919  color: var(--peach-t1);2920  font-family: "IBM Plex Mono", monospace;2921  font-size: 13px;2922  outline: none;2923  transition: border-color 150ms ease;2924}29252926.peach-new-field-input:focus {2927  border-bottom-color: var(--peach-t0);2928  color: var(--peach-t0);2929}29302931.peach-new-name-input {2932  width: 100%;2933  background: transparent;2934  border: none;2935  border-bottom: 1px solid var(--peach-t3);2936  padding: 6px 0;2937  font-family: var(--font-display);2938  font-style: italic;2939  font-size: 28px;2940  color: var(--peach-t0);2941  outline: none;2942  transition: border-color 150ms ease;2943}29442945.peach-new-name-input:focus {2946  border-bottom-color: var(--peach-t1);2947}29482949.peach-new-name-input::placeholder {2950  color: var(--peach-t2);2951  font-style: italic;2952}29532954.peach-new-field-input::placeholder {2955  color: var(--peach-t3);2956}29572958/* ── Demo entrance animation ── */2959#hd-shell {2960  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2961}2962@keyframes hd-shell-enter {2963  from { opacity: 0; transform: scale(0.96) translateY(16px); }2964  to   { opacity: 1; transform: scale(1) translateY(0); }2965}29662967/* ── Keyframes ── */2968@keyframes peach-char-enter {2969  from { opacity: 0; transform: translateY(0.22em); }2970  to   { opacity: 1; transform: translateY(0); }2971}2972@keyframes peach-content-enter {2973  from { opacity: 0.96; transform: translateY(4px); }2974  to   { opacity: 1; transform: translateY(0); }2975}2976@keyframes peach-content-exit {2977  from { opacity: 1; transform: translateY(0); }2978  to   { opacity: 0.92; transform: translateY(-3px); }2979}2980@keyframes peach-screen-enter {2981  from { opacity: 0; transform: translateY(14px); }2982  to   { opacity: 1; transform: translateY(0); }2983}2984@keyframes peach-shell-fade-in {2985  from { opacity: 0; }2986  to   { opacity: 1; }2987}2988@keyframes peach-veil-in {2989  from { opacity: 0; }2990  to   { opacity: 1; }2991}2992@keyframes peach-lock-settle {2993  0%   { transform: scale(0.9); }2994  65%  { transform: scale(1.08); }2995  100% { transform: scale(1); }2996}2997@keyframes peach-copy-confirm {2998  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2999  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); }3000}3001@keyframes peach-copy-retreat {3002  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); }3003  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3004}3005@keyframes peach-copy-flood {3006  from { opacity: 0; transform: scaleX(0.15); }3007  to   { opacity: 1; transform: scaleX(1); }3008}3009@keyframes peach-copy-icon-settle {3010  from  { transform: scale(0.84); }3011  70%   { transform: scale(1.08); }3012  to    { transform: scale(1); }3013}3014@keyframes peach-copy-sheen-retreat {3015  from { opacity: 1; transform: scaleX(1); }3016  to   { opacity: 0; transform: scaleX(0.15); }3017}3018@keyframes peach-copy-drain {3019  from { width: 100%; }3020  to   { width: 0; }3021}3022@keyframes peach-shake {3023  0%, 100% { transform: translateX(0); }3024  20%      { transform: translateX(-6px); }3025  40%      { transform: translateX(6px); }3026  60%      { transform: translateX(-4px); }3027  80%      { transform: translateX(4px); }3028}30293030@keyframes pip-pulse {3031  0% { transform: scale(1); }3032  40% { transform: scale(2.2); }3033  100% { transform: scale(1); }3034}303530363037/* ── Password generator ── */3038.peach-pwgen-body {3039  flex: 1; overflow-y: auto;3040  display: flex; flex-direction: column;3041}3042.peach-policy-badge {3043  display: flex; align-items: center;3044  padding: 6px 20px 0;3045  font-size: 10px; font-family: Inter, sans-serif;3046  color: var(--peach-t2); letter-spacing: 0.04em;3047}3048.peach-pwgen-display {3049  padding: 14px 20px 12px;3050  border-bottom: 1px solid var(--peach-t3);3051  display: flex; align-items: flex-start; gap: 10px;3052}3053.peach-pwgen-display-row {3054  display: flex;3055  align-items: flex-start;3056  gap: 8px;3057  padding-bottom: 8px;3058  border-bottom: 1px solid var(--peach-t3);3059}3060.peach-pwgen-output {3061  flex: 1; min-width: 0; margin: 0;3062  font-family: "IBM Plex Mono", monospace;3063  font-size: 13px; color: var(--peach-t0);3064  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3065  white-space: normal;3066  padding: 10px 12px;3067  background: var(--peach-t4);3068  border-radius: 6px;3069  min-height: 36px;3070}3071.peach-pwgen-output-display {3072  flex: 1;3073  min-width: 0;3074  margin: 0;3075  font-family: var(--font-display);3076  font-style: italic;3077  font-weight: 300;3078  font-size: 32px;3079  line-height: 1.05;3080  color: var(--peach-t0);3081  word-break: break-all;3082  overflow-wrap: break-word;3083  white-space: normal;3084  letter-spacing: 0.02em;3085}3086.peach-pwgen-display-actions {3087  display: flex;3088  flex-direction: column;3089  gap: 4px;3090  flex-shrink: 0;3091  margin-top: 2px;3092}3093.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3094.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3095.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3096.peach-pwgen-len-num {3097  font-family: "IBM Plex Mono", monospace;3098  font-size: 12px; color: var(--peach-accent);3099}3100.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3101.peach-pwgen-toggles { display: flex; flex-direction: column; }3102.peach-pwgen-charset-pills {3103  display: flex;3104  gap: 6px;3105  flex-wrap: wrap;3106}3107.peach-pwgen-pill {3108  padding: 4px 11px;3109  border-radius: 999px;3110  border: 1px solid var(--peach-t3);3111  background: transparent;3112  color: var(--peach-t2);3113  font-family: "IBM Plex Mono", monospace;3114  font-size: 9px;3115  letter-spacing: 0.08em;3116  cursor: pointer;3117  transition: all 150ms ease;3118}3119.peach-pwgen-pill.is-on {3120  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3121  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3122  color: var(--peach-accent);3123}3124.peach-pwgen-pill:not(.is-on):hover {3125  color: var(--peach-t1);3126  border-color: var(--peach-t2);3127}3128.peach-pwgen-use-btn {3129  width: 100%;3130  min-height: 34px;3131  border-radius: 8px;3132  margin-top: 2px;3133}3134.peach-pwgen-toggle-row {3135  display: flex; align-items: center; justify-content: space-between;3136  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3137}3138.peach-pwgen-toggle-row:last-child { border-bottom: none; }3139.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }31403141.peach-screen-prelock {3142  z-index: 10;3143}31443145.prelock-form {3146  display: grid;3147  gap: 12px;3148}31493150/* Peach popup should not expose native scrollbars on internal panels. */3151.peach-settings-body,3152.peach-new-body,3153.peach-pwgen-body,3154.lock-screen,3155.peach-import-preview {3156  scrollbar-width: none;3157  -ms-overflow-style: none;3158  overscroll-behavior: contain;3159}3160.peach-settings-body::-webkit-scrollbar,3161.peach-new-body::-webkit-scrollbar,3162.peach-pwgen-body::-webkit-scrollbar,3163.lock-screen::-webkit-scrollbar,3164.peach-import-preview::-webkit-scrollbar {3165  width: 0;3166  height: 0;3167  display: none;3168}31693170.lock-screen {3171  height: 100%;3172  min-height: 100%;3173  overflow-y: auto;3174  padding: 18px 18px 16px;3175  gap: 14px;3176  grid-template-rows: auto auto auto 1fr auto;3177  align-content: stretch;3178  position: relative;3179  isolation: isolate;3180}3181.peach-screen.lock-screen--vault-stage {3182  display: flex;3183  flex-direction: column;3184  justify-content: flex-start;3185  gap: 18px;3186  padding: 20px 18px 18px;3187  overflow: hidden;3188}3189.peach-screen.lock-screen--vault-stage .peach-lock-panel {3190  margin-top: 0;3191}3192.lock-screen--onboarding {3193  display: flex;3194  flex-direction: column;3195  gap: 12px;3196  justify-content: flex-start;3197}31983199.lock-screen::before {3200  content: "";3201  position: absolute;3202  inset: 12px 18px auto auto;3203  width: 160px;3204  height: 160px;3205  border-radius: 999px;3206  background:3207    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%);3208  filter: blur(6px);3209  opacity: 0.7;3210  pointer-events: none;3211  z-index: 0;3212}32133214.peach-lock-rune-string {3215  flex: 1;3216  display: flex;3217  align-items: center;3218  justify-content: center;3219  gap: 6px;3220  font-family: PeachScript, monospace;3221  font-size: 13px;3222  letter-spacing: 0.05em;3223  pointer-events: none;3224  user-select: none;3225  position: relative;3226  z-index: 1;3227}32283229.peach-lock-rune-string span {3230  color: color-mix(in srgb, var(--peach-t0) 12%, transparent);3231  text-shadow:3232    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent),3233    0 0 0 color-mix(in srgb, var(--peach-accent) 0%, transparent);3234  transition: color 0.9s ease, text-shadow 0.9s ease;3235}32363237.peach-lock-rune-string span.is-glowing {3238  color: color-mix(in srgb, var(--peach-accent) 65%, transparent);3239  text-shadow:3240    0 0 8px color-mix(in srgb, var(--peach-accent) 50%, transparent),3241    0 0 20px color-mix(in srgb, var(--peach-accent) 22%, transparent);3242}32433244.lock-screen-header {3245  display: flex;3246  align-items: center;3247  justify-content: space-between;3248  position: relative;3249  z-index: 1;3250}32513252.lock-password-input.shake {3253  animation: peach-shake 300ms ease-in-out;3254}32553256.peach-hint-error {3257  color: rgba(220, 80, 60, 0.92);3258}32593260.peach-onboarding-headline {3261  margin: 0;3262  font-family: var(--font-display);3263  font-size: 35px;3264  line-height: 0.88;3265  font-style: italic;3266  font-weight: 400;3267  max-width: 252px;3268}32693270.peach-lock-copy {3271  display: grid;3272  gap: 8px;3273  position: relative;3274  z-index: 1;3275}32763277.peach-lock-copy--onboarding {3278  gap: 10px;3279}32803281.peach-lock-hero {3282  position: relative;3283  z-index: 1;3284  display: grid;3285  gap: 8px;3286  min-height: 0;3287  padding: 4px 2px 0;3288  border: none;3289  border-radius: 0;3290  background: transparent;3291  box-shadow: none;3292}3293.peach-lock-hero-art {3294  position: absolute;3295  right: -8px;3296  top: -6px;3297  width: 120px;3298  height: 120px;3299  display: flex;3300  align-items: center;3301  justify-content: center;3302  pointer-events: none;3303  opacity: 0.12;3304  filter: saturate(0.9);3305}3306.peach-lock-hero-mark {3307  width: 100%;3308  height: 100%;3309}3310/* Peach body stays brand-peach across every accent — we don't want a3311   green or blue peach when sage/sky is selected. Leaf + stem keep the3312   sage tint because a real peach has a sage leaf. */3313.peach-lock-hero-mark path:nth-child(2),3314.peach-lock-hero-mark path:nth-child(3) {3315  stroke: rgba(123, 144, 96, 0.88);3316  fill: rgba(123, 144, 96, 0.88);3317}3318.peach-lock-hero > *:not(.peach-lock-hero-art) {3319  position: relative;3320  z-index: 1;3321}33223323.peach-lock-eyebrow {3324  display: inline-flex;3325  align-items: center;3326  width: fit-content;3327  padding: 4px 9px;3328  border-radius: 999px;3329  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3330  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3331  color: var(--peach-t0);3332  font-family: "IBM Plex Mono", monospace;3333  font-size: 8px;3334  letter-spacing: 0.18em;3335  text-transform: uppercase;3336}33373338.peach-lock-label-row {3339  display: flex;3340  align-items: center;3341  justify-content: space-between;3342  margin-bottom: 0;3343}33443345.peach-lock-reveal-btn {3346  display: inline-flex;3347  align-items: center;3348  gap: 4px;3349  background: none;3350  border: none;3351  cursor: pointer;3352  font-family: "IBM Plex Mono", monospace;3353  font-size: 9px;3354  letter-spacing: 0.06em;3355  color: var(--peach-t2);3356  padding: 2px 0;3357  transition: color 150ms ease;3358}33593360.peach-lock-reveal-btn:hover {3361  color: var(--peach-t1);3362}33633364.peach-lock-warning {3365  color: rgba(220, 80, 60, 0.85) !important;3366  line-height: 1.5;3367}33683369.peach-onboarding-cards {3370  display: grid;3371  gap: 8px;3372  position: relative;3373  z-index: 1;3374}33753376.peach-lock-panel {3377  position: relative;3378  z-index: 1;3379  display: grid;3380  gap: 9px;3381  padding: 14px 16px 15px;3382  border-radius: 18px;3383  border: 1px solid var(--peach-t3);3384  background:3385    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3386  box-shadow:3387    inset 0 1px 0 rgba(240, 232, 216, 0.04),3388    0 12px 28px rgba(0, 0, 0, 0.12);3389}33903391/* Glass surface — lock panel and settings groups */3392.peach-glass {3393  background: rgba(26, 20, 16, 0.65);3394  border: 1px solid rgba(255, 255, 255, 0.08);3395  border-radius: 12px;3396  backdrop-filter: blur(12px) saturate(1.4);3397  -webkit-backdrop-filter: blur(12px) saturate(1.4);3398}33993400@supports not (backdrop-filter: blur(1px)) {3401  .peach-glass {3402    background: rgba(26, 20, 16, 0.92);3403    border: 1px solid rgba(255, 255, 255, 0.10);3404    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 24px rgba(0, 0, 0, 0.4);3405  }3406}34073408.light .peach-glass,3409[data-theme="light"] .peach-glass {3410  background: rgba(253, 248, 244, 0.70);3411  border: 1px solid rgba(0, 0, 0, 0.07);3412  backdrop-filter: blur(12px) saturate(1.2);3413  -webkit-backdrop-filter: blur(12px) saturate(1.2);3414}34153416@supports not (backdrop-filter: blur(1px)) {3417  .light .peach-glass,3418  [data-theme="light"] .peach-glass {3419    background: rgba(253, 248, 244, 0.95);3420    border: 1px solid rgba(0, 0, 0, 0.09);3421  }3422}34233424/* Lock panel keeps its own border-radius over the generic glass token */3425.peach-lock-panel.peach-glass {3426  border-radius: 18px;3427  background: rgba(26, 20, 16, 0.65);3428  border: 1px solid rgba(255, 255, 255, 0.08);3429  box-shadow:3430    inset 0 1px 0 rgba(255, 255, 255, 0.05),3431    0 12px 28px rgba(0, 0, 0, 0.3);3432}34333434.light .peach-lock-panel.peach-glass,3435[data-theme="light"] .peach-lock-panel.peach-glass {3436  background: rgba(238, 227, 204, 0.75);3437  border: 1px solid rgba(34, 24, 9, 0.10);3438  box-shadow:3439    inset 0 1px 0 rgba(255, 255, 255, 0.5),3440    0 8px 24px rgba(80, 56, 32, 0.15);3441}34423443@supports not (backdrop-filter: blur(1px)) {3444  .peach-lock-panel.peach-glass {3445    background: rgba(26, 20, 16, 0.92);3446    box-shadow:3447      inset 0 1px 0 rgba(255, 255, 255, 0.05),3448      0 12px 28px rgba(0, 0, 0, 0.4);3449  }3450  .light .peach-lock-panel.peach-glass,3451  [data-theme="light"] .peach-lock-panel.peach-glass {3452    background: rgba(238, 227, 204, 0.96);3453  }3454}34553456.peach-lock-panel--secondary {3457  gap: 12px;3458}34593460.peach-lock-panel-header {3461  display: flex;3462  align-items: baseline;3463  justify-content: space-between;3464  gap: 12px;3465}34663467.peach-lock-option-grid {3468  display: grid;3469  gap: 10px;3470}34713472.peach-lock-option {3473  width: 100%;3474  display: grid;3475  gap: 6px;3476  padding: 14px 15px;3477  border-radius: 16px;3478  border: 1px solid rgba(240, 232, 216, 0.08);3479  background: rgba(240, 232, 216, 0.02);3480  color: var(--peach-t0);3481  text-align: left;3482  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3483}34843485.peach-lock-option:hover {3486  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3487  background: rgba(240, 232, 216, 0.04);3488  transform: translateY(-1px);3489}34903491.peach-lock-option-title {3492  font-size: 12px;3493  color: var(--peach-t0);3494}34953496.peach-lock-option-copy {3497  font-size: 11px;3498  line-height: 1.55;3499  color: var(--peach-t1);3500}35013502.peach-onboarding-stack {3503  margin-top: 2px;3504}3505.peach-lock-panel-footer {3506  display: grid;3507  gap: 6px;3508  margin-top: 2px;3509  padding-top: 10px;3510  border-top: 1px solid rgba(240, 232, 216, 0.06);3511}35123513/* Restore picker panel — method option cards (legacy; kept for any callers3514   that still mount the old shape). The v2.12.0 restore picker uses the3515   .peach-restore-stack glass cards below instead. */3516.peach-lock-panel--restore {3517  gap: 10px;3518}3519.peach-lock-option--history {3520  border-color: rgba(240, 232, 216, 0.06);3521  opacity: 0.85;3522}35233524/* ── Restore picker (v2.12.0) ─────────────────────────────────────────────3525   Three onboarding-style glass cards (PeachScript / Mayan code / CSV) that3526   replace the flat option list. Visually echoes .peach-onboarding-card so3527   the restore surface reads as part of the onboarding family. */3528.peach-restore-screen {3529  /* The three cards already have their own padding and spacing — no extra3530     panel wrapper, so the screen just needs a comfortable bottom margin. */3531  padding-bottom: 14px;3532}35333534.peach-restore-stack {3535  position: relative;3536  z-index: 1;3537  display: flex;3538  flex-direction: column;3539  gap: 9px;3540  margin-top: 4px;3541}35423543.peach-restore-card {3544  position: relative;3545  width: 100%;3546  display: flex;3547  flex-direction: column;3548  gap: 6px;3549  padding: 14px 16px 13px;3550  border-radius: 14px;3551  border: 1px solid var(--peach-t3);3552  background:3553    linear-gradient(180deg, rgba(240, 232, 216, 0.035), rgba(240, 232, 216, 0.012));3554  backdrop-filter: blur(3px);3555  -webkit-backdrop-filter: blur(3px);3556  box-shadow:3557    inset 0 1px 0 rgba(240, 232, 216, 0.04),3558    0 8px 18px rgba(0, 0, 0, 0.18);3559  color: var(--peach-t0);3560  text-align: left;3561  cursor: pointer;3562  transition:3563    border-color 160ms ease,3564    transform 160ms ease,3565    box-shadow 160ms ease,3566    background 160ms ease;3567  animation: peach-card-in 240ms cubic-bezier(0.16, 1, 0.3, 1) both;3568}35693570.peach-restore-card:hover {3571  border-color: color-mix(in srgb, var(--peach-accent) 32%, transparent);3572  background:3573    linear-gradient(180deg, rgba(240, 232, 216, 0.05), rgba(240, 232, 216, 0.02));3574  transform: translateY(-1px);3575  box-shadow:3576    inset 0 1px 0 rgba(240, 232, 216, 0.05),3577    0 12px 24px rgba(0, 0, 0, 0.22);3578}35793580.peach-restore-card:focus-visible {3581  outline: none;3582  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3583  box-shadow:3584    inset 0 1px 0 rgba(240, 232, 216, 0.05),3585    0 0 0 2px color-mix(in srgb, var(--peach-accent) 24%, transparent);3586}35873588/* The Mayan card is interactive but routes to a "decoder coming soon"3589   stub — we still want the hover affordance, just slightly toned down. */3590.peach-restore-card:has(.peach-restore-card-soon) {3591  opacity: 0.78;3592}3593.peach-restore-card:has(.peach-restore-card-soon):hover {3594  opacity: 0.92;3595}35963597/* Used by MayanComingSoonView for the explanatory card — non-interactive. */3598.peach-restore-card--static {3599  cursor: default;3600}3601.peach-restore-card--static:hover {3602  border-color: var(--peach-t3);3603  transform: none;3604  background:3605    linear-gradient(180deg, rgba(240, 232, 216, 0.035), rgba(240, 232, 216, 0.012));3606  box-shadow:3607    inset 0 1px 0 rgba(240, 232, 216, 0.04),3608    0 8px 18px rgba(0, 0, 0, 0.18);3609}36103611.peach-restore-card-headline {3612  margin: 0;3613  font-family: var(--font-display);3614  font-style: italic;3615  font-weight: 400;3616  font-size: 19px;3617  line-height: 1.05;3618  color: var(--peach-t0);3619}36203621.peach-restore-card-divider {3622  margin: 1px 0 3px;3623  border: 0;3624  border-top: 1px solid var(--peach-t3);3625  width: 100%;3626}36273628.peach-restore-card-body {3629  margin: 0;3630  font-size: 12px;3631  line-height: 1.55;3632  color: var(--peach-t1);3633}36343635.peach-restore-card-body code {3636  font-family: "IBM Plex Mono", monospace;3637  font-size: 11px;3638  padding: 1px 5px;3639  border-radius: 4px;3640  background: rgba(240, 232, 216, 0.06);3641  color: var(--peach-t0);3642}36433644.peach-restore-card-meta {3645  margin: 2px 0 0;3646  font-family: "IBM Plex Mono", monospace;3647  font-size: 9px;3648  letter-spacing: 0.14em;3649  text-transform: uppercase;3650  color: var(--peach-t2);3651}36523653.peach-restore-card-soon {3654  position: absolute;3655  top: 12px;3656  right: 12px;3657  display: inline-flex;3658  align-items: center;3659  padding: 2px 7px;3660  border-radius: 999px;3661  border: 1px solid color-mix(in srgb, var(--peach-accent) 26%, transparent);3662  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3663  color: var(--peach-t0);3664  font-family: "IBM Plex Mono", monospace;3665  font-size: 8px;3666  letter-spacing: 0.18em;3667  text-transform: uppercase;3668}36693670.peach-restore-footer {3671  position: relative;3672  z-index: 1;3673  margin-top: 6px;3674  padding-top: 10px;3675  border-top: 1px solid rgba(240, 232, 216, 0.06);3676  display: flex;3677  justify-content: center;3678}36793680.peach-restore-footer-link {3681  background: none;3682  border: none;3683  padding: 4px 0;3684  cursor: pointer;3685  font-family: "IBM Plex Mono", monospace;3686  font-size: 10px;3687  letter-spacing: 0.06em;3688  color: var(--peach-t2);3689  transition: color 150ms ease;3690}36913692.peach-restore-footer-link:hover {3693  color: var(--peach-t0);3694}36953696/* Snapshot restore panel */3697.peach-snapshot-panel {3698  gap: 10px;3699  overflow-y: auto;3700  max-height: 340px;3701}3702.peach-snapshot-list {3703  display: flex;3704  flex-direction: column;3705  gap: 4px;3706}3707.peach-snapshot-row {3708  display: flex;3709  align-items: center;3710  justify-content: space-between;3711  width: 100%;3712  padding: 8px 10px;3713  border-radius: 8px;3714  border: 1px solid rgba(240, 232, 216, 0.07);3715  background: transparent;3716  cursor: pointer;3717  transition: border-color 120ms, background 120ms;3718  text-align: left;3719  gap: 8px;3720}3721.peach-snapshot-row:hover {3722  border-color: rgba(240, 232, 216, 0.14);3723  background: rgba(240, 232, 216, 0.03);3724}3725.peach-snapshot-row.is-selected {3726  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3727  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3728}3729.peach-snapshot-time {3730  font-size: 11.5px;3731  color: var(--peach-t0);3732  flex: 1;3733}3734.peach-snapshot-count {3735  font-family: "IBM Plex Mono", monospace;3736  font-size: 10px;3737  color: var(--peach-t2);3738  flex-shrink: 0;3739}3740.peach-snapshot-confirm {3741  display: flex;3742  flex-direction: column;3743  gap: 8px;3744  padding-top: 10px;3745  border-top: 1px solid rgba(240, 232, 216, 0.06);3746}3747.peach-snapshot-warning {3748  display: flex;3749  align-items: flex-start;3750  gap: 6px;3751  font-size: 10.5px;3752  color: rgba(220, 80, 60, 0.85);3753  line-height: 1.55;3754}3755.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3756.peach-snapshot-confirm-row {3757  display: flex;3758  gap: 6px;3759  align-items: center;3760}3761.peach-snapshot-restore-btn {3762  width: 100%;3763}3764.peach-lock-hero--unlock .peach-lock-hero-art {3765  width: 112px;3766  height: 112px;3767  right: 0;3768  top: 2px;3769  opacity: 0.1;3770}37713772.peach-card {3773  border: 1px solid var(--peach-t3);3774  border-radius: 18px;3775  background:3776    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3777  box-shadow:3778    inset 0 0 0 1px var(--peach-border-accent),3779    inset 0 1px 0 rgba(240, 232, 216, 0.04),3780    0 12px 32px rgba(0, 0, 0, 0.14);3781  overflow: hidden;3782}37833784.peach-card-active {3785  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3786  box-shadow:3787    inset 0 1px 0 rgba(240, 232, 216, 0.05),3788    0 16px 38px rgba(0, 0, 0, 0.18),3789    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3790}37913792.peach-card-disabled {3793  opacity: 0.72;3794}37953796.peach-card-header {3797  width: 100%;3798  padding: 13px 16px 11px;3799  background: transparent;3800  color: var(--peach-t0);3801  display: flex;3802  justify-content: space-between;3803  align-items: center;3804  text-align: left;3805  font-size: 12px;3806}38073808.peach-card-body {3809  padding: 0 16px 16px;3810  display: grid;3811  gap: 9px;3812}38133814.peach-card-tag {3815  color: var(--peach-t2);3816  font-family: "IBM Plex Mono", monospace;3817  font-size: 9px;3818  letter-spacing: 0.12em;3819  text-transform: uppercase;3820}38213822.peach-empty-copy {3823  display: grid;3824  gap: 6px;3825  color: var(--peach-t1);3826  font-size: 13px;3827}38283829.peach-lock-submit {3830  width: 100%;3831  box-shadow:3832    0 1px 0 rgba(255,255,255,0.10) inset,3833    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3834    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3835    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3836}38373838.peach-lock-secondary {3839  width: 100%;3840  border-color: var(--peach-t3);3841  background: rgba(240, 232, 216, 0.02);3842}38433844.peach-lock-secondary:hover {3845  background: rgba(240, 232, 216, 0.04);3846}38473848.peach-lock-note {3849  max-width: none;3850  line-height: 1.55;3851  margin: 0;3852}38533854.peach-overlay-action {3855  font-size: 10px;3856  padding: 4px 8px;3857  letter-spacing: 0.06em;3858  min-width: 44px;3859  text-align: center;3860}38613862.peach-overlay-spacer {3863  width: 32px;3864}38653866.peach-inline-action {3867  flex-shrink: 0;3868  font-size: 9px;3869  letter-spacing: 0.1em;3870  text-transform: uppercase;3871  padding: 4px 7px;3872}3873.peach-password-toggle-btn {3874  display: inline-flex;3875  align-items: center;3876  justify-content: center;3877  min-width: 30px;3878  min-height: 26px;3879  padding: 0 7px;3880  border: 1px solid var(--peach-t3);3881  border-radius: 999px;3882  background: rgba(240, 232, 216, 0.04);3883  color: var(--peach-t2);3884  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3885}3886.peach-password-toggle-btn:hover {3887  border-color: var(--peach-t2);3888  color: var(--peach-t0);3889  background: rgba(240, 232, 216, 0.06);3890}38913892.peach-new-textarea {3893  width: 100%;3894  min-height: 88px;3895  resize: vertical;3896  border: 0;3897  outline: none;3898  background: transparent;3899  color: var(--peach-t1);3900  font-family: "IBM Plex Mono", monospace;3901  font-size: 12px;3902  line-height: 1.65;3903  caret-color: var(--peach-accent);3904}39053906.peach-new-textarea::placeholder {3907  color: var(--peach-t2);3908  opacity: 0.7;3909}39103911.peach-settings-actions {3912  display: grid;3913  gap: 8px;3914}39153916.peach-sync-section-label {3917  font-size: 11px;3918  color: var(--peach-t2);3919  text-transform: uppercase;3920  letter-spacing: 0.05em;3921}39223923.peach-sync-device-row {3924  display: flex;3925  justify-content: space-between;3926  align-items: center;3927  padding: 6px 0;3928  border-bottom: 1px solid var(--peach-t3);3929}39303931.peach-sync-device-info {3932  display: flex;3933  flex-direction: column;3934  gap: 2px;3935}39363937.peach-sync-device-name {3938  font-size: 13px;3939  color: var(--peach-t0);3940}39413942.peach-sync-device-meta {3943  font-size: 11px;3944  color: var(--peach-t2);3945}39463947.peach-sync-status-dot {3948  display: inline-block;3949  width: 8px;3950  height: 8px;3951  border-radius: 50%;3952  vertical-align: middle;3953}39543955.peach-sync-remove-btn {3956  color: var(--peach-breach);3957}39583959.peach-sync-hero-icon {3960  color: var(--peach-t1);3961  opacity: 0.85;3962}39633964.peach-import-preview {3965  margin-bottom: 12px;3966  max-height: 152px;3967  overflow-y: auto;3968  border: 1px solid var(--peach-t3);3969  border-radius: 10px;3970  padding: 8px 10px;3971  display: grid;3972  gap: 8px;3973  background: rgba(240, 232, 216, 0.02);3974}39753976.peach-import-preview-row {3977  display: flex;3978  justify-content: space-between;3979  gap: 10px;3980  font-size: 11px;3981  color: var(--peach-t1);3982}39833984.peach-import-preview-title {3985  color: var(--peach-t0);3986  flex: 1;3987  min-width: 0;3988  overflow: hidden;3989  text-overflow: ellipsis;3990  white-space: nowrap;3991}39923993.peach-import-preview-meta {3994  color: var(--peach-t2);3995  flex-shrink: 0;3996  max-width: 42%;3997  overflow: hidden;3998  text-overflow: ellipsis;3999  white-space: nowrap;4000}40014002.peach-import-preview-more {4003  color: var(--peach-t2);4004  font-size: 10px;4005}40064007.peach-restore-copy {4008  margin: 0;4009  color: var(--peach-t1);4010  font-size: 11px;4011  line-height: 1.6;4012}40134014.peach-restore-warning {4015  padding: 10px 12px;4016  border-radius: 12px;4017  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);4018  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4019  color: var(--peach-t0);4020  font-size: 11px;4021  line-height: 1.55;4022}40234024.peach-provider-chips {4025  display: flex;4026  flex-wrap: wrap;4027  gap: 6px;4028}40294030.peach-provider-chip {4031  display: inline-flex;4032  align-items: center;4033  padding: 5px 8px;4034  border-radius: 999px;4035  border: 1px solid var(--peach-t3);4036  background: rgba(240, 232, 216, 0.02);4037  color: var(--peach-t1);4038  font-family: "IBM Plex Mono", monospace;4039  font-size: 8px;4040  letter-spacing: 0.08em;4041  text-transform: uppercase;4042}40434044.peach-restore-file,4045.peach-restore-input {4046  width: 100%;4047  border-radius: 10px;4048  border: 1px solid var(--peach-t3);4049  background: var(--peach-s2);4050  color: var(--peach-t0);4051  font-size: 12px;4052}40534054.peach-restore-file {4055  padding: 9px 10px;4056}40574058.peach-restore-file::file-selector-button {4059  margin-right: 10px;4060  padding: 7px 10px;4061  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4062  border-radius: 999px;4063  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4064  color: var(--peach-t0);4065  font-size: 10px;4066  letter-spacing: 0.08em;4067  text-transform: uppercase;4068  cursor: pointer;4069}40704071.peach-restore-input {4072  padding: 10px 12px;4073}40744075.peach-auth-grid {4076  display: grid;4077  gap: 10px;4078}40794080.peach-import-summary {4081  color: var(--peach-t1);4082  font-size: 12px;4083  line-height: 1.6;4084  margin-bottom: 12px;4085}40864087.peach-restore-error {4088  color: rgba(220, 80, 60, 0.95);4089  font-size: 12px;4090  line-height: 1.55;4091}40924093.peach-passkey-card {4094  max-width: 400px;4095  margin: auto 16px;4096  align-self: center;4097  width: calc(100% - 32px);4098}40994100/* Center the approval card vertically inside the overlay-view (which sets4101 * flex-direction: column without justify-content). Without this, the card4102 * sits at the top with a tall empty band below — looks unfinished on the4103 * 320px popup. */4104.peach-overlay-view:has(.peach-passkey-card) {4105  justify-content: center;4106}41074108.peach-pro-badge {4109  padding: 2px 6px;4110  border-radius: 999px;4111  font-family: var(--font-ui);4112  font-size: 10px;4113  letter-spacing: 0.08em;4114  text-transform: uppercase;4115  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4116  color: var(--peach-accent);4117}41184119/* ── Shortcuts rebind table ─────────────────────────────────── */4120.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }4121.peach-shortcut-row {4122  display: flex;4123  align-items: center;4124  gap: 10px;4125  padding: 6px 0;4126}4127.peach-shortcut-row-label {4128  flex: 1;4129  font-size: 12px;4130  color: var(--peach-t0);4131}4132.peach-shortcut-chip {4133  min-width: 64px;4134  padding: 4px 10px;4135  border-radius: 6px;4136  border: 1px solid var(--peach-t3);4137  background: var(--peach-input-bg, var(--surface-card));4138  color: var(--peach-t0);4139  font-family: var(--font-mono);4140  font-size: 11px;4141  letter-spacing: 0.04em;4142  cursor: pointer;4143  text-align: center;4144  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;4145}4146.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }4147.peach-shortcut-chip.is-custom {4148  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4149  color: var(--peach-accent);4150}4151.peach-shortcut-chip.is-capturing {4152  border-color: var(--peach-accent);4153  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);4154  color: var(--peach-accent);4155  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;4156}4157@keyframes peach-shortcut-capture-pulse {4158  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }4159  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }4160}4161.peach-shortcut-reset {4162  background: transparent;4163  border: none;4164  cursor: pointer;4165  color: var(--peach-t2);4166  padding: 4px 6px;4167  border-radius: 5px;4168  font-size: 14px;4169  line-height: 1;4170  transition: color 120ms ease, background 120ms ease;4171}4172.peach-shortcut-reset:hover {4173  color: var(--peach-t0);4174  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);4175}4176.peach-shortcuts-conflict {4177  margin: 4px 0 0;4178  padding: 8px 10px;4179  border-radius: 7px;4180  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);4181  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);4182  font-family: var(--font-mono);4183  font-size: 11px;4184  color: var(--peach-t0);4185}41864187/* ── Help dialog overlay (? to open) ────────────────────────── */4188.peach-shortcuts-help-backdrop {4189  position: fixed;4190  inset: 0;4191  background: rgba(0, 0, 0, 0.55);4192  backdrop-filter: blur(2px);4193  display: flex;4194  align-items: center;4195  justify-content: center;4196  z-index: 1000;4197  animation: peach-help-fade-in 140ms ease forwards;4198}4199@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }4200.peach-shortcuts-help-card {4201  width: min(320px, 92vw);4202  max-height: 80vh;4203  overflow-y: auto;4204  border-radius: 14px;4205  border: 1px solid var(--peach-t3);4206  background: var(--peach-bg);4207  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);4208  padding: 16px 18px 18px;4209  display: flex;4210  flex-direction: column;4211  gap: 12px;4212}4213.peach-shortcuts-help-head {4214  display: flex; align-items: center; justify-content: space-between;4215}4216.peach-shortcuts-help-head h3 {4217  margin: 0;4218  font-family: var(--font-display);4219  font-style: italic;4220  font-weight: 400;4221  font-size: 22px;4222  color: var(--peach-t0);4223}4224.peach-shortcuts-help-close {4225  background: transparent;4226  border: none;4227  color: var(--peach-t2);4228  cursor: pointer;4229  font-size: 14px;4230  padding: 4px 8px;4231  border-radius: 5px;4232}4233.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4234.peach-shortcuts-help-body ul {4235  list-style: none; padding: 0; margin: 4px 0 12px;4236  display: grid; gap: 8px;4237}4238.peach-shortcuts-help-body li {4239  display: flex; align-items: center; justify-content: space-between; gap: 12px;4240  font-size: 12px; color: var(--peach-t0);4241}4242.peach-shortcuts-help-body kbd {4243  font-family: var(--font-mono);4244  font-size: 11px;4245  padding: 3px 8px;4246  border-radius: 6px;4247  background: var(--surface-card);4248  border: 1px solid var(--peach-t3);4249  color: var(--peach-accent);4250  letter-spacing: 0.04em;4251}42524253/* ── Pro promo on Account screen ────────────────────────────── */4254.peach-pro-promo {4255  position: relative;4256  border-radius: 14px;4257  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4258  background:4259    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4260    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4261    var(--surface-card);4262  overflow: hidden;4263  margin-bottom: 14px;4264}4265.peach-pro-promo-glow {4266  position: absolute;4267  inset: -40% -20% auto auto;4268  width: 220px; height: 220px;4269  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4270  pointer-events: none;4271  filter: blur(8px);4272}4273.peach-pro-promo-inner {4274  position: relative;4275  padding: 18px 18px 16px;4276}4277.peach-pro-promo-title {4278  font-family: var(--font-display);4279  font-style: italic;4280  font-weight: 400;4281  font-size: 28px;4282  line-height: 1;4283  letter-spacing: -0.005em;4284  color: var(--peach-t0);4285  margin: 0 0 4px;4286}4287.peach-pro-promo-tagline {4288  font-family: var(--font-mono);4289  font-size: 10px;4290  letter-spacing: 0.06em;4291  color: var(--peach-t2);4292  margin: 0 0 14px;4293}4294.peach-pro-promo-list {4295  list-style: none;4296  margin: 0 0 16px;4297  padding: 0;4298  display: grid;4299  gap: 9px;4300}4301.peach-pro-promo-list li {4302  display: flex;4303  align-items: flex-start;4304  gap: 9px;4305  font-size: 12px;4306  color: var(--peach-t1);4307  line-height: 1.4;4308}4309.peach-pro-promo-list svg {4310  width: 14px;4311  height: 14px;4312  flex-shrink: 0;4313  color: var(--peach-accent);4314  margin-top: 2px;4315}4316.peach-pro-promo-list span {4317  color: var(--peach-t0);4318}4319.peach-pro-promo-cta {4320  width: 100%;4321  background: var(--peach-accent);4322  color: #fff;4323  border: none;4324  padding: 9px 12px;4325  border-radius: 9px;4326  font-size: 12px;4327  font-weight: 500;4328  font-family: var(--font-ui);4329  letter-spacing: 0.02em;4330  text-decoration: none;4331  display: inline-flex;4332  align-items: center;4333  justify-content: center;4334  cursor: pointer;4335  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4336  box-shadow: 0 2px 16px var(--peach-glow);4337}4338.peach-pro-promo-cta:hover {4339  filter: brightness(1.07);4340  box-shadow: 0 4px 24px var(--peach-glow);4341  transform: translateY(-1px);4342}4343.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }43444345.peach-pro-or-divider {4346  display: flex;4347  align-items: center;4348  gap: 10px;4349  margin: 4px 0 12px;4350  font-family: var(--font-mono);4351  font-size: 10px;4352  letter-spacing: 0.06em;4353  color: var(--peach-t2);4354  text-transform: uppercase;4355}4356.peach-pro-or-divider::before,4357.peach-pro-or-divider::after {4358  content: "";4359  flex: 1;4360  height: 1px;4361  background: var(--peach-t3);4362}43634364.peach-loading {4365  position: absolute;4366  inset: 0;4367  display: flex;4368  align-items: center;4369  justify-content: center;4370  background: var(--bg);4371  animation: peach-loading-pulse 1.2s ease-in-out infinite;4372}43734374@keyframes peach-loading-pulse {4375  0%, 100% { opacity: 0.6; }4376  50% { opacity: 1; }4377}43784379/* ── Health Dashboard ─────────────────────────────────────────────────── */4380.peach-health-body {4381  flex: 1;4382  overflow-y: auto;4383  display: flex;4384  flex-direction: column;4385  /* Hide the platform scrollbar — every other scrollable surface in the4386   * popup hides it; the Health view was the one outlier and it ruined the4387   * polish. Behavior unchanged, just no rail rendered. */4388  scrollbar-width: none;4389  -ms-overflow-style: none;4390}4391.peach-health-body::-webkit-scrollbar { display: none; }43924393/* Loading screen for the Vault Health view. The advanced report computation4394 * can run for a few seconds on a large vault — without a clear loading4395 * screen the surface looked broken (the entry view bleeds through the4396 * empty body). Centered glyph + title + copy + indeterminate progress bar. */4397.peach-health-loading-screen {4398  flex: 1;4399  display: flex;4400  flex-direction: column;4401  align-items: center;4402  justify-content: center;4403  gap: 14px;4404  padding: 32px 28px;4405  text-align: center;4406}44074408.peach-health-loading-glyph {4409  width: 48px;4410  height: 48px;4411  display: flex;4412  align-items: center;4413  justify-content: center;4414  border-radius: 14px;4415  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4416  color: var(--peach-accent);4417}44184419.peach-health-loading-title {4420  margin: 0;4421  font-family: var(--font-display);4422  font-style: italic;4423  font-weight: 300;4424  font-size: 19px;4425  line-height: 1.2;4426  color: var(--peach-t0);4427}44284429.peach-health-loading-copy {4430  margin: 0;4431  max-width: 240px;4432  font-size: 12px;4433  line-height: 1.55;4434  color: var(--peach-t2);4435}44364437.peach-health-loading-track {4438  width: 200px;4439  height: 3px;4440  margin-top: 6px;4441  border-radius: 999px;4442  background: rgba(240, 232, 216, 0.06);4443  overflow: hidden;4444}44454446.peach-health-loading-fill {4447  width: 40%;4448  height: 100%;4449  border-radius: inherit;4450  background: linear-gradient(4451    90deg,4452    transparent 0%,4453    var(--peach-accent) 50%,4454    transparent 100%4455  );4456  animation: peach-health-loading-sweep 1.4s ease-in-out infinite;4457}44584459@keyframes peach-health-loading-sweep {4460  0%   { transform: translateX(-100%); }4461  100% { transform: translateX(350%); }4462}44634464[data-motion="reduce"] .peach-health-loading-fill,4465[data-motion="reduce"] .peach-health-loading-glyph svg path {4466  animation: none;4467}44684469.peach-health-summary {4470  padding: 10px 16px 6px;4471  font-family: "IBM Plex Mono", monospace;4472  font-size: 11px;4473}4474.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4475.peach-health-summary-ok { color: var(--peach-t2); }44764477.peach-health-check-row {4478  padding: 0 16px 10px;4479}4480.peach-health-check-btn {4481  width: 100%;4482  display: flex;4483  align-items: center;4484  justify-content: center;4485}44864487.peach-health-sections {4488  flex: 1;4489  display: flex;4490  flex-direction: column;4491}44924493.peach-health-section {4494  border-bottom: 1px solid var(--peach-t3);4495}44964497.peach-health-section-header {4498  width: 100%;4499  display: flex;4500  align-items: center;4501  justify-content: space-between;4502  padding: 9px 16px;4503  background: transparent;4504  cursor: pointer;4505  color: var(--peach-t0);4506}45074508.peach-health-section-title-row {4509  display: flex;4510  align-items: center;4511  gap: 8px;4512}45134514.peach-health-count-badge {4515  display: inline-flex;4516  align-items: center;4517  justify-content: center;4518  min-width: 20px;4519  height: 18px;4520  padding: 0 5px;4521  border-radius: 999px;4522  background: rgba(220,80,60,0.15);4523  border: 1px solid rgba(220,80,60,0.25);4524  font-family: "IBM Plex Mono", monospace;4525  font-size: 9px;4526  color: rgba(220,80,60,0.9);4527}45284529.peach-health-section-title {4530  font-family: "IBM Plex Mono", monospace;4531  font-size: 11px;4532  text-transform: uppercase;4533  letter-spacing: 0.1em;4534  color: var(--peach-t1);4535}45364537.peach-health-chevron {4538  color: var(--peach-t2);4539  transition: transform 200ms ease;4540  flex-shrink: 0;4541}4542.peach-health-chevron.is-expanded {4543  transform: rotate(180deg);4544}45454546.peach-health-section-body {4547  padding: 0 16px 10px;4548  display: flex;4549  flex-direction: column;4550  gap: 4px;4551}45524553.peach-health-row {4554  display: flex;4555  align-items: flex-start;4556  justify-content: space-between;4557  gap: 8px;4558  padding: 6px 8px;4559  border-radius: 8px;4560  background: rgba(240,232,216,0.02);4561}45624563.peach-health-row-info {4564  flex: 1;4565  min-width: 0;4566  display: flex;4567  flex-direction: column;4568  gap: 2px;4569}45704571.peach-health-row-name {4572  font-family: var(--font-display);4573  font-size: 15px;4574  font-style: italic;4575  font-weight: 400;4576  color: var(--peach-t0);4577  white-space: nowrap;4578  overflow: hidden;4579  text-overflow: ellipsis;4580}45814582.peach-health-row-meta {4583  font-family: "IBM Plex Mono", monospace;4584  font-size: 9px;4585  color: var(--peach-t2);4586  letter-spacing: 0.05em;4587}45884589.peach-health-fix-btn {4590  font-size: 9px;4591  letter-spacing: 0.08em;4592  text-transform: uppercase;4593  padding: 4px 7px;4594  flex-shrink: 0;4595  display: flex;4596  align-items: center;4597}45984599.peach-health-empty {4600  font-family: "IBM Plex Mono", monospace;4601  font-size: 10px;4602  color: var(--peach-t2);4603  padding: 6px 0;4604}46054606.peach-health-loading {4607  font-family: "IBM Plex Mono", monospace;4608  font-size: 10px;4609  color: var(--peach-t2);4610  padding: 6px 0;4611  display: flex;4612  align-items: center;4613  gap: 6px;4614}46154616.peach-health-loading::before {4617  content: "";4618  width: 10px;4619  height: 10px;4620  border: 1.5px solid var(--peach-t3);4621  border-top-color: var(--peach-accent);4622  border-radius: 50%;4623  animation: peach-spin 600ms linear infinite;4624}46254626@keyframes peach-spin {4627  to { transform: rotate(360deg); }4628}46294630.peach-spinner {4631  width: 32px;4632  height: 32px;4633  border: 2px solid var(--peach-s2);4634  border-top-color: var(--peach-accent);4635  border-radius: 50%;4636  margin: 0 auto 16px;4637  animation: peach-spin 0.8s linear infinite;4638}46394640.peach-progress-screen {4641  text-align: center;4642  padding: 32px 16px;4643}46444645.peach-progress-screen-title {4646  font-size: 13px;4647  color: var(--peach-t0);4648  margin-bottom: 16px;4649}46504651.peach-progress-screen-stage {4652  font-size: 11px;4653  color: var(--peach-t2);4654  min-height: 14px;4655}46564657.peach-progress-screen-note {4658  font-size: 10px;4659  color: var(--peach-t2);4660  margin-top: 8px;4661}46624663.peach-pairing-body {4664  flex: 1;4665  overflow-y: auto;4666  display: flex;4667  flex-direction: column;4668}46694670.peach-pairing-content {4671  flex: 1;4672  display: flex;4673  flex-direction: column;4674  align-items: center;4675  justify-content: center;4676  gap: 14px;4677  padding: 28px 20px;4678  text-align: center;4679}46804681.peach-pairing-headline {4682  font-family: var(--font-display);4683  font-style: italic;4684  font-weight: 300;4685  font-size: 28px;4686  color: var(--peach-t0);4687  margin: 0;4688  line-height: 1;4689}46904691.peach-pairing-subline {4692  font-size: 12px;4693  color: var(--peach-t2);4694  max-width: 220px;4695  line-height: 1.5;4696  margin: 0;4697}46984699.peach-pairing-subline--center {4700  text-align: center;4701}47024703.peach-pairing-code-display {4704  display: flex;4705  gap: 6px;4706}47074708.peach-pairing-code-digit {4709  display: flex;4710  align-items: center;4711  justify-content: center;4712  width: 36px;4713  height: 48px;4714  background: var(--peach-s2);4715  border: 1px solid var(--peach-t3);4716  border-radius: 6px;4717  font-family: var(--font-mono);4718  font-size: 22px;4719  color: var(--peach-t0);4720  letter-spacing: 0;4721}47224723.peach-pairing-countdown-ring {4724  position: relative;4725  display: inline-flex;4726  align-items: center;4727  justify-content: center;4728}47294730.peach-pairing-countdown-num {4731  position: absolute;4732  font-family: var(--font-mono);4733  font-size: 14px;4734  color: var(--peach-t1);4735}47364737.peach-pairing-ring-track {4738  fill: none;4739  stroke: var(--peach-t3);4740  stroke-width: 2;4741}47424743.peach-pairing-ring-progress {4744  fill: none;4745  stroke: var(--peach-accent);4746  stroke-width: 2;4747  stroke-linecap: round;4748  transform: rotate(-90deg);4749  transform-origin: 50% 50%;4750  transition: stroke-dashoffset 0.5s linear;4751}47524753.peach-pairing-code-inputs {4754  display: flex;4755  gap: 8px;4756}47574758.peach-pairing-code-box {4759  width: 36px;4760  height: 48px;4761  text-align: center;4762  background: var(--peach-s2);4763  border: 1px solid var(--peach-t3);4764  border-radius: 6px;4765  font-family: var(--font-mono);4766  font-size: 20px;4767  color: var(--peach-t0);4768  outline: none;4769  transition: border-color 120ms ease;4770}47714772.peach-pairing-code-box:focus {4773  border-color: var(--peach-accent);4774}47754776.peach-pairing-code-box.has-error {4777  border-color: rgba(220, 80, 60, 0.45);4778}47794780.peach-pairing-status {4781  display: flex;4782  align-items: center;4783  gap: 8px;4784  margin: 0;4785  font-size: 12px;4786  color: var(--peach-t1);4787}47884789.peach-pairing-error {4790  margin: 0;4791  font-size: 11px;4792  color: var(--peach-breach);4793}47944795.peach-pairing-error-msg {4796  color: var(--peach-t1);4797}47984799.peach-pairing-spinner {4800  width: 12px;4801  height: 12px;4802  border: 1.5px solid var(--peach-t3);4803  border-top-color: var(--peach-accent);4804  border-radius: 50%;4805  animation: peach-spin 0.8s linear infinite;4806}48074808.peach-pairing-success-icon,4809.peach-pairing-error-icon,4810.peach-pairing-hero {4811  display: inline-flex;4812  align-items: center;4813  justify-content: center;4814}48154816/* Tag chips */4817.peach-tag-chip {4818  display: inline-flex;4819  align-items: center;4820  gap: 4px;4821  padding: 3px 8px;4822  border-radius: 999px;4823  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4824  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4825  color: var(--peach-t0);4826  font-family: "IBM Plex Mono", monospace;4827  font-size: 10px;4828  letter-spacing: 0.04em;4829}48304831.peach-tag-chip-remove {4832  background: transparent;4833  border: none;4834  color: inherit;4835  opacity: 0.6;4836  cursor: pointer;4837  padding: 0;4838  font-size: 12px;4839  line-height: 1;4840}48414842.peach-tag-chip-remove:hover {4843  opacity: 1;4844}48454846/* Tag input */4847.peach-tag-input-wrap {4848  border-bottom: 1px solid var(--peach-t3);4849}48504851.peach-tag-suggestions {4852  display: flex;4853  flex-wrap: wrap;4854  gap: 4px;4855  padding: 6px 0;4856}48574858.peach-tag-suggestion {4859  padding: 2px 8px;4860  border-radius: 999px;4861  border: 1px solid var(--peach-t3);4862  background: var(--peach-s2);4863  color: var(--peach-t1);4864  font-family: "IBM Plex Mono", monospace;4865  font-size: 10px;4866  cursor: pointer;4867  transition: border-color 80ms ease, background 80ms ease;4868}48694870.peach-tag-suggestion:hover {4871  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4872  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4873}48744875/* Tag filter strip */4876.peach-tag-filter-strip {4877  border-bottom: 1px solid var(--peach-t3);4878  flex-shrink: 0;4879}48804881.peach-tag-filter-chip {4882  display: inline-flex;4883  align-items: center;4884  padding: 4px 10px;4885  border-radius: 999px;4886  border: 1px solid var(--peach-t3);4887  background: transparent;4888  color: var(--peach-t2);4889  font-family: "IBM Plex Mono", monospace;4890  font-size: 9px;4891  letter-spacing: 0.06em;4892  text-transform: uppercase;4893  cursor: pointer;4894  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4895  white-space: nowrap;4896}48974898.peach-tag-filter-chip:hover {4899  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4900  color: var(--peach-t1);4901}49024903.peach-tag-filter-chip.is-selected {4904  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4905  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4906  color: var(--peach-t0);4907}49084909/* ─────────────────────────────────────────────────────────────────────────4910   v1.4.12 additions4911   ─────────────────────────────────────────────────────────────────────── */49124913/* Sort bar */4914.peach-sort-bar {4915  display: flex;4916  align-items: center;4917  gap: 4px;4918  padding: 5px 12px;4919  border-bottom: 1px solid var(--peach-t3);4920  flex-shrink: 0;4921  overflow-x: auto;4922  scrollbar-width: none;4923}49244925.peach-sort-btn {4926  padding: 2px 9px;4927  border-radius: 999px;4928  border: 1px solid transparent;4929  background: transparent;4930  color: var(--peach-t2);4931  font-family: "IBM Plex Mono", monospace;4932  font-size: 9px;4933  letter-spacing: 0.07em;4934  text-transform: uppercase;4935  cursor: pointer;4936  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4937  white-space: nowrap;4938}49394940.peach-sort-btn:hover {4941  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4942  color: var(--peach-t1);4943}49444945.peach-sort-btn.is-active {4946  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4947  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4948  color: var(--peach-t0);4949}49504951.peach-sort-domain-hint {4952  margin-left: auto;4953  font-family: "IBM Plex Mono", monospace;4954  font-size: 9px;4955  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4956  white-space: nowrap;4957  overflow: hidden;4958  text-overflow: ellipsis;4959  max-width: 110px;4960}49614962/* Tab-match badge on entry rows */4963.peach-tab-match-badge {4964  display: inline-block;4965  width: 6px;4966  height: 6px;4967  border-radius: 50%;4968  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4969  margin-left: 5px;4970  vertical-align: middle;4971  flex-shrink: 0;4972  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4973}49744975.peach-entry-row.is-tab-match {4976  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4977  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4978}49794980.peach-entry-row.is-tab-match:hover {4981  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4982}49834984/* Entry list stagger entrance */4985@keyframes peach-entry-fadein {4986  from { opacity: 0; transform: translateY(4px); }4987  to   { opacity: 1; transform: translateY(0); }4988}49894990.peach-vault-list .peach-entry-row {4991  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4992  content-visibility: auto;4993  contain-intrinsic-size: auto 44px;4994}49954996/* Button press micro-interaction */4997.peach-btn:active {4998  transform: scale(0.95);4999  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5000}50015002.peach-sort-btn:active,5003.peach-tag-filter-chip:active {5004  transform: scale(0.93);5005  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);5006}50075008/* Password strength bar (Lock view + shared) */5009.peach-password-strength {5010  display: flex;5011  align-items: center;5012  gap: 8px;5013  margin-top: 6px;5014}50155016.peach-strength-bar {5017  flex: 1;5018  height: 3px;5019  border-radius: 2px;5020  background: var(--peach-t3);5021  overflow: hidden;5022}50235024.peach-strength-fill {5025  height: 100%;5026  border-radius: 2px;5027  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),5028              background 300ms ease;5029}50305031.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }5032.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }5033.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }5034.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }50355036.peach-strength-label {5037  font-family: "IBM Plex Mono", monospace;5038  font-style: italic;5039  font-size: 9px;5040  font-weight: 300;5041  letter-spacing: 0.06em;5042  color: var(--peach-t2);5043  min-width: 36px;5044  text-align: right;5045}50465047.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }5048.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }5049.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }5050.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }50515052/* Duress form */5053.peach-duress-status {5054  padding: 2px 8px;5055  border-radius: 999px;5056  border: 1px solid var(--peach-t3);5057  font-family: "IBM Plex Mono", monospace;5058  font-size: 9px;5059  letter-spacing: 0.07em;5060  text-transform: uppercase;5061  color: var(--peach-t2);5062  flex-shrink: 0;5063}50645065.peach-duress-status.is-active {5066  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);5067  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);5068  color: var(--peach-t0);5069}50705071.peach-duress-form {5072  padding: 8px 0 4px;5073  display: flex;5074  flex-direction: column;5075  gap: 6px;5076}50775078.peach-duress-form .peach-label {5079  margin-top: 4px;5080}50815082.peach-duress-actions {5083  display: flex;5084  gap: 6px;5085  align-items: center;5086  margin-top: 4px;5087}50885089.peach-duress-actions .peach-btn:first-child {5090  margin-right: auto;5091}50925093/* Improved overlay spring entrance */5094.peach-overlay-view.ov-enter-up {5095  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5096}50975098@keyframes ov-enter-up-spring {5099  from { opacity: 0; transform: translateY(16px) scale(0.98); }5100  to   { opacity: 1; transform: translateY(0) scale(1); }5101}51025103.peach-overlay-view.ov-enter-right {5104  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;5105}51065107@keyframes ov-enter-right-spring {5108  from { opacity: 0; transform: translateX(18px) scale(0.98); }5109  to   { opacity: 1; transform: translateX(0) scale(1); }5110}51115112/* ── Onboarding-mode restore screens (file import) ── */5113/* Used when MainImportView renders during onboarding (no vault yet).5114   Animates like a lock-screen transition. */5115.peach-lock-view {5116  position: absolute;5117  inset: 0;5118  display: flex;5119  flex-direction: column;5120  background:5121    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5122    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5123    var(--peach-bg);5124  z-index: 2;5125  overflow: hidden;5126  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;5127}51285129.peach-lock-view-header {5130  display: flex;5131  align-items: center;5132  justify-content: space-between;5133  padding: 16px 18px 12px;5134  flex-shrink: 0;5135}51365137/* ───────── Settings: auto-lock select ───────── */5138.peach-settings-select {5139  font-family: "IBM Plex Mono", monospace;5140  font-size: 11px;5141  background: transparent;5142  border: 1px solid var(--peach-t3);5143  border-radius: 4px;5144  color: var(--peach-t1);5145  padding: 3px 6px;5146  cursor: pointer;5147  outline: none;5148}5149.peach-settings-select:focus {5150  border-color: var(--peach-accent);5151}51525153/* ───────── Duress status pill (new polished) ───────── */5154.peach-duress-status-pill {5155  font-family: "IBM Plex Mono", monospace;5156  font-size: 9px;5157  text-transform: uppercase;5158  letter-spacing: 0.12em;5159  padding: 2px 8px;5160  border-radius: 12px;5161  background: var(--peach-t3);5162  color: var(--peach-t2);5163  flex-shrink: 0;5164}5165.peach-duress-status-pill.is-active {5166  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);5167  color: var(--peach-accent);5168}51695170/* ───────── Entry advanced disclosure (canary) ───────── */5171.peach-entry-advanced {5172  margin-top: 12px;5173  border-top: 1px solid var(--peach-t3);5174  padding-top: 10px;5175  position: relative;5176  z-index: 1;5177}5178.peach-entry-advanced-toggle {5179  display: flex;5180  align-items: center;5181  justify-content: space-between;5182  width: 100%;5183  background: transparent;5184  border: none;5185  cursor: pointer;5186  padding: 0;5187  color: var(--peach-t2);5188}5189.peach-canary-section {5190  margin-top: 10px;5191  display: grid;5192  gap: 6px;5193}51945195/* ───────── Import: merge/replace radio choices ───────── */5196.peach-import-choice {5197  display: flex;5198  align-items: flex-start;5199  gap: 10px;5200  padding: 8px 10px;5201  border: 1px solid var(--peach-t3);5202  border-radius: 10px;5203  cursor: pointer;5204  margin-bottom: 6px;5205  transition: border-color 120ms ease, background 120ms ease;5206}5207.peach-import-choice:hover {5208  border-color: var(--peach-accent);5209}5210.peach-import-choice input[type="radio"] {5211  margin-top: 3px;5212  accent-color: var(--peach-accent);5213  flex-shrink: 0;5214}5215.peach-import-choice-main {5216  display: flex;5217  flex-direction: column;5218  gap: 2px;5219  min-width: 0;5220}5221.peach-import-choice-label {5222  font-size: 12px;5223  color: var(--peach-t0);5224}5225.peach-import-choice-sub {5226  font-size: 11px;5227  color: var(--peach-t2);5228  line-height: 1.5;5229}52305231/* ───────── Export: success confirmation strip ───────── */5232.peach-export-success {5233  display: flex;5234  align-items: flex-start;5235  gap: 10px;5236  padding: 12px;5237  border-radius: 12px;5238  border: 1px solid rgba(150, 175, 110, 0.3);5239  background: rgba(150, 175, 110, 0.08);5240  color: var(--peach-t0);5241  font-size: 12px;5242  line-height: 1.55;5243}5244.peach-export-success-check {5245  color: rgba(150, 175, 110, 0.9);5246  font-size: 14px;5247  flex-shrink: 0;5248}52495250/* ── Trash view ──────────────────────────────────────────────────────── */5251.peach-trash-entry-row {5252  display: flex;5253  align-items: center;5254  justify-content: space-between;5255  gap: 8px;5256  padding: 8px 0;5257  border-bottom: 1px solid var(--peach-border);5258}5259.peach-trash-entry-info {5260  flex: 1;5261  min-width: 0;5262  display: flex;5263  flex-direction: column;5264  gap: 2px;5265}5266.peach-trash-entry-title {5267  font-size: 13px;5268  color: var(--peach-t0);5269  overflow: hidden;5270  text-overflow: ellipsis;5271  white-space: nowrap;5272}5273.peach-trash-entry-meta {5274  font-family: var(--font-mono);5275  font-size: 9px;5276  color: var(--peach-t2);5277  letter-spacing: 0.04em;5278}5279.peach-trash-entry-actions {5280  display: flex;5281  align-items: center;5282  gap: 4px;5283  flex-shrink: 0;5284}5285.peach-trash-delete-btn {5286  background: transparent;5287  border: 0;5288  color: var(--peach-t3);5289  font-size: 16px;5290  line-height: 1;5291  cursor: pointer;5292  padding: 2px 5px;5293  transition: color 0.15s;5294}5295.peach-trash-delete-btn:hover { color: var(--peach-breach); }5296.peach-trash-list {5297  overflow-y: auto;5298}5299.peach-trash-footer {5300  display: flex;5301  align-items: center;5302  gap: 8px;5303  padding: 8px 0 0;5304  border-top: 1px solid var(--peach-border);5305  margin-top: 4px;5306}5307.peach-trash-purge-all {5308  background: transparent;5309  border: 0;5310  color: var(--peach-t3);5311  font-size: 10px;5312  cursor: pointer;5313  padding: 4px 0;5314  letter-spacing: 0.03em;5315  transition: color 0.2s;5316}5317.peach-trash-purge-all:hover { color: var(--peach-breach); }5318.peach-trash-purge-confirm-label {5319  font-size: 10px;5320  color: var(--peach-t1);5321  flex: 1;5322}53235324/* ── Settings shortcuts grid ─────────────────────────────────────────── */5325.peach-shortcuts-grid {5326  display: grid;5327  grid-template-columns: auto 1fr;5328  gap: 6px 12px;5329  align-items: center;5330  padding: 4px 0;5331}5332.peach-shortcut-key {5333  font-family: var(--font-mono);5334  font-size: 10px;5335  color: var(--peach-t0);5336  background: var(--peach-t3);5337  border-radius: 4px;5338  padding: 2px 6px;5339  white-space: nowrap;5340  text-align: center;5341}5342.peach-shortcut-desc {5343  font-size: 11px;5344  color: var(--peach-t1);5345}53465347/* ── Sort bar trash button ───────────────────────────────────────────── */5348.peach-sort-trash-btn {5349  display: flex;5350  align-items: center;5351  justify-content: center;5352  padding: 3px 5px;5353  background: transparent;5354  border: none;5355  cursor: pointer;5356  color: var(--peach-t2);5357  border-radius: 4px;5358  transition: color 140ms ease, background 140ms ease;5359}5360.peach-sort-trash-btn:hover {5361  color: var(--peach-t1);5362  background: var(--peach-t3);5363}5364.peach-sort-trash-btn.is-active {5365  color: var(--peach-accent);5366}53675368/* Accent color picker */5369.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5370.peach-accent-picker {5371  display: flex;5372  flex-wrap: wrap;5373  gap: 7px;5374  padding: 2px 0;5375}5376.peach-accent-swatch {5377  width: 22px;5378  height: 22px;5379  border-radius: 50%;5380  border: 2px solid transparent;5381  cursor: pointer;5382  padding: 0;5383  transition: transform 100ms;5384  outline-offset: 2px;5385}5386.peach-accent-swatch:hover { transform: scale(1.15); }5387.peach-accent-swatch.is-active {5388  border-color: var(--peach-t0);5389  transform: scale(1.1);5390}53915392/* Display font picker — swatch shows an "Aa" preview rendered with each5393   font option so the user can see what they're picking before they pick. */5394.peach-settings-row--font { align-items: flex-start; padding-top: 10px; }5395.peach-font-picker {5396  display: flex;5397  flex-wrap: wrap;5398  gap: 6px;5399  padding: 2px 0;5400  flex: 1;5401  justify-content: flex-end;5402}5403.peach-font-swatch {5404  display: flex;5405  flex-direction: column;5406  align-items: center;5407  gap: 2px;5408  padding: 4px 8px;5409  background: transparent;5410  border: 1px solid var(--peach-t3);5411  border-radius: 6px;5412  cursor: pointer;5413  transition: border-color 100ms, background 100ms;5414  min-width: 56px;5415}5416.peach-font-swatch:hover {5417  border-color: var(--peach-accent-dim);5418  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5419}5420.peach-font-swatch.is-active {5421  border-color: var(--peach-accent);5422  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5423}5424.peach-font-swatch-glyph {5425  font-size: 18px;5426  line-height: 1;5427  color: var(--peach-t0);5428}5429.peach-font-swatch[data-font-preview="cormorant-italic"] .peach-font-swatch-glyph {5430  font-family: "Cormorant Garamond", serif;5431  font-style: italic;5432  font-weight: 400;5433}5434.peach-font-swatch[data-font-preview="cormorant"] .peach-font-swatch-glyph {5435  font-family: "Cormorant Garamond", serif;5436  font-style: normal;5437  font-weight: 400;5438}5439.peach-font-swatch[data-font-preview="inter"] .peach-font-swatch-glyph {5440  font-family: "Inter Variable", "Inter", sans-serif;5441  font-style: normal;5442  font-weight: 400;5443}5444.peach-font-swatch[data-font-preview="system"] .peach-font-swatch-glyph {5445  font-family: system-ui, -apple-system, sans-serif;5446  font-style: normal;5447  font-weight: 400;5448}5449.peach-font-swatch-name {5450  font-family: var(--font-mono);5451  font-size: 8px;5452  letter-spacing: 0.06em;5453  color: var(--peach-t2);5454  text-transform: lowercase;5455}54565457.peach-pill-group {5458  display: flex;5459  gap: 6px;5460}5461.peach-pill-group .peach-btn.is-active {5462  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5463  border-color: var(--peach-accent);5464  color: var(--peach-t0);5465}54665467/* ── Card entry styles ───────────────────────────────────────── */5468.peach-card-number {5469  font-family: var(--peach-mono);5470  letter-spacing: 0.08em;5471}54725473.peach-card-network-badge {5474  font-size: 10px;5475  padding: 1px 5px;5476  border-radius: 4px;5477  border: 0.5px solid var(--peach-border);5478  color: var(--peach-text-dim);5479  margin-left: 6px;5480  vertical-align: middle;5481}54825483.peach-card-expiry-row {5484  display: flex;5485  align-items: center;5486  gap: 8px;5487}54885489.peach-card-expiry-sep {5490  color: var(--peach-text-dim);5491}54925493/* ── Pro tier — upgrade screen ──────────────────────────────── */5494.peach-pro-mark {5495  font-size: 9px;5496  color: var(--peach-accent);5497  margin-left: 6px;5498  vertical-align: super;5499  opacity: 0.7;5500}55015502.peach-pro-mini-badge {5503  display: block;5504  font-size: 10px;5505  font-style: italic;5506  color: var(--peach-accent);5507  letter-spacing: 0.04em;5508  margin-top: -2px;5509  padding-left: 2px;5510  opacity: 0.85;5511  text-align: center;5512}55135514.peach-wordmark-stack {5515  display: inline-flex;5516  flex-direction: column;5517  align-items: center;5518}55195520/* ── Pro tier — upgrade page ─────────────────────────────────── */5521.peach-pro-upgrade {5522  display: flex;5523  flex-direction: column;5524  align-items: stretch;5525  gap: 10px;5526  padding: 0 4px 8px;5527}55285529.peach-pro-upgrade-hero {5530  display: flex;5531  flex-direction: column;5532  align-items: center;5533  gap: 4px;5534  padding: 10px 0 6px;5535}55365537.peach-pro-upgrade-mark-wrap {5538  display: flex;5539  align-items: center;5540  justify-content: center;5541  margin-bottom: 2px;5542}55435544.peach-pro-upgrade-mark {5545  width: 38px;5546  height: 38px;5547  filter:5548    drop-shadow(0 0 7px color-mix(in srgb, var(--peach-accent) 45%, transparent))5549    drop-shadow(0 0 18px color-mix(in srgb, var(--peach-accent) 18%, transparent));5550}55515552.peach-pro-upgrade-title {5553  font-family: var(--font-display, var(--font-ui));5554  font-size: 22px;5555  margin: 0;5556  color: var(--peach-t0);5557  letter-spacing: 0.01em;5558}55595560.peach-pro-upgrade-tagline {5561  margin: 0;5562  font-style: italic;5563  color: var(--peach-t2);5564  font-size: 11px;5565}55665567.peach-pro-features {5568  display: flex;5569  flex-direction: column;5570  gap: 8px;5571  border-top: 1px solid var(--peach-border);5572  border-bottom: 1px solid var(--peach-border);5573  padding: 10px 4px;5574}55755576.peach-pro-feature {5577  display: flex;5578  gap: 9px;5579  align-items: baseline;5580}55815582.peach-pro-feature-mark {5583  color: var(--peach-accent);5584  font-size: 11px;5585  flex-shrink: 0;5586  display: inline-block;5587  transform-origin: center;5588  opacity: 0.8;5589}55905591.peach-pro-feature-text {5592  display: flex;5593  flex-direction: column;5594  gap: 1px;5595}55965597.peach-pro-feature-name {5598  font-size: 12px;5599  color: var(--peach-t0);5600}56015602.peach-pro-feature-desc {5603  font-size: 10px;5604  color: var(--peach-t2);5605}56065607.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5608  animation: peach-pulse-accent 600ms ease-out forwards;5609}56105611@keyframes peach-pulse-accent {5612  0%   { opacity: 1; transform: scale(1.4); }5613  100% { opacity: 0.7; transform: scale(1); }5614}56155616.peach-pro-upgrade-actions {5617  display: flex;5618  flex-direction: column;5619  align-items: center;5620  gap: 8px;5621  padding-top: 2px;5622}56235624.peach-pro-pricing {5625  margin: 0;5626  text-align: center;5627  font-size: 11px;5628  color: var(--peach-t2);5629  letter-spacing: 0.04em;5630}56315632.peach-pro-upgrade-cta {5633  align-self: stretch;5634  text-align: center;5635  text-decoration: none;5636  display: block;5637  padding: 9px 20px;5638  font-size: 13px;5639  box-sizing: border-box;5640}56415642.peach-pro-key-divider {5643  display: flex;5644  align-items: center;5645  gap: 8px;5646  width: 100%;5647  color: var(--peach-t3);5648  font-size: 10px;5649  letter-spacing: 0.08em;5650}56515652.peach-pro-key-divider::before,5653.peach-pro-key-divider::after {5654  content: "";5655  flex: 1;5656  height: 1px;5657  background: var(--peach-border);5658}56595660.peach-pro-key-link {5661  background: transparent;5662  border: 1px solid var(--peach-border);5663  border-radius: 8px;5664  color: var(--peach-t1);5665  font-size: 12px;5666  cursor: pointer;5667  align-self: stretch;5668  padding: 8px 12px;5669  text-align: center;5670  transition: border-color 0.2s, color 0.2s;5671}56725673.peach-pro-key-link:hover {5674  border-color: var(--peach-accent);5675  color: var(--peach-accent);5676}56775678/* ── Pro tier — key ceremony ─────────────────────────────────── */5679.peach-pro-key-ceremony {5680  display: flex;5681  flex-direction: column;5682  align-items: center;5683  gap: 12px;5684  padding: 20px 4px 16px;5685}56865687.peach-pro-key-ceremony .peach-lock-rune-string {5688  font-size: 16px;5689  gap: 12px;5690  flex: 0;5691  justify-content: center;5692}56935694.peach-pro-key-ceremony-label {5695  margin: 0;5696  font-size: 11px;5697  color: var(--peach-t2);5698  font-style: italic;5699  letter-spacing: 0.04em;5700}57015702.peach-pro-key-input {5703  font-family: var(--font-mono, monospace);5704  letter-spacing: 0.06em;5705  text-align: center;5706  width: 100%;5707  box-sizing: border-box;5708}57095710.peach-pro-key-error {5711  margin: 0;5712  font-size: 12px;5713  text-align: center;5714  color: var(--peach-breach, #e55);5715  padding: 0;5716}57175718.peach-pro-key-activate {5719  width: 100%;5720  text-align: center;5721  box-sizing: border-box;5722  padding: 10px 20px;5723  font-size: 13px;5724}57255726.peach-pro-key-cancel {5727  background: transparent;5728  border: 0;5729  color: var(--peach-t2);5730  font-size: 11px;5731  cursor: pointer;5732  padding: 2px 8px;5733  transition: color 0.2s;5734}57355736.peach-pro-key-cancel:hover { color: var(--peach-accent); }57375738/* ── Pro tier — active state ─────────────────────────────────── */5739.peach-pro-active {5740  display: flex;5741  flex-direction: column;5742  align-items: center;5743  gap: 0;5744  padding: 8px 4px 16px;5745  min-height: 280px;5746}57475748.peach-pro-active-hero {5749  display: flex;5750  flex-direction: column;5751  align-items: center;5752  gap: 6px;5753  padding: 20px 0 22px;5754}57555756.peach-pro-active-mark-wrap {5757  display: flex;5758  align-items: center;5759  justify-content: center;5760  margin-bottom: 4px;5761}57625763.peach-pro-active-mark {5764  width: 60px;5765  height: 60px;5766  filter:5767    drop-shadow(0 0 10px color-mix(in srgb, var(--peach-accent) 55%, transparent))5768    drop-shadow(0 0 26px color-mix(in srgb, var(--peach-accent) 22%, transparent));5769}57705771.peach-pro-active-title {5772  font-family: var(--font-display, var(--font-ui));5773  font-size: 26px;5774  margin: 0;5775  color: var(--peach-t0);5776  letter-spacing: 0.01em;5777}57785779.peach-pro-active-since {5780  margin: 0;5781  font-size: 11px;5782  color: var(--peach-t2);5783  font-style: italic;5784}57855786.peach-pro-active-features {5787  display: flex;5788  flex-direction: column;5789  gap: 8px;5790  width: 100%;5791  padding: 14px 8px 0;5792  border-top: 1px solid var(--peach-border);5793  flex: 1;5794}57955796.peach-pro-active-feature {5797  display: flex;5798  align-items: center;5799  gap: 9px;5800}58015802.peach-pro-active-feature-mark {5803  color: var(--peach-accent);5804  font-size: 10px;5805  opacity: 0.65;5806  flex-shrink: 0;5807}58085809.peach-pro-active-feature-name {5810  font-size: 12px;5811  color: var(--peach-t1);5812}58135814.peach-pro-deactivate {5815  align-self: center;5816  background: transparent;5817  border: 0;5818  color: var(--peach-t3);5819  font-size: 10px;5820  cursor: pointer;5821  padding: 8px 0 0;5822  margin-top: 16px;5823  letter-spacing: 0.03em;5824  transition: color 0.2s;5825}58265827.peach-pro-deactivate:hover { color: var(--peach-t2); }58285829.peach-pro-deactivate:disabled {5830  opacity: 0.5;5831  cursor: default;5832}58335834/* ── Pro advanced health remediation queue ──────────────────── */5835.peach-health-pro-queue {5836  display: flex;5837  flex-direction: column;5838  gap: 10px;5839  padding: 12px;5840  margin: 0 0 12px;5841  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5842  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5843  border-radius: 10px;5844}58455846.peach-health-pro-queue-head {5847  display: flex;5848  justify-content: space-between;5849  align-items: baseline;5850}58515852.peach-health-pro-queue-title {5853  font-size: 12px;5854  font-weight: 500;5855  letter-spacing: 0.04em;5856  text-transform: uppercase;5857  color: var(--peach-accent);5858}58595860.peach-health-pro-queue-score {5861  font-size: 11px;5862  color: var(--peach-t2);5863}58645865.peach-health-pro-row {5866  display: flex;5867  gap: 10px;5868  align-items: center;5869  padding: 8px 0;5870  border-top: 1px solid var(--peach-border);5871}58725873.peach-health-pro-row-info {5874  flex: 1;5875  display: flex;5876  flex-direction: column;5877  gap: 4px;5878  min-width: 0;5879}58805881.peach-health-pro-row-name {5882  font-size: 13px;5883  color: var(--peach-t0);5884  overflow: hidden;5885  text-overflow: ellipsis;5886  white-space: nowrap;5887}58885889.peach-health-pro-row-meta {5890  font-size: 11px;5891  color: var(--peach-t2);5892}58935894.peach-health-pro-bar {5895  height: 2px;5896  background: var(--peach-border);5897  border-radius: 2px;5898  overflow: hidden;5899  margin-top: 2px;5900}59015902.peach-health-pro-bar-fill {5903  height: 100%;5904  background: var(--peach-accent);5905  transition: width 200ms ease-out;5906}59075908/* ── Pro activation celebration ── */5909@keyframes peach-pro-bloom {5910  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5911  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5912                 drop-shadow(0 0 48px var(--peach-glow)); }5913  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5914}59155916@keyframes peach-pro-wordmark-in {5917  from { opacity: 0; transform: translateY(4px); }5918  to   { opacity: 1; transform: translateY(0); }5919}59205921@keyframes peach-pro-fade-out {5922  from { opacity: 1; }5923  to   { opacity: 0; }5924}59255926.peach-pro-celebration {5927  background:5928    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5929    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5930    var(--peach-bg);5931  border: 1px solid var(--peach-t3);5932  box-shadow:5933    0 2px 8px rgba(0,0,0,0.55),5934    0 14px 48px rgba(0,0,0,0.7),5935    0 0 0 1px rgba(240,232,216,0.04);5936  overflow: hidden;5937  width: 320px;5938  height: 520px;5939  display: flex;5940  flex-direction: column;5941  align-items: center;5942  justify-content: center;5943  gap: 8px;5944  padding: 32px 24px;5945  text-align: center;5946}59475948.peach-pro-celebration.is-leaving {5949  animation: peach-pro-fade-out 400ms ease forwards;5950}59515952.peach-pro-bloom-target {5953  font-size: 48px;5954  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5955  margin-bottom: 12px;5956}59575958.peach-pro-wordmark {5959  font-family: var(--font-display);5960  font-size: 22px;5961  font-style: italic;5962  font-weight: 400;5963  color: var(--peach-accent);5964  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5965}59665967.peach-pro-thankyou {5968  font-size: 12px;5969  font-style: italic;5970  color: var(--peach-t2);5971  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5972}597359745975/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5976.peach-pro-notice-banner {5977  display: flex;5978  align-items: center;5979  gap: 8px;5980  padding: 7px 12px;5981  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5982  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5983  font-size: 11px;5984  color: var(--peach-t2);5985  font-family: "IBM Plex Mono", monospace;5986  flex-shrink: 0;5987}59885989.peach-pro-notice-link {5990  background: none;5991  border: none;5992  padding: 0;5993  cursor: pointer;5994  font-size: 11px;5995  color: var(--peach-accent);5996  font-family: "IBM Plex Mono", monospace;5997  margin-left: auto;5998  white-space: nowrap;5999}60006001.peach-pro-notice-close {6002  background: none;6003  border: none;6004  padding: 0 0 0 4px;6005  cursor: pointer;6006  font-size: 10px;6007  color: var(--peach-t3);6008  line-height: 1;6009}60106011/* ─── First-run onboarding ──────────────────────────────────────────────6012   Three-card welcome shown once before vault creation. The PeachScript6013   rune background drifts behind everything at very low opacity — it's6014   atmosphere, not focus. The cards themselves use the same panel6015   language as the rest of the popup so the transition into NewVault is6016   continuous, not a jarring switch of visual register. */60176018.peach-onboarding {6019  position: relative;6020  display: flex;6021  flex-direction: column;6022  width: 100%;6023  height: 100%;6024  padding: 16px 16px 18px;6025  box-sizing: border-box;6026  overflow: hidden;6027  animation: peach-onboard-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;6028}60296030.peach-onboarding.is-completing {6031  animation: peach-onboard-exit 200ms ease-out forwards;6032}60336034.peach-rune-background {6035  position: absolute;6036  inset: 0;6037  width: 100%;6038  height: 100%;6039  pointer-events: none;6040  z-index: 0;6041  transition: opacity 500ms ease-out;6042}60436044.peach-onboarding.is-completing .peach-rune-background {6045  opacity: 0;6046}60476048.peach-onboarding-header {6049  position: relative;6050  z-index: 1;6051  display: flex;6052  align-items: center;6053  margin-bottom: 14px;6054}60556056.peach-onboarding-card {6057  position: relative;6058  z-index: 1;6059  flex: 1;6060  display: flex;6061  flex-direction: column;6062  gap: 10px;6063  padding: 22px 20px;6064  border-radius: 16px;6065  border: 1px solid var(--peach-t3);6066  background:6067    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6068  backdrop-filter: blur(3px);6069  -webkit-backdrop-filter: blur(3px);6070  box-shadow:6071    inset 0 1px 0 rgba(240, 232, 216, 0.04),6072    0 12px 28px rgba(0, 0, 0, 0.12);6073  cursor: pointer;6074  user-select: none;6075  animation: peach-card-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;6076}60776078.peach-onboarding-card.is-exiting {6079  animation: peach-card-out 120ms ease-in forwards;6080  pointer-events: none;6081}60826083.peach-onboarding-card-headline {6084  margin: 0;6085  font-family: var(--font-display);6086  font-style: italic;6087  font-weight: 400;6088  font-size: 22px;6089  line-height: 1.05;6090  color: var(--peach-t0);6091  white-space: pre-line;6092}60936094.peach-onboarding-divider {6095  margin: 4px 0 6px;6096  border: 0;6097  border-top: 1px solid var(--peach-t3);6098  width: 100%;6099}61006101.peach-onboarding-body {6102  margin: 0;6103  font-size: 13px;6104  line-height: 1.6;6105  color: var(--peach-t1);6106}61076108.peach-onboarding-warning {6109  display: flex;6110  align-items: flex-start;6111  gap: 8px;6112  margin: 6px 0 0;6113  padding-top: 8px;6114  border-top: 1px dashed var(--peach-t3);6115  font-size: 13px;6116  line-height: 1.5;6117  color: var(--peach-t1);6118}61196120.peach-onboarding-warning-icon {6121  color: var(--peach-accent);6122  font-size: 13px;6123  line-height: 1.5;6124  flex: 0 0 auto;6125}61266127.peach-onboarding-nav {6128  position: relative;6129  z-index: 1;6130  display: flex;6131  align-items: center;6132  justify-content: space-between;6133  margin-top: 12px;6134  padding: 0 4px;6135}61366137.peach-onboarding-dots {6138  display: flex;6139  align-items: center;6140  gap: 6px;6141}61426143.peach-onboarding-dot {6144  width: 6px;6145  height: 6px;6146  border-radius: 50%;6147  background: var(--peach-t2);6148  transition: width 200ms ease, height 200ms ease, background 200ms ease;6149}61506151.peach-onboarding-dot.is-active {6152  width: 8px;6153  height: 8px;6154  background: var(--peach-accent);6155}61566157.peach-onboarding-next {6158  background: none;6159  border: none;6160  padding: 4px 0;6161  cursor: pointer;6162  font-family: "IBM Plex Mono", monospace;6163  font-size: 11px;6164  letter-spacing: 0.04em;6165  color: var(--peach-t1);6166  transition: color 150ms ease;6167}61686169.peach-onboarding-next:hover {6170  color: var(--peach-t0);6171}61726173.peach-onboarding-next:disabled {6174  opacity: 0.5;6175  cursor: default;6176}61776178@keyframes peach-onboard-enter {6179  from { opacity: 0; transform: translateY(20px); }6180  to   { opacity: 1; transform: translateY(0); }6181}61826183@keyframes peach-onboard-exit {6184  from { opacity: 1; }6185  to   { opacity: 0; }6186}61876188@keyframes peach-card-in {6189  from { opacity: 0; transform: translateX(12px); }6190  to   { opacity: 1; transform: translateX(0); }6191}61926193@keyframes peach-card-out {6194  from { opacity: 1; transform: translateX(0); }6195  to   { opacity: 0; transform: translateX(-12px); }6196}61976198/* ─── New vault screen — matched to onboarding card language ─────────── */61996200.peach-newvault {6201  position: relative;6202  display: flex;6203  flex-direction: column;6204  gap: 12px;6205  padding: 16px 16px 18px;6206  overflow: hidden;6207}62086209/* Suppress the warm-blob ambient art inherited from .lock-screen — the6210   new vault card now carries the visual weight. */6211.peach-newvault::before {6212  content: none;6213}62146215.peach-newvault-header {6216  position: relative;6217  z-index: 2;6218  display: flex;6219  align-items: center;6220  gap: 10px;6221  margin-bottom: 2px;6222}62236224.peach-newvault-back {6225  display: inline-flex;6226  align-items: center;6227  gap: 4px;6228  background: transparent;6229  border: none;6230  color: var(--peach-t2);6231  font-family: "IBM Plex Mono", monospace;6232  font-size: 10px;6233  letter-spacing: 0.06em;6234  cursor: pointer;6235  padding: 4px 6px;6236  border-radius: 6px;6237  transition: color 120ms ease, background 120ms ease;6238}62396240.peach-newvault-back:hover {6241  color: var(--peach-t0);6242  background: rgba(240, 232, 216, 0.04);6243}62446245.peach-newvault-mark {6246  position: absolute;6247  right: -12px;6248  top: 6px;6249  width: 110px;6250  height: 110px;6251  pointer-events: none;6252  opacity: 0.10;6253  filter: saturate(0.9);6254  z-index: 0;6255}6256.peach-newvault-mark-art {6257  width: 100%;6258  height: 100%;6259}6260.peach-newvault-mark-art path:nth-child(2),6261.peach-newvault-mark-art path:nth-child(3) {6262  stroke: rgba(123, 144, 96, 0.88);6263  fill: rgba(123, 144, 96, 0.88);6264}62656266.peach-newvault-card {6267  position: relative;6268  z-index: 1;6269  display: flex;6270  flex-direction: column;6271  gap: 12px;6272  padding: 22px 20px 18px;6273  border-radius: 16px;6274  border: 1px solid var(--peach-t3);6275  background:6276    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));6277  backdrop-filter: blur(3px);6278  -webkit-backdrop-filter: blur(3px);6279  box-shadow:6280    inset 0 1px 0 rgba(240, 232, 216, 0.04),6281    0 12px 28px rgba(0, 0, 0, 0.12);6282  animation: peach-onboard-enter 320ms cubic-bezier(0.16, 1, 0.3, 1) both;6283}62846285.peach-newvault-headline {6286  margin: 0;6287  font-family: var(--font-display);6288  font-style: italic;6289  font-weight: 400;6290  font-size: 24px;6291  line-height: 1.05;6292  color: var(--peach-t0);6293  white-space: pre-line;6294}62956296.peach-newvault-divider {6297  margin: 2px 0 4px;6298  border: 0;6299  border-top: 1px solid var(--peach-t3);6300  width: 100%;6301}63026303.peach-newvault-field {6304  display: flex;6305  flex-direction: column;6306  gap: 4px;6307}63086309.peach-newvault-label-row {6310  display: flex;6311  align-items: center;6312  justify-content: space-between;6313}63146315/* Monospace input scaled to the card. Replaces the 22px unlock-input6316   so the placeholder no longer overflows and the field reads as part6317   of the same surface as the body copy. */6318.peach-newvault-input {6319  font-size: 14px;6320  letter-spacing: 0.18em;6321  padding: 8px 0;6322}6323.peach-newvault-input::placeholder {6324  letter-spacing: 0.18em;6325  color: var(--peach-t2);6326}63276328.peach-newvault-hint {6329  margin: 2px 0 0;6330  font-family: "IBM Plex Mono", monospace;6331  font-size: 10px;6332  color: var(--peach-t2);6333  letter-spacing: 0.04em;6334}63356336.peach-newvault-submit {6337  margin-top: 4px;6338}63396340.peach-newvault-warning {6341  display: flex;6342  align-items: flex-start;6343  gap: 8px;6344  margin: 4px 0 0;6345  padding-top: 10px;6346  border-top: 1px dashed var(--peach-t3);6347  font-size: 12px;6348  line-height: 1.5;6349  color: var(--peach-t1);6350}63516352.peach-newvault-warning-icon {6353  color: var(--peach-accent);6354  font-size: 13px;6355  line-height: 1.4;6356  flex: 0 0 auto;6357}63586359.peach-newvault-footer {6360  position: relative;6361  z-index: 1;6362  display: flex;6363  flex-direction: column;6364  gap: 4px;6365  padding: 4px 4px 0;6366}63676368/* Settings body — warm accent gradient gives the glass something to blur against */6369.peach-settings-body {6370  background:6371    radial-gradient(6372      ellipse at 30% 20%,6373      color-mix(in srgb, var(--peach-accent) 8%, transparent) 0%,6374      transparent 60%6375    );6376}63776378/* ── Danger zone (Settings home → Panic flow) ──────────────────────────── */6379/* ── Danger cards (Replace + Destroy) ────────────────────────────────────6380 * Two severity levels: "warn" for actions that are dangerous-but-recoverable6381 * (replacing the vault from a backup file) and "hazard" for actions that6382 * are absolutely irreversible (Panic). Both use the same card scaffold so6383 * they read as a pair, but the colour family signals the severity at a6384 * glance — yellow for caution, red for don't.6385 */6386.peach-danger-card {6387  --danger-tint: 235, 158, 52; /* amber */6388  display: flex;6389  flex-direction: column;6390  gap: 8px;6391  padding: 14px;6392  margin-top: 10px;6393  border-radius: 12px;6394  border: 1px solid rgba(var(--danger-tint), 0.32);6395  background:6396    radial-gradient(120% 120% at 0% 0%, rgba(var(--danger-tint), 0.10) 0%, transparent 60%),6397    rgba(var(--danger-tint), 0.04);6398  box-shadow:6399    inset 0 1px 0 rgba(var(--danger-tint), 0.08),6400    0 0 24px rgba(var(--danger-tint), 0.04);6401  transition: box-shadow 220ms ease, border-color 220ms ease, transform 180ms ease;6402}64036404.peach-danger-card:hover {6405  border-color: rgba(var(--danger-tint), 0.55);6406  box-shadow:6407    inset 0 1px 0 rgba(var(--danger-tint), 0.12),6408    0 0 36px rgba(var(--danger-tint), 0.10);6409}64106411.peach-danger-card--hazard {6412  --danger-tint: 220, 38, 38; /* red */6413}64146415.peach-danger-card-head {6416  display: flex;6417  align-items: center;6418  gap: 10px;6419}64206421.peach-danger-card-glyph {6422  width: 28px;6423  height: 28px;6424  flex-shrink: 0;6425  display: flex;6426  align-items: center;6427  justify-content: center;6428  border-radius: 8px;6429  background: rgba(var(--danger-tint), 0.12);6430  color: rgba(var(--danger-tint), 0.95);6431  font-size: 16px;6432  line-height: 1;6433}64346435.peach-danger-card-title {6436  margin: 0;6437  font-size: 13px;6438  font-weight: 600;6439  color: rgba(var(--danger-tint), 0.92);6440  letter-spacing: 0.01em;6441}64426443.peach-danger-card-copy {6444  margin: 0;6445  font-size: 11px;6446  line-height: 1.5;6447  color: var(--peach-t2);6448}64496450.peach-danger-card-button {6451  width: 100%;6452  padding: 9px;6453  margin-top: 4px;6454  background: transparent;6455  border: 1px solid rgba(var(--danger-tint), 0.45);6456  border-radius: 8px;6457  color: rgba(var(--danger-tint), 0.9);6458  font-size: 12px;6459  font-weight: 500;6460  letter-spacing: 0.02em;6461  cursor: pointer;6462  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6463}64646465.peach-danger-card-button:hover {6466  background: rgba(var(--danger-tint), 0.10);6467  border-color: rgba(var(--danger-tint), 0.75);6468  color: rgb(var(--danger-tint));6469}64706471/* ── Panic flow (three-step destruction) ───────────────────────────────── */6472.peach-panic {6473  display: flex;6474  flex-direction: column;6475  flex: 1;6476  min-height: 0;6477  padding: 28px 20px 20px;6478  gap: 18px;6479  overflow-y: auto;6480  scrollbar-width: none;6481  -ms-overflow-style: none;6482}64836484.peach-panic::-webkit-scrollbar { display: none; }64856486.peach-panic-step2 {6487  background: rgba(220, 38, 38, 0.04);6488}64896490.peach-panic-step3 {6491  position: relative;6492  background: #0f0505;6493  color: #ffffff;6494  overflow: hidden;6495}64966497.peach-panic-rune-bg {6498  position: absolute;6499  inset: 0;6500  opacity: 0.22;6501  pointer-events: none;6502  overflow: hidden;6503}65046505.peach-panic-rune-bg canvas {6506  width: 100% !important;6507  height: 100% !important;6508}65096510.peach-panic-icon {6511  font-size: 32px;6512  color: rgb(220, 38, 38);6513  line-height: 1;6514}65156516.peach-panic-title {6517  margin: 0;6518  font-size: 18px;6519  font-weight: 500;6520  color: var(--peach-t1);6521}65226523.peach-panic-title--severe {6524  font-size: 20px;6525  font-weight: 700;6526  color: rgb(220, 38, 38);6527}65286529.peach-panic-body {6530  margin: 0;6531  font-size: 13px;6532  line-height: 1.55;6533  color: var(--peach-t2);6534}65356536.peach-panic-body--severe {6537  color: rgba(220, 38, 38, 0.85);6538}65396540.peach-panic-body--final {6541  font-size: 16px;6542  font-weight: 700;6543  color: rgb(255, 80, 80);6544  line-height: 1.4;6545}65466547.peach-panic-body--final-intro {6548  font-size: 16px;6549  color: #ffffff;6550  font-weight: 400;6551}65526553.peach-panic-divider {6554  height: 1px;6555  background: rgba(255, 255, 255, 0.08);6556  margin: 4px 0;6557}65586559.peach-panic-confirm-input {6560  width: 100%;6561  padding: 10px 12px;6562  background: rgba(255, 255, 255, 0.02);6563  border: 1px solid rgba(220, 38, 38, 0.4);6564  border-radius: 8px;6565  color: var(--peach-t1);6566  font-family: "IBM Plex Mono", monospace;6567  font-size: 14px;6568  letter-spacing: 0.12em;6569  text-transform: uppercase;6570}65716572.peach-panic-confirm-input:focus {6573  outline: none;6574  border-color: rgb(220, 38, 38);6575}65766577.peach-panic-confirm-input--match {6578  border-color: rgb(220, 38, 38);6579  color: rgb(220, 38, 38);6580}65816582.peach-panic-confirm-label {6583  font-size: 11px;6584  color: var(--peach-t2);6585  margin: 0 0 -8px;6586  letter-spacing: 0.06em;6587}65886589.peach-panic-actions {6590  display: flex;6591  flex-direction: column;6592  gap: 10px;6593  margin-top: auto;6594}65956596.peach-panic-button {6597  width: 100%;6598  padding: 12px;6599  border-radius: 8px;6600  font-size: 13px;6601  cursor: pointer;6602  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;6603}66046605.peach-panic-button--primary {6606  background: var(--peach-accent);6607  border: 1px solid var(--peach-accent);6608  color: #ffffff;6609  font-weight: 600;6610}66116612.peach-panic-button--primary:hover {6613  background: color-mix(in srgb, var(--peach-accent) 88%, white);6614}66156616.peach-panic-button--danger {6617  background: rgb(220, 38, 38);6618  border: 1px solid rgb(220, 38, 38);6619  color: #ffffff;6620  font-weight: 600;6621}66226623.peach-panic-button--danger:disabled {6624  opacity: 0.35;6625  cursor: not-allowed;6626}66276628.peach-panic-button--ghost {6629  background: transparent;6630  border: 1px solid rgba(255, 255, 255, 0.18);6631  color: var(--peach-t2);6632}66336634.peach-panic-button--ghost:hover {6635  border-color: rgba(255, 255, 255, 0.32);6636  color: var(--peach-t1);6637}66386639.peach-panic-link {6640  background: transparent;6641  border: none;6642  padding: 4px 0;6643  color: rgba(220, 38, 38, 0.65);6644  font-size: 12px;6645  cursor: pointer;6646  text-align: left;6647  text-decoration: underline;6648  text-underline-offset: 3px;6649}66506651.peach-panic-link:hover {6652  color: rgb(220, 38, 38);6653}66546655.peach-panic-bar {6656  background: rgb(220, 38, 38);6657  padding: 16px 20px;6658  margin: -28px -20px 0;6659  text-align: center;6660  font-size: 13px;6661  font-weight: 700;6662  letter-spacing: 0.12em;6663  color: #ffffff;6664}66656666.peach-panic-final-button {6667  width: 100%;6668  padding: 14px;6669  background: rgb(220, 38, 38);6670  border: none;6671  border-radius: 8px;6672  color: #ffffff;6673  font-size: 14px;6674  font-weight: 700;6675  letter-spacing: 0.08em;6676  text-transform: uppercase;6677  cursor: pointer;6678  animation: peach-panic-pulse 2s ease-in-out infinite;6679}66806681.peach-settings-license {6682  margin-top: 10px;6683  padding-top: 10px;6684  border-top: 1px solid var(--peach-t3);6685}66866687.peach-settings-label {6688  font-size: 10px;6689  letter-spacing: 0.08em;6690  color: var(--peach-t3);6691  display: block;6692  margin-bottom: 6px;6693}66946695.peach-settings-license-row {6696  display: flex;6697  align-items: center;6698  justify-content: space-between;6699  gap: 8px;6700}67016702.peach-settings-license-key {6703  font-family: 'IBM Plex Mono', monospace;6704  font-size: 12px;6705  color: var(--peach-t0);6706  letter-spacing: 0.04em;6707  word-break: break-all;6708}67096710.peach-settings-license-copy {6711  font-size: 11px;6712  color: var(--peach-accent);6713  background: transparent;6714  border: none;6715  cursor: pointer;6716  padding: 4px 8px;6717  border-radius: 4px;6718  flex-shrink: 0;6719  transition: opacity 150ms ease;6720}67216722.peach-settings-license-copy:hover {6723  opacity: 0.75;6724}67256726@keyframes peach-panic-pulse {6727  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.4); }6728  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }6729}67306731[data-motion="reduce"] .peach-panic-final-button {6732  animation: none;6733}