popup.css

126.8 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 10px;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: "Cormorant Garamond", "Times New Roman", serif;168  font-size: 15px;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }209.peach-status-pip {210  width: 5px;211  height: 5px;212  border-radius: 50%;213  background: var(--peach-t3);214  display: inline-flex;215  flex-shrink: 0;216  transition: background 400ms ease, box-shadow 400ms ease;217}218.peach-chrome-actions { display: flex; gap: 6px; }219220/* Shell body */221.peach-shell-body {222  position: relative;223  display: grid;224  grid-template-rows: 1fr auto;225  min-height: 0;226  min-width: 0;227  width: 100%;228  overflow: hidden;229  height: 100%;230}231.peach-shell-veil {232  position: absolute; inset: 0;233  background: #000; opacity: 0;234  pointer-events: none; z-index: 1;235}236.peach-shell[data-motion-phase="enter"] .peach-shell-body {237  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;238}239.peach-shell[data-motion-phase="exit"] .peach-shell-veil {240  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;241}242243/* Content frame */244.peach-content-frame {245  display: grid;246  grid-template-rows: 1fr auto;247  grid-template-columns: minmax(0, 1fr);248  align-content: start;249  min-height: 0;250  min-width: 0;251  overflow: hidden;252  transition: opacity 80ms ease, transform 80ms ease;253}254.peach-content-frame.navigating {255  opacity: 0.93;256  transform: translateX(2px);257}258.peach-content-frame[data-content-phase="enter"] {259  animation: peach-content-enter 135ms ease-out both;260}261.peach-content-frame[data-content-phase="exit"] {262  animation: peach-content-exit 95ms ease-in forwards;263}264.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }265266/* Stage */267.peach-stage {268  padding: 10px 20px 12px;269  display: grid;270  gap: 12px;271  align-content: start;272  min-width: 0;273  min-height: 0;274  max-width: 100%;275  overflow-y: auto;276  overflow-x: hidden;277  scrollbar-width: none;278  -ms-overflow-style: none;279  overscroll-behavior: contain;280}281.peach-stage::-webkit-scrollbar { display: none; }282283/* Entry name */284.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }285.peach-entry-header {286  position: relative;287  z-index: 1;288  display: flex;289  align-items: flex-start;290  gap: 6px;291  min-width: 0;292}293.peach-entry-header-name {294  flex: 1;295  min-width: 0;296}297.peach-entry-name {298  margin: 0;299  padding-bottom: 0.12em;300  font-family: "Cormorant Garamond", "Times New Roman", serif;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: "Cormorant Garamond", "Times New Roman", serif;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: "Cormorant Garamond", "Times New Roman", serif;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: "Cormorant Garamond", "Times New Roman", serif;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: "Cormorant Garamond", "Times New Roman", serif;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: "Cormorant Garamond", "Times New Roman", serif;919  font-size: 52px; line-height: 0.95;920  font-style: italic; font-weight: 400;921}922.peach-subline {923  margin: 0;924  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;925  font-size: 10px; color: var(--peach-t2); font-style: italic;926}927.peach-subline--lock {928  max-width: 248px;929  line-height: 1.5;930}931.peach-underline-input {932  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);933  padding: 6px 0; background: transparent; color: var(--peach-t0);934  outline: none;935  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;936  font-size: 13px;937  caret-color: var(--peach-accent);938}939.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }940.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }941.peach-hint {942  margin: 0;943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;944  font-size: 10px; color: var(--peach-t2);945}946.peach-unlock-footer {947  margin-top: 4px; display: flex; align-items: center; gap: 7px;948  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;949  font-size: 10px; color: var(--peach-t2);950}951.peach-unlock-footer--lock {952  padding-top: 2px;953}954955/* Breach badge */956.peach-breach-badge {957  display: flex;958  position: relative;959  z-index: 1;960  align-items: center;961  gap: 7px;962  font-size: 9px;963  color: var(--peach-breach);964  padding: 5px 10px;965  margin-bottom: 4px;966  border-radius: 8px;967  background: rgba(220, 80, 60, 0.07);968  border: 1px solid rgba(220, 80, 60, 0.18);969  letter-spacing: 0.04em;970}971972.peach-breach-action {973  margin-left: auto;974  font-size: 10px;975  padding: 3px 8px;976}977978.peach-password-value.is-breached {979  color: rgba(220, 80, 60, 0.75);980  border-bottom: 1px solid rgba(220, 80, 60, 0.22);981}982983/* ── Overlay views ─────────────────────────────────────────────────── */984.peach-overlay-view {985  position: absolute;986  inset: 0;987  display: flex;988  flex-direction: column;989  background:990    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),991    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),992    var(--peach-bg);993  z-index: 2;994  overflow: hidden;995  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;996}997@keyframes overlay-in {998  from { opacity: 0; transform: translateY(8px); }999  to   { opacity: 1; transform: translateY(0); }1000}1001.peach-overlay-view.ov-enter-up {1002  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1003}1004.peach-overlay-view.ov-exit-up {1005  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1006}1007.peach-overlay-view.ov-enter-right {1008  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1009}1010.peach-overlay-view.ov-exit-right {1011  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1012}10131014@keyframes ov-enter-up {1015  from { opacity: 0; transform: translateY(18px); }1016  to   { opacity: 1; transform: translateY(0); }1017}1018@keyframes ov-exit-up {1019  from { opacity: 1; transform: translateY(0); }1020  to   { opacity: 0; transform: translateY(-12px); }1021}1022@keyframes ov-enter-right {1023  from { opacity: 0; transform: translateX(20px); }1024  to   { opacity: 1; transform: translateX(0); }1025}1026@keyframes ov-exit-right {1027  from { opacity: 1; transform: translateX(0); }1028  to   { opacity: 0; transform: translateX(20px); }1029}10301031/* Overlay shared header */1032.peach-overlay-header {1033  padding: 10px 12px;1034  display: flex;1035  align-items: center;1036  gap: 8px;1037  border-bottom: 1px solid var(--peach-t3);1038  flex-shrink: 0;1039}1040.peach-overlay-title {1041  font-family: "IBM Plex Mono", monospace;1042  font-size: 9px;1043  text-transform: uppercase;1044  letter-spacing: 0.18em;1045  color: var(--peach-t2);1046  flex: 1;1047  text-align: center;1048}10491050.peach-overlay-card {1051  background: var(--peach-s1);1052  border: 1px solid var(--peach-t3);1053  border-radius: 12px;1054  overflow: hidden;1055  width: 100%;1056}10571058.peach-onboarding-alt-actions {1059  display: flex;1060  flex-direction: column;1061  gap: 4px;1062  padding: 0;1063}10641065.peach-settings-copy {1066  margin: 0 0 10px;1067  font-size: 11px;1068  line-height: 1.5;1069  color: var(--peach-t2);1070}10711072.peach-settings-copy strong {1073  color: var(--peach-t0);1074}10751076.peach-settings-copy--spacious {1077  margin-bottom: 12px;1078}10791080.peach-settings-copy--result {1081  color: var(--peach-accent);1082  font-size: 13px;1083  text-align: center;1084  padding: 8px 0;1085}10861087.peach-settings-copy--danger {1088  color: var(--peach-breach);1089}10901091.peach-settings-copy--success {1092  color: var(--peach-accent);1093}10941095.peach-inline-feedback {1096  font-size: 11px;1097  margin: 10px 0 0;1098}10991100.peach-inline-feedback--ok {1101  color: var(--peach-accent);1102}11031104.peach-inline-feedback--error {1105  color: var(--peach-breach);1106}11071108.peach-inline-feedback--muted {1109  color: var(--peach-t2);1110  font-size: 10px;1111  margin: 4px 0;1112}11131114.peach-inline-feedback--spaced {1115  margin-top: 12px;1116}11171118.peach-settings-actions--row {1119  display: flex;1120  gap: 6px;1121}11221123.peach-settings-actions--end {1124  margin-top: 14px;1125  justify-content: flex-end;1126}11271128.peach-settings-stack {1129  display: flex;1130  flex-direction: column;1131  gap: 6px;1132}11331134.peach-settings-stack--tight {1135  gap: 4px;1136}11371138.peach-settings-stack--spacious {1139  gap: 8px;1140}11411142.peach-settings-input {1143  width: 100%;1144  box-sizing: border-box;1145  padding: 8px 10px;1146  background: var(--peach-s2);1147  border: 1px solid var(--peach-t3);1148  border-radius: 6px;1149  color: var(--peach-t0);1150  font-family: var(--font-ui);1151  font-size: 12px;1152  outline: none;1153  transition: border-color 120ms ease;1154}11551156.peach-settings-input:focus {1157  border-color: var(--peach-accent);1158}11591160.peach-settings-input[type="password"] {1161  font-family: var(--font-mono);1162  letter-spacing: 0.04em;1163}11641165.peach-phrase-textarea {1166  width: 100%;1167  box-sizing: border-box;1168  min-height: 120px;1169  padding: 10px 12px;1170  background: var(--peach-s2);1171  border: 1px solid var(--peach-t3);1172  border-radius: 6px;1173  color: var(--peach-t0);1174  font-size: 12px;1175  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1176  line-height: 1.5;1177  resize: vertical;1178  outline: none;1179}11801181.peach-phrase-textarea:focus {1182  border-color: var(--peach-accent);1183}11841185.peach-hidden-file-input {1186  display: none;1187}11881189.peach-checkbox-note {1190  display: flex;1191  align-items: flex-start;1192  gap: 8px;1193  font-size: 11px;1194  color: var(--peach-t1);1195  cursor: pointer;1196  margin: 12px 0;1197}11981199.peach-checkbox-note input {1200  margin-top: 1px;1201}12021203.peach-cjk-phrase-box {1204  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1205  font-size: 13px;1206  line-height: 1.5;1207  background: var(--peach-s2);1208  border: 1px solid var(--peach-t3);1209  border-radius: 6px;1210  padding: 10px 12px;1211  margin: 0 0 10px;1212  word-break: break-all;1213  white-space: pre-wrap;1214  max-height: 220px;1215  overflow-y: auto;1216  color: var(--peach-t0);1217  user-select: all;1218  scrollbar-width: none;1219  -ms-overflow-style: none;1220}1221.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }12221223.peach-danger-notice {1224  background: rgba(220, 80, 60, 0.08);1225  border: 1px solid rgba(220, 80, 60, 0.2);1226  border-radius: 6px;1227  padding: 9px 11px;1228  font-size: 11px;1229  color: var(--peach-t1);1230  line-height: 1.5;1231}12321233.peach-info-notice {1234  font-size: 11px;1235  color: var(--peach-t1);1236  line-height: 1.5;1237  background: var(--surface-card);1238  border: 1px solid var(--peach-t3);1239  border-radius: 6px;1240  padding: 8px 10px;1241}12421243.peach-strength-row {1244  display: flex;1245  align-items: center;1246  gap: 8px;1247  margin-bottom: 10px;1248}12491250.peach-strength-track {1251  flex: 1;1252  height: 4px;1253  background: var(--peach-s2);1254  border-radius: 2px;1255  overflow: hidden;1256}12571258.peach-strength-fill {1259  height: 100%;1260  border-radius: 2px;1261  transition: width 120ms ease, background 120ms ease;1262}12631264/* ── Type selector tabs ── */1265.peach-type-tabs {1266  display: flex;1267  gap: 0;1268  background: var(--peach-t4);1269  border-radius: 8px;1270  padding: 3px;1271}12721273.peach-type-tab {1274  flex: 1;1275  display: flex;1276  align-items: center;1277  justify-content: center;1278  gap: 6px;1279  padding: 6px 10px;1280  border-radius: 6px;1281  border: none;1282  background: transparent;1283  cursor: pointer;1284  font-family: Inter, system-ui, sans-serif;1285  font-size: 11px;1286  font-weight: 400;1287  letter-spacing: 0.04em;1288  color: var(--peach-t1);1289  transition: background 150ms ease, color 150ms ease;1290}12911292.peach-type-tab.is-active {1293  background: var(--peach-s2);1294  color: var(--peach-t0);1295  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1296}12971298.peach-type-tab:not(.is-active):hover {1299  color: var(--peach-t0);1300}13011302.peach-type-tab svg {1303  opacity: 0.7;1304  flex-shrink: 0;1305}13061307.peach-type-tab.is-active svg {1308  opacity: 1;1309}13101311/* ── List view ───────────────────────────────────────────────────────── */1312.peach-list-top {1313  padding: 0 10px;1314  min-height: 46px;1315  display: flex;1316  align-items: center;1317  gap: 6px;1318  border-bottom: 1px solid var(--peach-t3);1319  flex-shrink: 0;1320  background: var(--peach-s1);1321}1322.peach-vault-list {1323  flex: 1;1324  overflow-y: auto;1325  scrollbar-width: none;1326}1327.peach-vault-list::-webkit-scrollbar { display: none; }13281329/* Scrollbar — vault list */1330.peach-vault-list {1331  scrollbar-width: thin;1332  scrollbar-color: var(--peach-t3) transparent;1333}13341335.peach-vault-list::-webkit-scrollbar {1336  width: 3px;1337}13381339.peach-vault-list::-webkit-scrollbar-thumb {1340  background: var(--peach-t3);1341  border-radius: 2px;1342}13431344.peach-entry-row {1345  width: 100%;1346  display: flex;1347  align-items: center;1348  gap: 10px;1349  padding: 9px 16px;1350  background: transparent;1351  border: none;1352  border-bottom: 1px solid var(--peach-t3);1353  cursor: pointer;1354  color: inherit;1355  text-align: left;1356  transition: background 80ms ease;1357}1358.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1359.peach-entry-row:last-child { border-bottom: none; }1360.peach-entry-row.is-active {1361  box-shadow: inset 2px 0 0 var(--peach-accent);1362  background: rgba(240,232,216,0.03);1363}1364.peach-entry-row:focus-visible {1365  outline: none;1366  box-shadow: 0 0 0 1px var(--peach-border-accent);1367  background: rgba(240,232,216,0.03);1368}1369.peach-entry-row-icon {1370  width: 26px; height: 26px;1371  border-radius: 7px;1372  border: 1px solid var(--peach-t3);1373  display: flex; align-items: center; justify-content: center;1374  color: var(--peach-t2);1375  flex-shrink: 0;1376}1377.peach-entry-row-icon.is-breach {1378  border-color: rgba(220,80,60,0.3);1379  color: rgba(220,80,60,0.7);1380}1381.peach-entry-row-info { flex: 1; min-width: 0; }1382.peach-entry-row-name {1383  display: block;1384  font-family: "Cormorant Garamond", serif;1385  font-size: 17px;1386  font-style: italic;1387  font-weight: 400;1388  color: var(--peach-t0);1389  line-height: 1.2;1390  white-space: nowrap;1391  overflow: hidden;1392  text-overflow: ellipsis;1393}1394.peach-entry-row-meta {1395  display: block;1396  font-family: "IBM Plex Mono", monospace;1397  font-size: 9px;1398  color: var(--peach-t2);1399  margin-top: 1px;1400  letter-spacing: 0.05em;1401}1402.peach-entry-row-dot {1403  width: 5px; height: 5px;1404  border-radius: 50%;1405  background: rgba(220,80,60,0.7);1406  flex-shrink: 0;1407}1408.peach-new-entry-row {1409  display: flex;1410  align-items: center;1411  justify-content: center;1412  gap: 6px;1413  width: 100%;1414  padding: 11px;1415  background: transparent;1416  border: none;1417  border-top: 1px solid var(--peach-t3);1418  color: var(--peach-t2);1419  font-family: "IBM Plex Mono", monospace;1420  font-size: 9px;1421  text-transform: uppercase;1422  letter-spacing: 0.14em;1423  cursor: pointer;1424  flex-shrink: 0;1425  transition: color 120ms ease, background 120ms ease;1426}1427.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14281429/* ── Multi-select mode ─────────────────────────────────────────────── */14301431/* Select-mode trigger button in sort bar — same shape as trash btn */1432.peach-sort-select-btn {1433  display: flex;1434  align-items: center;1435  justify-content: center;1436  padding: 3px 5px;1437  background: transparent;1438  border: none;1439  cursor: pointer;1440  color: var(--peach-t2);1441  border-radius: 4px;1442  transition: color 140ms ease, background 140ms ease;1443}1444.peach-sort-select-btn:hover {1445  color: var(--peach-t1);1446  background: var(--peach-t3);1447}14481449/* Sort bar in select mode */1450.peach-select-cancel-btn {1451  background: transparent;1452  border: none;1453  padding: 0 4px;1454  cursor: pointer;1455  font-family: "IBM Plex Mono", monospace;1456  font-size: 9px;1457  letter-spacing: 0.12em;1458  text-transform: uppercase;1459  color: var(--peach-t2);1460  transition: color 140ms ease;1461  flex-shrink: 0;1462}1463.peach-select-cancel-btn:hover { color: var(--peach-t0); }14641465.peach-select-count-label {1466  flex: 1;1467  text-align: center;1468  font-family: "IBM Plex Mono", monospace;1469  font-size: 9px;1470  letter-spacing: 0.14em;1471  text-transform: uppercase;1472  color: var(--peach-t1);1473}14741475.peach-select-all-btn {1476  background: transparent;1477  border: none;1478  padding: 0 4px;1479  cursor: pointer;1480  font-family: "IBM Plex Mono", monospace;1481  font-size: 9px;1482  letter-spacing: 0.12em;1483  text-transform: uppercase;1484  color: var(--peach-t2);1485  transition: color 140ms ease;1486  flex-shrink: 0;1487}1488.peach-select-all-btn:hover { color: var(--peach-accent); }14891490/* List in select mode */1491.peach-vault-list.is-selecting .peach-entry-row {1492  cursor: default;1493}1494.peach-vault-list.is-selecting .peach-entry-row:hover {1495  background: rgba(240,232,216,0.02);1496}1497.peach-vault-list.is-selecting .peach-entry-row.is-selected {1498  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1499}1500.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1501  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1502}15031504/* Select indicator circles in icon slot */1505.peach-entry-row-icon.is-select-icon {1506  color: var(--peach-t2);1507}1508.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1509  color: var(--peach-accent);1510}15111512/* Delete action bar at bottom (replaces new-entry row) */1513.peach-select-action-bar {1514  display: flex;1515  align-items: center;1516  justify-content: center;1517  gap: 7px;1518  width: 100%;1519  padding: 11px;1520  background: transparent;1521  border: none;1522  border-top: 1px solid var(--peach-t3);1523  color: var(--peach-t1);1524  font-family: "IBM Plex Mono", monospace;1525  font-size: 9px;1526  text-transform: uppercase;1527  letter-spacing: 0.14em;1528  cursor: pointer;1529  flex-shrink: 0;1530  transition: color 120ms ease, background 120ms ease;1531}1532.peach-select-action-bar:not(:disabled):hover {1533  color: var(--peach-t0);1534  background: rgba(220,80,60,0.06);1535}1536.peach-select-action-bar:not(:disabled):hover svg {1537  stroke: rgba(220,80,60,0.8);1538}1539.peach-select-action-bar:disabled,1540.peach-select-action-bar.is-empty {1541  color: var(--peach-t2);1542  cursor: default;1543  opacity: 0.5;1544}1545.peach-search-counter-list {1546  white-space: nowrap;1547  flex-shrink: 0;1548}1549.peach-list-empty {1550  min-height: 180px;1551  display: grid;1552  place-items: center;1553  color: var(--peach-t2);1554  font-family: "IBM Plex Mono", monospace;1555  font-size: 11px;1556}15571558/* ── Settings view ───────────────────────────────────────────────────── */1559.peach-settings-body {1560  flex: 1;1561  overflow-y: auto;1562  min-height: 0;1563  display: flex;1564  flex-direction: column;1565  padding: 2px 0 10px;1566}1567.peach-settings-group {1568  padding: 9px 16px 11px;1569  border-bottom: 1px solid var(--peach-t3);1570}1571.peach-export-intro {1572  padding-bottom: 8px;1573}1574.peach-export-card {1575  display: grid;1576  gap: 10px;1577}1578.peach-script-string {1579  font-family: "PeachScript", monospace;1580  font-size: 22px;1581  line-height: 1.55;1582  letter-spacing: 0.04em;1583  color: var(--peach-t0);1584  word-break: break-all;1585  overflow-wrap: anywhere;1586  white-space: normal;1587  user-select: all;1588  background: color-mix(in srgb, var(--peach-accent) 5%, var(--peach-bg));1589  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, var(--peach-t3));1590  border-radius: 8px;1591  padding: 14px 16px;1592  margin: 0;1593  flex: 1;1594  min-height: 140px;1595  overflow-x: hidden;1596  overflow-y: auto;1597  scrollbar-width: thin;1598  scrollbar-color: var(--peach-accent-dim) transparent;1599  text-shadow: 0 0 24px color-mix(in srgb, var(--peach-accent) 32%, transparent);1600}1601.peach-script-string::-webkit-scrollbar {1602  width: 6px;1603}1604.peach-script-string::-webkit-scrollbar-thumb {1605  background: var(--peach-accent-dim);1606  border-radius: 3px;1607}1608.peach-script-string::-webkit-scrollbar-track {1609  background: transparent;1610}1611.peach-script-input {1612  font-family: "PeachScript", monospace;1613  font-size: 11px;1614  line-height: 1.9;1615  letter-spacing: 0.06em;1616  color: var(--peach-t0);1617  background: var(--peach-input-bg, var(--surface-card));1618  border: 1px solid var(--peach-t3);1619  border-radius: 6px;1620  padding: 12px;1621  width: 100%;1622  min-height: 96px;1623  resize: vertical;1624  word-break: break-all;1625}1626.peach-qr-canvas-wrap {1627  display: flex;1628  justify-content: center;1629  padding: 12px 0 6px;1630}1631.peach-qr-canvas-wrap canvas {1632  display: block;1633  background: #ffffff;1634  border-radius: 6px;1635  max-width: 100%;1636  height: auto;1637}1638.peach-csv-warning {1639  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1640  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1641  color: var(--peach-t0);1642  border-radius: 6px;1643  padding: 10px 12px;1644  margin-bottom: 8px;1645  font-size: 12px;1646  line-height: 1.45;1647}1648.peach-legacy-cjk-summary {1649  cursor: pointer;1650  color: var(--peach-t2);1651  font-family: "IBM Plex Mono", monospace;1652  font-size: 10px;1653  text-transform: uppercase;1654  letter-spacing: 0.14em;1655  padding: 6px 0;1656}1657.peach-legacy-cjk-note {1658  color: var(--peach-t2);1659  font-size: 11px;1660  line-height: 1.5;1661  margin: 6px 0 0;1662}16631664.peach-export-card--primary {1665  background:1666    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1667}16681669/* Export menu — distribute the three format cards across the popup. */1670.peach-export-menu {1671  display: flex;1672  flex-direction: column;1673  flex: 1;1674  min-height: 0;1675}1676.peach-export-menu .peach-settings-group {1677  flex: 1;1678  display: flex;1679  flex-direction: column;1680  justify-content: center;1681  gap: 10px;1682}16831684/* Result view — the script-string fills the remaining vertical surface. */1685.peach-export-result-group {1686  flex: 1;1687  display: flex;1688  flex-direction: column;1689  min-height: 0;1690}1691.peach-export-result-group .peach-export-card {1692  flex: 1;1693  min-height: 0;1694  display: flex;1695  flex-direction: column;1696  gap: 10px;1697}1698.peach-export-result-group .peach-export-card-copy {1699  flex-shrink: 0;1700}1701.peach-export-result-group .peach-settings-label {1702  flex-shrink: 0;1703}1704.peach-export-result-group button {1705  flex-shrink: 0;1706}1707.peach-export-card-head {1708  display: flex;1709  align-items: center;1710  justify-content: space-between;1711  gap: 10px;1712}1713.peach-export-card-copy {1714  margin: 0;1715  font-size: 12px;1716  line-height: 1.55;1717  color: var(--peach-t1);1718}1719.peach-export-note {1720  margin: 0;1721  font-size: 10px;1722  line-height: 1.5;1723  color: var(--peach-t2);1724}1725.peach-export-pill {1726  display: inline-flex;1727  align-items: center;1728  padding: 4px 8px;1729  border-radius: 999px;1730  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1731  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1732  color: var(--peach-accent);1733  font-family: "IBM Plex Mono", monospace;1734  font-size: 8px;1735  letter-spacing: 0.12em;1736  text-transform: uppercase;1737  white-space: nowrap;1738}1739.peach-export-pill--danger {1740  border-color: rgba(220,80,60,0.22);1741  background: rgba(220,80,60,0.08);1742  color: var(--peach-breach);1743}1744.peach-export-password-stack {1745  gap: 8px;1746}1747.peach-settings-label {1748  margin: 0 0 6px;1749  font-family: "IBM Plex Mono", monospace;1750  font-size: 8px;1751  text-transform: uppercase;1752  letter-spacing: 0.18em;1753  color: var(--peach-t2);1754}1755.peach-settings-row {1756  display: flex;1757  align-items: center;1758  justify-content: space-between;1759  gap: 12px;1760  min-height: 34px;1761  padding: 6px 0;1762  font-size: 13px;1763  color: var(--peach-t1);1764}1765.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1766.peach-settings-value {1767  font-family: "IBM Plex Mono", monospace;1768  font-size: 10px;1769  color: var(--peach-t2);1770}17711772.peach-settings-value--status {1773  display: flex;1774  align-items: center;1775  gap: 6px;1776}17771778.peach-settings-link {1779  font-family: "IBM Plex Mono", monospace;1780  font-size: 10px;1781  color: var(--peach-accent);1782  text-decoration: none;1783  cursor: pointer;1784}1785.peach-settings-link:hover {1786  text-decoration: underline;1787}17881789.peach-settings-row--stack {1790  flex-direction: column;1791  align-items: stretch;1792  gap: 6px;1793}17941795.peach-settings-row--top {1796  align-items: flex-start;1797}17981799.peach-settings-row-main {1800  display: flex;1801  flex-direction: column;1802  gap: 4px;1803  flex: 1;1804}1805.peach-toggle {1806  width: 28px; height: 16px;1807  border-radius: 999px;1808  background: var(--peach-t3);1809  border: 1px solid var(--peach-t3);1810  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1811  flex-shrink: 0;1812  transition: background 200ms ease, border-color 200ms ease;1813  cursor: pointer;1814}1815.peach-toggle.is-on {1816  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1817  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1818}1819.peach-toggle-knob {1820  width: 10px; height: 10px;1821  border-radius: 50%;1822  background: var(--peach-t2);1823  flex-shrink: 0;1824  transform: translateX(0px);1825  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1826}1827.peach-toggle.is-on .peach-toggle-knob {1828  background: var(--peach-accent);1829  transform: translateX(12px);1830}1831.peach-settings-footer {1832  display: flex;1833  align-items: center;1834  gap: 8px;1835  margin-top: auto;1836  padding: 14px 16px 8px;1837  font-family: "IBM Plex Mono", monospace;1838  font-size: 9px;1839  color: var(--peach-t2);1840}18411842/* ── Settings home navigation ──────────────────────────────────────────── */1843.peach-settings-nav-label {1844  margin: 0 0 2px;1845  padding: 12px 16px 4px;1846  font-family: "IBM Plex Mono", monospace;1847  font-size: 8px;1848  text-transform: uppercase;1849  letter-spacing: 0.18em;1850  color: var(--peach-t2);1851}18521853.peach-settings-cat-row {1854  display: flex;1855  align-items: center;1856  gap: 10px;1857  width: 100%;1858  padding: 9px 16px;1859  background: none;1860  border: none;1861  border-bottom: 1px solid var(--peach-t3);1862  cursor: pointer;1863  text-align: left;1864  color: inherit;1865  transition: background var(--peach-dur-80) ease;1866}1867.peach-settings-cat-row:hover {1868  background: var(--peach-t3);1869}1870.peach-settings-cat-row:last-child {1871  border-bottom: none;1872}18731874.peach-settings-cat-icon {1875  width: 28px;1876  height: 28px;1877  border-radius: 7px;1878  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1879  color: var(--peach-accent);1880  display: flex;1881  align-items: center;1882  justify-content: center;1883  flex-shrink: 0;1884}1885/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1886   Darken the icon stroke to ink and bump the bg tint so the icon reads1887   sharply while the cell still feels accent-tinted. */1888.light .peach-settings-cat-icon {1889  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1890  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1891}18921893.peach-settings-cat-content {1894  flex: 1;1895  display: flex;1896  flex-direction: column;1897  gap: 2px;1898  min-width: 0;1899}19001901.peach-settings-cat-name {1902  font-size: 13px;1903  font-weight: 450;1904  color: var(--peach-t0);1905  line-height: 1.2;1906}19071908.peach-settings-cat-desc {1909  font-size: 10px;1910  color: var(--peach-t2);1911  line-height: 1.3;1912  white-space: nowrap;1913  overflow: hidden;1914  text-overflow: ellipsis;1915}19161917.peach-settings-cat-chevron {1918  color: var(--peach-t2);1919  flex-shrink: 0;1920  opacity: 0.5;1921}19221923/* ── Settings sub-view section labels ──────────────────────────────────── */1924.peach-settings-sub-label {1925  margin: 12px 0 4px;1926  font-family: "IBM Plex Mono", monospace;1927  font-size: 8px;1928  text-transform: uppercase;1929  letter-spacing: 0.18em;1930  color: var(--peach-t2);1931}1932.peach-settings-sub-label:first-child {1933  margin-top: 4px;1934}19351936/* ── Feedback form ──────────────────────────────────────────────────────── */1937.peach-feedback-group {1938  flex: 1;1939  display: flex;1940  flex-direction: column;1941  border-bottom: none;1942}19431944.peach-feedback-intro {1945  margin: 4px 0 14px;1946  font-size: 12px;1947  line-height: 1.55;1948  color: var(--peach-t1);1949}19501951.peach-feedback-chips {1952  display: flex;1953  flex-wrap: wrap;1954  gap: 6px;1955  margin-bottom: 14px;1956}19571958.peach-feedback-chip {1959  padding: 4px 10px;1960  border-radius: 999px;1961  border: 1px solid var(--peach-t3);1962  background: none;1963  color: var(--peach-t2);1964  font-size: 11px;1965  font-family: var(--font-ui);1966  cursor: pointer;1967  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1968    background var(--peach-dur-80) ease;1969}1970.peach-feedback-chip:hover {1971  border-color: var(--peach-t2);1972  color: var(--peach-t1);1973}1974.peach-feedback-chip.is-active {1975  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1976  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1977  color: var(--peach-accent);1978}19791980.peach-feedback-textarea {1981  flex: 1;1982  width: 100%;1983  min-height: 120px;1984  box-sizing: border-box;1985  background: var(--peach-t3);1986  border: 1px solid var(--peach-t3);1987  border-radius: 6px;1988  color: var(--peach-t0);1989  font-size: 12px;1990  font-family: var(--font-ui);1991  line-height: 1.5;1992  padding: 8px 10px;1993  resize: none;1994  outline: none;1995  transition: border-color var(--peach-dur-150) ease;1996}1997.peach-feedback-textarea:focus {1998  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1999}2000.peach-feedback-textarea::placeholder {2001  color: var(--peach-t2);2002}20032004.peach-feedback-meta {2005  margin: 6px 0 0;2006  font-size: 10px;2007  color: var(--peach-t2);2008  font-family: "IBM Plex Mono", monospace;2009}20102011.peach-feedback-result {2012  margin: 8px 0 0;2013  font-size: 11px;2014  font-family: "IBM Plex Mono", monospace;2015}2016.peach-feedback-result--ok { color: var(--peach-sync-ok); }2017.peach-feedback-result--err { color: var(--peach-breach); }20182019.peach-feedback-submit {2020  width: 100%;2021  margin-top: 12px;2022  justify-content: center;2023}20242025.peach-feedback-anon {2026  margin: 8px 0 0;2027  font-size: 10px;2028  color: var(--peach-t2);2029  text-align: center;2030}20312032.peach-passkey-badge {2033  margin-left: 8px;2034  font-size: 10px;2035  letter-spacing: 0.06em;2036  text-transform: uppercase;2037  color: var(--peach-t2);2038  font-family: var(--font-ui);2039  vertical-align: middle;2040}20412042.peach-passkey-delete-btn {2043  color: var(--peach-breach);2044  border-color: rgba(229, 85, 85, 0.25);2045}20462047.peach-passkey-delete-confirm {2048  display: flex;2049  align-items: center;2050  gap: 8px;2051  padding: 8px 10px;2052  background: rgba(229, 85, 85, 0.06);2053  border: 1px solid rgba(229, 85, 85, 0.2);2054  border-radius: 6px;2055}20562057.peach-passkey-delete-confirm-copy {2058  flex: 1;2059  font-size: 11px;2060  color: var(--peach-t1);2061}20622063.peach-passkey-delete-btn--confirm {2064  color: var(--peach-breach);2065  border-color: rgba(229, 85, 85, 0.4);2066}20672068.peach-passkey-activity {2069  flex-direction: column;2070  align-items: flex-start;2071  gap: 4px;2072}20732074.peach-passkey-meta {2075  font-size: 11px;2076  color: var(--peach-t2);2077}20782079.peach-passkey-actions {2080  position: relative;2081  z-index: 1;2082  margin-top: 14px;2083  display: flex;2084  flex-direction: column;2085  gap: 8px;2086}20872088.peach-passkey-approval {2089  display: flex;2090  flex-direction: column;2091  align-items: center;2092  padding: 28px 22px 22px;2093  gap: 14px;2094  text-align: center;2095}20962097.peach-passkey-approval-icon {2098  width: 46px;2099  height: 46px;2100  border-radius: 12px;2101  background: var(--peach-s2);2102  border: 1px solid var(--peach-t3);2103  display: flex;2104  align-items: center;2105  justify-content: center;2106  flex-shrink: 0;2107  color: var(--peach-accent);2108}21092110.peach-passkey-approval-icon img,2111.peach-passkey-approval-icon svg {2112  width: 28px;2113  height: 28px;2114  border-radius: 6px;2115}21162117.peach-passkey-approval-rp {2118  font-family: var(--font-ui);2119  font-size: 12px;2120  color: var(--peach-t2);2121  letter-spacing: 0.03em;2122}21232124.peach-passkey-approval-action {2125  font-family: var(--font-display);2126  font-style: italic;2127  font-weight: 300;2128  font-size: 26px;2129  color: var(--peach-t0);2130  line-height: 1;2131}21322133.peach-passkey-approval-user {2134  font-family: var(--font-mono);2135  font-size: 11px;2136  color: var(--peach-t1);2137  background: var(--peach-s2);2138  border: 1px solid var(--peach-t3);2139  border-radius: 4px;2140  padding: 3px 8px;2141}21422143.peach-passkey-approval-notice {2144  font-size: 10px;2145  color: var(--peach-t2);2146  line-height: 1.5;2147  max-width: 220px;2148}21492150.peach-passkey-approval-actions {2151  display: flex;2152  gap: 8px;2153  width: 100%;2154  margin-top: 6px;2155}21562157.peach-passkey-approval-actions .peach-btn {2158  flex: 1;2159}21602161/* ── Inline generator drawer ── */2162.peach-generator-drawer {2163  display: grid;2164  grid-template-rows: 0fr;2165  transition: grid-template-rows 320ms var(--peach-curve-arrival);2166  overflow: hidden;2167}2168.peach-generator-drawer.is-open {2169  grid-template-rows: 1fr;2170}2171.peach-generator-drawer-inner {2172  min-height: 0;2173  overflow: hidden;2174}2175.peach-generator-drawer-content {2176  border-top: 1px solid var(--peach-t3);2177  padding: 8px 0 4px;2178  display: flex;2179  flex-direction: column;2180  gap: 8px;2181}21822183/* ── Compact generator (inside entry edit) ── */2184.peach-generator-drawer-content--compact {2185  border-top: 1px solid var(--peach-t3);2186  padding: 8px 0 2px;2187  gap: 7px;2188}2189.peach-pwgen-compact-display-row {2190  display: flex;2191  align-items: center;2192  gap: 6px;2193}2194.peach-pwgen-compact-output {2195  flex: 1;2196  min-width: 0;2197  font-family: "IBM Plex Mono", monospace;2198  font-size: 11px;2199  font-weight: 400;2200  letter-spacing: 0.04em;2201  color: var(--peach-t0);2202  background: rgba(240, 232, 216, 0.04);2203  border: 1px solid var(--peach-t3);2204  border-radius: 5px;2205  padding: 5px 8px;2206  word-break: break-all;2207  line-height: 1.5;2208}2209.peach-pwgen-compact-controls {2210  display: flex;2211  align-items: center;2212  gap: 6px;2213}2214.peach-pwgen-compact-slider {2215  flex: 1;2216  min-width: 0;2217  height: 2px !important;2218}2219.peach-pwgen-compact-controls .peach-pwgen-len-num {2220  flex-shrink: 0;2221  min-width: 18px;2222  text-align: right;2223}2224.peach-pwgen-compact-pills {2225  display: flex;2226  gap: 3px;2227  flex-shrink: 0;2228}2229.peach-pwgen-compact-pills .peach-pwgen-pill {2230  padding: 2px 7px;2231  font-size: 8px;2232}2233.peach-pwgen-compact-use {2234  flex-shrink: 0;2235  font-size: 10px !important;2236  padding: 3px 9px !important;2237  min-height: 22px !important;2238  border-radius: 5px !important;2239}22402241/* ── Password edit row (input + eye toggle side-by-side) ── */2242.peach-password-edit-row {2243  display: flex;2244  align-items: center;2245  gap: 6px;2246}2247.peach-password-edit-row .peach-inline-input {2248  flex: 1;2249  min-width: 0;2250}22512252/* ── Generate toggle link ── */2253.peach-generate-toggle-link {2254  display: inline-flex;2255  align-items: center;2256  gap: 5px;2257  background: none;2258  border: none;2259  padding: 0;2260  cursor: pointer;2261  font-family: "IBM Plex Mono", monospace;2262  font-size: 10px;2263  color: var(--peach-t2);2264  letter-spacing: 0.04em;2265  transition: color 120ms ease;2266  align-self: flex-start;2267}2268.peach-generate-toggle-link:hover {2269  color: var(--peach-accent);2270}22712272/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2273.peach-entry-body {2274  flex: 1;2275  overflow-y: auto;2276  overflow-x: hidden;2277  scrollbar-width: none;2278  -ms-overflow-style: none;2279  overscroll-behavior: contain;2280  display: grid;2281  gap: 10px;2282  align-content: start;2283  padding: 10px 20px 14px;2284  min-width: 0;2285  min-height: 0;2286}2287.peach-entry-body::-webkit-scrollbar { display: none; }22882289/* Type-toggle pills + inline note toolbar */2290.peach-new-type-row {2291  display: flex;2292  align-items: center;2293  gap: 6px;2294  margin-bottom: 2px;2295}2296.peach-new-type-btn {2297  background: transparent;2298  border: 1px solid var(--peach-t3);2299  border-radius: 12px;2300  padding: 3px 10px;2301  font-family: "IBM Plex Mono", monospace;2302  font-size: 9px;2303  letter-spacing: 0.12em;2304  text-transform: uppercase;2305  color: var(--peach-t2);2306  cursor: pointer;2307  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2308}2309.peach-new-type-btn.is-active {2310  color: var(--peach-t0);2311  border-color: var(--peach-accent);2312  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2313}2314.peach-new-type-btn:not(.is-active):hover {2315  color: var(--peach-t1);2316  border-color: var(--peach-t2);2317}23182319/* Editable title */2320.peach-new-title-wrap { margin: 0 0 2px; }2321.peach-new-title-input {2322  background: transparent;2323  border: none;2324  outline: none;2325  width: 100%;2326  color: var(--peach-t0);2327  font-family: "Cormorant Garamond", Georgia, serif;2328  font-style: italic;2329  font-weight: 400;2330  font-size: 40px;2331  line-height: 0.95;2332  caret-color: var(--peach-accent);2333}2334.peach-new-title-input::placeholder { color: var(--peach-t2); }23352336/* Editable domain field */2337.peach-domain-value--edit {2338  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2339  font-size: 10px;2340  font-style: italic;2341  letter-spacing: 0.12em;2342  color: var(--peach-t1);2343  background: transparent;2344  border: none;2345  border-bottom: 1px solid var(--peach-t3);2346  outline: none;2347  width: 100%;2348  padding: 2px 0;2349  caret-color: var(--peach-accent);2350  transition: border-color 140ms ease, color 140ms ease;2351}2352.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2353.peach-domain-value--edit:focus {2354  border-bottom-color: rgba(240, 232, 216, 0.28);2355  color: var(--peach-t0);2356}23572358/* Editable field values (username, password, totp) */2359.peach-field-value--edit {2360  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2361  font-size: 13px;2362  color: var(--peach-t0);2363  background: transparent;2364  border: none;2365  border-bottom: 1px solid var(--peach-t3);2366  outline: none;2367  flex: 1;2368  min-width: 0;2369  padding: 3px 0;2370  caret-color: var(--peach-accent);2371  transition: border-color 140ms ease, color 140ms ease;2372}2373.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2374.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2375.peach-field-value--edit:focus {2376  border-bottom-color: rgba(240, 232, 216, 0.28);2377  color: var(--peach-t0);2378}23792380/* "+ add optional field" links */2381.peach-entry-add-links {2382  display: flex;2383  gap: 12px;2384  flex-wrap: wrap;2385  margin-top: -2px;2386}2387.peach-add-field-link {2388  background: transparent;2389  border: none;2390  padding: 0;2391  cursor: pointer;2392  font-family: "IBM Plex Mono", monospace;2393  font-size: 9px;2394  letter-spacing: 0.1em;2395  text-transform: uppercase;2396  color: var(--peach-t2);2397  transition: color 140ms ease;2398}2399.peach-add-field-link:hover { color: var(--peach-accent); }24002401/* ── New entry form (legacy classes) ────────────────────────────────── */2402.peach-new-body {2403  flex: 1;2404  overflow-y: auto;2405  padding: 10px 20px 14px;2406}2407.peach-new-name-input {2408  background: transparent;2409  border: none;2410  outline: none;2411  width: 100%;2412  color: var(--peach-t0);2413  font-family: "Cormorant Garamond", Georgia, serif;2414  font-style: italic;2415  font-weight: 400;2416  font-size: 40px;2417  line-height: 0.95;2418  caret-color: var(--peach-accent);2419}2420.peach-new-name-input::placeholder { color: var(--peach-t2); }2421.peach-new-field-input {2422  background: transparent;2423  border: none;2424  outline: none;2425  flex: 1;2426  min-width: 0;2427  caret-color: var(--peach-accent);2428}2429.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }24302431/* ── Canary card ── */2432.peach-canary-card {2433  border: 1px solid rgba(217, 160, 48, 0.2);2434  background: rgba(217, 160, 48, 0.03);2435  border-radius: 8px;2436  padding: 12px;2437}24382439.peach-canary-settings-header {2440  display: flex;2441  align-items: center;2442  justify-content: space-between;2443  cursor: pointer;2444  user-select: none;2445}24462447.peach-canary-card .peach-label {2448  color: rgba(217, 160, 48, 0.85);2449}24502451.peach-canary-card .peach-new-field-input {2452  border-color: rgba(217, 160, 48, 0.25);2453}24542455.peach-canary-card .peach-new-field-input:focus {2456  border-color: rgba(217, 160, 48, 0.5);2457}24582459.peach-canary-body {2460  margin-top: 12px;2461  display: flex;2462  flex-direction: column;2463  gap: 10px;2464}24652466.peach-canary-explainer {2467  display: flex;2468  gap: 10px;2469  padding: 10px 12px;2470  border-radius: 10px;2471  background: rgba(217, 160, 48, 0.06);2472  border: 1px solid rgba(217, 160, 48, 0.22);2473  margin-bottom: 4px;2474}24752476.peach-canary-explainer-icon {2477  font-size: 16px;2478  flex-shrink: 0;2479  line-height: 1.2;2480}24812482.peach-canary-explainer-title {2483  font-family: var(--font-ui);2484  font-size: 11px;2485  font-weight: 500;2486  color: rgba(217, 160, 48, 0.9);2487  margin: 0 0 3px;2488}24892490.peach-canary-explainer-copy {2491  font-family: var(--font-ui);2492  font-size: 10px;2493  color: var(--peach-t2);2494  line-height: 1.55;2495  margin: 0;2496}24972498.peach-canary-hint {2499  font-size: 10px;2500  color: var(--peach-t2);2501  font-family: Inter, system-ui, sans-serif;2502  line-height: 1.5;2503  margin-top: 4px;2504}25052506.peach-canary-actions-row {2507  display: flex;2508  align-items: center;2509  gap: 8px;2510}25112512.peach-canary-test-btn {2513  border-color: rgba(217, 160, 48, 0.3);2514  color: rgba(217, 160, 48, 0.85);2515}25162517.peach-canary-test-result {2518  font-size: 10px;2519  font-family: Inter, system-ui, sans-serif;2520}25212522.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2523.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }25242525.peach-canary-badge {2526  display: flex;2527  position: relative;2528  z-index: 1;2529  align-items: center;2530  gap: 5px;2531  padding: 4px 10px;2532  background: rgba(217, 160, 48, 0.12);2533  border: 1px solid rgba(217, 160, 48, 0.35);2534  border-radius: 6px;2535  margin-bottom: 6px;2536  width: fit-content;2537}25382539.peach-canary-badge-label {2540  font-size: 10px;2541  letter-spacing: 0.06em;2542  color: rgba(217, 160, 48, 0.9);2543  font-family: var(--font-ui);2544  text-transform: uppercase;2545}25462547.peach-canary-badge-icon {2548  font-size: 11px;2549}25502551.peach-canary-suppress-row {2552  display: flex;2553  align-items: center;2554  gap: 8px;2555  padding: 6px 10px;2556  background: rgba(217, 160, 48, 0.08);2557  border-radius: 6px;2558  margin-bottom: 8px;2559}25602561.peach-canary-suppress-label {2562  font-size: 11px;2563  color: rgba(217, 160, 48, 0.85);2564  cursor: pointer;2565  font-family: var(--font-ui);2566  letter-spacing: 0.04em;2567}25682569.peach-regen-panel {2570  position: relative;2571  z-index: 1;2572  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2573  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2574  border-radius: 8px;2575  padding: 12px;2576  margin-bottom: 8px;2577}25782579.peach-regen-panel-header {2580  display: flex;2581  align-items: center;2582  justify-content: space-between;2583  margin-bottom: 10px;2584}25852586.peach-regen-panel-title {2587  font-size: 11px;2588  font-weight: 600;2589  letter-spacing: 0.06em;2590  text-transform: uppercase;2591  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2592}25932594.peach-regen-output {2595  background: rgba(0, 0, 0, 0.2);2596  border-radius: 6px;2597  padding: 10px;2598  margin-bottom: 10px;2599  font-family: var(--font-mono);2600  font-size: 13px;2601  word-break: break-all;2602  color: var(--peach-t1);2603}26042605.peach-regen-actions {2606  display: flex;2607  gap: 6px;2608}26092610.peach-regen-actions--spaced {2611  margin-bottom: 8px;2612}26132614.peach-regen-action-grow {2615  flex: 1;2616}26172618.peach-regen-copy-btn {2619  padding: 0 8px;2620}26212622.peach-regen-success {2623  position: relative;2624  z-index: 1;2625  background: rgba(40, 180, 80, 0.1);2626  border: 1px solid rgba(40, 180, 80, 0.3);2627  border-radius: 8px;2628  padding: 10px 12px;2629  margin-bottom: 8px;2630  display: flex;2631  align-items: center;2632  gap: 8px;2633  font-size: 11px;2634  color: rgba(40, 180, 80, 0.9);2635}26362637/* ── Note editor overlay ── */2638.peach-note-editor {2639  position: absolute;2640  inset: 0;2641  z-index: 200;2642  display: flex;2643  flex-direction: column;2644  background:2645    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2646    var(--peach-bg);2647  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2648}26492650.peach-note-editor-header {2651  display: flex;2652  align-items: center;2653  gap: 10px;2654  padding: 14px 16px 10px;2655  border-bottom: 1px solid var(--peach-t3);2656  flex-shrink: 0;2657}26582659.peach-note-editor-back {2660  background: transparent;2661  border: none;2662  cursor: pointer;2663  color: var(--peach-t2);2664  padding: 4px 6px;2665  border-radius: 6px;2666  display: flex;2667  align-items: center;2668  transition: color 120ms ease, background 120ms ease;2669  flex-shrink: 0;2670}2671.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }26722673.peach-note-editor-label {2674  flex: 1;2675  font-family: "Cormorant Garamond", "Times New Roman", serif;2676  font-style: italic;2677  font-size: 15px;2678  color: var(--peach-t1);2679  letter-spacing: 0.02em;2680}26812682.peach-note-editor-save-btn {2683  background: transparent;2684  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2685  border-radius: 8px;2686  color: var(--peach-accent);2687  font-family: "IBM Plex Mono", monospace;2688  font-size: 10px;2689  letter-spacing: 0.06em;2690  text-transform: uppercase;2691  padding: 3px 10px;2692  cursor: pointer;2693  transition: background 120ms ease, border-color 120ms ease;2694}2695.peach-note-editor-save-btn:hover:not(:disabled) {2696  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2697  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2698}2699.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }27002701.peach-note-toolbar {2702  display: flex;2703  align-items: center;2704  gap: 3px;2705  padding: 6px 14px 5px;2706  border-bottom: 1px solid var(--peach-t3);2707  flex-shrink: 0;2708}27092710.peach-note-tool-btn {2711  background: transparent;2712  border: 1px solid transparent;2713  border-radius: 5px;2714  color: var(--peach-t2);2715  font-family: "IBM Plex Mono", monospace;2716  font-size: 10px;2717  letter-spacing: 0.04em;2718  padding: 2px 8px;2719  cursor: pointer;2720  line-height: 1.6;2721  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2722}2723.peach-note-tool-btn:hover {2724  background: var(--peach-t4);2725  color: var(--peach-t0);2726  border-color: var(--peach-t3);2727}27282729.peach-note-tool-icon {2730  padding: 3px 7px;2731  display: inline-flex;2732  align-items: center;2733  justify-content: center;2734}27352736.peach-note-tool-divider {2737  width: 1px;2738  height: 14px;2739  background: var(--peach-t3);2740  margin: 0 4px;2741  flex-shrink: 0;2742}27432744.peach-note-editor-body {2745  flex: 1;2746  overflow-y: auto;2747  padding: 16px 20px 20px;2748  outline: none;2749  font-family: "Cormorant Garamond", "Times New Roman", serif;2750  font-size: 16px;2751  line-height: 1.75;2752  color: var(--peach-t0);2753  scrollbar-width: none;2754  word-break: break-word;2755}2756.peach-note-editor-body:empty::before {2757  content: "write your note…";2758  color: var(--peach-t3);2759  font-style: italic;2760  pointer-events: none;2761}27622763/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2764.peach-note-editor-inline {2765  display: flex;2766  flex-direction: column;2767  flex: 1;2768  min-height: 0;2769}2770.peach-note-editor-body--inline {2771  flex: 1;2772  min-height: 0;2773  font-size: 15px;2774  padding: 10px 20px 14px;2775}27762777/* Full-width toolbar row inside the body (Add.tsx note type).2778   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2779.peach-note-toolbar-body {2780  display: flex;2781  align-items: center;2782  gap: 3px;2783  padding: 5px 20px 4px;2784  margin: 2px -20px 0;2785  border-bottom: 1px solid var(--peach-t3);2786  flex-shrink: 0;2787}27882789/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2790   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2791   and .peach-note-tool-divider button-level styles. */2792.peach-note-toolbar-inline {2793  display: flex;2794  align-items: center;2795  gap: 3px;2796  margin-left: auto;2797  padding-left: 10px;2798  border-left: 1px solid var(--peach-t3);2799  min-height: 22px;2800}28012802/* Entry.tsx toolbar row (no tabs, toolbar only) */2803.peach-entry-note-toolbar-row {2804  display: flex;2805  align-items: center;2806  margin: 4px 0 6px;2807  position: relative;2808  z-index: 1;2809}2810.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2811  border-left: none;2812  padding-left: 0;2813  margin-left: 0;2814}28152816/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2817.peach-note-body {2818  display: flex;2819  flex-direction: column;2820  flex: 1;2821  min-height: 0;2822  margin: 4px 0 0;2823}2824.peach-entry-body--new .peach-note-body {2825  margin: 8px -20px 0;2826}28272828/* Add.tsx body is a grid by default; swap to a flex column when a note is2829   active so the note body can stretch and pin the tags row to the bottom. */2830.peach-entry-body--new:has(.peach-note-body) {2831  display: flex;2832  flex-direction: column;2833}28342835/* Rich content element styles (editor + display) */2836.peach-note-editor-body h2,2837.peach-note-content h2 {2838  font-family: "Cormorant Garamond", serif;2839  font-size: 20px;2840  font-weight: 600;2841  font-style: italic;2842  color: var(--peach-t0);2843  margin: 6px 0 2px;2844  line-height: 1.3;2845}2846.peach-note-editor-body ul,2847.peach-note-content ul {2848  padding-left: 18px;2849  margin: 3px 0;2850  list-style: disc;2851}2852.peach-note-editor-body ol,2853.peach-note-content ol {2854  padding-left: 18px;2855  margin: 3px 0;2856  list-style: decimal;2857}2858.peach-note-editor-body li,2859.peach-note-content li { margin: 2px 0; }2860.peach-note-editor-body hr,2861.peach-note-content hr {2862  border: none;2863  border-top: 1px solid var(--peach-t3);2864  margin: 10px 0;2865}28662867/* font size elements from execCommand */2868.peach-note-editor-body font[size="1"],2869.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2870.peach-note-editor-body font[size="2"],2871.peach-note-content font[size="2"] { font-size: 13px; }2872.peach-note-editor-body font[size="3"],2873.peach-note-content font[size="3"] { font-size: 16px; }2874.peach-note-editor-body font[size="4"],2875.peach-note-content font[size="4"] { font-size: 20px; }2876.peach-note-editor-body font[size="5"],2877.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }28782879/* bold / italic inside the editor and note display */2880.peach-note-editor-body b, .peach-note-editor-body strong,2881.peach-note-content b, .peach-note-content strong { font-weight: 700; }2882.peach-note-editor-body em, .peach-note-editor-body i,2883.peach-note-content em, .peach-note-content i { font-style: italic; }28842885/* note display — rendered HTML, no pre-wrap */2886.peach-note-content {2887  overflow: auto;2888  max-height: 340px;2889  word-break: break-word;2890}28912892/* ── Note textarea ── */2893.peach-note-textarea {2894  width: 100%;2895  min-height: 180px;2896  max-height: 280px;2897  resize: vertical;2898  background: var(--peach-t4);2899  border: 1px solid var(--peach-t3);2900  border-radius: 8px;2901  padding: 10px 12px;2902  font-family: "IBM Plex Mono", monospace;2903  font-size: 12px;2904  line-height: 1.7;2905  color: var(--peach-t1);2906  outline: none;2907  transition: border-color 150ms ease;2908}29092910.peach-note-textarea:focus {2911  border-color: var(--peach-t2);2912}29132914.peach-note-char-count {2915  font-family: "IBM Plex Mono", monospace;2916  font-size: 9px;2917  color: var(--peach-t3);2918  text-align: right;2919  margin-top: 4px;2920  letter-spacing: 0.1em;2921}29222923/* ── Field input baseline ── */2924.peach-new-field-input {2925  width: 100%;2926  background: transparent;2927  border: none;2928  border-bottom: 1px solid var(--peach-t3);2929  padding: 4px 0;2930  color: var(--peach-t1);2931  font-family: "IBM Plex Mono", monospace;2932  font-size: 13px;2933  outline: none;2934  transition: border-color 150ms ease;2935}29362937.peach-new-field-input:focus {2938  border-bottom-color: var(--peach-t0);2939  color: var(--peach-t0);2940}29412942.peach-new-name-input {2943  width: 100%;2944  background: transparent;2945  border: none;2946  border-bottom: 1px solid var(--peach-t3);2947  padding: 6px 0;2948  font-family: "Cormorant Garamond", Georgia, serif;2949  font-style: italic;2950  font-size: 28px;2951  color: var(--peach-t0);2952  outline: none;2953  transition: border-color 150ms ease;2954}29552956.peach-new-name-input:focus {2957  border-bottom-color: var(--peach-t1);2958}29592960.peach-new-name-input::placeholder {2961  color: var(--peach-t2);2962  font-style: italic;2963}29642965.peach-new-field-input::placeholder {2966  color: var(--peach-t3);2967}29682969/* ── Demo entrance animation ── */2970#hd-shell {2971  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2972}2973@keyframes hd-shell-enter {2974  from { opacity: 0; transform: scale(0.96) translateY(16px); }2975  to   { opacity: 1; transform: scale(1) translateY(0); }2976}29772978/* ── Keyframes ── */2979@keyframes peach-char-enter {2980  from { opacity: 0; transform: translateY(0.22em); }2981  to   { opacity: 1; transform: translateY(0); }2982}2983@keyframes peach-content-enter {2984  from { opacity: 0.96; transform: translateY(4px); }2985  to   { opacity: 1; transform: translateY(0); }2986}2987@keyframes peach-content-exit {2988  from { opacity: 1; transform: translateY(0); }2989  to   { opacity: 0.92; transform: translateY(-3px); }2990}2991@keyframes peach-screen-enter {2992  from { opacity: 0; transform: translateY(14px); }2993  to   { opacity: 1; transform: translateY(0); }2994}2995@keyframes peach-shell-fade-in {2996  from { opacity: 0; }2997  to   { opacity: 1; }2998}2999@keyframes peach-veil-in {3000  from { opacity: 0; }3001  to   { opacity: 1; }3002}3003@keyframes peach-lock-settle {3004  0%   { transform: scale(0.9); }3005  65%  { transform: scale(1.08); }3006  100% { transform: scale(1); }3007}3008@keyframes peach-copy-confirm {3009  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3010  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); }3011}3012@keyframes peach-copy-retreat {3013  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); }3014  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }3015}3016@keyframes peach-copy-flood {3017  from { opacity: 0; transform: scaleX(0.15); }3018  to   { opacity: 1; transform: scaleX(1); }3019}3020@keyframes peach-copy-icon-settle {3021  from  { transform: scale(0.84); }3022  70%   { transform: scale(1.08); }3023  to    { transform: scale(1); }3024}3025@keyframes peach-copy-sheen-retreat {3026  from { opacity: 1; transform: scaleX(1); }3027  to   { opacity: 0; transform: scaleX(0.15); }3028}3029@keyframes peach-copy-drain {3030  from { width: 100%; }3031  to   { width: 0; }3032}3033@keyframes peach-shake {3034  0%, 100% { transform: translateX(0); }3035  20%      { transform: translateX(-6px); }3036  40%      { transform: translateX(6px); }3037  60%      { transform: translateX(-4px); }3038  80%      { transform: translateX(4px); }3039}30403041@keyframes pip-pulse {3042  0% { transform: scale(1); }3043  40% { transform: scale(2.2); }3044  100% { transform: scale(1); }3045}304630473048/* ── Password generator ── */3049.peach-pwgen-body {3050  flex: 1; overflow-y: auto;3051  display: flex; flex-direction: column;3052}3053.peach-policy-badge {3054  display: flex; align-items: center;3055  padding: 6px 20px 0;3056  font-size: 10px; font-family: Inter, sans-serif;3057  color: var(--peach-t2); letter-spacing: 0.04em;3058}3059.peach-pwgen-display {3060  padding: 14px 20px 12px;3061  border-bottom: 1px solid var(--peach-t3);3062  display: flex; align-items: flex-start; gap: 10px;3063}3064.peach-pwgen-display-row {3065  display: flex;3066  align-items: flex-start;3067  gap: 8px;3068  padding-bottom: 8px;3069  border-bottom: 1px solid var(--peach-t3);3070}3071.peach-pwgen-output {3072  flex: 1; min-width: 0; margin: 0;3073  font-family: "IBM Plex Mono", monospace;3074  font-size: 13px; color: var(--peach-t0);3075  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3076  white-space: normal;3077  padding: 10px 12px;3078  background: var(--peach-t4);3079  border-radius: 6px;3080  min-height: 36px;3081}3082.peach-pwgen-output-display {3083  flex: 1;3084  min-width: 0;3085  margin: 0;3086  font-family: "Cormorant Garamond", "Times New Roman", serif;3087  font-style: italic;3088  font-weight: 300;3089  font-size: 32px;3090  line-height: 1.05;3091  color: var(--peach-t0);3092  word-break: break-all;3093  overflow-wrap: break-word;3094  white-space: normal;3095  letter-spacing: 0.02em;3096}3097.peach-pwgen-display-actions {3098  display: flex;3099  flex-direction: column;3100  gap: 4px;3101  flex-shrink: 0;3102  margin-top: 2px;3103}3104.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3105.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3106.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3107.peach-pwgen-len-num {3108  font-family: "IBM Plex Mono", monospace;3109  font-size: 12px; color: var(--peach-accent);3110}3111.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3112.peach-pwgen-toggles { display: flex; flex-direction: column; }3113.peach-pwgen-charset-pills {3114  display: flex;3115  gap: 6px;3116  flex-wrap: wrap;3117}3118.peach-pwgen-pill {3119  padding: 4px 11px;3120  border-radius: 999px;3121  border: 1px solid var(--peach-t3);3122  background: transparent;3123  color: var(--peach-t2);3124  font-family: "IBM Plex Mono", monospace;3125  font-size: 9px;3126  letter-spacing: 0.08em;3127  cursor: pointer;3128  transition: all 150ms ease;3129}3130.peach-pwgen-pill.is-on {3131  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3132  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3133  color: var(--peach-accent);3134}3135.peach-pwgen-pill:not(.is-on):hover {3136  color: var(--peach-t1);3137  border-color: var(--peach-t2);3138}3139.peach-pwgen-use-btn {3140  width: 100%;3141  min-height: 34px;3142  border-radius: 8px;3143  margin-top: 2px;3144}3145.peach-pwgen-toggle-row {3146  display: flex; align-items: center; justify-content: space-between;3147  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3148}3149.peach-pwgen-toggle-row:last-child { border-bottom: none; }3150.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }31513152.peach-screen-prelock {3153  z-index: 10;3154}31553156.prelock-form {3157  display: grid;3158  gap: 12px;3159}31603161/* Peach popup should not expose native scrollbars on internal panels. */3162.peach-settings-body,3163.peach-new-body,3164.peach-pwgen-body,3165.lock-screen,3166.peach-import-preview {3167  scrollbar-width: none;3168  -ms-overflow-style: none;3169  overscroll-behavior: contain;3170}3171.peach-settings-body::-webkit-scrollbar,3172.peach-new-body::-webkit-scrollbar,3173.peach-pwgen-body::-webkit-scrollbar,3174.lock-screen::-webkit-scrollbar,3175.peach-import-preview::-webkit-scrollbar {3176  width: 0;3177  height: 0;3178  display: none;3179}31803181.lock-screen {3182  height: 100%;3183  min-height: 100%;3184  overflow-y: auto;3185  padding: 18px 18px 16px;3186  gap: 14px;3187  grid-template-rows: auto auto auto 1fr auto;3188  align-content: stretch;3189  position: relative;3190  isolation: isolate;3191}3192.peach-screen.lock-screen--vault-stage {3193  display: flex;3194  flex-direction: column;3195  justify-content: flex-start;3196  gap: 18px;3197  padding: 20px 18px 18px;3198  overflow: hidden;3199}3200.peach-screen.lock-screen--vault-stage .peach-lock-panel {3201  margin-top: auto;3202}3203.lock-screen--onboarding {3204  display: flex;3205  flex-direction: column;3206  gap: 12px;3207  justify-content: flex-start;3208}32093210.lock-screen::before {3211  content: "";3212  position: absolute;3213  inset: 12px 18px auto auto;3214  width: 160px;3215  height: 160px;3216  border-radius: 999px;3217  background:3218    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%);3219  filter: blur(6px);3220  opacity: 0.7;3221  pointer-events: none;3222  z-index: 0;3223}32243225.lock-screen-header {3226  display: flex;3227  align-items: center;3228  justify-content: space-between;3229  position: relative;3230  z-index: 1;3231}32323233.lock-password-input.shake {3234  animation: peach-shake 300ms ease-in-out;3235}32363237.peach-hint-error {3238  color: rgba(220, 80, 60, 0.92);3239}32403241.peach-onboarding-headline {3242  margin: 0;3243  font-family: "Cormorant Garamond", "Times New Roman", serif;3244  font-size: 35px;3245  line-height: 0.88;3246  font-style: italic;3247  font-weight: 400;3248  max-width: 252px;3249}32503251.peach-lock-copy {3252  display: grid;3253  gap: 8px;3254  position: relative;3255  z-index: 1;3256}32573258.peach-lock-copy--onboarding {3259  gap: 10px;3260}32613262.peach-lock-hero {3263  position: relative;3264  z-index: 1;3265  display: grid;3266  gap: 8px;3267  min-height: 0;3268  padding: 4px 2px 0;3269  border: none;3270  border-radius: 0;3271  background: transparent;3272  box-shadow: none;3273}3274.peach-lock-hero-art {3275  position: absolute;3276  right: -8px;3277  top: -6px;3278  width: 120px;3279  height: 120px;3280  display: flex;3281  align-items: center;3282  justify-content: center;3283  pointer-events: none;3284  opacity: 0.12;3285  filter: saturate(0.9);3286}3287.peach-lock-hero-mark {3288  width: 100%;3289  height: 100%;3290}3291/* Peach body stays brand-peach across every accent — we don't want a3292   green or blue peach when sage/sky is selected. Leaf + stem keep the3293   sage tint because a real peach has a sage leaf. */3294.peach-lock-hero-mark path:nth-child(2),3295.peach-lock-hero-mark path:nth-child(3) {3296  stroke: rgba(123, 144, 96, 0.88);3297  fill: rgba(123, 144, 96, 0.88);3298}3299.peach-lock-hero > *:not(.peach-lock-hero-art) {3300  position: relative;3301  z-index: 1;3302}33033304.peach-lock-eyebrow {3305  display: inline-flex;3306  align-items: center;3307  width: fit-content;3308  padding: 4px 9px;3309  border-radius: 999px;3310  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3311  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3312  color: var(--peach-t0);3313  font-family: "IBM Plex Mono", monospace;3314  font-size: 8px;3315  letter-spacing: 0.18em;3316  text-transform: uppercase;3317}33183319.peach-lock-label-row {3320  display: flex;3321  align-items: center;3322  justify-content: space-between;3323  margin-bottom: 0;3324}33253326.peach-lock-reveal-btn {3327  display: inline-flex;3328  align-items: center;3329  gap: 4px;3330  background: none;3331  border: none;3332  cursor: pointer;3333  font-family: "IBM Plex Mono", monospace;3334  font-size: 9px;3335  letter-spacing: 0.06em;3336  color: var(--peach-t2);3337  padding: 2px 0;3338  transition: color 150ms ease;3339}33403341.peach-lock-reveal-btn:hover {3342  color: var(--peach-t1);3343}33443345.peach-lock-warning {3346  color: rgba(220, 80, 60, 0.85) !important;3347  line-height: 1.5;3348}33493350.peach-onboarding-cards {3351  display: grid;3352  gap: 8px;3353  position: relative;3354  z-index: 1;3355}33563357.peach-lock-panel {3358  position: relative;3359  z-index: 1;3360  display: grid;3361  gap: 9px;3362  padding: 14px 16px 15px;3363  border-radius: 18px;3364  border: 1px solid var(--peach-t3);3365  background:3366    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3367  box-shadow:3368    inset 0 1px 0 rgba(240, 232, 216, 0.04),3369    0 12px 28px rgba(0, 0, 0, 0.12);3370}33713372.peach-lock-panel--secondary {3373  gap: 12px;3374}33753376.peach-lock-panel-header {3377  display: flex;3378  align-items: baseline;3379  justify-content: space-between;3380  gap: 12px;3381}33823383.peach-lock-option-grid {3384  display: grid;3385  gap: 10px;3386}33873388.peach-lock-option {3389  width: 100%;3390  display: grid;3391  gap: 6px;3392  padding: 14px 15px;3393  border-radius: 16px;3394  border: 1px solid rgba(240, 232, 216, 0.08);3395  background: rgba(240, 232, 216, 0.02);3396  color: var(--peach-t0);3397  text-align: left;3398  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3399}34003401.peach-lock-option:hover {3402  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3403  background: rgba(240, 232, 216, 0.04);3404  transform: translateY(-1px);3405}34063407.peach-lock-option-title {3408  font-size: 12px;3409  color: var(--peach-t0);3410}34113412.peach-lock-option-copy {3413  font-size: 11px;3414  line-height: 1.55;3415  color: var(--peach-t1);3416}34173418.peach-onboarding-stack {3419  margin-top: 2px;3420}3421.peach-lock-panel-footer {3422  display: grid;3423  gap: 6px;3424  margin-top: 2px;3425  padding-top: 10px;3426  border-top: 1px solid rgba(240, 232, 216, 0.06);3427}34283429/* Restore picker panel — method option cards */3430.peach-lock-panel--restore {3431  gap: 10px;3432}3433.peach-lock-option--history {3434  border-color: rgba(240, 232, 216, 0.06);3435  opacity: 0.85;3436}34373438/* Snapshot restore panel */3439.peach-snapshot-panel {3440  gap: 10px;3441  overflow-y: auto;3442  max-height: 340px;3443}3444.peach-snapshot-list {3445  display: flex;3446  flex-direction: column;3447  gap: 4px;3448}3449.peach-snapshot-row {3450  display: flex;3451  align-items: center;3452  justify-content: space-between;3453  width: 100%;3454  padding: 8px 10px;3455  border-radius: 8px;3456  border: 1px solid rgba(240, 232, 216, 0.07);3457  background: transparent;3458  cursor: pointer;3459  transition: border-color 120ms, background 120ms;3460  text-align: left;3461  gap: 8px;3462}3463.peach-snapshot-row:hover {3464  border-color: rgba(240, 232, 216, 0.14);3465  background: rgba(240, 232, 216, 0.03);3466}3467.peach-snapshot-row.is-selected {3468  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3469  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3470}3471.peach-snapshot-time {3472  font-size: 11.5px;3473  color: var(--peach-t0);3474  flex: 1;3475}3476.peach-snapshot-count {3477  font-family: "IBM Plex Mono", monospace;3478  font-size: 10px;3479  color: var(--peach-t2);3480  flex-shrink: 0;3481}3482.peach-snapshot-confirm {3483  display: flex;3484  flex-direction: column;3485  gap: 8px;3486  padding-top: 10px;3487  border-top: 1px solid rgba(240, 232, 216, 0.06);3488}3489.peach-snapshot-warning {3490  display: flex;3491  align-items: flex-start;3492  gap: 6px;3493  font-size: 10.5px;3494  color: rgba(220, 80, 60, 0.85);3495  line-height: 1.55;3496}3497.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3498.peach-snapshot-confirm-row {3499  display: flex;3500  gap: 6px;3501  align-items: center;3502}3503.peach-snapshot-restore-btn {3504  width: 100%;3505}3506.peach-lock-hero--unlock .peach-lock-hero-art {3507  width: 112px;3508  height: 112px;3509  right: 0;3510  top: 2px;3511  opacity: 0.1;3512}35133514.peach-card {3515  border: 1px solid var(--peach-t3);3516  border-radius: 18px;3517  background:3518    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3519  box-shadow:3520    inset 0 0 0 1px var(--peach-border-accent),3521    inset 0 1px 0 rgba(240, 232, 216, 0.04),3522    0 12px 32px rgba(0, 0, 0, 0.14);3523  overflow: hidden;3524}35253526.peach-card-active {3527  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3528  box-shadow:3529    inset 0 1px 0 rgba(240, 232, 216, 0.05),3530    0 16px 38px rgba(0, 0, 0, 0.18),3531    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3532}35333534.peach-card-disabled {3535  opacity: 0.72;3536}35373538.peach-card-header {3539  width: 100%;3540  padding: 13px 16px 11px;3541  background: transparent;3542  color: var(--peach-t0);3543  display: flex;3544  justify-content: space-between;3545  align-items: center;3546  text-align: left;3547  font-size: 12px;3548}35493550.peach-card-body {3551  padding: 0 16px 16px;3552  display: grid;3553  gap: 9px;3554}35553556.peach-card-tag {3557  color: var(--peach-t2);3558  font-family: "IBM Plex Mono", monospace;3559  font-size: 9px;3560  letter-spacing: 0.12em;3561  text-transform: uppercase;3562}35633564.peach-empty-copy {3565  display: grid;3566  gap: 6px;3567  color: var(--peach-t1);3568  font-size: 13px;3569}35703571.peach-lock-submit {3572  width: 100%;3573  box-shadow:3574    0 1px 0 rgba(255,255,255,0.10) inset,3575    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3576    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3577    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3578}35793580.peach-lock-secondary {3581  width: 100%;3582  border-color: var(--peach-t3);3583  background: rgba(240, 232, 216, 0.02);3584}35853586.peach-lock-secondary:hover {3587  background: rgba(240, 232, 216, 0.04);3588}35893590.peach-lock-note {3591  max-width: none;3592  line-height: 1.55;3593  margin: 0;3594}35953596.peach-overlay-action {3597  font-size: 10px;3598  padding: 4px 8px;3599  letter-spacing: 0.06em;3600  min-width: 44px;3601  text-align: center;3602}36033604.peach-overlay-spacer {3605  width: 32px;3606}36073608.peach-inline-action {3609  flex-shrink: 0;3610  font-size: 9px;3611  letter-spacing: 0.1em;3612  text-transform: uppercase;3613  padding: 4px 7px;3614}3615.peach-password-toggle-btn {3616  display: inline-flex;3617  align-items: center;3618  justify-content: center;3619  min-width: 30px;3620  min-height: 26px;3621  padding: 0 7px;3622  border: 1px solid var(--peach-t3);3623  border-radius: 999px;3624  background: rgba(240, 232, 216, 0.04);3625  color: var(--peach-t2);3626  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3627}3628.peach-password-toggle-btn:hover {3629  border-color: var(--peach-t2);3630  color: var(--peach-t0);3631  background: rgba(240, 232, 216, 0.06);3632}36333634.peach-new-textarea {3635  width: 100%;3636  min-height: 88px;3637  resize: vertical;3638  border: 0;3639  outline: none;3640  background: transparent;3641  color: var(--peach-t1);3642  font-family: "IBM Plex Mono", monospace;3643  font-size: 12px;3644  line-height: 1.65;3645  caret-color: var(--peach-accent);3646}36473648.peach-new-textarea::placeholder {3649  color: var(--peach-t2);3650  opacity: 0.7;3651}36523653.peach-settings-actions {3654  display: grid;3655  gap: 8px;3656}36573658.peach-sync-section-label {3659  font-size: 11px;3660  color: var(--peach-t2);3661  text-transform: uppercase;3662  letter-spacing: 0.05em;3663}36643665.peach-sync-device-row {3666  display: flex;3667  justify-content: space-between;3668  align-items: center;3669  padding: 6px 0;3670  border-bottom: 1px solid var(--peach-t3);3671}36723673.peach-sync-device-info {3674  display: flex;3675  flex-direction: column;3676  gap: 2px;3677}36783679.peach-sync-device-name {3680  font-size: 13px;3681  color: var(--peach-t0);3682}36833684.peach-sync-device-meta {3685  font-size: 11px;3686  color: var(--peach-t2);3687}36883689.peach-sync-status-dot {3690  display: inline-block;3691  width: 8px;3692  height: 8px;3693  border-radius: 50%;3694  vertical-align: middle;3695}36963697.peach-sync-remove-btn {3698  color: var(--peach-breach);3699}37003701.peach-sync-hero-icon {3702  color: var(--peach-t1);3703  opacity: 0.85;3704}37053706.peach-import-preview {3707  margin-bottom: 12px;3708  max-height: 152px;3709  overflow-y: auto;3710  border: 1px solid var(--peach-t3);3711  border-radius: 10px;3712  padding: 8px 10px;3713  display: grid;3714  gap: 8px;3715  background: rgba(240, 232, 216, 0.02);3716}37173718.peach-import-preview-row {3719  display: flex;3720  justify-content: space-between;3721  gap: 10px;3722  font-size: 11px;3723  color: var(--peach-t1);3724}37253726.peach-import-preview-title {3727  color: var(--peach-t0);3728  flex: 1;3729  min-width: 0;3730  overflow: hidden;3731  text-overflow: ellipsis;3732  white-space: nowrap;3733}37343735.peach-import-preview-meta {3736  color: var(--peach-t2);3737  flex-shrink: 0;3738  max-width: 42%;3739  overflow: hidden;3740  text-overflow: ellipsis;3741  white-space: nowrap;3742}37433744.peach-import-preview-more {3745  color: var(--peach-t2);3746  font-size: 10px;3747}37483749.peach-restore-copy {3750  margin: 0;3751  color: var(--peach-t1);3752  font-size: 11px;3753  line-height: 1.6;3754}37553756.peach-restore-warning {3757  padding: 10px 12px;3758  border-radius: 12px;3759  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);3760  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3761  color: var(--peach-t0);3762  font-size: 11px;3763  line-height: 1.55;3764}37653766.peach-provider-chips {3767  display: flex;3768  flex-wrap: wrap;3769  gap: 6px;3770}37713772.peach-provider-chip {3773  display: inline-flex;3774  align-items: center;3775  padding: 5px 8px;3776  border-radius: 999px;3777  border: 1px solid var(--peach-t3);3778  background: rgba(240, 232, 216, 0.02);3779  color: var(--peach-t1);3780  font-family: "IBM Plex Mono", monospace;3781  font-size: 8px;3782  letter-spacing: 0.08em;3783  text-transform: uppercase;3784}37853786.peach-restore-file,3787.peach-restore-input {3788  width: 100%;3789  border-radius: 10px;3790  border: 1px solid var(--peach-t3);3791  background: var(--peach-s2);3792  color: var(--peach-t0);3793  font-size: 12px;3794}37953796.peach-restore-file {3797  padding: 9px 10px;3798}37993800.peach-restore-file::file-selector-button {3801  margin-right: 10px;3802  padding: 7px 10px;3803  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3804  border-radius: 999px;3805  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3806  color: var(--peach-t0);3807  font-size: 10px;3808  letter-spacing: 0.08em;3809  text-transform: uppercase;3810  cursor: pointer;3811}38123813.peach-restore-input {3814  padding: 10px 12px;3815}38163817.peach-auth-grid {3818  display: grid;3819  gap: 10px;3820}38213822.peach-import-summary {3823  color: var(--peach-t1);3824  font-size: 12px;3825  line-height: 1.6;3826  margin-bottom: 12px;3827}38283829.peach-restore-error {3830  color: rgba(220, 80, 60, 0.95);3831  font-size: 12px;3832  line-height: 1.55;3833}38343835.peach-cjk-qr-panel {3836  margin-top: 14px;3837  padding: 12px;3838  border-radius: 16px;3839  border: 1px solid var(--peach-t3);3840  background: rgba(240, 232, 216, 0.02);3841  display: grid;3842  gap: 10px;3843}38443845.peach-cjk-qr-frame {3846  display: grid;3847  place-items: center;3848  min-height: 212px;3849  border-radius: 14px;3850  background: #fff;3851  overflow: hidden;3852}38533854.peach-cjk-qr-frame svg {3855  display: block;3856  width: 196px;3857  height: 196px;3858}38593860.peach-cjk-qr-error,3861.peach-cjk-qr-caption {3862  color: var(--peach-t1);3863  font-size: 11px;3864  line-height: 1.55;3865}38663867.peach-cjk-qr-card {3868  max-width: 400px;3869  margin: auto;3870}38713872.peach-cjk-qr-body {3873  padding: 0 20px 20px;3874  text-align: center;3875}38763877.peach-cjk-qr-hint {3878  font-size: 11px;3879  color: var(--peach-t2);3880  margin: 0 0 14px;3881}38823883.peach-cjk-qr-image {3884  border-radius: 4px;3885  display: block;3886  margin: 0 auto;3887  width: 100%;3888  max-width: 320px;3889  height: auto;3890}38913892.peach-pro-badge {3893  padding: 2px 6px;3894  border-radius: 999px;3895  font-family: var(--font-ui);3896  font-size: 10px;3897  letter-spacing: 0.08em;3898  text-transform: uppercase;3899  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3900  color: var(--peach-accent);3901}39023903/* ── Shortcuts rebind table ─────────────────────────────────── */3904.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }3905.peach-shortcut-row {3906  display: flex;3907  align-items: center;3908  gap: 10px;3909  padding: 6px 0;3910}3911.peach-shortcut-row-label {3912  flex: 1;3913  font-size: 12px;3914  color: var(--peach-t0);3915}3916.peach-shortcut-chip {3917  min-width: 64px;3918  padding: 4px 10px;3919  border-radius: 6px;3920  border: 1px solid var(--peach-t3);3921  background: var(--peach-input-bg, var(--surface-card));3922  color: var(--peach-t0);3923  font-family: var(--font-mono);3924  font-size: 11px;3925  letter-spacing: 0.04em;3926  cursor: pointer;3927  text-align: center;3928  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;3929}3930.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }3931.peach-shortcut-chip.is-custom {3932  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3933  color: var(--peach-accent);3934}3935.peach-shortcut-chip.is-capturing {3936  border-color: var(--peach-accent);3937  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3938  color: var(--peach-accent);3939  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;3940}3941@keyframes peach-shortcut-capture-pulse {3942  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }3943  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3944}3945.peach-shortcut-reset {3946  background: transparent;3947  border: none;3948  cursor: pointer;3949  color: var(--peach-t2);3950  padding: 4px 6px;3951  border-radius: 5px;3952  font-size: 14px;3953  line-height: 1;3954  transition: color 120ms ease, background 120ms ease;3955}3956.peach-shortcut-reset:hover {3957  color: var(--peach-t0);3958  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);3959}3960.peach-shortcuts-conflict {3961  margin: 4px 0 0;3962  padding: 8px 10px;3963  border-radius: 7px;3964  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3965  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);3966  font-family: var(--font-mono);3967  font-size: 11px;3968  color: var(--peach-t0);3969}39703971/* ── Help dialog overlay (? to open) ────────────────────────── */3972.peach-shortcuts-help-backdrop {3973  position: fixed;3974  inset: 0;3975  background: rgba(0, 0, 0, 0.55);3976  backdrop-filter: blur(2px);3977  display: flex;3978  align-items: center;3979  justify-content: center;3980  z-index: 1000;3981  animation: peach-help-fade-in 140ms ease forwards;3982}3983@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }3984.peach-shortcuts-help-card {3985  width: min(320px, 92vw);3986  max-height: 80vh;3987  overflow-y: auto;3988  border-radius: 14px;3989  border: 1px solid var(--peach-t3);3990  background: var(--peach-bg);3991  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);3992  padding: 16px 18px 18px;3993  display: flex;3994  flex-direction: column;3995  gap: 12px;3996}3997.peach-shortcuts-help-head {3998  display: flex; align-items: center; justify-content: space-between;3999}4000.peach-shortcuts-help-head h3 {4001  margin: 0;4002  font-family: var(--font-display);4003  font-style: italic;4004  font-weight: 400;4005  font-size: 22px;4006  color: var(--peach-t0);4007}4008.peach-shortcuts-help-close {4009  background: transparent;4010  border: none;4011  color: var(--peach-t2);4012  cursor: pointer;4013  font-size: 14px;4014  padding: 4px 8px;4015  border-radius: 5px;4016}4017.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }4018.peach-shortcuts-help-body ul {4019  list-style: none; padding: 0; margin: 4px 0 12px;4020  display: grid; gap: 8px;4021}4022.peach-shortcuts-help-body li {4023  display: flex; align-items: center; justify-content: space-between; gap: 12px;4024  font-size: 12px; color: var(--peach-t0);4025}4026.peach-shortcuts-help-body kbd {4027  font-family: var(--font-mono);4028  font-size: 11px;4029  padding: 3px 8px;4030  border-radius: 6px;4031  background: var(--surface-card);4032  border: 1px solid var(--peach-t3);4033  color: var(--peach-accent);4034  letter-spacing: 0.04em;4035}40364037/* ── Pro promo on Account screen ────────────────────────────── */4038.peach-pro-promo {4039  position: relative;4040  border-radius: 14px;4041  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4042  background:4043    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4044    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4045    var(--surface-card);4046  overflow: hidden;4047  margin-bottom: 14px;4048}4049.peach-pro-promo-glow {4050  position: absolute;4051  inset: -40% -20% auto auto;4052  width: 220px; height: 220px;4053  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4054  pointer-events: none;4055  filter: blur(8px);4056}4057.peach-pro-promo-inner {4058  position: relative;4059  padding: 18px 18px 16px;4060}4061.peach-pro-promo-title {4062  font-family: var(--font-display);4063  font-style: italic;4064  font-weight: 400;4065  font-size: 28px;4066  line-height: 1;4067  letter-spacing: -0.005em;4068  color: var(--peach-t0);4069  margin: 0 0 4px;4070}4071.peach-pro-promo-tagline {4072  font-family: var(--font-mono);4073  font-size: 10px;4074  letter-spacing: 0.06em;4075  color: var(--peach-t2);4076  margin: 0 0 14px;4077}4078.peach-pro-promo-list {4079  list-style: none;4080  margin: 0 0 16px;4081  padding: 0;4082  display: grid;4083  gap: 9px;4084}4085.peach-pro-promo-list li {4086  display: flex;4087  align-items: flex-start;4088  gap: 9px;4089  font-size: 12px;4090  color: var(--peach-t1);4091  line-height: 1.4;4092}4093.peach-pro-promo-list svg {4094  width: 14px;4095  height: 14px;4096  flex-shrink: 0;4097  color: var(--peach-accent);4098  margin-top: 2px;4099}4100.peach-pro-promo-list span {4101  color: var(--peach-t0);4102}4103.peach-pro-promo-cta {4104  width: 100%;4105  background: var(--peach-accent);4106  color: #fff;4107  border: none;4108  padding: 9px 12px;4109  border-radius: 9px;4110  font-size: 12px;4111  font-weight: 500;4112  font-family: var(--font-ui);4113  letter-spacing: 0.02em;4114  text-decoration: none;4115  display: inline-flex;4116  align-items: center;4117  justify-content: center;4118  cursor: pointer;4119  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4120  box-shadow: 0 2px 16px var(--peach-glow);4121}4122.peach-pro-promo-cta:hover {4123  filter: brightness(1.07);4124  box-shadow: 0 4px 24px var(--peach-glow);4125  transform: translateY(-1px);4126}4127.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }41284129.peach-pro-or-divider {4130  display: flex;4131  align-items: center;4132  gap: 10px;4133  margin: 4px 0 12px;4134  font-family: var(--font-mono);4135  font-size: 10px;4136  letter-spacing: 0.06em;4137  color: var(--peach-t2);4138  text-transform: uppercase;4139}4140.peach-pro-or-divider::before,4141.peach-pro-or-divider::after {4142  content: "";4143  flex: 1;4144  height: 1px;4145  background: var(--peach-t3);4146}41474148.peach-loading {4149  position: absolute;4150  inset: 0;4151  display: flex;4152  align-items: center;4153  justify-content: center;4154  background: var(--bg);4155  animation: peach-loading-pulse 1.2s ease-in-out infinite;4156}41574158@keyframes peach-loading-pulse {4159  0%, 100% { opacity: 0.6; }4160  50% { opacity: 1; }4161}41624163/* ── Health Dashboard ─────────────────────────────────────────────────── */4164.peach-health-body {4165  flex: 1;4166  overflow-y: auto;4167  display: flex;4168  flex-direction: column;4169}41704171.peach-health-summary {4172  padding: 10px 16px 6px;4173  font-family: "IBM Plex Mono", monospace;4174  font-size: 11px;4175}4176.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4177.peach-health-summary-ok { color: var(--peach-t2); }41784179.peach-health-check-row {4180  padding: 0 16px 10px;4181}4182.peach-health-check-btn {4183  width: 100%;4184  display: flex;4185  align-items: center;4186  justify-content: center;4187}41884189.peach-health-sections {4190  flex: 1;4191  display: flex;4192  flex-direction: column;4193}41944195.peach-health-section {4196  border-bottom: 1px solid var(--peach-t3);4197}41984199.peach-health-section-header {4200  width: 100%;4201  display: flex;4202  align-items: center;4203  justify-content: space-between;4204  padding: 9px 16px;4205  background: transparent;4206  cursor: pointer;4207  color: var(--peach-t0);4208}42094210.peach-health-section-title-row {4211  display: flex;4212  align-items: center;4213  gap: 8px;4214}42154216.peach-health-count-badge {4217  display: inline-flex;4218  align-items: center;4219  justify-content: center;4220  min-width: 20px;4221  height: 18px;4222  padding: 0 5px;4223  border-radius: 999px;4224  background: rgba(220,80,60,0.15);4225  border: 1px solid rgba(220,80,60,0.25);4226  font-family: "IBM Plex Mono", monospace;4227  font-size: 9px;4228  color: rgba(220,80,60,0.9);4229}42304231.peach-health-section-title {4232  font-family: "IBM Plex Mono", monospace;4233  font-size: 11px;4234  text-transform: uppercase;4235  letter-spacing: 0.1em;4236  color: var(--peach-t1);4237}42384239.peach-health-chevron {4240  color: var(--peach-t2);4241  transition: transform 200ms ease;4242  flex-shrink: 0;4243}4244.peach-health-chevron.is-expanded {4245  transform: rotate(180deg);4246}42474248.peach-health-section-body {4249  padding: 0 16px 10px;4250  display: flex;4251  flex-direction: column;4252  gap: 4px;4253}42544255.peach-health-row {4256  display: flex;4257  align-items: flex-start;4258  justify-content: space-between;4259  gap: 8px;4260  padding: 6px 8px;4261  border-radius: 8px;4262  background: rgba(240,232,216,0.02);4263}42644265.peach-health-row-info {4266  flex: 1;4267  min-width: 0;4268  display: flex;4269  flex-direction: column;4270  gap: 2px;4271}42724273.peach-health-row-name {4274  font-family: "Cormorant Garamond", serif;4275  font-size: 15px;4276  font-style: italic;4277  font-weight: 400;4278  color: var(--peach-t0);4279  white-space: nowrap;4280  overflow: hidden;4281  text-overflow: ellipsis;4282}42834284.peach-health-row-meta {4285  font-family: "IBM Plex Mono", monospace;4286  font-size: 9px;4287  color: var(--peach-t2);4288  letter-spacing: 0.05em;4289}42904291.peach-health-fix-btn {4292  font-size: 9px;4293  letter-spacing: 0.08em;4294  text-transform: uppercase;4295  padding: 4px 7px;4296  flex-shrink: 0;4297  display: flex;4298  align-items: center;4299}43004301.peach-health-empty {4302  font-family: "IBM Plex Mono", monospace;4303  font-size: 10px;4304  color: var(--peach-t2);4305  padding: 6px 0;4306}43074308.peach-health-loading {4309  font-family: "IBM Plex Mono", monospace;4310  font-size: 10px;4311  color: var(--peach-t2);4312  padding: 6px 0;4313  display: flex;4314  align-items: center;4315  gap: 6px;4316}43174318.peach-health-loading::before {4319  content: "";4320  width: 10px;4321  height: 10px;4322  border: 1.5px solid var(--peach-t3);4323  border-top-color: var(--peach-accent);4324  border-radius: 50%;4325  animation: peach-spin 600ms linear infinite;4326}43274328@keyframes peach-spin {4329  to { transform: rotate(360deg); }4330}43314332.peach-spinner {4333  width: 32px;4334  height: 32px;4335  border: 2px solid var(--peach-s2);4336  border-top-color: var(--peach-accent);4337  border-radius: 50%;4338  margin: 0 auto 16px;4339  animation: peach-spin 0.8s linear infinite;4340}43414342.peach-progress-screen {4343  text-align: center;4344  padding: 32px 16px;4345}43464347.peach-progress-screen-title {4348  font-size: 13px;4349  color: var(--peach-t0);4350  margin-bottom: 16px;4351}43524353.peach-progress-screen-stage {4354  font-size: 11px;4355  color: var(--peach-t2);4356  min-height: 14px;4357}43584359.peach-progress-screen-note {4360  font-size: 10px;4361  color: var(--peach-t2);4362  margin-top: 8px;4363}43644365.peach-pairing-body {4366  flex: 1;4367  overflow-y: auto;4368  display: flex;4369  flex-direction: column;4370}43714372.peach-pairing-content {4373  flex: 1;4374  display: flex;4375  flex-direction: column;4376  align-items: center;4377  justify-content: center;4378  gap: 14px;4379  padding: 28px 20px;4380  text-align: center;4381}43824383.peach-pairing-headline {4384  font-family: var(--font-display);4385  font-style: italic;4386  font-weight: 300;4387  font-size: 28px;4388  color: var(--peach-t0);4389  margin: 0;4390  line-height: 1;4391}43924393.peach-pairing-subline {4394  font-size: 12px;4395  color: var(--peach-t2);4396  max-width: 220px;4397  line-height: 1.5;4398  margin: 0;4399}44004401.peach-pairing-subline--center {4402  text-align: center;4403}44044405.peach-pairing-code-display {4406  display: flex;4407  gap: 6px;4408}44094410.peach-pairing-code-digit {4411  display: flex;4412  align-items: center;4413  justify-content: center;4414  width: 36px;4415  height: 48px;4416  background: var(--peach-s2);4417  border: 1px solid var(--peach-t3);4418  border-radius: 6px;4419  font-family: var(--font-mono);4420  font-size: 22px;4421  color: var(--peach-t0);4422  letter-spacing: 0;4423}44244425.peach-pairing-countdown-ring {4426  position: relative;4427  display: inline-flex;4428  align-items: center;4429  justify-content: center;4430}44314432.peach-pairing-countdown-num {4433  position: absolute;4434  font-family: var(--font-mono);4435  font-size: 14px;4436  color: var(--peach-t1);4437}44384439.peach-pairing-ring-track {4440  fill: none;4441  stroke: var(--peach-t3);4442  stroke-width: 2;4443}44444445.peach-pairing-ring-progress {4446  fill: none;4447  stroke: var(--peach-accent);4448  stroke-width: 2;4449  stroke-linecap: round;4450  transform: rotate(-90deg);4451  transform-origin: 50% 50%;4452  transition: stroke-dashoffset 0.5s linear;4453}44544455.peach-pairing-code-inputs {4456  display: flex;4457  gap: 8px;4458}44594460.peach-pairing-code-box {4461  width: 36px;4462  height: 48px;4463  text-align: center;4464  background: var(--peach-s2);4465  border: 1px solid var(--peach-t3);4466  border-radius: 6px;4467  font-family: var(--font-mono);4468  font-size: 20px;4469  color: var(--peach-t0);4470  outline: none;4471  transition: border-color 120ms ease;4472}44734474.peach-pairing-code-box:focus {4475  border-color: var(--peach-accent);4476}44774478.peach-pairing-code-box.has-error {4479  border-color: rgba(220, 80, 60, 0.45);4480}44814482.peach-pairing-status {4483  display: flex;4484  align-items: center;4485  gap: 8px;4486  margin: 0;4487  font-size: 12px;4488  color: var(--peach-t1);4489}44904491.peach-pairing-error {4492  margin: 0;4493  font-size: 11px;4494  color: var(--peach-breach);4495}44964497.peach-pairing-error-msg {4498  color: var(--peach-t1);4499}45004501.peach-pairing-spinner {4502  width: 12px;4503  height: 12px;4504  border: 1.5px solid var(--peach-t3);4505  border-top-color: var(--peach-accent);4506  border-radius: 50%;4507  animation: peach-spin 0.8s linear infinite;4508}45094510.peach-pairing-success-icon,4511.peach-pairing-error-icon,4512.peach-pairing-hero {4513  display: inline-flex;4514  align-items: center;4515  justify-content: center;4516}45174518/* Tag chips */4519.peach-tag-chip {4520  display: inline-flex;4521  align-items: center;4522  gap: 4px;4523  padding: 3px 8px;4524  border-radius: 999px;4525  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4526  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4527  color: var(--peach-t0);4528  font-family: "IBM Plex Mono", monospace;4529  font-size: 10px;4530  letter-spacing: 0.04em;4531}45324533.peach-tag-chip-remove {4534  background: transparent;4535  border: none;4536  color: inherit;4537  opacity: 0.6;4538  cursor: pointer;4539  padding: 0;4540  font-size: 12px;4541  line-height: 1;4542}45434544.peach-tag-chip-remove:hover {4545  opacity: 1;4546}45474548/* Tag input */4549.peach-tag-input-wrap {4550  border-bottom: 1px solid var(--peach-t3);4551}45524553.peach-tag-suggestions {4554  display: flex;4555  flex-wrap: wrap;4556  gap: 4px;4557  padding: 6px 0;4558}45594560.peach-tag-suggestion {4561  padding: 2px 8px;4562  border-radius: 999px;4563  border: 1px solid var(--peach-t3);4564  background: var(--peach-s2);4565  color: var(--peach-t1);4566  font-family: "IBM Plex Mono", monospace;4567  font-size: 10px;4568  cursor: pointer;4569  transition: border-color 80ms ease, background 80ms ease;4570}45714572.peach-tag-suggestion:hover {4573  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4574  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4575}45764577/* Tag filter strip */4578.peach-tag-filter-strip {4579  border-bottom: 1px solid var(--peach-t3);4580  flex-shrink: 0;4581}45824583.peach-tag-filter-chip {4584  display: inline-flex;4585  align-items: center;4586  padding: 4px 10px;4587  border-radius: 999px;4588  border: 1px solid var(--peach-t3);4589  background: transparent;4590  color: var(--peach-t2);4591  font-family: "IBM Plex Mono", monospace;4592  font-size: 9px;4593  letter-spacing: 0.06em;4594  text-transform: uppercase;4595  cursor: pointer;4596  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4597  white-space: nowrap;4598}45994600.peach-tag-filter-chip:hover {4601  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4602  color: var(--peach-t1);4603}46044605.peach-tag-filter-chip.is-selected {4606  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4607  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4608  color: var(--peach-t0);4609}46104611/* ─────────────────────────────────────────────────────────────────────────4612   v1.4.12 additions4613   ─────────────────────────────────────────────────────────────────────── */46144615/* Sort bar */4616.peach-sort-bar {4617  display: flex;4618  align-items: center;4619  gap: 4px;4620  padding: 5px 12px;4621  border-bottom: 1px solid var(--peach-t3);4622  flex-shrink: 0;4623  overflow-x: auto;4624  scrollbar-width: none;4625}46264627.peach-sort-btn {4628  padding: 2px 9px;4629  border-radius: 999px;4630  border: 1px solid transparent;4631  background: transparent;4632  color: var(--peach-t2);4633  font-family: "IBM Plex Mono", monospace;4634  font-size: 9px;4635  letter-spacing: 0.07em;4636  text-transform: uppercase;4637  cursor: pointer;4638  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4639  white-space: nowrap;4640}46414642.peach-sort-btn:hover {4643  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4644  color: var(--peach-t1);4645}46464647.peach-sort-btn.is-active {4648  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4649  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4650  color: var(--peach-t0);4651}46524653.peach-sort-domain-hint {4654  margin-left: auto;4655  font-family: "IBM Plex Mono", monospace;4656  font-size: 9px;4657  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4658  white-space: nowrap;4659  overflow: hidden;4660  text-overflow: ellipsis;4661  max-width: 110px;4662}46634664/* Tab-match badge on entry rows */4665.peach-tab-match-badge {4666  display: inline-block;4667  width: 6px;4668  height: 6px;4669  border-radius: 50%;4670  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4671  margin-left: 5px;4672  vertical-align: middle;4673  flex-shrink: 0;4674  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4675}46764677.peach-entry-row.is-tab-match {4678  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4679  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4680}46814682.peach-entry-row.is-tab-match:hover {4683  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4684}46854686/* Entry list stagger entrance */4687@keyframes peach-entry-fadein {4688  from { opacity: 0; transform: translateY(4px); }4689  to   { opacity: 1; transform: translateY(0); }4690}46914692.peach-vault-list .peach-entry-row {4693  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4694  content-visibility: auto;4695  contain-intrinsic-size: auto 44px;4696}46974698/* Button press micro-interaction */4699.peach-btn:active {4700  transform: scale(0.95);4701  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4702}47034704.peach-sort-btn:active,4705.peach-tag-filter-chip:active {4706  transform: scale(0.93);4707  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4708}47094710/* Password strength bar (Lock view + shared) */4711.peach-password-strength {4712  display: flex;4713  align-items: center;4714  gap: 8px;4715  margin-top: 6px;4716}47174718.peach-strength-bar {4719  flex: 1;4720  height: 3px;4721  border-radius: 2px;4722  background: var(--peach-t3);4723  overflow: hidden;4724}47254726.peach-strength-fill {4727  height: 100%;4728  border-radius: 2px;4729  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4730              background 300ms ease;4731}47324733.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4734.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4735.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4736.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }47374738.peach-strength-label {4739  font-family: "IBM Plex Mono", monospace;4740  font-style: italic;4741  font-size: 9px;4742  font-weight: 300;4743  letter-spacing: 0.06em;4744  color: var(--peach-t2);4745  min-width: 36px;4746  text-align: right;4747}47484749.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4750.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4751.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4752.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }47534754/* Duress form */4755.peach-duress-status {4756  padding: 2px 8px;4757  border-radius: 999px;4758  border: 1px solid var(--peach-t3);4759  font-family: "IBM Plex Mono", monospace;4760  font-size: 9px;4761  letter-spacing: 0.07em;4762  text-transform: uppercase;4763  color: var(--peach-t2);4764  flex-shrink: 0;4765}47664767.peach-duress-status.is-active {4768  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4769  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4770  color: var(--peach-t0);4771}47724773.peach-duress-form {4774  padding: 8px 0 4px;4775  display: flex;4776  flex-direction: column;4777  gap: 6px;4778}47794780.peach-duress-form .peach-label {4781  margin-top: 4px;4782}47834784.peach-duress-actions {4785  display: flex;4786  gap: 6px;4787  align-items: center;4788  margin-top: 4px;4789}47904791.peach-duress-actions .peach-btn:first-child {4792  margin-right: auto;4793}47944795/* Improved overlay spring entrance */4796.peach-overlay-view.ov-enter-up {4797  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4798}47994800@keyframes ov-enter-up-spring {4801  from { opacity: 0; transform: translateY(16px) scale(0.98); }4802  to   { opacity: 1; transform: translateY(0) scale(1); }4803}48044805.peach-overlay-view.ov-enter-right {4806  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4807}48084809@keyframes ov-enter-right-spring {4810  from { opacity: 0; transform: translateX(18px) scale(0.98); }4811  to   { opacity: 1; transform: translateX(0) scale(1); }4812}48134814/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4815/* Used when CJKImportView or MainImportView renders during onboarding4816   (no vault yet). Animates like a lock-screen transition. */4817.peach-lock-view {4818  position: absolute;4819  inset: 0;4820  display: flex;4821  flex-direction: column;4822  background:4823    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4824    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4825    var(--peach-bg);4826  z-index: 2;4827  overflow: hidden;4828  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4829}48304831.peach-lock-view-header {4832  display: flex;4833  align-items: center;4834  justify-content: space-between;4835  padding: 16px 18px 12px;4836  flex-shrink: 0;4837}48384839/* ───────── Settings: auto-lock select ───────── */4840.peach-settings-select {4841  font-family: "IBM Plex Mono", monospace;4842  font-size: 11px;4843  background: transparent;4844  border: 1px solid var(--peach-t3);4845  border-radius: 4px;4846  color: var(--peach-t1);4847  padding: 3px 6px;4848  cursor: pointer;4849  outline: none;4850}4851.peach-settings-select:focus {4852  border-color: var(--peach-accent);4853}48544855/* ───────── Duress status pill (new polished) ───────── */4856.peach-duress-status-pill {4857  font-family: "IBM Plex Mono", monospace;4858  font-size: 9px;4859  text-transform: uppercase;4860  letter-spacing: 0.12em;4861  padding: 2px 8px;4862  border-radius: 12px;4863  background: var(--peach-t3);4864  color: var(--peach-t2);4865  flex-shrink: 0;4866}4867.peach-duress-status-pill.is-active {4868  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4869  color: var(--peach-accent);4870}48714872/* ───────── Entry advanced disclosure (canary) ───────── */4873.peach-entry-advanced {4874  margin-top: 12px;4875  border-top: 1px solid var(--peach-t3);4876  padding-top: 10px;4877  position: relative;4878  z-index: 1;4879}4880.peach-entry-advanced-toggle {4881  display: flex;4882  align-items: center;4883  justify-content: space-between;4884  width: 100%;4885  background: transparent;4886  border: none;4887  cursor: pointer;4888  padding: 0;4889  color: var(--peach-t2);4890}4891.peach-canary-section {4892  margin-top: 10px;4893  display: grid;4894  gap: 6px;4895}48964897/* ───────── Import: merge/replace radio choices ───────── */4898.peach-import-choice {4899  display: flex;4900  align-items: flex-start;4901  gap: 10px;4902  padding: 8px 10px;4903  border: 1px solid var(--peach-t3);4904  border-radius: 10px;4905  cursor: pointer;4906  margin-bottom: 6px;4907  transition: border-color 120ms ease, background 120ms ease;4908}4909.peach-import-choice:hover {4910  border-color: var(--peach-accent);4911}4912.peach-import-choice input[type="radio"] {4913  margin-top: 3px;4914  accent-color: var(--peach-accent);4915  flex-shrink: 0;4916}4917.peach-import-choice-main {4918  display: flex;4919  flex-direction: column;4920  gap: 2px;4921  min-width: 0;4922}4923.peach-import-choice-label {4924  font-size: 12px;4925  color: var(--peach-t0);4926}4927.peach-import-choice-sub {4928  font-size: 11px;4929  color: var(--peach-t2);4930  line-height: 1.5;4931}49324933/* ───────── Export: success confirmation strip ───────── */4934.peach-export-success {4935  display: flex;4936  align-items: flex-start;4937  gap: 10px;4938  padding: 12px;4939  border-radius: 12px;4940  border: 1px solid rgba(150, 175, 110, 0.3);4941  background: rgba(150, 175, 110, 0.08);4942  color: var(--peach-t0);4943  font-size: 12px;4944  line-height: 1.55;4945}4946.peach-export-success-check {4947  color: rgba(150, 175, 110, 0.9);4948  font-size: 14px;4949  flex-shrink: 0;4950}49514952/* ── Trash view ──────────────────────────────────────────────────────── */4953.peach-trash-entry-row {4954  display: flex;4955  align-items: center;4956  justify-content: space-between;4957  gap: 8px;4958  padding: 8px 0;4959  border-bottom: 1px solid var(--peach-t3);4960}4961.peach-trash-entry-row:last-child { border-bottom: none; }4962.peach-trash-entry-info {4963  flex: 1;4964  min-width: 0;4965  display: flex;4966  flex-direction: column;4967  gap: 2px;4968}4969.peach-trash-entry-title {4970  font-size: 12px;4971  color: var(--peach-t1);4972  overflow: hidden;4973  text-overflow: ellipsis;4974  white-space: nowrap;4975}4976.peach-trash-entry-meta {4977  font-family: var(--font-mono);4978  font-size: 9px;4979  color: var(--peach-t2);4980  letter-spacing: 0.06em;4981}4982.peach-trash-entry-actions {4983  display: flex;4984  align-items: center;4985  gap: 4px;4986  flex-shrink: 0;4987}4988.peach-trash-list {4989  flex: 1;4990  min-height: 0;4991  overflow-y: auto;4992}4993.peach-trash-notice {4994  margin: 0 20px 16px;4995  margin-top: auto;4996}49974998/* ── Settings shortcuts grid ─────────────────────────────────────────── */4999.peach-shortcuts-grid {5000  display: grid;5001  grid-template-columns: auto 1fr;5002  gap: 6px 12px;5003  align-items: center;5004  padding: 4px 0;5005}5006.peach-shortcut-key {5007  font-family: var(--font-mono);5008  font-size: 10px;5009  color: var(--peach-t0);5010  background: var(--peach-t3);5011  border-radius: 4px;5012  padding: 2px 6px;5013  white-space: nowrap;5014  text-align: center;5015}5016.peach-shortcut-desc {5017  font-size: 11px;5018  color: var(--peach-t1);5019}50205021/* ── Sort bar trash button ───────────────────────────────────────────── */5022.peach-sort-trash-btn {5023  display: flex;5024  align-items: center;5025  justify-content: center;5026  padding: 3px 5px;5027  background: transparent;5028  border: none;5029  cursor: pointer;5030  color: var(--peach-t2);5031  border-radius: 4px;5032  transition: color 140ms ease, background 140ms ease;5033}5034.peach-sort-trash-btn:hover {5035  color: var(--peach-t1);5036  background: var(--peach-t3);5037}5038.peach-sort-trash-btn.is-active {5039  color: var(--peach-accent);5040}50415042/* Accent color picker */5043.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5044.peach-accent-picker {5045  display: flex;5046  flex-wrap: wrap;5047  gap: 7px;5048  padding: 2px 0;5049}5050.peach-accent-swatch {5051  width: 22px;5052  height: 22px;5053  border-radius: 50%;5054  border: 2px solid transparent;5055  cursor: pointer;5056  padding: 0;5057  transition: transform 100ms;5058  outline-offset: 2px;5059}5060.peach-accent-swatch:hover { transform: scale(1.15); }5061.peach-accent-swatch.is-active {5062  border-color: var(--peach-t0);5063  transform: scale(1.1);5064}50655066/* ── Card entry styles ───────────────────────────────────────── */5067.peach-card-number {5068  font-family: var(--peach-mono);5069  letter-spacing: 0.08em;5070}50715072.peach-card-network-badge {5073  font-size: 10px;5074  padding: 1px 5px;5075  border-radius: 4px;5076  border: 0.5px solid var(--peach-border);5077  color: var(--peach-text-dim);5078  margin-left: 6px;5079  vertical-align: middle;5080}50815082.peach-card-expiry-row {5083  display: flex;5084  align-items: center;5085  gap: 8px;5086}50875088.peach-card-expiry-sep {5089  color: var(--peach-text-dim);5090}50915092/* ── Pro tier — upgrade screen ──────────────────────────────── */5093.peach-pro-mark {5094  font-size: 9px;5095  color: var(--peach-accent);5096  margin-left: 6px;5097  vertical-align: super;5098  opacity: 0.7;5099}51005101.peach-pro-mini-badge {5102  display: block;5103  font-size: 10px;5104  font-style: italic;5105  color: var(--peach-accent);5106  letter-spacing: 0.04em;5107  margin-top: -2px;5108  padding-left: 2px;5109  opacity: 0.85;5110  text-align: center;5111}51125113.peach-wordmark-stack {5114  display: inline-flex;5115  flex-direction: column;5116  align-items: center;5117}51185119.peach-pro-upgrade {5120  display: flex;5121  flex-direction: column;5122  gap: 14px;5123  padding: 4px 4px 12px;5124}51255126.peach-pro-upgrade-hero {5127  display: flex;5128  flex-direction: column;5129  align-items: center;5130  gap: 4px;5131  padding: 8px 0 4px;5132}51335134.peach-pro-upgrade-mark {5135  width: 32px;5136  height: 32px;5137}51385139.peach-pro-upgrade-title {5140  font-family: var(--font-display, var(--font-ui));5141  font-size: 22px;5142  margin: 0;5143  color: var(--peach-t0);5144  letter-spacing: 0.01em;5145}51465147.peach-pro-upgrade-tagline {5148  margin: 0;5149  font-style: italic;5150  color: var(--peach-t2);5151  font-size: 12px;5152}51535154.peach-pro-features {5155  display: flex;5156  flex-direction: column;5157  gap: 10px;5158  border-top: 1px solid var(--peach-border);5159  border-bottom: 1px solid var(--peach-border);5160  padding: 14px 4px;5161}51625163.peach-pro-feature {5164  display: flex;5165  gap: 10px;5166  align-items: flex-start;5167}51685169.peach-pro-feature-mark {5170  color: var(--peach-accent);5171  font-size: 14px;5172  line-height: 1.2;5173  flex-shrink: 0;5174  display: inline-block;5175  transform-origin: center;5176}51775178.peach-pro-feature-text {5179  display: flex;5180  flex-direction: column;5181  gap: 2px;5182}51835184.peach-pro-feature-name {5185  font-size: 13px;5186  color: var(--peach-t0);5187}51885189.peach-pro-feature-desc {5190  font-size: 11px;5191  color: var(--peach-t2);5192}51935194.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5195  animation: peach-pulse-accent 600ms ease-out forwards;5196}51975198@keyframes peach-pulse-accent {5199  0%   { opacity: 1; transform: scale(1.4); }5200  100% { opacity: 0.7; transform: scale(1); }5201}52025203.peach-pro-pricing {5204  margin: 0;5205  text-align: center;5206  font-size: 12px;5207  color: var(--peach-t2);5208}52095210.peach-pro-upgrade-cta {5211  align-self: center;5212  width: auto;5213  min-width: 160px;5214  text-align: center;5215  text-decoration: none;5216  display: inline-block;5217  padding: 8px 20px;5218  font-size: 13px;5219}52205221.peach-pro-key-link {5222  background: transparent;5223  border: 0;5224  color: var(--peach-t2);5225  font-size: 11px;5226  cursor: pointer;5227  align-self: center;5228  padding: 4px 8px;5229}52305231.peach-pro-key-link:hover {5232  color: var(--peach-accent);5233}52345235.peach-pro-key-entry {5236  display: flex;5237  flex-direction: column;5238  gap: 8px;5239}52405241.peach-pro-key-input {5242  font-family: var(--font-mono, monospace);5243  letter-spacing: 0.06em;5244  text-align: center;5245}52465247.peach-pro-key-error {5248  margin: 0;5249  font-size: 11px;5250  color: var(--peach-breach, #e55);5251}52525253/* ── Pro tier — active state ─────────────────────────────────── */5254.peach-pro-active {5255  display: flex;5256  flex-direction: column;5257  gap: 8px;5258  padding: 14px 4px;5259}52605261.peach-pro-active-head {5262  display: flex;5263  align-items: center;5264  gap: 8px;5265}52665267.peach-pro-active-mark { font-size: 16px; line-height: 1; }52685269.peach-pro-active-title {5270  margin: 0;5271  font-size: 15px;5272  font-weight: 500;5273  color: var(--peach-t0);5274}52755276.peach-pro-active-since {5277  margin: 0;5278  font-size: 12px;5279  color: var(--peach-t2);5280}52815282.peach-pro-active-divider {5283  height: 1px;5284  background: var(--peach-border);5285  margin: 8px 0 4px;5286}52875288.peach-pro-active-thanks {5289  margin: 0;5290  font-size: 12px;5291  font-style: italic;5292  color: var(--peach-t2);5293}52945295.peach-pro-deactivate {5296  align-self: flex-end;5297  background: transparent;5298  border: 0;5299  color: var(--peach-t2);5300  font-size: 11px;5301  cursor: pointer;5302  padding: 6px 0;5303  margin-top: 4px;5304}53055306.peach-pro-deactivate:hover {5307  color: var(--peach-accent);5308}53095310.peach-pro-deactivate:disabled {5311  opacity: 0.6;5312  cursor: default;5313}53145315/* ── Pro advanced health remediation queue ──────────────────── */5316.peach-health-pro-queue {5317  display: flex;5318  flex-direction: column;5319  gap: 10px;5320  padding: 12px;5321  margin: 0 0 12px;5322  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5323  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5324  border-radius: 10px;5325}53265327.peach-health-pro-queue-head {5328  display: flex;5329  justify-content: space-between;5330  align-items: baseline;5331}53325333.peach-health-pro-queue-title {5334  font-size: 12px;5335  font-weight: 500;5336  letter-spacing: 0.04em;5337  text-transform: uppercase;5338  color: var(--peach-accent);5339}53405341.peach-health-pro-queue-score {5342  font-size: 11px;5343  color: var(--peach-t2);5344}53455346.peach-health-pro-row {5347  display: flex;5348  gap: 10px;5349  align-items: center;5350  padding: 8px 0;5351  border-top: 1px solid var(--peach-border);5352}53535354.peach-health-pro-row-info {5355  flex: 1;5356  display: flex;5357  flex-direction: column;5358  gap: 4px;5359  min-width: 0;5360}53615362.peach-health-pro-row-name {5363  font-size: 13px;5364  color: var(--peach-t0);5365  overflow: hidden;5366  text-overflow: ellipsis;5367  white-space: nowrap;5368}53695370.peach-health-pro-row-meta {5371  font-size: 11px;5372  color: var(--peach-t2);5373}53745375.peach-health-pro-bar {5376  height: 2px;5377  background: var(--peach-border);5378  border-radius: 2px;5379  overflow: hidden;5380  margin-top: 2px;5381}53825383.peach-health-pro-bar-fill {5384  height: 100%;5385  background: var(--peach-accent);5386  transition: width 200ms ease-out;5387}53885389/* ── Pro activation celebration ── */5390@keyframes peach-pro-bloom {5391  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5392  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5393                 drop-shadow(0 0 48px var(--peach-glow)); }5394  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5395}53965397@keyframes peach-pro-wordmark-in {5398  from { opacity: 0; transform: translateY(4px); }5399  to   { opacity: 1; transform: translateY(0); }5400}54015402@keyframes peach-pro-fade-out {5403  from { opacity: 1; }5404  to   { opacity: 0; }5405}54065407.peach-pro-celebration {5408  background:5409    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5410    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5411    var(--peach-bg);5412  border: 1px solid var(--peach-t3);5413  box-shadow:5414    0 2px 8px rgba(0,0,0,0.55),5415    0 14px 48px rgba(0,0,0,0.7),5416    0 0 0 1px rgba(240,232,216,0.04);5417  overflow: hidden;5418  width: 320px;5419  height: 520px;5420  display: flex;5421  flex-direction: column;5422  align-items: center;5423  justify-content: center;5424  gap: 8px;5425  padding: 32px 24px;5426  text-align: center;5427}54285429.peach-pro-celebration.is-leaving {5430  animation: peach-pro-fade-out 400ms ease forwards;5431}54325433.peach-pro-bloom-target {5434  font-size: 48px;5435  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5436  margin-bottom: 12px;5437}54385439.peach-pro-wordmark {5440  font-family: "Cormorant Garamond", "Times New Roman", serif;5441  font-size: 22px;5442  font-style: italic;5443  font-weight: 400;5444  color: var(--peach-accent);5445  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5446}54475448.peach-pro-thankyou {5449  font-size: 12px;5450  font-style: italic;5451  color: var(--peach-t2);5452  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5453}545454555456/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5457.peach-pro-notice-banner {5458  display: flex;5459  align-items: center;5460  gap: 8px;5461  padding: 7px 12px;5462  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5463  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5464  font-size: 11px;5465  color: var(--peach-t2);5466  font-family: "IBM Plex Mono", monospace;5467  flex-shrink: 0;5468}54695470.peach-pro-notice-link {5471  background: none;5472  border: none;5473  padding: 0;5474  cursor: pointer;5475  font-size: 11px;5476  color: var(--peach-accent);5477  font-family: "IBM Plex Mono", monospace;5478  margin-left: auto;5479  white-space: nowrap;5480}54815482.peach-pro-notice-close {5483  background: none;5484  border: none;5485  padding: 0 0 0 4px;5486  cursor: pointer;5487  font-size: 10px;5488  color: var(--peach-t3);5489  line-height: 1;5490}