popup.css

127.7 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 10px;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: var(--font-display);168  font-size: 15px;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }209.peach-status-pip {210  width: 5px;211  height: 5px;212  border-radius: 50%;213  background: var(--peach-t3);214  display: inline-flex;215  flex-shrink: 0;216  transition: background 400ms ease, box-shadow 400ms ease;217}218.peach-chrome-actions { display: flex; gap: 6px; }219220/* Shell body */221.peach-shell-body {222  position: relative;223  display: grid;224  grid-template-rows: 1fr auto;225  min-height: 0;226  min-width: 0;227  width: 100%;228  overflow: hidden;229  height: 100%;230}231.peach-shell-veil {232  position: absolute; inset: 0;233  background: #000; opacity: 0;234  pointer-events: none; z-index: 1;235}236.peach-shell[data-motion-phase="enter"] .peach-shell-body {237  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;238}239.peach-shell[data-motion-phase="exit"] .peach-shell-veil {240  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;241}242243/* Content frame */244.peach-content-frame {245  display: grid;246  grid-template-rows: 1fr auto;247  grid-template-columns: minmax(0, 1fr);248  align-content: start;249  min-height: 0;250  min-width: 0;251  overflow: hidden;252  transition: opacity 80ms ease, transform 80ms ease;253}254.peach-content-frame.navigating {255  opacity: 0.93;256  transform: translateX(2px);257}258.peach-content-frame[data-content-phase="enter"] {259  animation: peach-content-enter 135ms ease-out both;260}261.peach-content-frame[data-content-phase="exit"] {262  animation: peach-content-exit 95ms ease-in forwards;263}264.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }265266/* Stage */267.peach-stage {268  padding: 10px 20px 12px;269  display: grid;270  gap: 12px;271  align-content: start;272  min-width: 0;273  min-height: 0;274  max-width: 100%;275  overflow-y: auto;276  overflow-x: hidden;277  scrollbar-width: none;278  -ms-overflow-style: none;279  overscroll-behavior: contain;280}281.peach-stage::-webkit-scrollbar { display: none; }282283/* Entry name */284.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }285.peach-entry-header {286  position: relative;287  z-index: 1;288  display: flex;289  align-items: flex-start;290  gap: 6px;291  min-width: 0;292}293.peach-entry-header-name {294  flex: 1;295  min-width: 0;296}297.peach-entry-name {298  margin: 0;299  padding-bottom: 0.12em;300  font-family: var(--font-display);301  font-style: italic; font-weight: 400;302  font-size: 44px; line-height: 0.95;303  color: var(--peach-t0);304  display: -webkit-box;305  -webkit-line-clamp: 2;306  -webkit-box-orient: vertical;307  overflow: hidden;308  text-wrap: balance;309}310.peach-entry-name--lg { font-size: 40px; }311.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }312.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }313.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }314315/* Trash icon in entry header */316.peach-entry-trash-btn {317  flex-shrink: 0;318  padding: 4px;319  margin-top: 4px;320  background: transparent;321  border: none;322  cursor: pointer;323  color: var(--peach-t2);324  border-radius: 4px;325  transition: color 140ms ease, background 140ms ease;326  display: flex;327  align-items: center;328  justify-content: center;329}330.peach-entry-trash-btn:hover {331  color: var(--peach-t1);332  background: var(--peach-t3);333}334.peach-entry-trash-confirm {335  display: flex;336  align-items: center;337  gap: 6px;338  flex-shrink: 0;339  margin-top: 6px;340  flex-wrap: nowrap;341}342.peach-entry-trash-confirm-label {343  font-family: var(--font-mono);344  font-size: 9px;345  letter-spacing: 0.1em;346  color: var(--peach-t2);347  white-space: nowrap;348}349.peach-entry-name-button {350  padding: 0;351  background: transparent;352  text-align: left;353  cursor: pointer;354  max-width: 100%;355  overflow: hidden;356  display: block;357}358.peach-entry-name-char {359  display: inline-block;360  white-space: pre;361  opacity: 0;362  transform: translateY(0.22em);363  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;364  animation-delay: calc(var(--char-index, 0) * 20ms);365}366367/* Domain */368.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }369.peach-domain-row {370  width: 100%; border: 0; background: transparent; color: inherit;371  padding: 0; display: flex; justify-content: space-between; align-items: baseline;372  cursor: default;373}374.peach-domain-value {375  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;376  font-size: 10px; font-style: italic;377  letter-spacing: 0.12em; color: var(--peach-t1);378}379380/* Fields */381.peach-fields { display: grid; gap: 10px; }382.peach-field-card { display: grid; gap: 7px; }383.peach-label {384  font-family: Inter, system-ui, sans-serif;385  text-transform: uppercase; letter-spacing: 0.2em;386  font-size: 8px; color: var(--peach-t2);387}388.peach-field-value-row {389  display: flex; justify-content: space-between;390  align-items: center; gap: 8px;391  min-width: 0;392}393.peach-field-value {394  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;395  font-size: 13px; color: var(--peach-t1);396  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;397  flex: 1;398  min-width: 0;399}400.peach-password-value {401  display: inline-flex;402  align-items: center;403  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;404  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);405  overflow: hidden;406  text-overflow: ellipsis;407  white-space: nowrap;408  flex: 1;409  min-width: 0;410  max-width: 100%;411}412.peach-password-value.is-revealed {413  font-size: 14px;414  letter-spacing: 0.08em;415}416.peach-password-text,417.peach-password-mask {418  display: block;419  width: 100%;420  overflow: hidden;421  white-space: nowrap;422  /* Render as uniform mid-line bullets, not baseline periods */423  font-family: Inter, system-ui, sans-serif;424  font-size: 10px;425  letter-spacing: 3px;426  user-select: none;427}428.peach-field-actions { display: flex; gap: 4px; align-items: center; }429.peach-password-strength { display: flex; align-items: center; gap: 8px; }430.peach-strength-bar { display: flex; gap: 3px; }431.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }432.peach-strength-label {433  font-family: "IBM Plex Mono", monospace;434  font-style: italic;435  font-size: 9px;436  font-weight: 300;437  min-width: 36px;438  text-align: right;439  color: var(--peach-t2);440  letter-spacing: 0.06em;441}442443.peach-strength-hairline {444  display: flex;445  align-items: center;446  gap: 10px;447  margin-top: -2px;448}449450.peach-strength-hairline-track {451  flex: 1;452  height: 3px;453  border-radius: 2px;454  background: var(--peach-s2);455  overflow: hidden;456}457458.peach-strength-hairline-fill {459  height: 100%;460  border-radius: 2px;461  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),462    background 400ms ease;463}464465/* Note content (display) */466.peach-note-content {467  border-top: 1px solid var(--peach-t3);468  padding-top: 10px;469  font-family: var(--font-display);470  font-size: 15px;471  line-height: 1.75;472  color: var(--peach-t1);473}474475/* ── Inline editing ─────────────────────────────────────────────────── */476477/* Clickable display values */478.peach-inline-clickable {479  cursor: text;480  border-radius: 3px;481  transition: background 150ms ease;482}483.peach-inline-clickable:hover {484  background: rgba(240, 232, 216, 0.05);485}486487/* Subtle "edit" hint that appears on hover */488.peach-inline-edit-hint {489  font-family: Inter, system-ui, sans-serif;490  font-size: 9px;491  text-transform: uppercase;492  letter-spacing: 0.14em;493  color: var(--peach-t2);494  opacity: 0;495  transition: opacity 120ms ease;496  pointer-events: none;497  margin-left: 6px;498  flex-shrink: 0;499}500.peach-domain-row:hover .peach-inline-edit-hint {501  opacity: 1;502}503504/* Title editing */505.peach-inline-title-wrap {506  display: flex;507  flex-direction: column;508  gap: 6px;509}510.peach-inline-title-input {511  font-family: var(--font-display);512  font-style: italic;513  font-weight: 400;514  font-size: 40px;515  line-height: 0.95;516  color: var(--peach-t0);517  background: transparent;518  border: none;519  border-bottom: 1px solid var(--peach-accent);520  outline: none;521  width: 100%;522  padding: 2px 0;523}524525/* Generic inline field */526.peach-inline-field-wrap {527  display: flex;528  flex-direction: column;529  gap: 6px;530}531.peach-inline-input {532  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;533  font-size: 13px;534  color: var(--peach-t0);535  background: transparent;536  border: none;537  border-bottom: 1px solid var(--peach-accent);538  outline: none;539  width: 100%;540  padding: 3px 0;541}542.peach-inline-textarea {543  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;544  font-size: 11px;545  line-height: 1.7;546  color: var(--peach-t0);547  background: rgba(240, 232, 216, 0.04);548  border: 1px solid var(--peach-accent);549  border-radius: 4px;550  outline: none;551  width: 100%;552  padding: 8px;553  resize: vertical;554  min-height: 80px;555}556557/* Save / cancel row */558.peach-inline-actions {559  display: flex;560  gap: 6px;561  align-items: center;562}563.peach-inline-save-btn,564.peach-inline-cancel-btn {565  display: inline-flex;566  align-items: center;567  justify-content: center;568  width: 26px;569  height: 26px;570  border-radius: 4px;571  border: none;572  cursor: pointer;573  transition: background 140ms ease, opacity 140ms ease;574  flex-shrink: 0;575}576.peach-inline-save-btn {577  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);578  color: var(--peach-accent);579}580.peach-inline-save-btn:hover:not(:disabled) {581  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);582}583.peach-inline-cancel-btn {584  background: rgba(240, 232, 216, 0.06);585  color: var(--peach-t2);586}587.peach-inline-cancel-btn:hover:not(:disabled) {588  background: rgba(240, 232, 216, 0.12);589  color: var(--peach-t1);590}591.peach-inline-save-btn:disabled,592.peach-inline-cancel-btn:disabled {593  opacity: 0.4;594  cursor: not-allowed;595}596597/* Inline password generator wrapper */598.peach-inline-generator-wrap {599  margin-top: 10px;600  padding-top: 10px;601  border-top: 1px solid var(--peach-t3);602  display: flex;603  flex-direction: column;604  gap: 8px;605}606.peach-inline-generator-cancel {607  align-self: flex-start;608  font-size: 11px;609  color: var(--peach-t2);610}611612/* "is-editing" card state */613.peach-field-card.is-editing {614  background: rgba(240, 232, 216, 0.02);615  border-radius: 6px;616  padding: 8px;617  margin: -8px;618}619620/* Inline tag editor on Entry detail view */621.peach-inline-tag-editor {622  display: flex;623  flex-direction: column;624  gap: 6px;625}626627/* Quiet inline "+ add X" link in the entry detail body */628.peach-entry-add-link {629  justify-self: start;630  margin-top: 8px;631}632633/* Additional URLs editor revealed by clicking the URL field */634.peach-additional-urls {635  display: flex;636  flex-direction: column;637  gap: 6px;638  margin-top: 8px;639}640.peach-additional-urls-label {641  font-size: 9px;642  letter-spacing: 0.1em;643  text-transform: uppercase;644  color: var(--peach-t2);645  margin-bottom: 2px;646}647.peach-additional-url-row {648  display: flex;649  align-items: center;650  gap: 6px;651}652.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }653.peach-additional-url-remove {654  background: transparent;655  border: 1px solid var(--peach-t3);656  color: var(--peach-t2);657  width: 22px;658  height: 22px;659  border-radius: 4px;660  cursor: pointer;661  font-size: 14px;662  line-height: 1;663  display: inline-flex;664  align-items: center;665  justify-content: center;666  flex-shrink: 0;667  transition: color 120ms ease, border-color 120ms ease;668}669.peach-additional-url-remove:hover:not(:disabled) {670  color: var(--peach-accent);671  border-color: var(--peach-border-accent);672}673.peach-additional-urls-add { align-self: flex-start; }674675/* Delete row */676.peach-entry-delete-row {677  display: flex;678  align-items: center;679  gap: 8px;680  padding-top: 18px;681  margin-top: 8px;682  border-top: 1px solid var(--peach-t3);683}684.peach-delete-btn {685  font-size: 11px;686  color: var(--peach-t2);687  padding: 4px 0;688}689.peach-delete-confirm-text {690  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;691  font-size: 11px;692  font-style: italic;693  color: var(--peach-t2);694  flex-shrink: 0;695}696697/* TOTP band */698.peach-totp-band {699  border-top: 1px solid var(--peach-t3);700  padding: 12px 20px 14px;701  position: relative;702  display: grid;703  grid-template-columns: 1fr auto;704  gap: 10px;705}706.peach-totp-main {707  min-width: 0;708  cursor: pointer;709  user-select: none;710}711.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }712.peach-totp-code-row {713  display: flex;714  align-items: flex-end;715  gap: 10px;716  min-width: 0;717}718.peach-totp-code {719  margin: 2px 0 0;720  font-family: var(--font-display);721  font-style: italic;722  font-weight: 300;723  font-size: 38px; color: var(--peach-accent);724  line-height: 0.95; min-height: 1em;725  min-width: 0;726}727.peach-totp-code-text {728  display: inline-flex;729  overflow: hidden;730  text-overflow: ellipsis;731  white-space: nowrap;732}733.peach-totp-copy-btn {734  margin-bottom: 2px;735  flex-shrink: 0;736  border-color: transparent;737}738.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }739.peach-totp-countdown {740  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;741  font-size: 22px; color: var(--peach-t1);742}743.peach-totp-ring { transform: rotate(-90deg); }744.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }745.peach-totp-ring-progress {746  fill: none; stroke: var(--peach-accent); stroke-width: 2;747  stroke-linecap: round;748  transition: stroke-dashoffset 1s linear, stroke 500ms ease;749}750/* Search bar */751.peach-search-wrap {752  border-top: 1px solid var(--peach-t3);753  background: var(--peach-s1);754  min-height: 54px; position: relative;755  box-shadow: inset 0 6px 18px transparent;756  transition: box-shadow 700ms ease;757}758.peach-search-wrap::before {759  content: "";760  position: absolute;761  left: 0;762  top: 0;763  height: 2px;764  width: var(--peach-totp-progress, 0%);765  background: var(--peach-accent);766  opacity: 0;767  transition: width 1s linear, opacity 180ms ease;768  pointer-events: none;769}770.peach-shell[data-totp-active="true"] .peach-search-wrap::before {771  opacity: 0.9;772}773.peach-shell[data-totp-active="true"] .peach-search-wrap {774  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);775}776777@keyframes peach-totp-code-flare {778  0%   { filter: brightness(1); }779  25%  { filter: brightness(1.3); }780  100% { filter: brightness(1); }781}782.peach-totp-code.is-hot {783  animation: peach-totp-code-flare 3000ms ease-in-out both;784}785.peach-search-bar {786  min-height: 54px;787  display: grid;788  grid-template-columns: auto minmax(0, 1fr) auto;789  align-items: center;790  gap: 8px; padding: 0 9px 0 12px;791}792.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }793.peach-search-input {794  border: 0; background: transparent; color: var(--peach-t0);795  font-family: var(--font-display);796  font-style: italic; font-size: 18px;797  outline: none; width: 100%; min-width: 0; padding: 0;798  caret-color: var(--peach-accent);799}800.peach-search-input::placeholder { color: var(--peach-t2); }801.peach-search-meta {802  display: grid;803  grid-auto-flow: column;804  align-items: center;805  justify-content: end;806  gap: 6px;807  min-width: max-content;808}809.peach-search-counter {810  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;811  font-size: 10px; color: var(--peach-t2);812  display: inline-flex;813  align-items: center;814  line-height: 1;815}816.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }817818/* Buttons */819.peach-btn {820  border: 1px solid transparent; border-radius: 12px;821  background: transparent; color: var(--peach-t0);822  font-family: Inter, system-ui, sans-serif;823  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;824  cursor: pointer;825  transition:826    background-color var(--peach-dur-80) var(--peach-curve-arrival),827    color var(--peach-dur-80) var(--peach-curve-arrival),828    border-color var(--peach-dur-150) var(--peach-curve-arrival);829}830.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }831.peach-btn:disabled {832  opacity: 0.45;833  cursor: not-allowed;834}835.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }836.peach-btn--md { min-height: 38px; }837.peach-btn--accent {838  background: var(--peach-accent);839  color: rgba(0,0,0,0.78);840  box-shadow:841    0 1px 0 rgba(255,255,255,0.08) inset,842    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),843    0 3px 16px var(--peach-glow),844    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);845}846.peach-btn--accent:hover:not(:disabled) {847  background: var(--peach-accent);848  filter: brightness(1.10) saturate(1.05);849  box-shadow:850    0 1px 0 rgba(255,255,255,0.10) inset,851    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),852    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),853    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);854}855.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }856.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }857.peach-icon-btn {858  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;859  display: inline-flex; align-items: center; justify-content: center;860}861862.peach-btn:focus-visible {863  outline: none;864  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);865}866867/* Lock button */868.peach-lock-icon { transform-origin: center; }869.peach-lock-btn.is-locking { color: var(--peach-accent); }870.peach-lock-btn.is-locking .peach-lock-icon {871  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);872}873874/* Copy button */875.peach-copy-btn {876  position: relative; overflow: hidden;877  color: var(--peach-t2); border-color: var(--peach-t3);878}879.peach-copy-icon {880  display: inline-flex; align-items: center; justify-content: center;881  position: relative; z-index: 1;882}883.peach-copy-icon-svg { display: block; }884.peach-copy-sheen {885  position: absolute; inset: 0;886  background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 30%, color-mix(in srgb, var(--peach-accent) 8%, transparent) 100%);887  opacity: 0; transform: scaleX(0.15); transform-origin: left center;888}889.peach-copy-btn.is-copied {890  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;891  box-shadow:892    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),893    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),894    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);895}896.peach-copy-btn.is-copied .peach-copy-icon {897  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;898}899.peach-copy-btn.is-copied .peach-copy-sheen {900  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;901}902.peach-copy-btn.is-retreat {903  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;904}905.peach-copy-btn.is-retreat .peach-copy-sheen {906  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;907}908.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }909.peach-copy-drain-bar {910  display: block; width: 100%; height: 100%;911  background: var(--peach-accent); opacity: 0.7;912  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;913}914915/* Unlock screen elements */916.peach-unlock-headline {917  margin: 2px 0 0;918  font-family: var(--font-display);919  font-size: 52px; line-height: 0.95;920  font-style: italic; font-weight: 400;921}922.peach-subline {923  margin: 0;924  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;925  font-size: 10px; color: var(--peach-t2); font-style: italic;926}927.peach-subline--lock {928  max-width: 248px;929  line-height: 1.5;930}931.peach-underline-input {932  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);933  padding: 6px 0; background: transparent; color: var(--peach-t0);934  outline: none;935  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;936  font-size: 13px;937  caret-color: var(--peach-accent);938}939.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }940.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }941.peach-hint {942  margin: 0;943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;944  font-size: 10px; color: var(--peach-t2);945}946.peach-unlock-footer {947  margin-top: 4px; display: flex; align-items: center; gap: 7px;948  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;949  font-size: 10px; color: var(--peach-t2);950}951.peach-unlock-footer--lock {952  padding-top: 2px;953}954955/* Breach badge */956.peach-breach-badge {957  display: flex;958  position: relative;959  z-index: 1;960  align-items: center;961  gap: 7px;962  font-size: 9px;963  color: var(--peach-breach);964  padding: 5px 10px;965  margin-bottom: 4px;966  border-radius: 8px;967  background: rgba(220, 80, 60, 0.07);968  border: 1px solid rgba(220, 80, 60, 0.18);969  letter-spacing: 0.04em;970}971972.peach-breach-action {973  margin-left: auto;974  font-size: 10px;975  padding: 3px 8px;976}977978.peach-password-value.is-breached {979  color: rgba(220, 80, 60, 0.75);980  border-bottom: 1px solid rgba(220, 80, 60, 0.22);981}982983/* ── Overlay views ─────────────────────────────────────────────────── */984.peach-overlay-view {985  position: absolute;986  inset: 0;987  display: flex;988  flex-direction: column;989  background:990    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),991    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),992    var(--peach-bg);993  z-index: 2;994  overflow: hidden;995  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;996}997@keyframes overlay-in {998  from { opacity: 0; transform: translateY(8px); }999  to   { opacity: 1; transform: translateY(0); }1000}1001.peach-overlay-view.ov-enter-up {1002  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1003}1004.peach-overlay-view.ov-exit-up {1005  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1006}1007.peach-overlay-view.ov-enter-right {1008  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1009}1010.peach-overlay-view.ov-exit-right {1011  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1012}10131014@keyframes ov-enter-up {1015  from { opacity: 0; transform: translateY(18px); }1016  to   { opacity: 1; transform: translateY(0); }1017}1018@keyframes ov-exit-up {1019  from { opacity: 1; transform: translateY(0); }1020  to   { opacity: 0; transform: translateY(-12px); }1021}1022@keyframes ov-enter-right {1023  from { opacity: 0; transform: translateX(20px); }1024  to   { opacity: 1; transform: translateX(0); }1025}1026@keyframes ov-exit-right {1027  from { opacity: 1; transform: translateX(0); }1028  to   { opacity: 0; transform: translateX(20px); }1029}10301031/* Overlay shared header */1032.peach-overlay-header {1033  padding: 10px 12px;1034  display: flex;1035  align-items: center;1036  gap: 8px;1037  border-bottom: 1px solid var(--peach-t3);1038  flex-shrink: 0;1039}1040.peach-overlay-title {1041  font-family: "IBM Plex Mono", monospace;1042  font-size: 9px;1043  text-transform: uppercase;1044  letter-spacing: 0.18em;1045  color: var(--peach-t2);1046  flex: 1;1047  text-align: center;1048}10491050.peach-overlay-card {1051  background: var(--peach-s1);1052  border: 1px solid var(--peach-t3);1053  border-radius: 12px;1054  overflow: hidden;1055  width: 100%;1056}10571058.peach-onboarding-alt-actions {1059  display: flex;1060  flex-direction: column;1061  gap: 4px;1062  padding: 0;1063}10641065.peach-settings-copy {1066  margin: 0 0 10px;1067  font-size: 11px;1068  line-height: 1.5;1069  color: var(--peach-t2);1070}10711072.peach-settings-copy strong {1073  color: var(--peach-t0);1074}10751076.peach-settings-copy--spacious {1077  margin-bottom: 12px;1078}10791080.peach-settings-copy--result {1081  color: var(--peach-accent);1082  font-size: 13px;1083  text-align: center;1084  padding: 8px 0;1085}10861087.peach-settings-copy--danger {1088  color: var(--peach-breach);1089}10901091.peach-settings-copy--success {1092  color: var(--peach-accent);1093}10941095.peach-inline-feedback {1096  font-size: 11px;1097  margin: 10px 0 0;1098}10991100.peach-inline-feedback--ok {1101  color: var(--peach-accent);1102}11031104.peach-inline-feedback--error {1105  color: var(--peach-breach);1106}11071108.peach-inline-feedback--muted {1109  color: var(--peach-t2);1110  font-size: 10px;1111  margin: 4px 0;1112}11131114.peach-inline-feedback--spaced {1115  margin-top: 12px;1116}11171118.peach-settings-actions--row {1119  display: flex;1120  gap: 6px;1121}11221123.peach-settings-actions--end {1124  margin-top: 14px;1125  justify-content: flex-end;1126}11271128.peach-settings-stack {1129  display: flex;1130  flex-direction: column;1131  gap: 6px;1132}11331134.peach-settings-stack--tight {1135  gap: 4px;1136}11371138.peach-settings-stack--spacious {1139  gap: 8px;1140}11411142.peach-settings-input {1143  width: 100%;1144  box-sizing: border-box;1145  padding: 8px 10px;1146  background: 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: var(--font-display);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-rune-canvas {1579  border-radius: 8px;1580  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, var(--peach-t3));1581  background: #1a1410;1582  flex: 1;1583  align-self: center;1584}1585.peach-script-input {1586  font-family: "PeachScript", monospace;1587  font-size: 11px;1588  line-height: 1.9;1589  letter-spacing: 0.06em;1590  color: var(--peach-t0);1591  background: var(--peach-input-bg, var(--surface-card));1592  border: 1px solid var(--peach-t3);1593  border-radius: 6px;1594  padding: 12px;1595  width: 100%;1596  min-height: 96px;1597  resize: vertical;1598  word-break: break-all;1599}1600.peach-qr-canvas-wrap {1601  display: flex;1602  justify-content: center;1603  padding: 12px 0 6px;1604}1605.peach-qr-canvas-wrap canvas {1606  display: block;1607  background: #ffffff;1608  border-radius: 6px;1609  max-width: 100%;1610  height: auto;1611}1612.peach-csv-warning {1613  background: color-mix(in srgb, var(--peach-breach) 14%, transparent);1614  border: 1px solid color-mix(in srgb, var(--peach-breach) 40%, transparent);1615  color: var(--peach-t0);1616  border-radius: 6px;1617  padding: 10px 12px;1618  margin-bottom: 8px;1619  font-size: 12px;1620  line-height: 1.45;1621}1622.peach-legacy-cjk-summary {1623  cursor: pointer;1624  color: var(--peach-t2);1625  font-family: "IBM Plex Mono", monospace;1626  font-size: 10px;1627  text-transform: uppercase;1628  letter-spacing: 0.14em;1629  padding: 6px 0;1630}1631.peach-legacy-cjk-note {1632  color: var(--peach-t2);1633  font-size: 11px;1634  line-height: 1.5;1635  margin: 6px 0 0;1636}16371638.peach-export-card--primary {1639  background:1640    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1641}16421643/* Export menu — distribute the three format cards across the popup. */1644.peach-export-menu {1645  display: flex;1646  flex-direction: column;1647  flex: 1;1648  min-height: 0;1649}1650.peach-export-menu .peach-settings-group {1651  flex: 1;1652  display: flex;1653  flex-direction: column;1654  justify-content: center;1655  gap: 10px;1656}16571658/* Result view — the script-string fills the remaining vertical surface. */1659.peach-export-result-group {1660  flex: 1;1661  display: flex;1662  flex-direction: column;1663  min-height: 0;1664}1665.peach-export-result-group .peach-export-card {1666  flex: 1;1667  min-height: 0;1668  display: flex;1669  flex-direction: column;1670  gap: 10px;1671}1672.peach-export-result-group .peach-export-card-copy {1673  flex-shrink: 0;1674}1675.peach-export-result-group .peach-settings-label {1676  flex-shrink: 0;1677}1678.peach-export-result-group button {1679  flex-shrink: 0;1680}1681.peach-export-card-head {1682  display: flex;1683  align-items: center;1684  justify-content: space-between;1685  gap: 10px;1686}1687.peach-export-card-copy {1688  margin: 0;1689  font-size: 12px;1690  line-height: 1.55;1691  color: var(--peach-t1);1692}1693.peach-export-note {1694  margin: 0;1695  font-size: 10px;1696  line-height: 1.5;1697  color: var(--peach-t2);1698}1699.peach-export-pill {1700  display: inline-flex;1701  align-items: center;1702  padding: 4px 8px;1703  border-radius: 999px;1704  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1705  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1706  color: var(--peach-accent);1707  font-family: "IBM Plex Mono", monospace;1708  font-size: 8px;1709  letter-spacing: 0.12em;1710  text-transform: uppercase;1711  white-space: nowrap;1712}1713.peach-export-pill--danger {1714  border-color: rgba(220,80,60,0.22);1715  background: rgba(220,80,60,0.08);1716  color: var(--peach-breach);1717}1718.peach-export-password-stack {1719  gap: 8px;1720}1721.peach-settings-label {1722  margin: 0 0 6px;1723  font-family: "IBM Plex Mono", monospace;1724  font-size: 8px;1725  text-transform: uppercase;1726  letter-spacing: 0.18em;1727  color: var(--peach-t2);1728}1729.peach-settings-row {1730  display: flex;1731  align-items: center;1732  justify-content: space-between;1733  gap: 12px;1734  min-height: 34px;1735  padding: 6px 0;1736  font-size: 13px;1737  color: var(--peach-t1);1738}1739.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1740.peach-settings-value {1741  font-family: "IBM Plex Mono", monospace;1742  font-size: 10px;1743  color: var(--peach-t2);1744}17451746.peach-settings-value--status {1747  display: flex;1748  align-items: center;1749  gap: 6px;1750}17511752.peach-settings-link {1753  font-family: "IBM Plex Mono", monospace;1754  font-size: 10px;1755  color: var(--peach-accent);1756  text-decoration: none;1757  cursor: pointer;1758}1759.peach-settings-link:hover {1760  text-decoration: underline;1761}17621763.peach-settings-row--stack {1764  flex-direction: column;1765  align-items: stretch;1766  gap: 6px;1767}17681769.peach-settings-row--top {1770  align-items: flex-start;1771}17721773.peach-settings-row-main {1774  display: flex;1775  flex-direction: column;1776  gap: 4px;1777  flex: 1;1778}1779.peach-toggle {1780  width: 28px; height: 16px;1781  border-radius: 999px;1782  background: var(--peach-t3);1783  border: 1px solid var(--peach-t3);1784  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1785  flex-shrink: 0;1786  transition: background 200ms ease, border-color 200ms ease;1787  cursor: pointer;1788}1789.peach-toggle.is-on {1790  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1791  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1792}1793.peach-toggle-knob {1794  width: 10px; height: 10px;1795  border-radius: 50%;1796  background: var(--peach-t2);1797  flex-shrink: 0;1798  transform: translateX(0px);1799  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1800}1801.peach-toggle.is-on .peach-toggle-knob {1802  background: var(--peach-accent);1803  transform: translateX(12px);1804}1805.peach-settings-footer {1806  display: flex;1807  align-items: center;1808  gap: 8px;1809  margin-top: auto;1810  padding: 14px 16px 8px;1811  font-family: "IBM Plex Mono", monospace;1812  font-size: 9px;1813  color: var(--peach-t2);1814}18151816/* ── Settings home navigation ──────────────────────────────────────────── */1817.peach-settings-nav-label {1818  margin: 0 0 2px;1819  padding: 12px 16px 4px;1820  font-family: "IBM Plex Mono", monospace;1821  font-size: 8px;1822  text-transform: uppercase;1823  letter-spacing: 0.18em;1824  color: var(--peach-t2);1825}18261827.peach-settings-cat-row {1828  display: flex;1829  align-items: center;1830  gap: 10px;1831  width: 100%;1832  padding: 9px 16px;1833  background: none;1834  border: none;1835  border-bottom: 1px solid var(--peach-t3);1836  cursor: pointer;1837  text-align: left;1838  color: inherit;1839  transition: background var(--peach-dur-80) ease;1840}1841.peach-settings-cat-row:hover {1842  background: var(--peach-t3);1843}1844.peach-settings-cat-row:last-child {1845  border-bottom: none;1846}18471848.peach-settings-cat-icon {1849  width: 28px;1850  height: 28px;1851  border-radius: 7px;1852  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1853  color: var(--peach-accent);1854  display: flex;1855  align-items: center;1856  justify-content: center;1857  flex-shrink: 0;1858}1859/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1860   Darken the icon stroke to ink and bump the bg tint so the icon reads1861   sharply while the cell still feels accent-tinted. */1862.light .peach-settings-cat-icon {1863  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1864  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1865}18661867.peach-settings-cat-content {1868  flex: 1;1869  display: flex;1870  flex-direction: column;1871  gap: 2px;1872  min-width: 0;1873}18741875.peach-settings-cat-name {1876  font-size: 13px;1877  font-weight: 450;1878  color: var(--peach-t0);1879  line-height: 1.2;1880}18811882.peach-settings-cat-desc {1883  font-size: 10px;1884  color: var(--peach-t2);1885  line-height: 1.3;1886  white-space: nowrap;1887  overflow: hidden;1888  text-overflow: ellipsis;1889}18901891.peach-settings-cat-chevron {1892  color: var(--peach-t2);1893  flex-shrink: 0;1894  opacity: 0.5;1895}18961897/* ── Settings sub-view section labels ──────────────────────────────────── */1898.peach-settings-sub-label {1899  margin: 12px 0 4px;1900  font-family: "IBM Plex Mono", monospace;1901  font-size: 8px;1902  text-transform: uppercase;1903  letter-spacing: 0.18em;1904  color: var(--peach-t2);1905}1906.peach-settings-sub-label:first-child {1907  margin-top: 4px;1908}19091910/* ── Feedback form ──────────────────────────────────────────────────────── */1911.peach-feedback-group {1912  flex: 1;1913  display: flex;1914  flex-direction: column;1915  border-bottom: none;1916}19171918.peach-feedback-intro {1919  margin: 4px 0 14px;1920  font-size: 12px;1921  line-height: 1.55;1922  color: var(--peach-t1);1923}19241925.peach-feedback-chips {1926  display: flex;1927  flex-wrap: wrap;1928  gap: 6px;1929  margin-bottom: 14px;1930}19311932.peach-feedback-chip {1933  padding: 4px 10px;1934  border-radius: 999px;1935  border: 1px solid var(--peach-t3);1936  background: none;1937  color: var(--peach-t2);1938  font-size: 11px;1939  font-family: var(--font-ui);1940  cursor: pointer;1941  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1942    background var(--peach-dur-80) ease;1943}1944.peach-feedback-chip:hover {1945  border-color: var(--peach-t2);1946  color: var(--peach-t1);1947}1948.peach-feedback-chip.is-active {1949  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1950  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1951  color: var(--peach-accent);1952}19531954.peach-feedback-textarea {1955  flex: 1;1956  width: 100%;1957  min-height: 120px;1958  box-sizing: border-box;1959  background: var(--peach-t3);1960  border: 1px solid var(--peach-t3);1961  border-radius: 6px;1962  color: var(--peach-t0);1963  font-size: 12px;1964  font-family: var(--font-ui);1965  line-height: 1.5;1966  padding: 8px 10px;1967  resize: none;1968  outline: none;1969  transition: border-color var(--peach-dur-150) ease;1970}1971.peach-feedback-textarea:focus {1972  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1973}1974.peach-feedback-textarea::placeholder {1975  color: var(--peach-t2);1976}19771978.peach-feedback-meta {1979  margin: 6px 0 0;1980  font-size: 10px;1981  color: var(--peach-t2);1982  font-family: "IBM Plex Mono", monospace;1983}19841985.peach-feedback-result {1986  margin: 8px 0 0;1987  font-size: 11px;1988  font-family: "IBM Plex Mono", monospace;1989}1990.peach-feedback-result--ok { color: var(--peach-sync-ok); }1991.peach-feedback-result--err { color: var(--peach-breach); }19921993.peach-feedback-submit {1994  width: 100%;1995  margin-top: 12px;1996  justify-content: center;1997}19981999.peach-feedback-anon {2000  margin: 8px 0 0;2001  font-size: 10px;2002  color: var(--peach-t2);2003  text-align: center;2004}20052006.peach-passkey-badge {2007  margin-left: 8px;2008  font-size: 10px;2009  letter-spacing: 0.06em;2010  text-transform: uppercase;2011  color: var(--peach-t2);2012  font-family: var(--font-ui);2013  vertical-align: middle;2014}20152016.peach-passkey-delete-btn {2017  color: var(--peach-breach);2018  border-color: rgba(229, 85, 85, 0.25);2019}20202021.peach-passkey-delete-confirm {2022  display: flex;2023  align-items: center;2024  gap: 8px;2025  padding: 8px 10px;2026  background: rgba(229, 85, 85, 0.06);2027  border: 1px solid rgba(229, 85, 85, 0.2);2028  border-radius: 6px;2029}20302031.peach-passkey-delete-confirm-copy {2032  flex: 1;2033  font-size: 11px;2034  color: var(--peach-t1);2035}20362037.peach-passkey-delete-btn--confirm {2038  color: var(--peach-breach);2039  border-color: rgba(229, 85, 85, 0.4);2040}20412042.peach-passkey-activity {2043  flex-direction: column;2044  align-items: flex-start;2045  gap: 4px;2046}20472048.peach-passkey-meta {2049  font-size: 11px;2050  color: var(--peach-t2);2051}20522053.peach-passkey-actions {2054  position: relative;2055  z-index: 1;2056  margin-top: 14px;2057  display: flex;2058  flex-direction: column;2059  gap: 8px;2060}20612062.peach-passkey-approval {2063  display: flex;2064  flex-direction: column;2065  align-items: center;2066  padding: 28px 22px 22px;2067  gap: 14px;2068  text-align: center;2069}20702071.peach-passkey-approval-icon {2072  width: 46px;2073  height: 46px;2074  border-radius: 12px;2075  background: var(--peach-s2);2076  border: 1px solid var(--peach-t3);2077  display: flex;2078  align-items: center;2079  justify-content: center;2080  flex-shrink: 0;2081  color: var(--peach-accent);2082}20832084.peach-passkey-approval-icon img,2085.peach-passkey-approval-icon svg {2086  width: 28px;2087  height: 28px;2088  border-radius: 6px;2089}20902091.peach-passkey-approval-rp {2092  font-family: var(--font-ui);2093  font-size: 12px;2094  color: var(--peach-t2);2095  letter-spacing: 0.03em;2096}20972098.peach-passkey-approval-action {2099  font-family: var(--font-display);2100  font-style: italic;2101  font-weight: 300;2102  font-size: 26px;2103  color: var(--peach-t0);2104  line-height: 1;2105}21062107.peach-passkey-approval-user {2108  font-family: var(--font-mono);2109  font-size: 11px;2110  color: var(--peach-t1);2111  background: var(--peach-s2);2112  border: 1px solid var(--peach-t3);2113  border-radius: 4px;2114  padding: 3px 8px;2115}21162117.peach-passkey-approval-notice {2118  font-size: 10px;2119  color: var(--peach-t2);2120  line-height: 1.5;2121  max-width: 220px;2122}21232124.peach-passkey-approval-actions {2125  display: flex;2126  gap: 8px;2127  width: 100%;2128  margin-top: 6px;2129}21302131.peach-passkey-approval-actions .peach-btn {2132  flex: 1;2133}21342135/* ── Inline generator drawer ── */2136.peach-generator-drawer {2137  display: grid;2138  grid-template-rows: 0fr;2139  transition: grid-template-rows 320ms var(--peach-curve-arrival);2140  overflow: hidden;2141}2142.peach-generator-drawer.is-open {2143  grid-template-rows: 1fr;2144}2145.peach-generator-drawer-inner {2146  min-height: 0;2147  overflow: hidden;2148}2149.peach-generator-drawer-content {2150  border-top: 1px solid var(--peach-t3);2151  padding: 8px 0 4px;2152  display: flex;2153  flex-direction: column;2154  gap: 8px;2155}21562157/* ── Compact generator (inside entry edit) ── */2158.peach-generator-drawer-content--compact {2159  border-top: 1px solid var(--peach-t3);2160  padding: 8px 0 2px;2161  gap: 7px;2162}2163.peach-pwgen-compact-display-row {2164  display: flex;2165  align-items: center;2166  gap: 6px;2167}2168.peach-pwgen-compact-output {2169  flex: 1;2170  min-width: 0;2171  font-family: "IBM Plex Mono", monospace;2172  font-size: 11px;2173  font-weight: 400;2174  letter-spacing: 0.04em;2175  color: var(--peach-t0);2176  background: rgba(240, 232, 216, 0.04);2177  border: 1px solid var(--peach-t3);2178  border-radius: 5px;2179  padding: 5px 8px;2180  word-break: break-all;2181  line-height: 1.5;2182}2183.peach-pwgen-compact-controls {2184  display: flex;2185  align-items: center;2186  gap: 6px;2187}2188.peach-pwgen-compact-slider {2189  flex: 1;2190  min-width: 0;2191  height: 2px !important;2192}2193.peach-pwgen-compact-controls .peach-pwgen-len-num {2194  flex-shrink: 0;2195  min-width: 18px;2196  text-align: right;2197}2198.peach-pwgen-compact-pills {2199  display: flex;2200  gap: 3px;2201  flex-shrink: 0;2202}2203.peach-pwgen-compact-pills .peach-pwgen-pill {2204  padding: 2px 7px;2205  font-size: 8px;2206}2207.peach-pwgen-compact-use {2208  flex-shrink: 0;2209  font-size: 10px !important;2210  padding: 3px 9px !important;2211  min-height: 22px !important;2212  border-radius: 5px !important;2213}22142215/* ── Password edit row (input + eye toggle side-by-side) ── */2216.peach-password-edit-row {2217  display: flex;2218  align-items: center;2219  gap: 6px;2220}2221.peach-password-edit-row .peach-inline-input {2222  flex: 1;2223  min-width: 0;2224}22252226/* ── Generate toggle link ── */2227.peach-generate-toggle-link {2228  display: inline-flex;2229  align-items: center;2230  gap: 5px;2231  background: none;2232  border: none;2233  padding: 0;2234  cursor: pointer;2235  font-family: "IBM Plex Mono", monospace;2236  font-size: 10px;2237  color: var(--peach-t2);2238  letter-spacing: 0.04em;2239  transition: color 120ms ease;2240  align-self: flex-start;2241}2242.peach-generate-toggle-link:hover {2243  color: var(--peach-accent);2244}22452246/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2247.peach-entry-body {2248  flex: 1;2249  overflow-y: auto;2250  overflow-x: hidden;2251  scrollbar-width: none;2252  -ms-overflow-style: none;2253  overscroll-behavior: contain;2254  display: grid;2255  gap: 10px;2256  align-content: start;2257  padding: 10px 20px 14px;2258  min-width: 0;2259  min-height: 0;2260}2261.peach-entry-body::-webkit-scrollbar { display: none; }22622263/* Type-toggle pills + inline note toolbar */2264.peach-new-type-row {2265  display: flex;2266  align-items: center;2267  gap: 6px;2268  margin-bottom: 2px;2269}2270.peach-new-type-btn {2271  background: transparent;2272  border: 1px solid var(--peach-t3);2273  border-radius: 12px;2274  padding: 3px 10px;2275  font-family: "IBM Plex Mono", monospace;2276  font-size: 9px;2277  letter-spacing: 0.12em;2278  text-transform: uppercase;2279  color: var(--peach-t2);2280  cursor: pointer;2281  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2282}2283.peach-new-type-btn.is-active {2284  color: var(--peach-t0);2285  border-color: var(--peach-accent);2286  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2287}2288.peach-new-type-btn:not(.is-active):hover {2289  color: var(--peach-t1);2290  border-color: var(--peach-t2);2291}22922293/* Editable title */2294.peach-new-title-wrap { margin: 0 0 2px; }2295.peach-new-title-input {2296  background: transparent;2297  border: none;2298  outline: none;2299  width: 100%;2300  color: var(--peach-t0);2301  font-family: var(--font-display);2302  font-style: italic;2303  font-weight: 400;2304  font-size: 40px;2305  line-height: 0.95;2306  caret-color: var(--peach-accent);2307}2308.peach-new-title-input::placeholder { color: var(--peach-t2); }23092310/* Editable domain field */2311.peach-domain-value--edit {2312  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2313  font-size: 10px;2314  font-style: italic;2315  letter-spacing: 0.12em;2316  color: var(--peach-t1);2317  background: transparent;2318  border: none;2319  border-bottom: 1px solid var(--peach-t3);2320  outline: none;2321  width: 100%;2322  padding: 2px 0;2323  caret-color: var(--peach-accent);2324  transition: border-color 140ms ease, color 140ms ease;2325}2326.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2327.peach-domain-value--edit:focus {2328  border-bottom-color: rgba(240, 232, 216, 0.28);2329  color: var(--peach-t0);2330}23312332/* Editable field values (username, password, totp) */2333.peach-field-value--edit {2334  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2335  font-size: 13px;2336  color: var(--peach-t0);2337  background: transparent;2338  border: none;2339  border-bottom: 1px solid var(--peach-t3);2340  outline: none;2341  flex: 1;2342  min-width: 0;2343  padding: 3px 0;2344  caret-color: var(--peach-accent);2345  transition: border-color 140ms ease, color 140ms ease;2346}2347.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2348.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2349.peach-field-value--edit:focus {2350  border-bottom-color: rgba(240, 232, 216, 0.28);2351  color: var(--peach-t0);2352}23532354/* "+ add optional field" links */2355.peach-entry-add-links {2356  display: flex;2357  gap: 12px;2358  flex-wrap: wrap;2359  margin-top: -2px;2360}2361.peach-add-field-link {2362  background: transparent;2363  border: none;2364  padding: 0;2365  cursor: pointer;2366  font-family: "IBM Plex Mono", monospace;2367  font-size: 9px;2368  letter-spacing: 0.1em;2369  text-transform: uppercase;2370  color: var(--peach-t2);2371  transition: color 140ms ease;2372}2373.peach-add-field-link:hover { color: var(--peach-accent); }23742375/* ── New entry form (legacy classes) ────────────────────────────────── */2376.peach-new-body {2377  flex: 1;2378  overflow-y: auto;2379  padding: 10px 20px 14px;2380}2381.peach-new-name-input {2382  background: transparent;2383  border: none;2384  outline: none;2385  width: 100%;2386  color: var(--peach-t0);2387  font-family: var(--font-display);2388  font-style: italic;2389  font-weight: 400;2390  font-size: 40px;2391  line-height: 0.95;2392  caret-color: var(--peach-accent);2393}2394.peach-new-name-input::placeholder { color: var(--peach-t2); }2395.peach-new-field-input {2396  background: transparent;2397  border: none;2398  outline: none;2399  flex: 1;2400  min-width: 0;2401  caret-color: var(--peach-accent);2402}2403.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }24042405/* ── Canary card ── */2406.peach-canary-card {2407  border: 1px solid rgba(217, 160, 48, 0.2);2408  background: rgba(217, 160, 48, 0.03);2409  border-radius: 8px;2410  padding: 12px;2411}24122413.peach-canary-settings-header {2414  display: flex;2415  align-items: center;2416  justify-content: space-between;2417  cursor: pointer;2418  user-select: none;2419}24202421.peach-canary-card .peach-label {2422  color: rgba(217, 160, 48, 0.85);2423}24242425.peach-canary-card .peach-new-field-input {2426  border-color: rgba(217, 160, 48, 0.25);2427}24282429.peach-canary-card .peach-new-field-input:focus {2430  border-color: rgba(217, 160, 48, 0.5);2431}24322433.peach-canary-body {2434  margin-top: 12px;2435  display: flex;2436  flex-direction: column;2437  gap: 10px;2438}24392440.peach-canary-explainer {2441  display: flex;2442  gap: 10px;2443  padding: 10px 12px;2444  border-radius: 10px;2445  background: rgba(217, 160, 48, 0.06);2446  border: 1px solid rgba(217, 160, 48, 0.22);2447  margin-bottom: 4px;2448}24492450.peach-canary-explainer-icon {2451  font-size: 16px;2452  flex-shrink: 0;2453  line-height: 1.2;2454}24552456.peach-canary-explainer-title {2457  font-family: var(--font-ui);2458  font-size: 11px;2459  font-weight: 500;2460  color: rgba(217, 160, 48, 0.9);2461  margin: 0 0 3px;2462}24632464.peach-canary-explainer-copy {2465  font-family: var(--font-ui);2466  font-size: 10px;2467  color: var(--peach-t2);2468  line-height: 1.55;2469  margin: 0;2470}24712472.peach-canary-hint {2473  font-size: 10px;2474  color: var(--peach-t2);2475  font-family: Inter, system-ui, sans-serif;2476  line-height: 1.5;2477  margin-top: 4px;2478}24792480.peach-canary-actions-row {2481  display: flex;2482  align-items: center;2483  gap: 8px;2484}24852486.peach-canary-test-btn {2487  border-color: rgba(217, 160, 48, 0.3);2488  color: rgba(217, 160, 48, 0.85);2489}24902491.peach-canary-test-result {2492  font-size: 10px;2493  font-family: Inter, system-ui, sans-serif;2494}24952496.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2497.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }24982499.peach-canary-badge {2500  display: flex;2501  position: relative;2502  z-index: 1;2503  align-items: center;2504  gap: 5px;2505  padding: 4px 10px;2506  background: rgba(217, 160, 48, 0.12);2507  border: 1px solid rgba(217, 160, 48, 0.35);2508  border-radius: 6px;2509  margin-bottom: 6px;2510  width: fit-content;2511}25122513.peach-canary-badge-label {2514  font-size: 10px;2515  letter-spacing: 0.06em;2516  color: rgba(217, 160, 48, 0.9);2517  font-family: var(--font-ui);2518  text-transform: uppercase;2519}25202521.peach-canary-badge-icon {2522  font-size: 11px;2523}25242525.peach-canary-suppress-row {2526  display: flex;2527  align-items: center;2528  gap: 8px;2529  padding: 6px 10px;2530  background: rgba(217, 160, 48, 0.08);2531  border-radius: 6px;2532  margin-bottom: 8px;2533}25342535.peach-canary-suppress-label {2536  font-size: 11px;2537  color: rgba(217, 160, 48, 0.85);2538  cursor: pointer;2539  font-family: var(--font-ui);2540  letter-spacing: 0.04em;2541}25422543.peach-regen-panel {2544  position: relative;2545  z-index: 1;2546  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2547  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2548  border-radius: 8px;2549  padding: 12px;2550  margin-bottom: 8px;2551}25522553.peach-regen-panel-header {2554  display: flex;2555  align-items: center;2556  justify-content: space-between;2557  margin-bottom: 10px;2558}25592560.peach-regen-panel-title {2561  font-size: 11px;2562  font-weight: 600;2563  letter-spacing: 0.06em;2564  text-transform: uppercase;2565  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2566}25672568.peach-regen-output {2569  background: rgba(0, 0, 0, 0.2);2570  border-radius: 6px;2571  padding: 10px;2572  margin-bottom: 10px;2573  font-family: var(--font-mono);2574  font-size: 13px;2575  word-break: break-all;2576  color: var(--peach-t1);2577}25782579.peach-regen-actions {2580  display: flex;2581  gap: 6px;2582}25832584.peach-regen-actions--spaced {2585  margin-bottom: 8px;2586}25872588.peach-regen-action-grow {2589  flex: 1;2590}25912592.peach-regen-copy-btn {2593  padding: 0 8px;2594}25952596.peach-regen-success {2597  position: relative;2598  z-index: 1;2599  background: rgba(40, 180, 80, 0.1);2600  border: 1px solid rgba(40, 180, 80, 0.3);2601  border-radius: 8px;2602  padding: 10px 12px;2603  margin-bottom: 8px;2604  display: flex;2605  align-items: center;2606  gap: 8px;2607  font-size: 11px;2608  color: rgba(40, 180, 80, 0.9);2609}26102611/* ── Note editor overlay ── */2612.peach-note-editor {2613  position: absolute;2614  inset: 0;2615  z-index: 200;2616  display: flex;2617  flex-direction: column;2618  background:2619    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2620    var(--peach-bg);2621  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2622}26232624.peach-note-editor-header {2625  display: flex;2626  align-items: center;2627  gap: 10px;2628  padding: 14px 16px 10px;2629  border-bottom: 1px solid var(--peach-t3);2630  flex-shrink: 0;2631}26322633.peach-note-editor-back {2634  background: transparent;2635  border: none;2636  cursor: pointer;2637  color: var(--peach-t2);2638  padding: 4px 6px;2639  border-radius: 6px;2640  display: flex;2641  align-items: center;2642  transition: color 120ms ease, background 120ms ease;2643  flex-shrink: 0;2644}2645.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }26462647.peach-note-editor-label {2648  flex: 1;2649  font-family: var(--font-display);2650  font-style: italic;2651  font-size: 15px;2652  color: var(--peach-t1);2653  letter-spacing: 0.02em;2654}26552656.peach-note-editor-save-btn {2657  background: transparent;2658  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2659  border-radius: 8px;2660  color: var(--peach-accent);2661  font-family: "IBM Plex Mono", monospace;2662  font-size: 10px;2663  letter-spacing: 0.06em;2664  text-transform: uppercase;2665  padding: 3px 10px;2666  cursor: pointer;2667  transition: background 120ms ease, border-color 120ms ease;2668}2669.peach-note-editor-save-btn:hover:not(:disabled) {2670  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2671  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2672}2673.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }26742675.peach-note-toolbar {2676  display: flex;2677  align-items: center;2678  gap: 3px;2679  padding: 6px 14px 5px;2680  border-bottom: 1px solid var(--peach-t3);2681  flex-shrink: 0;2682}26832684.peach-note-tool-btn {2685  background: transparent;2686  border: 1px solid transparent;2687  border-radius: 5px;2688  color: var(--peach-t2);2689  font-family: "IBM Plex Mono", monospace;2690  font-size: 10px;2691  letter-spacing: 0.04em;2692  padding: 2px 8px;2693  cursor: pointer;2694  line-height: 1.6;2695  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2696}2697.peach-note-tool-btn:hover {2698  background: var(--peach-t4);2699  color: var(--peach-t0);2700  border-color: var(--peach-t3);2701}27022703.peach-note-tool-icon {2704  padding: 3px 7px;2705  display: inline-flex;2706  align-items: center;2707  justify-content: center;2708}27092710.peach-note-tool-divider {2711  width: 1px;2712  height: 14px;2713  background: var(--peach-t3);2714  margin: 0 4px;2715  flex-shrink: 0;2716}27172718.peach-note-editor-body {2719  flex: 1;2720  overflow-y: auto;2721  padding: 16px 20px 20px;2722  outline: none;2723  font-family: var(--font-display);2724  font-size: 16px;2725  line-height: 1.75;2726  color: var(--peach-t0);2727  scrollbar-width: none;2728  word-break: break-word;2729}2730.peach-note-editor-body:empty::before {2731  content: "write your note…";2732  color: var(--peach-t3);2733  font-style: italic;2734  pointer-events: none;2735}27362737/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2738.peach-note-editor-inline {2739  display: flex;2740  flex-direction: column;2741  flex: 1;2742  min-height: 0;2743}2744.peach-note-editor-body--inline {2745  flex: 1;2746  min-height: 0;2747  font-size: 15px;2748  padding: 10px 20px 14px;2749}27502751/* Full-width toolbar row inside the body (Add.tsx note type).2752   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2753.peach-note-toolbar-body {2754  display: flex;2755  align-items: center;2756  gap: 3px;2757  padding: 5px 20px 4px;2758  margin: 2px -20px 0;2759  border-bottom: 1px solid var(--peach-t3);2760  flex-shrink: 0;2761}27622763/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2764   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2765   and .peach-note-tool-divider button-level styles. */2766.peach-note-toolbar-inline {2767  display: flex;2768  align-items: center;2769  gap: 3px;2770  margin-left: auto;2771  padding-left: 10px;2772  border-left: 1px solid var(--peach-t3);2773  min-height: 22px;2774}27752776/* Entry.tsx toolbar row (no tabs, toolbar only) */2777.peach-entry-note-toolbar-row {2778  display: flex;2779  align-items: center;2780  margin: 4px 0 6px;2781  position: relative;2782  z-index: 1;2783}2784.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2785  border-left: none;2786  padding-left: 0;2787  margin-left: 0;2788}27892790/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2791.peach-note-body {2792  display: flex;2793  flex-direction: column;2794  flex: 1;2795  min-height: 0;2796  margin: 4px 0 0;2797}2798.peach-entry-body--new .peach-note-body {2799  margin: 8px -20px 0;2800}28012802/* Add.tsx body is a grid by default; swap to a flex column when a note is2803   active so the note body can stretch and pin the tags row to the bottom. */2804.peach-entry-body--new:has(.peach-note-body) {2805  display: flex;2806  flex-direction: column;2807}28082809/* Rich content element styles (editor + display) */2810.peach-note-editor-body h2,2811.peach-note-content h2 {2812  font-family: var(--font-display);2813  font-size: 20px;2814  font-weight: 600;2815  font-style: italic;2816  color: var(--peach-t0);2817  margin: 6px 0 2px;2818  line-height: 1.3;2819}2820.peach-note-editor-body ul,2821.peach-note-content ul {2822  padding-left: 18px;2823  margin: 3px 0;2824  list-style: disc;2825}2826.peach-note-editor-body ol,2827.peach-note-content ol {2828  padding-left: 18px;2829  margin: 3px 0;2830  list-style: decimal;2831}2832.peach-note-editor-body li,2833.peach-note-content li { margin: 2px 0; }2834.peach-note-editor-body hr,2835.peach-note-content hr {2836  border: none;2837  border-top: 1px solid var(--peach-t3);2838  margin: 10px 0;2839}28402841/* font size elements from execCommand */2842.peach-note-editor-body font[size="1"],2843.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2844.peach-note-editor-body font[size="2"],2845.peach-note-content font[size="2"] { font-size: 13px; }2846.peach-note-editor-body font[size="3"],2847.peach-note-content font[size="3"] { font-size: 16px; }2848.peach-note-editor-body font[size="4"],2849.peach-note-content font[size="4"] { font-size: 20px; }2850.peach-note-editor-body font[size="5"],2851.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }28522853/* bold / italic inside the editor and note display */2854.peach-note-editor-body b, .peach-note-editor-body strong,2855.peach-note-content b, .peach-note-content strong { font-weight: 700; }2856.peach-note-editor-body em, .peach-note-editor-body i,2857.peach-note-content em, .peach-note-content i { font-style: italic; }28582859/* note display — rendered HTML, no pre-wrap */2860.peach-note-content {2861  overflow: auto;2862  max-height: 340px;2863  word-break: break-word;2864}28652866/* ── Note textarea ── */2867.peach-note-textarea {2868  width: 100%;2869  min-height: 180px;2870  max-height: 280px;2871  resize: vertical;2872  background: var(--peach-t4);2873  border: 1px solid var(--peach-t3);2874  border-radius: 8px;2875  padding: 10px 12px;2876  font-family: "IBM Plex Mono", monospace;2877  font-size: 12px;2878  line-height: 1.7;2879  color: var(--peach-t1);2880  outline: none;2881  transition: border-color 150ms ease;2882}28832884.peach-note-textarea:focus {2885  border-color: var(--peach-t2);2886}28872888.peach-note-char-count {2889  font-family: "IBM Plex Mono", monospace;2890  font-size: 9px;2891  color: var(--peach-t3);2892  text-align: right;2893  margin-top: 4px;2894  letter-spacing: 0.1em;2895}28962897/* ── Field input baseline ── */2898.peach-new-field-input {2899  width: 100%;2900  background: transparent;2901  border: none;2902  border-bottom: 1px solid var(--peach-t3);2903  padding: 4px 0;2904  color: var(--peach-t1);2905  font-family: "IBM Plex Mono", monospace;2906  font-size: 13px;2907  outline: none;2908  transition: border-color 150ms ease;2909}29102911.peach-new-field-input:focus {2912  border-bottom-color: var(--peach-t0);2913  color: var(--peach-t0);2914}29152916.peach-new-name-input {2917  width: 100%;2918  background: transparent;2919  border: none;2920  border-bottom: 1px solid var(--peach-t3);2921  padding: 6px 0;2922  font-family: var(--font-display);2923  font-style: italic;2924  font-size: 28px;2925  color: var(--peach-t0);2926  outline: none;2927  transition: border-color 150ms ease;2928}29292930.peach-new-name-input:focus {2931  border-bottom-color: var(--peach-t1);2932}29332934.peach-new-name-input::placeholder {2935  color: var(--peach-t2);2936  font-style: italic;2937}29382939.peach-new-field-input::placeholder {2940  color: var(--peach-t3);2941}29422943/* ── Demo entrance animation ── */2944#hd-shell {2945  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2946}2947@keyframes hd-shell-enter {2948  from { opacity: 0; transform: scale(0.96) translateY(16px); }2949  to   { opacity: 1; transform: scale(1) translateY(0); }2950}29512952/* ── Keyframes ── */2953@keyframes peach-char-enter {2954  from { opacity: 0; transform: translateY(0.22em); }2955  to   { opacity: 1; transform: translateY(0); }2956}2957@keyframes peach-content-enter {2958  from { opacity: 0.96; transform: translateY(4px); }2959  to   { opacity: 1; transform: translateY(0); }2960}2961@keyframes peach-content-exit {2962  from { opacity: 1; transform: translateY(0); }2963  to   { opacity: 0.92; transform: translateY(-3px); }2964}2965@keyframes peach-screen-enter {2966  from { opacity: 0; transform: translateY(14px); }2967  to   { opacity: 1; transform: translateY(0); }2968}2969@keyframes peach-shell-fade-in {2970  from { opacity: 0; }2971  to   { opacity: 1; }2972}2973@keyframes peach-veil-in {2974  from { opacity: 0; }2975  to   { opacity: 1; }2976}2977@keyframes peach-lock-settle {2978  0%   { transform: scale(0.9); }2979  65%  { transform: scale(1.08); }2980  100% { transform: scale(1); }2981}2982@keyframes peach-copy-confirm {2983  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2984  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); }2985}2986@keyframes peach-copy-retreat {2987  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); }2988  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2989}2990@keyframes peach-copy-flood {2991  from { opacity: 0; transform: scaleX(0.15); }2992  to   { opacity: 1; transform: scaleX(1); }2993}2994@keyframes peach-copy-icon-settle {2995  from  { transform: scale(0.84); }2996  70%   { transform: scale(1.08); }2997  to    { transform: scale(1); }2998}2999@keyframes peach-copy-sheen-retreat {3000  from { opacity: 1; transform: scaleX(1); }3001  to   { opacity: 0; transform: scaleX(0.15); }3002}3003@keyframes peach-copy-drain {3004  from { width: 100%; }3005  to   { width: 0; }3006}3007@keyframes peach-shake {3008  0%, 100% { transform: translateX(0); }3009  20%      { transform: translateX(-6px); }3010  40%      { transform: translateX(6px); }3011  60%      { transform: translateX(-4px); }3012  80%      { transform: translateX(4px); }3013}30143015@keyframes pip-pulse {3016  0% { transform: scale(1); }3017  40% { transform: scale(2.2); }3018  100% { transform: scale(1); }3019}302030213022/* ── Password generator ── */3023.peach-pwgen-body {3024  flex: 1; overflow-y: auto;3025  display: flex; flex-direction: column;3026}3027.peach-policy-badge {3028  display: flex; align-items: center;3029  padding: 6px 20px 0;3030  font-size: 10px; font-family: Inter, sans-serif;3031  color: var(--peach-t2); letter-spacing: 0.04em;3032}3033.peach-pwgen-display {3034  padding: 14px 20px 12px;3035  border-bottom: 1px solid var(--peach-t3);3036  display: flex; align-items: flex-start; gap: 10px;3037}3038.peach-pwgen-display-row {3039  display: flex;3040  align-items: flex-start;3041  gap: 8px;3042  padding-bottom: 8px;3043  border-bottom: 1px solid var(--peach-t3);3044}3045.peach-pwgen-output {3046  flex: 1; min-width: 0; margin: 0;3047  font-family: "IBM Plex Mono", monospace;3048  font-size: 13px; color: var(--peach-t0);3049  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3050  white-space: normal;3051  padding: 10px 12px;3052  background: var(--peach-t4);3053  border-radius: 6px;3054  min-height: 36px;3055}3056.peach-pwgen-output-display {3057  flex: 1;3058  min-width: 0;3059  margin: 0;3060  font-family: var(--font-display);3061  font-style: italic;3062  font-weight: 300;3063  font-size: 32px;3064  line-height: 1.05;3065  color: var(--peach-t0);3066  word-break: break-all;3067  overflow-wrap: break-word;3068  white-space: normal;3069  letter-spacing: 0.02em;3070}3071.peach-pwgen-display-actions {3072  display: flex;3073  flex-direction: column;3074  gap: 4px;3075  flex-shrink: 0;3076  margin-top: 2px;3077}3078.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3079.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3080.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3081.peach-pwgen-len-num {3082  font-family: "IBM Plex Mono", monospace;3083  font-size: 12px; color: var(--peach-accent);3084}3085.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3086.peach-pwgen-toggles { display: flex; flex-direction: column; }3087.peach-pwgen-charset-pills {3088  display: flex;3089  gap: 6px;3090  flex-wrap: wrap;3091}3092.peach-pwgen-pill {3093  padding: 4px 11px;3094  border-radius: 999px;3095  border: 1px solid var(--peach-t3);3096  background: transparent;3097  color: var(--peach-t2);3098  font-family: "IBM Plex Mono", monospace;3099  font-size: 9px;3100  letter-spacing: 0.08em;3101  cursor: pointer;3102  transition: all 150ms ease;3103}3104.peach-pwgen-pill.is-on {3105  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3106  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3107  color: var(--peach-accent);3108}3109.peach-pwgen-pill:not(.is-on):hover {3110  color: var(--peach-t1);3111  border-color: var(--peach-t2);3112}3113.peach-pwgen-use-btn {3114  width: 100%;3115  min-height: 34px;3116  border-radius: 8px;3117  margin-top: 2px;3118}3119.peach-pwgen-toggle-row {3120  display: flex; align-items: center; justify-content: space-between;3121  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3122}3123.peach-pwgen-toggle-row:last-child { border-bottom: none; }3124.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }31253126.peach-screen-prelock {3127  z-index: 10;3128}31293130.prelock-form {3131  display: grid;3132  gap: 12px;3133}31343135/* Peach popup should not expose native scrollbars on internal panels. */3136.peach-settings-body,3137.peach-new-body,3138.peach-pwgen-body,3139.lock-screen,3140.peach-import-preview {3141  scrollbar-width: none;3142  -ms-overflow-style: none;3143  overscroll-behavior: contain;3144}3145.peach-settings-body::-webkit-scrollbar,3146.peach-new-body::-webkit-scrollbar,3147.peach-pwgen-body::-webkit-scrollbar,3148.lock-screen::-webkit-scrollbar,3149.peach-import-preview::-webkit-scrollbar {3150  width: 0;3151  height: 0;3152  display: none;3153}31543155.lock-screen {3156  height: 100%;3157  min-height: 100%;3158  overflow-y: auto;3159  padding: 18px 18px 16px;3160  gap: 14px;3161  grid-template-rows: auto auto auto 1fr auto;3162  align-content: stretch;3163  position: relative;3164  isolation: isolate;3165}3166.peach-screen.lock-screen--vault-stage {3167  display: flex;3168  flex-direction: column;3169  justify-content: flex-start;3170  gap: 18px;3171  padding: 20px 18px 18px;3172  overflow: hidden;3173}3174.peach-screen.lock-screen--vault-stage .peach-lock-panel {3175  margin-top: auto;3176}3177.lock-screen--onboarding {3178  display: flex;3179  flex-direction: column;3180  gap: 12px;3181  justify-content: flex-start;3182}31833184.lock-screen::before {3185  content: "";3186  position: absolute;3187  inset: 12px 18px auto auto;3188  width: 160px;3189  height: 160px;3190  border-radius: 999px;3191  background:3192    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%);3193  filter: blur(6px);3194  opacity: 0.7;3195  pointer-events: none;3196  z-index: 0;3197}31983199.lock-screen-header {3200  display: flex;3201  align-items: center;3202  justify-content: space-between;3203  position: relative;3204  z-index: 1;3205}32063207.lock-password-input.shake {3208  animation: peach-shake 300ms ease-in-out;3209}32103211.peach-hint-error {3212  color: rgba(220, 80, 60, 0.92);3213}32143215.peach-onboarding-headline {3216  margin: 0;3217  font-family: var(--font-display);3218  font-size: 35px;3219  line-height: 0.88;3220  font-style: italic;3221  font-weight: 400;3222  max-width: 252px;3223}32243225.peach-lock-copy {3226  display: grid;3227  gap: 8px;3228  position: relative;3229  z-index: 1;3230}32313232.peach-lock-copy--onboarding {3233  gap: 10px;3234}32353236.peach-lock-hero {3237  position: relative;3238  z-index: 1;3239  display: grid;3240  gap: 8px;3241  min-height: 0;3242  padding: 4px 2px 0;3243  border: none;3244  border-radius: 0;3245  background: transparent;3246  box-shadow: none;3247}3248.peach-lock-hero-art {3249  position: absolute;3250  right: -8px;3251  top: -6px;3252  width: 120px;3253  height: 120px;3254  display: flex;3255  align-items: center;3256  justify-content: center;3257  pointer-events: none;3258  opacity: 0.12;3259  filter: saturate(0.9);3260}3261.peach-lock-hero-mark {3262  width: 100%;3263  height: 100%;3264}3265/* Peach body stays brand-peach across every accent — we don't want a3266   green or blue peach when sage/sky is selected. Leaf + stem keep the3267   sage tint because a real peach has a sage leaf. */3268.peach-lock-hero-mark path:nth-child(2),3269.peach-lock-hero-mark path:nth-child(3) {3270  stroke: rgba(123, 144, 96, 0.88);3271  fill: rgba(123, 144, 96, 0.88);3272}3273.peach-lock-hero > *:not(.peach-lock-hero-art) {3274  position: relative;3275  z-index: 1;3276}32773278.peach-lock-eyebrow {3279  display: inline-flex;3280  align-items: center;3281  width: fit-content;3282  padding: 4px 9px;3283  border-radius: 999px;3284  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3285  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3286  color: var(--peach-t0);3287  font-family: "IBM Plex Mono", monospace;3288  font-size: 8px;3289  letter-spacing: 0.18em;3290  text-transform: uppercase;3291}32923293.peach-lock-label-row {3294  display: flex;3295  align-items: center;3296  justify-content: space-between;3297  margin-bottom: 0;3298}32993300.peach-lock-reveal-btn {3301  display: inline-flex;3302  align-items: center;3303  gap: 4px;3304  background: none;3305  border: none;3306  cursor: pointer;3307  font-family: "IBM Plex Mono", monospace;3308  font-size: 9px;3309  letter-spacing: 0.06em;3310  color: var(--peach-t2);3311  padding: 2px 0;3312  transition: color 150ms ease;3313}33143315.peach-lock-reveal-btn:hover {3316  color: var(--peach-t1);3317}33183319.peach-lock-warning {3320  color: rgba(220, 80, 60, 0.85) !important;3321  line-height: 1.5;3322}33233324.peach-onboarding-cards {3325  display: grid;3326  gap: 8px;3327  position: relative;3328  z-index: 1;3329}33303331.peach-lock-panel {3332  position: relative;3333  z-index: 1;3334  display: grid;3335  gap: 9px;3336  padding: 14px 16px 15px;3337  border-radius: 18px;3338  border: 1px solid var(--peach-t3);3339  background:3340    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3341  box-shadow:3342    inset 0 1px 0 rgba(240, 232, 216, 0.04),3343    0 12px 28px rgba(0, 0, 0, 0.12);3344}33453346.peach-lock-panel--secondary {3347  gap: 12px;3348}33493350.peach-lock-panel-header {3351  display: flex;3352  align-items: baseline;3353  justify-content: space-between;3354  gap: 12px;3355}33563357.peach-lock-option-grid {3358  display: grid;3359  gap: 10px;3360}33613362.peach-lock-option {3363  width: 100%;3364  display: grid;3365  gap: 6px;3366  padding: 14px 15px;3367  border-radius: 16px;3368  border: 1px solid rgba(240, 232, 216, 0.08);3369  background: rgba(240, 232, 216, 0.02);3370  color: var(--peach-t0);3371  text-align: left;3372  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3373}33743375.peach-lock-option:hover {3376  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3377  background: rgba(240, 232, 216, 0.04);3378  transform: translateY(-1px);3379}33803381.peach-lock-option-title {3382  font-size: 12px;3383  color: var(--peach-t0);3384}33853386.peach-lock-option-copy {3387  font-size: 11px;3388  line-height: 1.55;3389  color: var(--peach-t1);3390}33913392.peach-onboarding-stack {3393  margin-top: 2px;3394}3395.peach-lock-panel-footer {3396  display: grid;3397  gap: 6px;3398  margin-top: 2px;3399  padding-top: 10px;3400  border-top: 1px solid rgba(240, 232, 216, 0.06);3401}34023403/* Restore picker panel — method option cards */3404.peach-lock-panel--restore {3405  gap: 10px;3406}3407.peach-lock-option--history {3408  border-color: rgba(240, 232, 216, 0.06);3409  opacity: 0.85;3410}34113412/* Snapshot restore panel */3413.peach-snapshot-panel {3414  gap: 10px;3415  overflow-y: auto;3416  max-height: 340px;3417}3418.peach-snapshot-list {3419  display: flex;3420  flex-direction: column;3421  gap: 4px;3422}3423.peach-snapshot-row {3424  display: flex;3425  align-items: center;3426  justify-content: space-between;3427  width: 100%;3428  padding: 8px 10px;3429  border-radius: 8px;3430  border: 1px solid rgba(240, 232, 216, 0.07);3431  background: transparent;3432  cursor: pointer;3433  transition: border-color 120ms, background 120ms;3434  text-align: left;3435  gap: 8px;3436}3437.peach-snapshot-row:hover {3438  border-color: rgba(240, 232, 216, 0.14);3439  background: rgba(240, 232, 216, 0.03);3440}3441.peach-snapshot-row.is-selected {3442  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3443  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3444}3445.peach-snapshot-time {3446  font-size: 11.5px;3447  color: var(--peach-t0);3448  flex: 1;3449}3450.peach-snapshot-count {3451  font-family: "IBM Plex Mono", monospace;3452  font-size: 10px;3453  color: var(--peach-t2);3454  flex-shrink: 0;3455}3456.peach-snapshot-confirm {3457  display: flex;3458  flex-direction: column;3459  gap: 8px;3460  padding-top: 10px;3461  border-top: 1px solid rgba(240, 232, 216, 0.06);3462}3463.peach-snapshot-warning {3464  display: flex;3465  align-items: flex-start;3466  gap: 6px;3467  font-size: 10.5px;3468  color: rgba(220, 80, 60, 0.85);3469  line-height: 1.55;3470}3471.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3472.peach-snapshot-confirm-row {3473  display: flex;3474  gap: 6px;3475  align-items: center;3476}3477.peach-snapshot-restore-btn {3478  width: 100%;3479}3480.peach-lock-hero--unlock .peach-lock-hero-art {3481  width: 112px;3482  height: 112px;3483  right: 0;3484  top: 2px;3485  opacity: 0.1;3486}34873488.peach-card {3489  border: 1px solid var(--peach-t3);3490  border-radius: 18px;3491  background:3492    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3493  box-shadow:3494    inset 0 0 0 1px var(--peach-border-accent),3495    inset 0 1px 0 rgba(240, 232, 216, 0.04),3496    0 12px 32px rgba(0, 0, 0, 0.14);3497  overflow: hidden;3498}34993500.peach-card-active {3501  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3502  box-shadow:3503    inset 0 1px 0 rgba(240, 232, 216, 0.05),3504    0 16px 38px rgba(0, 0, 0, 0.18),3505    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3506}35073508.peach-card-disabled {3509  opacity: 0.72;3510}35113512.peach-card-header {3513  width: 100%;3514  padding: 13px 16px 11px;3515  background: transparent;3516  color: var(--peach-t0);3517  display: flex;3518  justify-content: space-between;3519  align-items: center;3520  text-align: left;3521  font-size: 12px;3522}35233524.peach-card-body {3525  padding: 0 16px 16px;3526  display: grid;3527  gap: 9px;3528}35293530.peach-card-tag {3531  color: var(--peach-t2);3532  font-family: "IBM Plex Mono", monospace;3533  font-size: 9px;3534  letter-spacing: 0.12em;3535  text-transform: uppercase;3536}35373538.peach-empty-copy {3539  display: grid;3540  gap: 6px;3541  color: var(--peach-t1);3542  font-size: 13px;3543}35443545.peach-lock-submit {3546  width: 100%;3547  box-shadow:3548    0 1px 0 rgba(255,255,255,0.10) inset,3549    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3550    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3551    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3552}35533554.peach-lock-secondary {3555  width: 100%;3556  border-color: var(--peach-t3);3557  background: rgba(240, 232, 216, 0.02);3558}35593560.peach-lock-secondary:hover {3561  background: rgba(240, 232, 216, 0.04);3562}35633564.peach-lock-note {3565  max-width: none;3566  line-height: 1.55;3567  margin: 0;3568}35693570.peach-overlay-action {3571  font-size: 10px;3572  padding: 4px 8px;3573  letter-spacing: 0.06em;3574  min-width: 44px;3575  text-align: center;3576}35773578.peach-overlay-spacer {3579  width: 32px;3580}35813582.peach-inline-action {3583  flex-shrink: 0;3584  font-size: 9px;3585  letter-spacing: 0.1em;3586  text-transform: uppercase;3587  padding: 4px 7px;3588}3589.peach-password-toggle-btn {3590  display: inline-flex;3591  align-items: center;3592  justify-content: center;3593  min-width: 30px;3594  min-height: 26px;3595  padding: 0 7px;3596  border: 1px solid var(--peach-t3);3597  border-radius: 999px;3598  background: rgba(240, 232, 216, 0.04);3599  color: var(--peach-t2);3600  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3601}3602.peach-password-toggle-btn:hover {3603  border-color: var(--peach-t2);3604  color: var(--peach-t0);3605  background: rgba(240, 232, 216, 0.06);3606}36073608.peach-new-textarea {3609  width: 100%;3610  min-height: 88px;3611  resize: vertical;3612  border: 0;3613  outline: none;3614  background: transparent;3615  color: var(--peach-t1);3616  font-family: "IBM Plex Mono", monospace;3617  font-size: 12px;3618  line-height: 1.65;3619  caret-color: var(--peach-accent);3620}36213622.peach-new-textarea::placeholder {3623  color: var(--peach-t2);3624  opacity: 0.7;3625}36263627.peach-settings-actions {3628  display: grid;3629  gap: 8px;3630}36313632.peach-sync-section-label {3633  font-size: 11px;3634  color: var(--peach-t2);3635  text-transform: uppercase;3636  letter-spacing: 0.05em;3637}36383639.peach-sync-device-row {3640  display: flex;3641  justify-content: space-between;3642  align-items: center;3643  padding: 6px 0;3644  border-bottom: 1px solid var(--peach-t3);3645}36463647.peach-sync-device-info {3648  display: flex;3649  flex-direction: column;3650  gap: 2px;3651}36523653.peach-sync-device-name {3654  font-size: 13px;3655  color: var(--peach-t0);3656}36573658.peach-sync-device-meta {3659  font-size: 11px;3660  color: var(--peach-t2);3661}36623663.peach-sync-status-dot {3664  display: inline-block;3665  width: 8px;3666  height: 8px;3667  border-radius: 50%;3668  vertical-align: middle;3669}36703671.peach-sync-remove-btn {3672  color: var(--peach-breach);3673}36743675.peach-sync-hero-icon {3676  color: var(--peach-t1);3677  opacity: 0.85;3678}36793680.peach-import-preview {3681  margin-bottom: 12px;3682  max-height: 152px;3683  overflow-y: auto;3684  border: 1px solid var(--peach-t3);3685  border-radius: 10px;3686  padding: 8px 10px;3687  display: grid;3688  gap: 8px;3689  background: rgba(240, 232, 216, 0.02);3690}36913692.peach-import-preview-row {3693  display: flex;3694  justify-content: space-between;3695  gap: 10px;3696  font-size: 11px;3697  color: var(--peach-t1);3698}36993700.peach-import-preview-title {3701  color: var(--peach-t0);3702  flex: 1;3703  min-width: 0;3704  overflow: hidden;3705  text-overflow: ellipsis;3706  white-space: nowrap;3707}37083709.peach-import-preview-meta {3710  color: var(--peach-t2);3711  flex-shrink: 0;3712  max-width: 42%;3713  overflow: hidden;3714  text-overflow: ellipsis;3715  white-space: nowrap;3716}37173718.peach-import-preview-more {3719  color: var(--peach-t2);3720  font-size: 10px;3721}37223723.peach-restore-copy {3724  margin: 0;3725  color: var(--peach-t1);3726  font-size: 11px;3727  line-height: 1.6;3728}37293730.peach-restore-warning {3731  padding: 10px 12px;3732  border-radius: 12px;3733  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);3734  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3735  color: var(--peach-t0);3736  font-size: 11px;3737  line-height: 1.55;3738}37393740.peach-provider-chips {3741  display: flex;3742  flex-wrap: wrap;3743  gap: 6px;3744}37453746.peach-provider-chip {3747  display: inline-flex;3748  align-items: center;3749  padding: 5px 8px;3750  border-radius: 999px;3751  border: 1px solid var(--peach-t3);3752  background: rgba(240, 232, 216, 0.02);3753  color: var(--peach-t1);3754  font-family: "IBM Plex Mono", monospace;3755  font-size: 8px;3756  letter-spacing: 0.08em;3757  text-transform: uppercase;3758}37593760.peach-restore-file,3761.peach-restore-input {3762  width: 100%;3763  border-radius: 10px;3764  border: 1px solid var(--peach-t3);3765  background: var(--peach-s2);3766  color: var(--peach-t0);3767  font-size: 12px;3768}37693770.peach-restore-file {3771  padding: 9px 10px;3772}37733774.peach-restore-file::file-selector-button {3775  margin-right: 10px;3776  padding: 7px 10px;3777  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3778  border-radius: 999px;3779  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3780  color: var(--peach-t0);3781  font-size: 10px;3782  letter-spacing: 0.08em;3783  text-transform: uppercase;3784  cursor: pointer;3785}37863787.peach-restore-input {3788  padding: 10px 12px;3789}37903791.peach-auth-grid {3792  display: grid;3793  gap: 10px;3794}37953796.peach-import-summary {3797  color: var(--peach-t1);3798  font-size: 12px;3799  line-height: 1.6;3800  margin-bottom: 12px;3801}38023803.peach-restore-error {3804  color: rgba(220, 80, 60, 0.95);3805  font-size: 12px;3806  line-height: 1.55;3807}38083809.peach-cjk-qr-panel {3810  margin-top: 14px;3811  padding: 12px;3812  border-radius: 16px;3813  border: 1px solid var(--peach-t3);3814  background: rgba(240, 232, 216, 0.02);3815  display: grid;3816  gap: 10px;3817}38183819.peach-cjk-qr-frame {3820  display: grid;3821  place-items: center;3822  min-height: 212px;3823  border-radius: 14px;3824  background: #fff;3825  overflow: hidden;3826}38273828.peach-cjk-qr-frame svg {3829  display: block;3830  width: 196px;3831  height: 196px;3832}38333834.peach-cjk-qr-error,3835.peach-cjk-qr-caption {3836  color: var(--peach-t1);3837  font-size: 11px;3838  line-height: 1.55;3839}38403841.peach-cjk-qr-card {3842  max-width: 400px;3843  margin: auto;3844}38453846.peach-cjk-qr-body {3847  padding: 0 20px 20px;3848  text-align: center;3849}38503851.peach-cjk-qr-hint {3852  font-size: 11px;3853  color: var(--peach-t2);3854  margin: 0 0 14px;3855}38563857.peach-cjk-qr-image {3858  border-radius: 4px;3859  display: block;3860  margin: 0 auto;3861  width: 100%;3862  max-width: 320px;3863  height: auto;3864}38653866.peach-pro-badge {3867  padding: 2px 6px;3868  border-radius: 999px;3869  font-family: var(--font-ui);3870  font-size: 10px;3871  letter-spacing: 0.08em;3872  text-transform: uppercase;3873  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3874  color: var(--peach-accent);3875}38763877/* ── Shortcuts rebind table ─────────────────────────────────── */3878.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }3879.peach-shortcut-row {3880  display: flex;3881  align-items: center;3882  gap: 10px;3883  padding: 6px 0;3884}3885.peach-shortcut-row-label {3886  flex: 1;3887  font-size: 12px;3888  color: var(--peach-t0);3889}3890.peach-shortcut-chip {3891  min-width: 64px;3892  padding: 4px 10px;3893  border-radius: 6px;3894  border: 1px solid var(--peach-t3);3895  background: var(--peach-input-bg, var(--surface-card));3896  color: var(--peach-t0);3897  font-family: var(--font-mono);3898  font-size: 11px;3899  letter-spacing: 0.04em;3900  cursor: pointer;3901  text-align: center;3902  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;3903}3904.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }3905.peach-shortcut-chip.is-custom {3906  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3907  color: var(--peach-accent);3908}3909.peach-shortcut-chip.is-capturing {3910  border-color: var(--peach-accent);3911  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3912  color: var(--peach-accent);3913  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;3914}3915@keyframes peach-shortcut-capture-pulse {3916  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }3917  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3918}3919.peach-shortcut-reset {3920  background: transparent;3921  border: none;3922  cursor: pointer;3923  color: var(--peach-t2);3924  padding: 4px 6px;3925  border-radius: 5px;3926  font-size: 14px;3927  line-height: 1;3928  transition: color 120ms ease, background 120ms ease;3929}3930.peach-shortcut-reset:hover {3931  color: var(--peach-t0);3932  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);3933}3934.peach-shortcuts-conflict {3935  margin: 4px 0 0;3936  padding: 8px 10px;3937  border-radius: 7px;3938  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3939  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);3940  font-family: var(--font-mono);3941  font-size: 11px;3942  color: var(--peach-t0);3943}39443945/* ── Help dialog overlay (? to open) ────────────────────────── */3946.peach-shortcuts-help-backdrop {3947  position: fixed;3948  inset: 0;3949  background: rgba(0, 0, 0, 0.55);3950  backdrop-filter: blur(2px);3951  display: flex;3952  align-items: center;3953  justify-content: center;3954  z-index: 1000;3955  animation: peach-help-fade-in 140ms ease forwards;3956}3957@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }3958.peach-shortcuts-help-card {3959  width: min(320px, 92vw);3960  max-height: 80vh;3961  overflow-y: auto;3962  border-radius: 14px;3963  border: 1px solid var(--peach-t3);3964  background: var(--peach-bg);3965  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);3966  padding: 16px 18px 18px;3967  display: flex;3968  flex-direction: column;3969  gap: 12px;3970}3971.peach-shortcuts-help-head {3972  display: flex; align-items: center; justify-content: space-between;3973}3974.peach-shortcuts-help-head h3 {3975  margin: 0;3976  font-family: var(--font-display);3977  font-style: italic;3978  font-weight: 400;3979  font-size: 22px;3980  color: var(--peach-t0);3981}3982.peach-shortcuts-help-close {3983  background: transparent;3984  border: none;3985  color: var(--peach-t2);3986  cursor: pointer;3987  font-size: 14px;3988  padding: 4px 8px;3989  border-radius: 5px;3990}3991.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }3992.peach-shortcuts-help-body ul {3993  list-style: none; padding: 0; margin: 4px 0 12px;3994  display: grid; gap: 8px;3995}3996.peach-shortcuts-help-body li {3997  display: flex; align-items: center; justify-content: space-between; gap: 12px;3998  font-size: 12px; color: var(--peach-t0);3999}4000.peach-shortcuts-help-body kbd {4001  font-family: var(--font-mono);4002  font-size: 11px;4003  padding: 3px 8px;4004  border-radius: 6px;4005  background: var(--surface-card);4006  border: 1px solid var(--peach-t3);4007  color: var(--peach-accent);4008  letter-spacing: 0.04em;4009}40104011/* ── Pro promo on Account screen ────────────────────────────── */4012.peach-pro-promo {4013  position: relative;4014  border-radius: 14px;4015  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4016  background:4017    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4018    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4019    var(--surface-card);4020  overflow: hidden;4021  margin-bottom: 14px;4022}4023.peach-pro-promo-glow {4024  position: absolute;4025  inset: -40% -20% auto auto;4026  width: 220px; height: 220px;4027  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4028  pointer-events: none;4029  filter: blur(8px);4030}4031.peach-pro-promo-inner {4032  position: relative;4033  padding: 18px 18px 16px;4034}4035.peach-pro-promo-title {4036  font-family: var(--font-display);4037  font-style: italic;4038  font-weight: 400;4039  font-size: 28px;4040  line-height: 1;4041  letter-spacing: -0.005em;4042  color: var(--peach-t0);4043  margin: 0 0 4px;4044}4045.peach-pro-promo-tagline {4046  font-family: var(--font-mono);4047  font-size: 10px;4048  letter-spacing: 0.06em;4049  color: var(--peach-t2);4050  margin: 0 0 14px;4051}4052.peach-pro-promo-list {4053  list-style: none;4054  margin: 0 0 16px;4055  padding: 0;4056  display: grid;4057  gap: 9px;4058}4059.peach-pro-promo-list li {4060  display: flex;4061  align-items: flex-start;4062  gap: 9px;4063  font-size: 12px;4064  color: var(--peach-t1);4065  line-height: 1.4;4066}4067.peach-pro-promo-list svg {4068  width: 14px;4069  height: 14px;4070  flex-shrink: 0;4071  color: var(--peach-accent);4072  margin-top: 2px;4073}4074.peach-pro-promo-list span {4075  color: var(--peach-t0);4076}4077.peach-pro-promo-cta {4078  width: 100%;4079  background: var(--peach-accent);4080  color: #fff;4081  border: none;4082  padding: 9px 12px;4083  border-radius: 9px;4084  font-size: 12px;4085  font-weight: 500;4086  font-family: var(--font-ui);4087  letter-spacing: 0.02em;4088  text-decoration: none;4089  display: inline-flex;4090  align-items: center;4091  justify-content: center;4092  cursor: pointer;4093  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4094  box-shadow: 0 2px 16px var(--peach-glow);4095}4096.peach-pro-promo-cta:hover {4097  filter: brightness(1.07);4098  box-shadow: 0 4px 24px var(--peach-glow);4099  transform: translateY(-1px);4100}4101.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }41024103.peach-pro-or-divider {4104  display: flex;4105  align-items: center;4106  gap: 10px;4107  margin: 4px 0 12px;4108  font-family: var(--font-mono);4109  font-size: 10px;4110  letter-spacing: 0.06em;4111  color: var(--peach-t2);4112  text-transform: uppercase;4113}4114.peach-pro-or-divider::before,4115.peach-pro-or-divider::after {4116  content: "";4117  flex: 1;4118  height: 1px;4119  background: var(--peach-t3);4120}41214122.peach-loading {4123  position: absolute;4124  inset: 0;4125  display: flex;4126  align-items: center;4127  justify-content: center;4128  background: var(--bg);4129  animation: peach-loading-pulse 1.2s ease-in-out infinite;4130}41314132@keyframes peach-loading-pulse {4133  0%, 100% { opacity: 0.6; }4134  50% { opacity: 1; }4135}41364137/* ── Health Dashboard ─────────────────────────────────────────────────── */4138.peach-health-body {4139  flex: 1;4140  overflow-y: auto;4141  display: flex;4142  flex-direction: column;4143}41444145.peach-health-summary {4146  padding: 10px 16px 6px;4147  font-family: "IBM Plex Mono", monospace;4148  font-size: 11px;4149}4150.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4151.peach-health-summary-ok { color: var(--peach-t2); }41524153.peach-health-check-row {4154  padding: 0 16px 10px;4155}4156.peach-health-check-btn {4157  width: 100%;4158  display: flex;4159  align-items: center;4160  justify-content: center;4161}41624163.peach-health-sections {4164  flex: 1;4165  display: flex;4166  flex-direction: column;4167}41684169.peach-health-section {4170  border-bottom: 1px solid var(--peach-t3);4171}41724173.peach-health-section-header {4174  width: 100%;4175  display: flex;4176  align-items: center;4177  justify-content: space-between;4178  padding: 9px 16px;4179  background: transparent;4180  cursor: pointer;4181  color: var(--peach-t0);4182}41834184.peach-health-section-title-row {4185  display: flex;4186  align-items: center;4187  gap: 8px;4188}41894190.peach-health-count-badge {4191  display: inline-flex;4192  align-items: center;4193  justify-content: center;4194  min-width: 20px;4195  height: 18px;4196  padding: 0 5px;4197  border-radius: 999px;4198  background: rgba(220,80,60,0.15);4199  border: 1px solid rgba(220,80,60,0.25);4200  font-family: "IBM Plex Mono", monospace;4201  font-size: 9px;4202  color: rgba(220,80,60,0.9);4203}42044205.peach-health-section-title {4206  font-family: "IBM Plex Mono", monospace;4207  font-size: 11px;4208  text-transform: uppercase;4209  letter-spacing: 0.1em;4210  color: var(--peach-t1);4211}42124213.peach-health-chevron {4214  color: var(--peach-t2);4215  transition: transform 200ms ease;4216  flex-shrink: 0;4217}4218.peach-health-chevron.is-expanded {4219  transform: rotate(180deg);4220}42214222.peach-health-section-body {4223  padding: 0 16px 10px;4224  display: flex;4225  flex-direction: column;4226  gap: 4px;4227}42284229.peach-health-row {4230  display: flex;4231  align-items: flex-start;4232  justify-content: space-between;4233  gap: 8px;4234  padding: 6px 8px;4235  border-radius: 8px;4236  background: rgba(240,232,216,0.02);4237}42384239.peach-health-row-info {4240  flex: 1;4241  min-width: 0;4242  display: flex;4243  flex-direction: column;4244  gap: 2px;4245}42464247.peach-health-row-name {4248  font-family: var(--font-display);4249  font-size: 15px;4250  font-style: italic;4251  font-weight: 400;4252  color: var(--peach-t0);4253  white-space: nowrap;4254  overflow: hidden;4255  text-overflow: ellipsis;4256}42574258.peach-health-row-meta {4259  font-family: "IBM Plex Mono", monospace;4260  font-size: 9px;4261  color: var(--peach-t2);4262  letter-spacing: 0.05em;4263}42644265.peach-health-fix-btn {4266  font-size: 9px;4267  letter-spacing: 0.08em;4268  text-transform: uppercase;4269  padding: 4px 7px;4270  flex-shrink: 0;4271  display: flex;4272  align-items: center;4273}42744275.peach-health-empty {4276  font-family: "IBM Plex Mono", monospace;4277  font-size: 10px;4278  color: var(--peach-t2);4279  padding: 6px 0;4280}42814282.peach-health-loading {4283  font-family: "IBM Plex Mono", monospace;4284  font-size: 10px;4285  color: var(--peach-t2);4286  padding: 6px 0;4287  display: flex;4288  align-items: center;4289  gap: 6px;4290}42914292.peach-health-loading::before {4293  content: "";4294  width: 10px;4295  height: 10px;4296  border: 1.5px solid var(--peach-t3);4297  border-top-color: var(--peach-accent);4298  border-radius: 50%;4299  animation: peach-spin 600ms linear infinite;4300}43014302@keyframes peach-spin {4303  to { transform: rotate(360deg); }4304}43054306.peach-spinner {4307  width: 32px;4308  height: 32px;4309  border: 2px solid var(--peach-s2);4310  border-top-color: var(--peach-accent);4311  border-radius: 50%;4312  margin: 0 auto 16px;4313  animation: peach-spin 0.8s linear infinite;4314}43154316.peach-progress-screen {4317  text-align: center;4318  padding: 32px 16px;4319}43204321.peach-progress-screen-title {4322  font-size: 13px;4323  color: var(--peach-t0);4324  margin-bottom: 16px;4325}43264327.peach-progress-screen-stage {4328  font-size: 11px;4329  color: var(--peach-t2);4330  min-height: 14px;4331}43324333.peach-progress-screen-note {4334  font-size: 10px;4335  color: var(--peach-t2);4336  margin-top: 8px;4337}43384339.peach-pairing-body {4340  flex: 1;4341  overflow-y: auto;4342  display: flex;4343  flex-direction: column;4344}43454346.peach-pairing-content {4347  flex: 1;4348  display: flex;4349  flex-direction: column;4350  align-items: center;4351  justify-content: center;4352  gap: 14px;4353  padding: 28px 20px;4354  text-align: center;4355}43564357.peach-pairing-headline {4358  font-family: var(--font-display);4359  font-style: italic;4360  font-weight: 300;4361  font-size: 28px;4362  color: var(--peach-t0);4363  margin: 0;4364  line-height: 1;4365}43664367.peach-pairing-subline {4368  font-size: 12px;4369  color: var(--peach-t2);4370  max-width: 220px;4371  line-height: 1.5;4372  margin: 0;4373}43744375.peach-pairing-subline--center {4376  text-align: center;4377}43784379.peach-pairing-code-display {4380  display: flex;4381  gap: 6px;4382}43834384.peach-pairing-code-digit {4385  display: flex;4386  align-items: center;4387  justify-content: center;4388  width: 36px;4389  height: 48px;4390  background: var(--peach-s2);4391  border: 1px solid var(--peach-t3);4392  border-radius: 6px;4393  font-family: var(--font-mono);4394  font-size: 22px;4395  color: var(--peach-t0);4396  letter-spacing: 0;4397}43984399.peach-pairing-countdown-ring {4400  position: relative;4401  display: inline-flex;4402  align-items: center;4403  justify-content: center;4404}44054406.peach-pairing-countdown-num {4407  position: absolute;4408  font-family: var(--font-mono);4409  font-size: 14px;4410  color: var(--peach-t1);4411}44124413.peach-pairing-ring-track {4414  fill: none;4415  stroke: var(--peach-t3);4416  stroke-width: 2;4417}44184419.peach-pairing-ring-progress {4420  fill: none;4421  stroke: var(--peach-accent);4422  stroke-width: 2;4423  stroke-linecap: round;4424  transform: rotate(-90deg);4425  transform-origin: 50% 50%;4426  transition: stroke-dashoffset 0.5s linear;4427}44284429.peach-pairing-code-inputs {4430  display: flex;4431  gap: 8px;4432}44334434.peach-pairing-code-box {4435  width: 36px;4436  height: 48px;4437  text-align: center;4438  background: var(--peach-s2);4439  border: 1px solid var(--peach-t3);4440  border-radius: 6px;4441  font-family: var(--font-mono);4442  font-size: 20px;4443  color: var(--peach-t0);4444  outline: none;4445  transition: border-color 120ms ease;4446}44474448.peach-pairing-code-box:focus {4449  border-color: var(--peach-accent);4450}44514452.peach-pairing-code-box.has-error {4453  border-color: rgba(220, 80, 60, 0.45);4454}44554456.peach-pairing-status {4457  display: flex;4458  align-items: center;4459  gap: 8px;4460  margin: 0;4461  font-size: 12px;4462  color: var(--peach-t1);4463}44644465.peach-pairing-error {4466  margin: 0;4467  font-size: 11px;4468  color: var(--peach-breach);4469}44704471.peach-pairing-error-msg {4472  color: var(--peach-t1);4473}44744475.peach-pairing-spinner {4476  width: 12px;4477  height: 12px;4478  border: 1.5px solid var(--peach-t3);4479  border-top-color: var(--peach-accent);4480  border-radius: 50%;4481  animation: peach-spin 0.8s linear infinite;4482}44834484.peach-pairing-success-icon,4485.peach-pairing-error-icon,4486.peach-pairing-hero {4487  display: inline-flex;4488  align-items: center;4489  justify-content: center;4490}44914492/* Tag chips */4493.peach-tag-chip {4494  display: inline-flex;4495  align-items: center;4496  gap: 4px;4497  padding: 3px 8px;4498  border-radius: 999px;4499  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4500  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4501  color: var(--peach-t0);4502  font-family: "IBM Plex Mono", monospace;4503  font-size: 10px;4504  letter-spacing: 0.04em;4505}45064507.peach-tag-chip-remove {4508  background: transparent;4509  border: none;4510  color: inherit;4511  opacity: 0.6;4512  cursor: pointer;4513  padding: 0;4514  font-size: 12px;4515  line-height: 1;4516}45174518.peach-tag-chip-remove:hover {4519  opacity: 1;4520}45214522/* Tag input */4523.peach-tag-input-wrap {4524  border-bottom: 1px solid var(--peach-t3);4525}45264527.peach-tag-suggestions {4528  display: flex;4529  flex-wrap: wrap;4530  gap: 4px;4531  padding: 6px 0;4532}45334534.peach-tag-suggestion {4535  padding: 2px 8px;4536  border-radius: 999px;4537  border: 1px solid var(--peach-t3);4538  background: var(--peach-s2);4539  color: var(--peach-t1);4540  font-family: "IBM Plex Mono", monospace;4541  font-size: 10px;4542  cursor: pointer;4543  transition: border-color 80ms ease, background 80ms ease;4544}45454546.peach-tag-suggestion:hover {4547  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4548  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4549}45504551/* Tag filter strip */4552.peach-tag-filter-strip {4553  border-bottom: 1px solid var(--peach-t3);4554  flex-shrink: 0;4555}45564557.peach-tag-filter-chip {4558  display: inline-flex;4559  align-items: center;4560  padding: 4px 10px;4561  border-radius: 999px;4562  border: 1px solid var(--peach-t3);4563  background: transparent;4564  color: var(--peach-t2);4565  font-family: "IBM Plex Mono", monospace;4566  font-size: 9px;4567  letter-spacing: 0.06em;4568  text-transform: uppercase;4569  cursor: pointer;4570  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4571  white-space: nowrap;4572}45734574.peach-tag-filter-chip:hover {4575  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4576  color: var(--peach-t1);4577}45784579.peach-tag-filter-chip.is-selected {4580  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4581  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4582  color: var(--peach-t0);4583}45844585/* ─────────────────────────────────────────────────────────────────────────4586   v1.4.12 additions4587   ─────────────────────────────────────────────────────────────────────── */45884589/* Sort bar */4590.peach-sort-bar {4591  display: flex;4592  align-items: center;4593  gap: 4px;4594  padding: 5px 12px;4595  border-bottom: 1px solid var(--peach-t3);4596  flex-shrink: 0;4597  overflow-x: auto;4598  scrollbar-width: none;4599}46004601.peach-sort-btn {4602  padding: 2px 9px;4603  border-radius: 999px;4604  border: 1px solid transparent;4605  background: transparent;4606  color: var(--peach-t2);4607  font-family: "IBM Plex Mono", monospace;4608  font-size: 9px;4609  letter-spacing: 0.07em;4610  text-transform: uppercase;4611  cursor: pointer;4612  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4613  white-space: nowrap;4614}46154616.peach-sort-btn:hover {4617  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4618  color: var(--peach-t1);4619}46204621.peach-sort-btn.is-active {4622  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4623  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4624  color: var(--peach-t0);4625}46264627.peach-sort-domain-hint {4628  margin-left: auto;4629  font-family: "IBM Plex Mono", monospace;4630  font-size: 9px;4631  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4632  white-space: nowrap;4633  overflow: hidden;4634  text-overflow: ellipsis;4635  max-width: 110px;4636}46374638/* Tab-match badge on entry rows */4639.peach-tab-match-badge {4640  display: inline-block;4641  width: 6px;4642  height: 6px;4643  border-radius: 50%;4644  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4645  margin-left: 5px;4646  vertical-align: middle;4647  flex-shrink: 0;4648  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4649}46504651.peach-entry-row.is-tab-match {4652  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4653  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4654}46554656.peach-entry-row.is-tab-match:hover {4657  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4658}46594660/* Entry list stagger entrance */4661@keyframes peach-entry-fadein {4662  from { opacity: 0; transform: translateY(4px); }4663  to   { opacity: 1; transform: translateY(0); }4664}46654666.peach-vault-list .peach-entry-row {4667  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4668  content-visibility: auto;4669  contain-intrinsic-size: auto 44px;4670}46714672/* Button press micro-interaction */4673.peach-btn:active {4674  transform: scale(0.95);4675  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4676}46774678.peach-sort-btn:active,4679.peach-tag-filter-chip:active {4680  transform: scale(0.93);4681  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4682}46834684/* Password strength bar (Lock view + shared) */4685.peach-password-strength {4686  display: flex;4687  align-items: center;4688  gap: 8px;4689  margin-top: 6px;4690}46914692.peach-strength-bar {4693  flex: 1;4694  height: 3px;4695  border-radius: 2px;4696  background: var(--peach-t3);4697  overflow: hidden;4698}46994700.peach-strength-fill {4701  height: 100%;4702  border-radius: 2px;4703  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4704              background 300ms ease;4705}47064707.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4708.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4709.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4710.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }47114712.peach-strength-label {4713  font-family: "IBM Plex Mono", monospace;4714  font-style: italic;4715  font-size: 9px;4716  font-weight: 300;4717  letter-spacing: 0.06em;4718  color: var(--peach-t2);4719  min-width: 36px;4720  text-align: right;4721}47224723.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4724.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4725.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4726.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }47274728/* Duress form */4729.peach-duress-status {4730  padding: 2px 8px;4731  border-radius: 999px;4732  border: 1px solid var(--peach-t3);4733  font-family: "IBM Plex Mono", monospace;4734  font-size: 9px;4735  letter-spacing: 0.07em;4736  text-transform: uppercase;4737  color: var(--peach-t2);4738  flex-shrink: 0;4739}47404741.peach-duress-status.is-active {4742  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4743  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4744  color: var(--peach-t0);4745}47464747.peach-duress-form {4748  padding: 8px 0 4px;4749  display: flex;4750  flex-direction: column;4751  gap: 6px;4752}47534754.peach-duress-form .peach-label {4755  margin-top: 4px;4756}47574758.peach-duress-actions {4759  display: flex;4760  gap: 6px;4761  align-items: center;4762  margin-top: 4px;4763}47644765.peach-duress-actions .peach-btn:first-child {4766  margin-right: auto;4767}47684769/* Improved overlay spring entrance */4770.peach-overlay-view.ov-enter-up {4771  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4772}47734774@keyframes ov-enter-up-spring {4775  from { opacity: 0; transform: translateY(16px) scale(0.98); }4776  to   { opacity: 1; transform: translateY(0) scale(1); }4777}47784779.peach-overlay-view.ov-enter-right {4780  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4781}47824783@keyframes ov-enter-right-spring {4784  from { opacity: 0; transform: translateX(18px) scale(0.98); }4785  to   { opacity: 1; transform: translateX(0) scale(1); }4786}47874788/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4789/* Used when CJKImportView or MainImportView renders during onboarding4790   (no vault yet). Animates like a lock-screen transition. */4791.peach-lock-view {4792  position: absolute;4793  inset: 0;4794  display: flex;4795  flex-direction: column;4796  background:4797    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4798    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4799    var(--peach-bg);4800  z-index: 2;4801  overflow: hidden;4802  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4803}48044805.peach-lock-view-header {4806  display: flex;4807  align-items: center;4808  justify-content: space-between;4809  padding: 16px 18px 12px;4810  flex-shrink: 0;4811}48124813/* ───────── Settings: auto-lock select ───────── */4814.peach-settings-select {4815  font-family: "IBM Plex Mono", monospace;4816  font-size: 11px;4817  background: transparent;4818  border: 1px solid var(--peach-t3);4819  border-radius: 4px;4820  color: var(--peach-t1);4821  padding: 3px 6px;4822  cursor: pointer;4823  outline: none;4824}4825.peach-settings-select:focus {4826  border-color: var(--peach-accent);4827}48284829/* ───────── Duress status pill (new polished) ───────── */4830.peach-duress-status-pill {4831  font-family: "IBM Plex Mono", monospace;4832  font-size: 9px;4833  text-transform: uppercase;4834  letter-spacing: 0.12em;4835  padding: 2px 8px;4836  border-radius: 12px;4837  background: var(--peach-t3);4838  color: var(--peach-t2);4839  flex-shrink: 0;4840}4841.peach-duress-status-pill.is-active {4842  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4843  color: var(--peach-accent);4844}48454846/* ───────── Entry advanced disclosure (canary) ───────── */4847.peach-entry-advanced {4848  margin-top: 12px;4849  border-top: 1px solid var(--peach-t3);4850  padding-top: 10px;4851  position: relative;4852  z-index: 1;4853}4854.peach-entry-advanced-toggle {4855  display: flex;4856  align-items: center;4857  justify-content: space-between;4858  width: 100%;4859  background: transparent;4860  border: none;4861  cursor: pointer;4862  padding: 0;4863  color: var(--peach-t2);4864}4865.peach-canary-section {4866  margin-top: 10px;4867  display: grid;4868  gap: 6px;4869}48704871/* ───────── Import: merge/replace radio choices ───────── */4872.peach-import-choice {4873  display: flex;4874  align-items: flex-start;4875  gap: 10px;4876  padding: 8px 10px;4877  border: 1px solid var(--peach-t3);4878  border-radius: 10px;4879  cursor: pointer;4880  margin-bottom: 6px;4881  transition: border-color 120ms ease, background 120ms ease;4882}4883.peach-import-choice:hover {4884  border-color: var(--peach-accent);4885}4886.peach-import-choice input[type="radio"] {4887  margin-top: 3px;4888  accent-color: var(--peach-accent);4889  flex-shrink: 0;4890}4891.peach-import-choice-main {4892  display: flex;4893  flex-direction: column;4894  gap: 2px;4895  min-width: 0;4896}4897.peach-import-choice-label {4898  font-size: 12px;4899  color: var(--peach-t0);4900}4901.peach-import-choice-sub {4902  font-size: 11px;4903  color: var(--peach-t2);4904  line-height: 1.5;4905}49064907/* ───────── Export: success confirmation strip ───────── */4908.peach-export-success {4909  display: flex;4910  align-items: flex-start;4911  gap: 10px;4912  padding: 12px;4913  border-radius: 12px;4914  border: 1px solid rgba(150, 175, 110, 0.3);4915  background: rgba(150, 175, 110, 0.08);4916  color: var(--peach-t0);4917  font-size: 12px;4918  line-height: 1.55;4919}4920.peach-export-success-check {4921  color: rgba(150, 175, 110, 0.9);4922  font-size: 14px;4923  flex-shrink: 0;4924}49254926/* ── Trash view ──────────────────────────────────────────────────────── */4927.peach-trash-entry-row {4928  display: flex;4929  align-items: center;4930  justify-content: space-between;4931  gap: 8px;4932  padding: 8px 0;4933  border-bottom: 1px solid var(--peach-t3);4934}4935.peach-trash-entry-row:last-child { border-bottom: none; }4936.peach-trash-entry-info {4937  flex: 1;4938  min-width: 0;4939  display: flex;4940  flex-direction: column;4941  gap: 2px;4942}4943.peach-trash-entry-title {4944  font-size: 12px;4945  color: var(--peach-t1);4946  overflow: hidden;4947  text-overflow: ellipsis;4948  white-space: nowrap;4949}4950.peach-trash-entry-meta {4951  font-family: var(--font-mono);4952  font-size: 9px;4953  color: var(--peach-t2);4954  letter-spacing: 0.06em;4955}4956.peach-trash-entry-actions {4957  display: flex;4958  align-items: center;4959  gap: 4px;4960  flex-shrink: 0;4961}4962.peach-trash-list {4963  flex: 1;4964  min-height: 0;4965  overflow-y: auto;4966}4967.peach-trash-notice {4968  margin: 0 20px 16px;4969  margin-top: auto;4970}49714972/* ── Settings shortcuts grid ─────────────────────────────────────────── */4973.peach-shortcuts-grid {4974  display: grid;4975  grid-template-columns: auto 1fr;4976  gap: 6px 12px;4977  align-items: center;4978  padding: 4px 0;4979}4980.peach-shortcut-key {4981  font-family: var(--font-mono);4982  font-size: 10px;4983  color: var(--peach-t0);4984  background: var(--peach-t3);4985  border-radius: 4px;4986  padding: 2px 6px;4987  white-space: nowrap;4988  text-align: center;4989}4990.peach-shortcut-desc {4991  font-size: 11px;4992  color: var(--peach-t1);4993}49944995/* ── Sort bar trash button ───────────────────────────────────────────── */4996.peach-sort-trash-btn {4997  display: flex;4998  align-items: center;4999  justify-content: center;5000  padding: 3px 5px;5001  background: transparent;5002  border: none;5003  cursor: pointer;5004  color: var(--peach-t2);5005  border-radius: 4px;5006  transition: color 140ms ease, background 140ms ease;5007}5008.peach-sort-trash-btn:hover {5009  color: var(--peach-t1);5010  background: var(--peach-t3);5011}5012.peach-sort-trash-btn.is-active {5013  color: var(--peach-accent);5014}50155016/* Accent color picker */5017.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5018.peach-accent-picker {5019  display: flex;5020  flex-wrap: wrap;5021  gap: 7px;5022  padding: 2px 0;5023}5024.peach-accent-swatch {5025  width: 22px;5026  height: 22px;5027  border-radius: 50%;5028  border: 2px solid transparent;5029  cursor: pointer;5030  padding: 0;5031  transition: transform 100ms;5032  outline-offset: 2px;5033}5034.peach-accent-swatch:hover { transform: scale(1.15); }5035.peach-accent-swatch.is-active {5036  border-color: var(--peach-t0);5037  transform: scale(1.1);5038}50395040/* Display font picker — swatch shows an "Aa" preview rendered with each5041   font option so the user can see what they're picking before they pick. */5042.peach-settings-row--font { align-items: flex-start; padding-top: 10px; }5043.peach-font-picker {5044  display: flex;5045  flex-wrap: wrap;5046  gap: 6px;5047  padding: 2px 0;5048  flex: 1;5049  justify-content: flex-end;5050}5051.peach-font-swatch {5052  display: flex;5053  flex-direction: column;5054  align-items: center;5055  gap: 2px;5056  padding: 4px 8px;5057  background: transparent;5058  border: 1px solid var(--peach-t3);5059  border-radius: 6px;5060  cursor: pointer;5061  transition: border-color 100ms, background 100ms;5062  min-width: 56px;5063}5064.peach-font-swatch:hover {5065  border-color: var(--peach-accent-dim);5066  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5067}5068.peach-font-swatch.is-active {5069  border-color: var(--peach-accent);5070  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5071}5072.peach-font-swatch-glyph {5073  font-size: 18px;5074  line-height: 1;5075  color: var(--peach-t0);5076}5077.peach-font-swatch[data-font-preview="cormorant-italic"] .peach-font-swatch-glyph {5078  font-family: "Cormorant Garamond", serif;5079  font-style: italic;5080  font-weight: 400;5081}5082.peach-font-swatch[data-font-preview="cormorant"] .peach-font-swatch-glyph {5083  font-family: "Cormorant Garamond", serif;5084  font-style: normal;5085  font-weight: 400;5086}5087.peach-font-swatch[data-font-preview="inter"] .peach-font-swatch-glyph {5088  font-family: "Inter Variable", "Inter", sans-serif;5089  font-style: normal;5090  font-weight: 400;5091}5092.peach-font-swatch[data-font-preview="system"] .peach-font-swatch-glyph {5093  font-family: system-ui, -apple-system, sans-serif;5094  font-style: normal;5095  font-weight: 400;5096}5097.peach-font-swatch-name {5098  font-family: var(--font-mono);5099  font-size: 8px;5100  letter-spacing: 0.06em;5101  color: var(--peach-t2);5102  text-transform: lowercase;5103}51045105.peach-pill-group {5106  display: flex;5107  gap: 6px;5108}5109.peach-pill-group .peach-btn.is-active {5110  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5111  border-color: var(--peach-accent);5112  color: var(--peach-t0);5113}51145115/* ── Card entry styles ───────────────────────────────────────── */5116.peach-card-number {5117  font-family: var(--peach-mono);5118  letter-spacing: 0.08em;5119}51205121.peach-card-network-badge {5122  font-size: 10px;5123  padding: 1px 5px;5124  border-radius: 4px;5125  border: 0.5px solid var(--peach-border);5126  color: var(--peach-text-dim);5127  margin-left: 6px;5128  vertical-align: middle;5129}51305131.peach-card-expiry-row {5132  display: flex;5133  align-items: center;5134  gap: 8px;5135}51365137.peach-card-expiry-sep {5138  color: var(--peach-text-dim);5139}51405141/* ── Pro tier — upgrade screen ──────────────────────────────── */5142.peach-pro-mark {5143  font-size: 9px;5144  color: var(--peach-accent);5145  margin-left: 6px;5146  vertical-align: super;5147  opacity: 0.7;5148}51495150.peach-pro-mini-badge {5151  display: block;5152  font-size: 10px;5153  font-style: italic;5154  color: var(--peach-accent);5155  letter-spacing: 0.04em;5156  margin-top: -2px;5157  padding-left: 2px;5158  opacity: 0.85;5159  text-align: center;5160}51615162.peach-wordmark-stack {5163  display: inline-flex;5164  flex-direction: column;5165  align-items: center;5166}51675168.peach-pro-upgrade {5169  display: flex;5170  flex-direction: column;5171  gap: 14px;5172  padding: 4px 4px 12px;5173}51745175.peach-pro-upgrade-hero {5176  display: flex;5177  flex-direction: column;5178  align-items: center;5179  gap: 4px;5180  padding: 8px 0 4px;5181}51825183.peach-pro-upgrade-mark {5184  width: 32px;5185  height: 32px;5186}51875188.peach-pro-upgrade-title {5189  font-family: var(--font-display, var(--font-ui));5190  font-size: 22px;5191  margin: 0;5192  color: var(--peach-t0);5193  letter-spacing: 0.01em;5194}51955196.peach-pro-upgrade-tagline {5197  margin: 0;5198  font-style: italic;5199  color: var(--peach-t2);5200  font-size: 12px;5201}52025203.peach-pro-features {5204  display: flex;5205  flex-direction: column;5206  gap: 10px;5207  border-top: 1px solid var(--peach-border);5208  border-bottom: 1px solid var(--peach-border);5209  padding: 14px 4px;5210}52115212.peach-pro-feature {5213  display: flex;5214  gap: 10px;5215  align-items: flex-start;5216}52175218.peach-pro-feature-mark {5219  color: var(--peach-accent);5220  font-size: 14px;5221  line-height: 1.2;5222  flex-shrink: 0;5223  display: inline-block;5224  transform-origin: center;5225}52265227.peach-pro-feature-text {5228  display: flex;5229  flex-direction: column;5230  gap: 2px;5231}52325233.peach-pro-feature-name {5234  font-size: 13px;5235  color: var(--peach-t0);5236}52375238.peach-pro-feature-desc {5239  font-size: 11px;5240  color: var(--peach-t2);5241}52425243.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5244  animation: peach-pulse-accent 600ms ease-out forwards;5245}52465247@keyframes peach-pulse-accent {5248  0%   { opacity: 1; transform: scale(1.4); }5249  100% { opacity: 0.7; transform: scale(1); }5250}52515252.peach-pro-pricing {5253  margin: 0;5254  text-align: center;5255  font-size: 12px;5256  color: var(--peach-t2);5257}52585259.peach-pro-upgrade-cta {5260  align-self: center;5261  width: auto;5262  min-width: 160px;5263  text-align: center;5264  text-decoration: none;5265  display: inline-block;5266  padding: 8px 20px;5267  font-size: 13px;5268}52695270.peach-pro-key-link {5271  background: transparent;5272  border: 0;5273  color: var(--peach-t2);5274  font-size: 11px;5275  cursor: pointer;5276  align-self: center;5277  padding: 4px 8px;5278}52795280.peach-pro-key-link:hover {5281  color: var(--peach-accent);5282}52835284.peach-pro-key-entry {5285  display: flex;5286  flex-direction: column;5287  gap: 8px;5288}52895290.peach-pro-key-input {5291  font-family: var(--font-mono, monospace);5292  letter-spacing: 0.06em;5293  text-align: center;5294}52955296.peach-pro-key-error {5297  margin: 0;5298  font-size: 11px;5299  color: var(--peach-breach, #e55);5300}53015302/* ── Pro tier — active state ─────────────────────────────────── */5303.peach-pro-active {5304  display: flex;5305  flex-direction: column;5306  gap: 8px;5307  padding: 14px 4px;5308}53095310.peach-pro-active-head {5311  display: flex;5312  align-items: center;5313  gap: 8px;5314}53155316.peach-pro-active-mark { font-size: 16px; line-height: 1; }53175318.peach-pro-active-title {5319  margin: 0;5320  font-size: 15px;5321  font-weight: 500;5322  color: var(--peach-t0);5323}53245325.peach-pro-active-since {5326  margin: 0;5327  font-size: 12px;5328  color: var(--peach-t2);5329}53305331.peach-pro-active-divider {5332  height: 1px;5333  background: var(--peach-border);5334  margin: 8px 0 4px;5335}53365337.peach-pro-active-thanks {5338  margin: 0;5339  font-size: 12px;5340  font-style: italic;5341  color: var(--peach-t2);5342}53435344.peach-pro-deactivate {5345  align-self: flex-end;5346  background: transparent;5347  border: 0;5348  color: var(--peach-t2);5349  font-size: 11px;5350  cursor: pointer;5351  padding: 6px 0;5352  margin-top: 4px;5353}53545355.peach-pro-deactivate:hover {5356  color: var(--peach-accent);5357}53585359.peach-pro-deactivate:disabled {5360  opacity: 0.6;5361  cursor: default;5362}53635364/* ── Pro advanced health remediation queue ──────────────────── */5365.peach-health-pro-queue {5366  display: flex;5367  flex-direction: column;5368  gap: 10px;5369  padding: 12px;5370  margin: 0 0 12px;5371  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5372  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5373  border-radius: 10px;5374}53755376.peach-health-pro-queue-head {5377  display: flex;5378  justify-content: space-between;5379  align-items: baseline;5380}53815382.peach-health-pro-queue-title {5383  font-size: 12px;5384  font-weight: 500;5385  letter-spacing: 0.04em;5386  text-transform: uppercase;5387  color: var(--peach-accent);5388}53895390.peach-health-pro-queue-score {5391  font-size: 11px;5392  color: var(--peach-t2);5393}53945395.peach-health-pro-row {5396  display: flex;5397  gap: 10px;5398  align-items: center;5399  padding: 8px 0;5400  border-top: 1px solid var(--peach-border);5401}54025403.peach-health-pro-row-info {5404  flex: 1;5405  display: flex;5406  flex-direction: column;5407  gap: 4px;5408  min-width: 0;5409}54105411.peach-health-pro-row-name {5412  font-size: 13px;5413  color: var(--peach-t0);5414  overflow: hidden;5415  text-overflow: ellipsis;5416  white-space: nowrap;5417}54185419.peach-health-pro-row-meta {5420  font-size: 11px;5421  color: var(--peach-t2);5422}54235424.peach-health-pro-bar {5425  height: 2px;5426  background: var(--peach-border);5427  border-radius: 2px;5428  overflow: hidden;5429  margin-top: 2px;5430}54315432.peach-health-pro-bar-fill {5433  height: 100%;5434  background: var(--peach-accent);5435  transition: width 200ms ease-out;5436}54375438/* ── Pro activation celebration ── */5439@keyframes peach-pro-bloom {5440  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5441  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5442                 drop-shadow(0 0 48px var(--peach-glow)); }5443  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5444}54455446@keyframes peach-pro-wordmark-in {5447  from { opacity: 0; transform: translateY(4px); }5448  to   { opacity: 1; transform: translateY(0); }5449}54505451@keyframes peach-pro-fade-out {5452  from { opacity: 1; }5453  to   { opacity: 0; }5454}54555456.peach-pro-celebration {5457  background:5458    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5459    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5460    var(--peach-bg);5461  border: 1px solid var(--peach-t3);5462  box-shadow:5463    0 2px 8px rgba(0,0,0,0.55),5464    0 14px 48px rgba(0,0,0,0.7),5465    0 0 0 1px rgba(240,232,216,0.04);5466  overflow: hidden;5467  width: 320px;5468  height: 520px;5469  display: flex;5470  flex-direction: column;5471  align-items: center;5472  justify-content: center;5473  gap: 8px;5474  padding: 32px 24px;5475  text-align: center;5476}54775478.peach-pro-celebration.is-leaving {5479  animation: peach-pro-fade-out 400ms ease forwards;5480}54815482.peach-pro-bloom-target {5483  font-size: 48px;5484  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5485  margin-bottom: 12px;5486}54875488.peach-pro-wordmark {5489  font-family: var(--font-display);5490  font-size: 22px;5491  font-style: italic;5492  font-weight: 400;5493  color: var(--peach-accent);5494  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5495}54965497.peach-pro-thankyou {5498  font-size: 12px;5499  font-style: italic;5500  color: var(--peach-t2);5501  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5502}550355045505/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5506.peach-pro-notice-banner {5507  display: flex;5508  align-items: center;5509  gap: 8px;5510  padding: 7px 12px;5511  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5512  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5513  font-size: 11px;5514  color: var(--peach-t2);5515  font-family: "IBM Plex Mono", monospace;5516  flex-shrink: 0;5517}55185519.peach-pro-notice-link {5520  background: none;5521  border: none;5522  padding: 0;5523  cursor: pointer;5524  font-size: 11px;5525  color: var(--peach-accent);5526  font-family: "IBM Plex Mono", monospace;5527  margin-left: auto;5528  white-space: nowrap;5529}55305531.peach-pro-notice-close {5532  background: none;5533  border: none;5534  padding: 0 0 0 4px;5535  cursor: pointer;5536  font-size: 10px;5537  color: var(--peach-t3);5538  line-height: 1;5539}