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  border-bottom: none;1665}1666.peach-export-result-group .peach-export-card {1667  flex: 1;1668  min-height: 0;1669  display: flex;1670  flex-direction: column;1671  gap: 10px;1672}1673.peach-export-result-group .peach-export-card-copy {1674  flex-shrink: 0;1675}1676.peach-export-result-group .peach-settings-label {1677  flex-shrink: 0;1678}1679.peach-export-result-group button {1680  flex-shrink: 0;1681}1682.peach-export-card-head {1683  display: flex;1684  align-items: center;1685  justify-content: space-between;1686  gap: 10px;1687}1688.peach-export-card-copy {1689  margin: 0;1690  font-size: 12px;1691  line-height: 1.55;1692  color: var(--peach-t1);1693}1694.peach-export-note {1695  margin: 0;1696  font-size: 10px;1697  line-height: 1.5;1698  color: var(--peach-t2);1699}1700.peach-export-pill {1701  display: inline-flex;1702  align-items: center;1703  padding: 4px 8px;1704  border-radius: 999px;1705  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1706  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1707  color: var(--peach-accent);1708  font-family: "IBM Plex Mono", monospace;1709  font-size: 8px;1710  letter-spacing: 0.12em;1711  text-transform: uppercase;1712  white-space: nowrap;1713}1714.peach-export-pill--danger {1715  border-color: rgba(220,80,60,0.22);1716  background: rgba(220,80,60,0.08);1717  color: var(--peach-breach);1718}1719.peach-export-password-stack {1720  gap: 8px;1721}1722.peach-settings-label {1723  margin: 0 0 6px;1724  font-family: "IBM Plex Mono", monospace;1725  font-size: 8px;1726  text-transform: uppercase;1727  letter-spacing: 0.18em;1728  color: var(--peach-t2);1729}1730.peach-settings-row {1731  display: flex;1732  align-items: center;1733  justify-content: space-between;1734  gap: 12px;1735  min-height: 34px;1736  padding: 6px 0;1737  font-size: 13px;1738  color: var(--peach-t1);1739}1740.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1741.peach-settings-value {1742  font-family: "IBM Plex Mono", monospace;1743  font-size: 10px;1744  color: var(--peach-t2);1745}17461747.peach-settings-value--status {1748  display: flex;1749  align-items: center;1750  gap: 6px;1751}17521753.peach-settings-link {1754  font-family: "IBM Plex Mono", monospace;1755  font-size: 10px;1756  color: var(--peach-accent);1757  text-decoration: none;1758  cursor: pointer;1759}1760.peach-settings-link:hover {1761  text-decoration: underline;1762}17631764.peach-settings-row--stack {1765  flex-direction: column;1766  align-items: stretch;1767  gap: 6px;1768}17691770.peach-settings-row--top {1771  align-items: flex-start;1772}17731774.peach-settings-row-main {1775  display: flex;1776  flex-direction: column;1777  gap: 4px;1778  flex: 1;1779}1780.peach-toggle {1781  width: 28px; height: 16px;1782  border-radius: 999px;1783  background: var(--peach-t3);1784  border: 1px solid var(--peach-t3);1785  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1786  flex-shrink: 0;1787  transition: background 200ms ease, border-color 200ms ease;1788  cursor: pointer;1789}1790.peach-toggle.is-on {1791  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1792  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1793}1794.peach-toggle-knob {1795  width: 10px; height: 10px;1796  border-radius: 50%;1797  background: var(--peach-t2);1798  flex-shrink: 0;1799  transform: translateX(0px);1800  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1801}1802.peach-toggle.is-on .peach-toggle-knob {1803  background: var(--peach-accent);1804  transform: translateX(12px);1805}1806.peach-settings-footer {1807  display: flex;1808  align-items: center;1809  gap: 8px;1810  margin-top: auto;1811  padding: 14px 16px 8px;1812  font-family: "IBM Plex Mono", monospace;1813  font-size: 9px;1814  color: var(--peach-t2);1815}18161817/* ── Settings home navigation ──────────────────────────────────────────── */1818.peach-settings-nav-label {1819  margin: 0 0 2px;1820  padding: 12px 16px 4px;1821  font-family: "IBM Plex Mono", monospace;1822  font-size: 8px;1823  text-transform: uppercase;1824  letter-spacing: 0.18em;1825  color: var(--peach-t2);1826}18271828.peach-settings-cat-row {1829  display: flex;1830  align-items: center;1831  gap: 10px;1832  width: 100%;1833  padding: 9px 16px;1834  background: none;1835  border: none;1836  border-bottom: 1px solid var(--peach-t3);1837  cursor: pointer;1838  text-align: left;1839  color: inherit;1840  transition: background var(--peach-dur-80) ease;1841}1842.peach-settings-cat-row:hover {1843  background: var(--peach-t3);1844}1845.peach-settings-cat-row:last-child {1846  border-bottom: none;1847}18481849.peach-settings-cat-icon {1850  width: 28px;1851  height: 28px;1852  border-radius: 7px;1853  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1854  color: var(--peach-accent);1855  display: flex;1856  align-items: center;1857  justify-content: center;1858  flex-shrink: 0;1859}1860/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1861   Darken the icon stroke to ink and bump the bg tint so the icon reads1862   sharply while the cell still feels accent-tinted. */1863.light .peach-settings-cat-icon {1864  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1865  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1866}18671868.peach-settings-cat-content {1869  flex: 1;1870  display: flex;1871  flex-direction: column;1872  gap: 2px;1873  min-width: 0;1874}18751876.peach-settings-cat-name {1877  font-size: 13px;1878  font-weight: 450;1879  color: var(--peach-t0);1880  line-height: 1.2;1881}18821883.peach-settings-cat-desc {1884  font-size: 10px;1885  color: var(--peach-t2);1886  line-height: 1.3;1887  white-space: nowrap;1888  overflow: hidden;1889  text-overflow: ellipsis;1890}18911892.peach-settings-cat-chevron {1893  color: var(--peach-t2);1894  flex-shrink: 0;1895  opacity: 0.5;1896}18971898/* ── Settings sub-view section labels ──────────────────────────────────── */1899.peach-settings-sub-label {1900  margin: 12px 0 4px;1901  font-family: "IBM Plex Mono", monospace;1902  font-size: 8px;1903  text-transform: uppercase;1904  letter-spacing: 0.18em;1905  color: var(--peach-t2);1906}1907.peach-settings-sub-label:first-child {1908  margin-top: 4px;1909}19101911/* ── Feedback form ──────────────────────────────────────────────────────── */1912.peach-feedback-group {1913  flex: 1;1914  display: flex;1915  flex-direction: column;1916  border-bottom: none;1917}19181919.peach-feedback-intro {1920  margin: 4px 0 14px;1921  font-size: 12px;1922  line-height: 1.55;1923  color: var(--peach-t1);1924}19251926.peach-feedback-chips {1927  display: flex;1928  flex-wrap: wrap;1929  gap: 6px;1930  margin-bottom: 14px;1931}19321933.peach-feedback-chip {1934  padding: 4px 10px;1935  border-radius: 999px;1936  border: 1px solid var(--peach-t3);1937  background: none;1938  color: var(--peach-t2);1939  font-size: 11px;1940  font-family: var(--font-ui);1941  cursor: pointer;1942  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1943    background var(--peach-dur-80) ease;1944}1945.peach-feedback-chip:hover {1946  border-color: var(--peach-t2);1947  color: var(--peach-t1);1948}1949.peach-feedback-chip.is-active {1950  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1951  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1952  color: var(--peach-accent);1953}19541955.peach-feedback-textarea {1956  flex: 1;1957  width: 100%;1958  min-height: 120px;1959  box-sizing: border-box;1960  background: var(--peach-t3);1961  border: 1px solid var(--peach-t3);1962  border-radius: 6px;1963  color: var(--peach-t0);1964  font-size: 12px;1965  font-family: var(--font-ui);1966  line-height: 1.5;1967  padding: 8px 10px;1968  resize: none;1969  outline: none;1970  transition: border-color var(--peach-dur-150) ease;1971}1972.peach-feedback-textarea:focus {1973  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1974}1975.peach-feedback-textarea::placeholder {1976  color: var(--peach-t2);1977}19781979.peach-feedback-meta {1980  margin: 6px 0 0;1981  font-size: 10px;1982  color: var(--peach-t2);1983  font-family: "IBM Plex Mono", monospace;1984}19851986.peach-feedback-result {1987  margin: 8px 0 0;1988  font-size: 11px;1989  font-family: "IBM Plex Mono", monospace;1990}1991.peach-feedback-result--ok { color: var(--peach-sync-ok); }1992.peach-feedback-result--err { color: var(--peach-breach); }19931994.peach-feedback-submit {1995  width: 100%;1996  margin-top: 12px;1997  justify-content: center;1998}19992000.peach-feedback-anon {2001  margin: 8px 0 0;2002  font-size: 10px;2003  color: var(--peach-t2);2004  text-align: center;2005}20062007.peach-passkey-badge {2008  margin-left: 8px;2009  font-size: 10px;2010  letter-spacing: 0.06em;2011  text-transform: uppercase;2012  color: var(--peach-t2);2013  font-family: var(--font-ui);2014  vertical-align: middle;2015}20162017.peach-passkey-delete-btn {2018  color: var(--peach-breach);2019  border-color: rgba(229, 85, 85, 0.25);2020}20212022.peach-passkey-delete-confirm {2023  display: flex;2024  align-items: center;2025  gap: 8px;2026  padding: 8px 10px;2027  background: rgba(229, 85, 85, 0.06);2028  border: 1px solid rgba(229, 85, 85, 0.2);2029  border-radius: 6px;2030}20312032.peach-passkey-delete-confirm-copy {2033  flex: 1;2034  font-size: 11px;2035  color: var(--peach-t1);2036}20372038.peach-passkey-delete-btn--confirm {2039  color: var(--peach-breach);2040  border-color: rgba(229, 85, 85, 0.4);2041}20422043.peach-passkey-activity {2044  flex-direction: column;2045  align-items: flex-start;2046  gap: 4px;2047}20482049.peach-passkey-meta {2050  font-size: 11px;2051  color: var(--peach-t2);2052}20532054.peach-passkey-actions {2055  position: relative;2056  z-index: 1;2057  margin-top: 14px;2058  display: flex;2059  flex-direction: column;2060  gap: 8px;2061}20622063.peach-passkey-approval {2064  display: flex;2065  flex-direction: column;2066  align-items: center;2067  padding: 28px 22px 22px;2068  gap: 14px;2069  text-align: center;2070}20712072.peach-passkey-approval-icon {2073  width: 46px;2074  height: 46px;2075  border-radius: 12px;2076  background: var(--peach-s2);2077  border: 1px solid var(--peach-t3);2078  display: flex;2079  align-items: center;2080  justify-content: center;2081  flex-shrink: 0;2082  color: var(--peach-accent);2083}20842085.peach-passkey-approval-icon img,2086.peach-passkey-approval-icon svg {2087  width: 28px;2088  height: 28px;2089  border-radius: 6px;2090}20912092.peach-passkey-approval-rp {2093  font-family: var(--font-ui);2094  font-size: 12px;2095  color: var(--peach-t2);2096  letter-spacing: 0.03em;2097}20982099.peach-passkey-approval-action {2100  font-family: var(--font-display);2101  font-style: italic;2102  font-weight: 300;2103  font-size: 26px;2104  color: var(--peach-t0);2105  line-height: 1;2106}21072108.peach-passkey-approval-user {2109  font-family: var(--font-mono);2110  font-size: 11px;2111  color: var(--peach-t1);2112  background: var(--peach-s2);2113  border: 1px solid var(--peach-t3);2114  border-radius: 4px;2115  padding: 3px 8px;2116}21172118.peach-passkey-approval-notice {2119  font-size: 10px;2120  color: var(--peach-t2);2121  line-height: 1.5;2122  max-width: 220px;2123}21242125.peach-passkey-approval-actions {2126  display: flex;2127  gap: 8px;2128  width: 100%;2129  margin-top: 6px;2130}21312132.peach-passkey-approval-actions .peach-btn {2133  flex: 1;2134}21352136/* ── Inline generator drawer ── */2137.peach-generator-drawer {2138  display: grid;2139  grid-template-rows: 0fr;2140  transition: grid-template-rows 320ms var(--peach-curve-arrival);2141  overflow: hidden;2142}2143.peach-generator-drawer.is-open {2144  grid-template-rows: 1fr;2145}2146.peach-generator-drawer-inner {2147  min-height: 0;2148  overflow: hidden;2149}2150.peach-generator-drawer-content {2151  border-top: 1px solid var(--peach-t3);2152  padding: 8px 0 4px;2153  display: flex;2154  flex-direction: column;2155  gap: 8px;2156}21572158/* ── Compact generator (inside entry edit) ── */2159.peach-generator-drawer-content--compact {2160  border-top: 1px solid var(--peach-t3);2161  padding: 8px 0 2px;2162  gap: 7px;2163}2164.peach-pwgen-compact-display-row {2165  display: flex;2166  align-items: center;2167  gap: 6px;2168}2169.peach-pwgen-compact-output {2170  flex: 1;2171  min-width: 0;2172  font-family: "IBM Plex Mono", monospace;2173  font-size: 11px;2174  font-weight: 400;2175  letter-spacing: 0.04em;2176  color: var(--peach-t0);2177  background: rgba(240, 232, 216, 0.04);2178  border: 1px solid var(--peach-t3);2179  border-radius: 5px;2180  padding: 5px 8px;2181  word-break: break-all;2182  line-height: 1.5;2183}2184.peach-pwgen-compact-controls {2185  display: flex;2186  align-items: center;2187  gap: 6px;2188}2189.peach-pwgen-compact-slider {2190  flex: 1;2191  min-width: 0;2192  height: 2px !important;2193}2194.peach-pwgen-compact-controls .peach-pwgen-len-num {2195  flex-shrink: 0;2196  min-width: 18px;2197  text-align: right;2198}2199.peach-pwgen-compact-pills {2200  display: flex;2201  gap: 3px;2202  flex-shrink: 0;2203}2204.peach-pwgen-compact-pills .peach-pwgen-pill {2205  padding: 2px 7px;2206  font-size: 8px;2207}2208.peach-pwgen-compact-use {2209  flex-shrink: 0;2210  font-size: 10px !important;2211  padding: 3px 9px !important;2212  min-height: 22px !important;2213  border-radius: 5px !important;2214}22152216/* ── Password edit row (input + eye toggle side-by-side) ── */2217.peach-password-edit-row {2218  display: flex;2219  align-items: center;2220  gap: 6px;2221}2222.peach-password-edit-row .peach-inline-input {2223  flex: 1;2224  min-width: 0;2225}22262227/* ── Generate toggle link ── */2228.peach-generate-toggle-link {2229  display: inline-flex;2230  align-items: center;2231  gap: 5px;2232  background: none;2233  border: none;2234  padding: 0;2235  cursor: pointer;2236  font-family: "IBM Plex Mono", monospace;2237  font-size: 10px;2238  color: var(--peach-t2);2239  letter-spacing: 0.04em;2240  transition: color 120ms ease;2241  align-self: flex-start;2242}2243.peach-generate-toggle-link:hover {2244  color: var(--peach-accent);2245}22462247/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2248.peach-entry-body {2249  flex: 1;2250  overflow-y: auto;2251  overflow-x: hidden;2252  scrollbar-width: none;2253  -ms-overflow-style: none;2254  overscroll-behavior: contain;2255  display: grid;2256  gap: 10px;2257  align-content: start;2258  padding: 10px 20px 14px;2259  min-width: 0;2260  min-height: 0;2261}2262.peach-entry-body::-webkit-scrollbar { display: none; }22632264/* Type-toggle pills + inline note toolbar */2265.peach-new-type-row {2266  display: flex;2267  align-items: center;2268  gap: 6px;2269  margin-bottom: 2px;2270}2271.peach-new-type-btn {2272  background: transparent;2273  border: 1px solid var(--peach-t3);2274  border-radius: 12px;2275  padding: 3px 10px;2276  font-family: "IBM Plex Mono", monospace;2277  font-size: 9px;2278  letter-spacing: 0.12em;2279  text-transform: uppercase;2280  color: var(--peach-t2);2281  cursor: pointer;2282  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2283}2284.peach-new-type-btn.is-active {2285  color: var(--peach-t0);2286  border-color: var(--peach-accent);2287  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2288}2289.peach-new-type-btn:not(.is-active):hover {2290  color: var(--peach-t1);2291  border-color: var(--peach-t2);2292}22932294/* Editable title */2295.peach-new-title-wrap { margin: 0 0 2px; }2296.peach-new-title-input {2297  background: transparent;2298  border: none;2299  outline: none;2300  width: 100%;2301  color: var(--peach-t0);2302  font-family: var(--font-display);2303  font-style: italic;2304  font-weight: 400;2305  font-size: 40px;2306  line-height: 0.95;2307  caret-color: var(--peach-accent);2308}2309.peach-new-title-input::placeholder { color: var(--peach-t2); }23102311/* Editable domain field */2312.peach-domain-value--edit {2313  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2314  font-size: 10px;2315  font-style: italic;2316  letter-spacing: 0.12em;2317  color: var(--peach-t1);2318  background: transparent;2319  border: none;2320  border-bottom: 1px solid var(--peach-t3);2321  outline: none;2322  width: 100%;2323  padding: 2px 0;2324  caret-color: var(--peach-accent);2325  transition: border-color 140ms ease, color 140ms ease;2326}2327.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2328.peach-domain-value--edit:focus {2329  border-bottom-color: rgba(240, 232, 216, 0.28);2330  color: var(--peach-t0);2331}23322333/* Editable field values (username, password, totp) */2334.peach-field-value--edit {2335  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2336  font-size: 13px;2337  color: var(--peach-t0);2338  background: transparent;2339  border: none;2340  border-bottom: 1px solid var(--peach-t3);2341  outline: none;2342  flex: 1;2343  min-width: 0;2344  padding: 3px 0;2345  caret-color: var(--peach-accent);2346  transition: border-color 140ms ease, color 140ms ease;2347}2348.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2349.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2350.peach-field-value--edit:focus {2351  border-bottom-color: rgba(240, 232, 216, 0.28);2352  color: var(--peach-t0);2353}23542355/* "+ add optional field" links */2356.peach-entry-add-links {2357  display: flex;2358  gap: 12px;2359  flex-wrap: wrap;2360  margin-top: -2px;2361}2362.peach-add-field-link {2363  background: transparent;2364  border: none;2365  padding: 0;2366  cursor: pointer;2367  font-family: "IBM Plex Mono", monospace;2368  font-size: 9px;2369  letter-spacing: 0.1em;2370  text-transform: uppercase;2371  color: var(--peach-t2);2372  transition: color 140ms ease;2373}2374.peach-add-field-link:hover { color: var(--peach-accent); }23752376/* ── New entry form (legacy classes) ────────────────────────────────── */2377.peach-new-body {2378  flex: 1;2379  overflow-y: auto;2380  padding: 10px 20px 14px;2381}2382.peach-new-name-input {2383  background: transparent;2384  border: none;2385  outline: none;2386  width: 100%;2387  color: var(--peach-t0);2388  font-family: var(--font-display);2389  font-style: italic;2390  font-weight: 400;2391  font-size: 40px;2392  line-height: 0.95;2393  caret-color: var(--peach-accent);2394}2395.peach-new-name-input::placeholder { color: var(--peach-t2); }2396.peach-new-field-input {2397  background: transparent;2398  border: none;2399  outline: none;2400  flex: 1;2401  min-width: 0;2402  caret-color: var(--peach-accent);2403}2404.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }24052406/* ── Canary card ── */2407.peach-canary-card {2408  border: 1px solid rgba(217, 160, 48, 0.2);2409  background: rgba(217, 160, 48, 0.03);2410  border-radius: 8px;2411  padding: 12px;2412}24132414.peach-canary-settings-header {2415  display: flex;2416  align-items: center;2417  justify-content: space-between;2418  cursor: pointer;2419  user-select: none;2420}24212422.peach-canary-card .peach-label {2423  color: rgba(217, 160, 48, 0.85);2424}24252426.peach-canary-card .peach-new-field-input {2427  border-color: rgba(217, 160, 48, 0.25);2428}24292430.peach-canary-card .peach-new-field-input:focus {2431  border-color: rgba(217, 160, 48, 0.5);2432}24332434.peach-canary-body {2435  margin-top: 12px;2436  display: flex;2437  flex-direction: column;2438  gap: 10px;2439}24402441.peach-canary-explainer {2442  display: flex;2443  gap: 10px;2444  padding: 10px 12px;2445  border-radius: 10px;2446  background: rgba(217, 160, 48, 0.06);2447  border: 1px solid rgba(217, 160, 48, 0.22);2448  margin-bottom: 4px;2449}24502451.peach-canary-explainer-icon {2452  font-size: 16px;2453  flex-shrink: 0;2454  line-height: 1.2;2455}24562457.peach-canary-explainer-title {2458  font-family: var(--font-ui);2459  font-size: 11px;2460  font-weight: 500;2461  color: rgba(217, 160, 48, 0.9);2462  margin: 0 0 3px;2463}24642465.peach-canary-explainer-copy {2466  font-family: var(--font-ui);2467  font-size: 10px;2468  color: var(--peach-t2);2469  line-height: 1.55;2470  margin: 0;2471}24722473.peach-canary-hint {2474  font-size: 10px;2475  color: var(--peach-t2);2476  font-family: Inter, system-ui, sans-serif;2477  line-height: 1.5;2478  margin-top: 4px;2479}24802481.peach-canary-actions-row {2482  display: flex;2483  align-items: center;2484  gap: 8px;2485}24862487.peach-canary-test-btn {2488  border-color: rgba(217, 160, 48, 0.3);2489  color: rgba(217, 160, 48, 0.85);2490}24912492.peach-canary-test-result {2493  font-size: 10px;2494  font-family: Inter, system-ui, sans-serif;2495}24962497.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2498.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }24992500.peach-canary-badge {2501  display: flex;2502  position: relative;2503  z-index: 1;2504  align-items: center;2505  gap: 5px;2506  padding: 4px 10px;2507  background: rgba(217, 160, 48, 0.12);2508  border: 1px solid rgba(217, 160, 48, 0.35);2509  border-radius: 6px;2510  margin-bottom: 6px;2511  width: fit-content;2512}25132514.peach-canary-badge-label {2515  font-size: 10px;2516  letter-spacing: 0.06em;2517  color: rgba(217, 160, 48, 0.9);2518  font-family: var(--font-ui);2519  text-transform: uppercase;2520}25212522.peach-canary-badge-icon {2523  font-size: 11px;2524}25252526.peach-canary-suppress-row {2527  display: flex;2528  align-items: center;2529  gap: 8px;2530  padding: 6px 10px;2531  background: rgba(217, 160, 48, 0.08);2532  border-radius: 6px;2533  margin-bottom: 8px;2534}25352536.peach-canary-suppress-label {2537  font-size: 11px;2538  color: rgba(217, 160, 48, 0.85);2539  cursor: pointer;2540  font-family: var(--font-ui);2541  letter-spacing: 0.04em;2542}25432544.peach-regen-panel {2545  position: relative;2546  z-index: 1;2547  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2548  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2549  border-radius: 8px;2550  padding: 12px;2551  margin-bottom: 8px;2552}25532554.peach-regen-panel-header {2555  display: flex;2556  align-items: center;2557  justify-content: space-between;2558  margin-bottom: 10px;2559}25602561.peach-regen-panel-title {2562  font-size: 11px;2563  font-weight: 600;2564  letter-spacing: 0.06em;2565  text-transform: uppercase;2566  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2567}25682569.peach-regen-output {2570  background: rgba(0, 0, 0, 0.2);2571  border-radius: 6px;2572  padding: 10px;2573  margin-bottom: 10px;2574  font-family: var(--font-mono);2575  font-size: 13px;2576  word-break: break-all;2577  color: var(--peach-t1);2578}25792580.peach-regen-actions {2581  display: flex;2582  gap: 6px;2583}25842585.peach-regen-actions--spaced {2586  margin-bottom: 8px;2587}25882589.peach-regen-action-grow {2590  flex: 1;2591}25922593.peach-regen-copy-btn {2594  padding: 0 8px;2595}25962597.peach-regen-success {2598  position: relative;2599  z-index: 1;2600  background: rgba(40, 180, 80, 0.1);2601  border: 1px solid rgba(40, 180, 80, 0.3);2602  border-radius: 8px;2603  padding: 10px 12px;2604  margin-bottom: 8px;2605  display: flex;2606  align-items: center;2607  gap: 8px;2608  font-size: 11px;2609  color: rgba(40, 180, 80, 0.9);2610}26112612/* ── Note editor overlay ── */2613.peach-note-editor {2614  position: absolute;2615  inset: 0;2616  z-index: 200;2617  display: flex;2618  flex-direction: column;2619  background:2620    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2621    var(--peach-bg);2622  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2623}26242625.peach-note-editor-header {2626  display: flex;2627  align-items: center;2628  gap: 10px;2629  padding: 14px 16px 10px;2630  border-bottom: 1px solid var(--peach-t3);2631  flex-shrink: 0;2632}26332634.peach-note-editor-back {2635  background: transparent;2636  border: none;2637  cursor: pointer;2638  color: var(--peach-t2);2639  padding: 4px 6px;2640  border-radius: 6px;2641  display: flex;2642  align-items: center;2643  transition: color 120ms ease, background 120ms ease;2644  flex-shrink: 0;2645}2646.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }26472648.peach-note-editor-label {2649  flex: 1;2650  font-family: var(--font-display);2651  font-style: italic;2652  font-size: 15px;2653  color: var(--peach-t1);2654  letter-spacing: 0.02em;2655}26562657.peach-note-editor-save-btn {2658  background: transparent;2659  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2660  border-radius: 8px;2661  color: var(--peach-accent);2662  font-family: "IBM Plex Mono", monospace;2663  font-size: 10px;2664  letter-spacing: 0.06em;2665  text-transform: uppercase;2666  padding: 3px 10px;2667  cursor: pointer;2668  transition: background 120ms ease, border-color 120ms ease;2669}2670.peach-note-editor-save-btn:hover:not(:disabled) {2671  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2672  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2673}2674.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }26752676.peach-note-toolbar {2677  display: flex;2678  align-items: center;2679  gap: 3px;2680  padding: 6px 14px 5px;2681  border-bottom: 1px solid var(--peach-t3);2682  flex-shrink: 0;2683}26842685.peach-note-tool-btn {2686  background: transparent;2687  border: 1px solid transparent;2688  border-radius: 5px;2689  color: var(--peach-t2);2690  font-family: "IBM Plex Mono", monospace;2691  font-size: 10px;2692  letter-spacing: 0.04em;2693  padding: 2px 8px;2694  cursor: pointer;2695  line-height: 1.6;2696  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2697}2698.peach-note-tool-btn:hover {2699  background: var(--peach-t4);2700  color: var(--peach-t0);2701  border-color: var(--peach-t3);2702}27032704.peach-note-tool-icon {2705  padding: 3px 7px;2706  display: inline-flex;2707  align-items: center;2708  justify-content: center;2709}27102711.peach-note-tool-divider {2712  width: 1px;2713  height: 14px;2714  background: var(--peach-t3);2715  margin: 0 4px;2716  flex-shrink: 0;2717}27182719.peach-note-editor-body {2720  flex: 1;2721  overflow-y: auto;2722  padding: 16px 20px 20px;2723  outline: none;2724  font-family: var(--font-display);2725  font-size: 16px;2726  line-height: 1.75;2727  color: var(--peach-t0);2728  scrollbar-width: none;2729  word-break: break-word;2730}2731.peach-note-editor-body:empty::before {2732  content: "write your note…";2733  color: var(--peach-t3);2734  font-style: italic;2735  pointer-events: none;2736}27372738/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2739.peach-note-editor-inline {2740  display: flex;2741  flex-direction: column;2742  flex: 1;2743  min-height: 0;2744}2745.peach-note-editor-body--inline {2746  flex: 1;2747  min-height: 0;2748  font-size: 15px;2749  padding: 10px 20px 14px;2750}27512752/* Full-width toolbar row inside the body (Add.tsx note type).2753   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2754.peach-note-toolbar-body {2755  display: flex;2756  align-items: center;2757  gap: 3px;2758  padding: 5px 20px 4px;2759  margin: 2px -20px 0;2760  border-bottom: 1px solid var(--peach-t3);2761  flex-shrink: 0;2762}27632764/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2765   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2766   and .peach-note-tool-divider button-level styles. */2767.peach-note-toolbar-inline {2768  display: flex;2769  align-items: center;2770  gap: 3px;2771  margin-left: auto;2772  padding-left: 10px;2773  border-left: 1px solid var(--peach-t3);2774  min-height: 22px;2775}27762777/* Entry.tsx toolbar row (no tabs, toolbar only) */2778.peach-entry-note-toolbar-row {2779  display: flex;2780  align-items: center;2781  margin: 4px 0 6px;2782  position: relative;2783  z-index: 1;2784}2785.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2786  border-left: none;2787  padding-left: 0;2788  margin-left: 0;2789}27902791/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2792.peach-note-body {2793  display: flex;2794  flex-direction: column;2795  flex: 1;2796  min-height: 0;2797  margin: 4px 0 0;2798}2799.peach-entry-body--new .peach-note-body {2800  margin: 8px -20px 0;2801}28022803/* Add.tsx body is a grid by default; swap to a flex column when a note is2804   active so the note body can stretch and pin the tags row to the bottom. */2805.peach-entry-body--new:has(.peach-note-body) {2806  display: flex;2807  flex-direction: column;2808}28092810/* Rich content element styles (editor + display) */2811.peach-note-editor-body h2,2812.peach-note-content h2 {2813  font-family: var(--font-display);2814  font-size: 20px;2815  font-weight: 600;2816  font-style: italic;2817  color: var(--peach-t0);2818  margin: 6px 0 2px;2819  line-height: 1.3;2820}2821.peach-note-editor-body ul,2822.peach-note-content ul {2823  padding-left: 18px;2824  margin: 3px 0;2825  list-style: disc;2826}2827.peach-note-editor-body ol,2828.peach-note-content ol {2829  padding-left: 18px;2830  margin: 3px 0;2831  list-style: decimal;2832}2833.peach-note-editor-body li,2834.peach-note-content li { margin: 2px 0; }2835.peach-note-editor-body hr,2836.peach-note-content hr {2837  border: none;2838  border-top: 1px solid var(--peach-t3);2839  margin: 10px 0;2840}28412842/* font size elements from execCommand */2843.peach-note-editor-body font[size="1"],2844.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2845.peach-note-editor-body font[size="2"],2846.peach-note-content font[size="2"] { font-size: 13px; }2847.peach-note-editor-body font[size="3"],2848.peach-note-content font[size="3"] { font-size: 16px; }2849.peach-note-editor-body font[size="4"],2850.peach-note-content font[size="4"] { font-size: 20px; }2851.peach-note-editor-body font[size="5"],2852.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }28532854/* bold / italic inside the editor and note display */2855.peach-note-editor-body b, .peach-note-editor-body strong,2856.peach-note-content b, .peach-note-content strong { font-weight: 700; }2857.peach-note-editor-body em, .peach-note-editor-body i,2858.peach-note-content em, .peach-note-content i { font-style: italic; }28592860/* note display — rendered HTML, no pre-wrap */2861.peach-note-content {2862  overflow: auto;2863  max-height: 340px;2864  word-break: break-word;2865}28662867/* ── Note textarea ── */2868.peach-note-textarea {2869  width: 100%;2870  min-height: 180px;2871  max-height: 280px;2872  resize: vertical;2873  background: var(--peach-t4);2874  border: 1px solid var(--peach-t3);2875  border-radius: 8px;2876  padding: 10px 12px;2877  font-family: "IBM Plex Mono", monospace;2878  font-size: 12px;2879  line-height: 1.7;2880  color: var(--peach-t1);2881  outline: none;2882  transition: border-color 150ms ease;2883}28842885.peach-note-textarea:focus {2886  border-color: var(--peach-t2);2887}28882889.peach-note-char-count {2890  font-family: "IBM Plex Mono", monospace;2891  font-size: 9px;2892  color: var(--peach-t3);2893  text-align: right;2894  margin-top: 4px;2895  letter-spacing: 0.1em;2896}28972898/* ── Field input baseline ── */2899.peach-new-field-input {2900  width: 100%;2901  background: transparent;2902  border: none;2903  border-bottom: 1px solid var(--peach-t3);2904  padding: 4px 0;2905  color: var(--peach-t1);2906  font-family: "IBM Plex Mono", monospace;2907  font-size: 13px;2908  outline: none;2909  transition: border-color 150ms ease;2910}29112912.peach-new-field-input:focus {2913  border-bottom-color: var(--peach-t0);2914  color: var(--peach-t0);2915}29162917.peach-new-name-input {2918  width: 100%;2919  background: transparent;2920  border: none;2921  border-bottom: 1px solid var(--peach-t3);2922  padding: 6px 0;2923  font-family: var(--font-display);2924  font-style: italic;2925  font-size: 28px;2926  color: var(--peach-t0);2927  outline: none;2928  transition: border-color 150ms ease;2929}29302931.peach-new-name-input:focus {2932  border-bottom-color: var(--peach-t1);2933}29342935.peach-new-name-input::placeholder {2936  color: var(--peach-t2);2937  font-style: italic;2938}29392940.peach-new-field-input::placeholder {2941  color: var(--peach-t3);2942}29432944/* ── Demo entrance animation ── */2945#hd-shell {2946  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2947}2948@keyframes hd-shell-enter {2949  from { opacity: 0; transform: scale(0.96) translateY(16px); }2950  to   { opacity: 1; transform: scale(1) translateY(0); }2951}29522953/* ── Keyframes ── */2954@keyframes peach-char-enter {2955  from { opacity: 0; transform: translateY(0.22em); }2956  to   { opacity: 1; transform: translateY(0); }2957}2958@keyframes peach-content-enter {2959  from { opacity: 0.96; transform: translateY(4px); }2960  to   { opacity: 1; transform: translateY(0); }2961}2962@keyframes peach-content-exit {2963  from { opacity: 1; transform: translateY(0); }2964  to   { opacity: 0.92; transform: translateY(-3px); }2965}2966@keyframes peach-screen-enter {2967  from { opacity: 0; transform: translateY(14px); }2968  to   { opacity: 1; transform: translateY(0); }2969}2970@keyframes peach-shell-fade-in {2971  from { opacity: 0; }2972  to   { opacity: 1; }2973}2974@keyframes peach-veil-in {2975  from { opacity: 0; }2976  to   { opacity: 1; }2977}2978@keyframes peach-lock-settle {2979  0%   { transform: scale(0.9); }2980  65%  { transform: scale(1.08); }2981  100% { transform: scale(1); }2982}2983@keyframes peach-copy-confirm {2984  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2985  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); }2986}2987@keyframes peach-copy-retreat {2988  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); }2989  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2990}2991@keyframes peach-copy-flood {2992  from { opacity: 0; transform: scaleX(0.15); }2993  to   { opacity: 1; transform: scaleX(1); }2994}2995@keyframes peach-copy-icon-settle {2996  from  { transform: scale(0.84); }2997  70%   { transform: scale(1.08); }2998  to    { transform: scale(1); }2999}3000@keyframes peach-copy-sheen-retreat {3001  from { opacity: 1; transform: scaleX(1); }3002  to   { opacity: 0; transform: scaleX(0.15); }3003}3004@keyframes peach-copy-drain {3005  from { width: 100%; }3006  to   { width: 0; }3007}3008@keyframes peach-shake {3009  0%, 100% { transform: translateX(0); }3010  20%      { transform: translateX(-6px); }3011  40%      { transform: translateX(6px); }3012  60%      { transform: translateX(-4px); }3013  80%      { transform: translateX(4px); }3014}30153016@keyframes pip-pulse {3017  0% { transform: scale(1); }3018  40% { transform: scale(2.2); }3019  100% { transform: scale(1); }3020}302130223023/* ── Password generator ── */3024.peach-pwgen-body {3025  flex: 1; overflow-y: auto;3026  display: flex; flex-direction: column;3027}3028.peach-policy-badge {3029  display: flex; align-items: center;3030  padding: 6px 20px 0;3031  font-size: 10px; font-family: Inter, sans-serif;3032  color: var(--peach-t2); letter-spacing: 0.04em;3033}3034.peach-pwgen-display {3035  padding: 14px 20px 12px;3036  border-bottom: 1px solid var(--peach-t3);3037  display: flex; align-items: flex-start; gap: 10px;3038}3039.peach-pwgen-display-row {3040  display: flex;3041  align-items: flex-start;3042  gap: 8px;3043  padding-bottom: 8px;3044  border-bottom: 1px solid var(--peach-t3);3045}3046.peach-pwgen-output {3047  flex: 1; min-width: 0; margin: 0;3048  font-family: "IBM Plex Mono", monospace;3049  font-size: 13px; color: var(--peach-t0);3050  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;3051  white-space: normal;3052  padding: 10px 12px;3053  background: var(--peach-t4);3054  border-radius: 6px;3055  min-height: 36px;3056}3057.peach-pwgen-output-display {3058  flex: 1;3059  min-width: 0;3060  margin: 0;3061  font-family: var(--font-display);3062  font-style: italic;3063  font-weight: 300;3064  font-size: 32px;3065  line-height: 1.05;3066  color: var(--peach-t0);3067  word-break: break-all;3068  overflow-wrap: break-word;3069  white-space: normal;3070  letter-spacing: 0.02em;3071}3072.peach-pwgen-display-actions {3073  display: flex;3074  flex-direction: column;3075  gap: 4px;3076  flex-shrink: 0;3077  margin-top: 2px;3078}3079.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }3080.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }3081.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }3082.peach-pwgen-len-num {3083  font-family: "IBM Plex Mono", monospace;3084  font-size: 12px; color: var(--peach-accent);3085}3086.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }3087.peach-pwgen-toggles { display: flex; flex-direction: column; }3088.peach-pwgen-charset-pills {3089  display: flex;3090  gap: 6px;3091  flex-wrap: wrap;3092}3093.peach-pwgen-pill {3094  padding: 4px 11px;3095  border-radius: 999px;3096  border: 1px solid var(--peach-t3);3097  background: transparent;3098  color: var(--peach-t2);3099  font-family: "IBM Plex Mono", monospace;3100  font-size: 9px;3101  letter-spacing: 0.08em;3102  cursor: pointer;3103  transition: all 150ms ease;3104}3105.peach-pwgen-pill.is-on {3106  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3107  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3108  color: var(--peach-accent);3109}3110.peach-pwgen-pill:not(.is-on):hover {3111  color: var(--peach-t1);3112  border-color: var(--peach-t2);3113}3114.peach-pwgen-use-btn {3115  width: 100%;3116  min-height: 34px;3117  border-radius: 8px;3118  margin-top: 2px;3119}3120.peach-pwgen-toggle-row {3121  display: flex; align-items: center; justify-content: space-between;3122  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3123}3124.peach-pwgen-toggle-row:last-child { border-bottom: none; }3125.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }31263127.peach-screen-prelock {3128  z-index: 10;3129}31303131.prelock-form {3132  display: grid;3133  gap: 12px;3134}31353136/* Peach popup should not expose native scrollbars on internal panels. */3137.peach-settings-body,3138.peach-new-body,3139.peach-pwgen-body,3140.lock-screen,3141.peach-import-preview {3142  scrollbar-width: none;3143  -ms-overflow-style: none;3144  overscroll-behavior: contain;3145}3146.peach-settings-body::-webkit-scrollbar,3147.peach-new-body::-webkit-scrollbar,3148.peach-pwgen-body::-webkit-scrollbar,3149.lock-screen::-webkit-scrollbar,3150.peach-import-preview::-webkit-scrollbar {3151  width: 0;3152  height: 0;3153  display: none;3154}31553156.lock-screen {3157  height: 100%;3158  min-height: 100%;3159  overflow-y: auto;3160  padding: 18px 18px 16px;3161  gap: 14px;3162  grid-template-rows: auto auto auto 1fr auto;3163  align-content: stretch;3164  position: relative;3165  isolation: isolate;3166}3167.peach-screen.lock-screen--vault-stage {3168  display: flex;3169  flex-direction: column;3170  justify-content: flex-start;3171  gap: 18px;3172  padding: 20px 18px 18px;3173  overflow: hidden;3174}3175.peach-screen.lock-screen--vault-stage .peach-lock-panel {3176  margin-top: auto;3177}3178.lock-screen--onboarding {3179  display: flex;3180  flex-direction: column;3181  gap: 12px;3182  justify-content: flex-start;3183}31843185.lock-screen::before {3186  content: "";3187  position: absolute;3188  inset: 12px 18px auto auto;3189  width: 160px;3190  height: 160px;3191  border-radius: 999px;3192  background:3193    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%);3194  filter: blur(6px);3195  opacity: 0.7;3196  pointer-events: none;3197  z-index: 0;3198}31993200.lock-screen-header {3201  display: flex;3202  align-items: center;3203  justify-content: space-between;3204  position: relative;3205  z-index: 1;3206}32073208.lock-password-input.shake {3209  animation: peach-shake 300ms ease-in-out;3210}32113212.peach-hint-error {3213  color: rgba(220, 80, 60, 0.92);3214}32153216.peach-onboarding-headline {3217  margin: 0;3218  font-family: var(--font-display);3219  font-size: 35px;3220  line-height: 0.88;3221  font-style: italic;3222  font-weight: 400;3223  max-width: 252px;3224}32253226.peach-lock-copy {3227  display: grid;3228  gap: 8px;3229  position: relative;3230  z-index: 1;3231}32323233.peach-lock-copy--onboarding {3234  gap: 10px;3235}32363237.peach-lock-hero {3238  position: relative;3239  z-index: 1;3240  display: grid;3241  gap: 8px;3242  min-height: 0;3243  padding: 4px 2px 0;3244  border: none;3245  border-radius: 0;3246  background: transparent;3247  box-shadow: none;3248}3249.peach-lock-hero-art {3250  position: absolute;3251  right: -8px;3252  top: -6px;3253  width: 120px;3254  height: 120px;3255  display: flex;3256  align-items: center;3257  justify-content: center;3258  pointer-events: none;3259  opacity: 0.12;3260  filter: saturate(0.9);3261}3262.peach-lock-hero-mark {3263  width: 100%;3264  height: 100%;3265}3266/* Peach body stays brand-peach across every accent — we don't want a3267   green or blue peach when sage/sky is selected. Leaf + stem keep the3268   sage tint because a real peach has a sage leaf. */3269.peach-lock-hero-mark path:nth-child(2),3270.peach-lock-hero-mark path:nth-child(3) {3271  stroke: rgba(123, 144, 96, 0.88);3272  fill: rgba(123, 144, 96, 0.88);3273}3274.peach-lock-hero > *:not(.peach-lock-hero-art) {3275  position: relative;3276  z-index: 1;3277}32783279.peach-lock-eyebrow {3280  display: inline-flex;3281  align-items: center;3282  width: fit-content;3283  padding: 4px 9px;3284  border-radius: 999px;3285  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3286  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3287  color: var(--peach-t0);3288  font-family: "IBM Plex Mono", monospace;3289  font-size: 8px;3290  letter-spacing: 0.18em;3291  text-transform: uppercase;3292}32933294.peach-lock-label-row {3295  display: flex;3296  align-items: center;3297  justify-content: space-between;3298  margin-bottom: 0;3299}33003301.peach-lock-reveal-btn {3302  display: inline-flex;3303  align-items: center;3304  gap: 4px;3305  background: none;3306  border: none;3307  cursor: pointer;3308  font-family: "IBM Plex Mono", monospace;3309  font-size: 9px;3310  letter-spacing: 0.06em;3311  color: var(--peach-t2);3312  padding: 2px 0;3313  transition: color 150ms ease;3314}33153316.peach-lock-reveal-btn:hover {3317  color: var(--peach-t1);3318}33193320.peach-lock-warning {3321  color: rgba(220, 80, 60, 0.85) !important;3322  line-height: 1.5;3323}33243325.peach-onboarding-cards {3326  display: grid;3327  gap: 8px;3328  position: relative;3329  z-index: 1;3330}33313332.peach-lock-panel {3333  position: relative;3334  z-index: 1;3335  display: grid;3336  gap: 9px;3337  padding: 14px 16px 15px;3338  border-radius: 18px;3339  border: 1px solid var(--peach-t3);3340  background:3341    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3342  box-shadow:3343    inset 0 1px 0 rgba(240, 232, 216, 0.04),3344    0 12px 28px rgba(0, 0, 0, 0.12);3345}33463347.peach-lock-panel--secondary {3348  gap: 12px;3349}33503351.peach-lock-panel-header {3352  display: flex;3353  align-items: baseline;3354  justify-content: space-between;3355  gap: 12px;3356}33573358.peach-lock-option-grid {3359  display: grid;3360  gap: 10px;3361}33623363.peach-lock-option {3364  width: 100%;3365  display: grid;3366  gap: 6px;3367  padding: 14px 15px;3368  border-radius: 16px;3369  border: 1px solid rgba(240, 232, 216, 0.08);3370  background: rgba(240, 232, 216, 0.02);3371  color: var(--peach-t0);3372  text-align: left;3373  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3374}33753376.peach-lock-option:hover {3377  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3378  background: rgba(240, 232, 216, 0.04);3379  transform: translateY(-1px);3380}33813382.peach-lock-option-title {3383  font-size: 12px;3384  color: var(--peach-t0);3385}33863387.peach-lock-option-copy {3388  font-size: 11px;3389  line-height: 1.55;3390  color: var(--peach-t1);3391}33923393.peach-onboarding-stack {3394  margin-top: 2px;3395}3396.peach-lock-panel-footer {3397  display: grid;3398  gap: 6px;3399  margin-top: 2px;3400  padding-top: 10px;3401  border-top: 1px solid rgba(240, 232, 216, 0.06);3402}34033404/* Restore picker panel — method option cards */3405.peach-lock-panel--restore {3406  gap: 10px;3407}3408.peach-lock-option--history {3409  border-color: rgba(240, 232, 216, 0.06);3410  opacity: 0.85;3411}34123413/* Snapshot restore panel */3414.peach-snapshot-panel {3415  gap: 10px;3416  overflow-y: auto;3417  max-height: 340px;3418}3419.peach-snapshot-list {3420  display: flex;3421  flex-direction: column;3422  gap: 4px;3423}3424.peach-snapshot-row {3425  display: flex;3426  align-items: center;3427  justify-content: space-between;3428  width: 100%;3429  padding: 8px 10px;3430  border-radius: 8px;3431  border: 1px solid rgba(240, 232, 216, 0.07);3432  background: transparent;3433  cursor: pointer;3434  transition: border-color 120ms, background 120ms;3435  text-align: left;3436  gap: 8px;3437}3438.peach-snapshot-row:hover {3439  border-color: rgba(240, 232, 216, 0.14);3440  background: rgba(240, 232, 216, 0.03);3441}3442.peach-snapshot-row.is-selected {3443  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3444  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3445}3446.peach-snapshot-time {3447  font-size: 11.5px;3448  color: var(--peach-t0);3449  flex: 1;3450}3451.peach-snapshot-count {3452  font-family: "IBM Plex Mono", monospace;3453  font-size: 10px;3454  color: var(--peach-t2);3455  flex-shrink: 0;3456}3457.peach-snapshot-confirm {3458  display: flex;3459  flex-direction: column;3460  gap: 8px;3461  padding-top: 10px;3462  border-top: 1px solid rgba(240, 232, 216, 0.06);3463}3464.peach-snapshot-warning {3465  display: flex;3466  align-items: flex-start;3467  gap: 6px;3468  font-size: 10.5px;3469  color: rgba(220, 80, 60, 0.85);3470  line-height: 1.55;3471}3472.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3473.peach-snapshot-confirm-row {3474  display: flex;3475  gap: 6px;3476  align-items: center;3477}3478.peach-snapshot-restore-btn {3479  width: 100%;3480}3481.peach-lock-hero--unlock .peach-lock-hero-art {3482  width: 112px;3483  height: 112px;3484  right: 0;3485  top: 2px;3486  opacity: 0.1;3487}34883489.peach-card {3490  border: 1px solid var(--peach-t3);3491  border-radius: 18px;3492  background:3493    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3494  box-shadow:3495    inset 0 0 0 1px var(--peach-border-accent),3496    inset 0 1px 0 rgba(240, 232, 216, 0.04),3497    0 12px 32px rgba(0, 0, 0, 0.14);3498  overflow: hidden;3499}35003501.peach-card-active {3502  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3503  box-shadow:3504    inset 0 1px 0 rgba(240, 232, 216, 0.05),3505    0 16px 38px rgba(0, 0, 0, 0.18),3506    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3507}35083509.peach-card-disabled {3510  opacity: 0.72;3511}35123513.peach-card-header {3514  width: 100%;3515  padding: 13px 16px 11px;3516  background: transparent;3517  color: var(--peach-t0);3518  display: flex;3519  justify-content: space-between;3520  align-items: center;3521  text-align: left;3522  font-size: 12px;3523}35243525.peach-card-body {3526  padding: 0 16px 16px;3527  display: grid;3528  gap: 9px;3529}35303531.peach-card-tag {3532  color: var(--peach-t2);3533  font-family: "IBM Plex Mono", monospace;3534  font-size: 9px;3535  letter-spacing: 0.12em;3536  text-transform: uppercase;3537}35383539.peach-empty-copy {3540  display: grid;3541  gap: 6px;3542  color: var(--peach-t1);3543  font-size: 13px;3544}35453546.peach-lock-submit {3547  width: 100%;3548  box-shadow:3549    0 1px 0 rgba(255,255,255,0.10) inset,3550    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3551    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3552    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3553}35543555.peach-lock-secondary {3556  width: 100%;3557  border-color: var(--peach-t3);3558  background: rgba(240, 232, 216, 0.02);3559}35603561.peach-lock-secondary:hover {3562  background: rgba(240, 232, 216, 0.04);3563}35643565.peach-lock-note {3566  max-width: none;3567  line-height: 1.55;3568  margin: 0;3569}35703571.peach-overlay-action {3572  font-size: 10px;3573  padding: 4px 8px;3574  letter-spacing: 0.06em;3575  min-width: 44px;3576  text-align: center;3577}35783579.peach-overlay-spacer {3580  width: 32px;3581}35823583.peach-inline-action {3584  flex-shrink: 0;3585  font-size: 9px;3586  letter-spacing: 0.1em;3587  text-transform: uppercase;3588  padding: 4px 7px;3589}3590.peach-password-toggle-btn {3591  display: inline-flex;3592  align-items: center;3593  justify-content: center;3594  min-width: 30px;3595  min-height: 26px;3596  padding: 0 7px;3597  border: 1px solid var(--peach-t3);3598  border-radius: 999px;3599  background: rgba(240, 232, 216, 0.04);3600  color: var(--peach-t2);3601  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3602}3603.peach-password-toggle-btn:hover {3604  border-color: var(--peach-t2);3605  color: var(--peach-t0);3606  background: rgba(240, 232, 216, 0.06);3607}36083609.peach-new-textarea {3610  width: 100%;3611  min-height: 88px;3612  resize: vertical;3613  border: 0;3614  outline: none;3615  background: transparent;3616  color: var(--peach-t1);3617  font-family: "IBM Plex Mono", monospace;3618  font-size: 12px;3619  line-height: 1.65;3620  caret-color: var(--peach-accent);3621}36223623.peach-new-textarea::placeholder {3624  color: var(--peach-t2);3625  opacity: 0.7;3626}36273628.peach-settings-actions {3629  display: grid;3630  gap: 8px;3631}36323633.peach-sync-section-label {3634  font-size: 11px;3635  color: var(--peach-t2);3636  text-transform: uppercase;3637  letter-spacing: 0.05em;3638}36393640.peach-sync-device-row {3641  display: flex;3642  justify-content: space-between;3643  align-items: center;3644  padding: 6px 0;3645  border-bottom: 1px solid var(--peach-t3);3646}36473648.peach-sync-device-info {3649  display: flex;3650  flex-direction: column;3651  gap: 2px;3652}36533654.peach-sync-device-name {3655  font-size: 13px;3656  color: var(--peach-t0);3657}36583659.peach-sync-device-meta {3660  font-size: 11px;3661  color: var(--peach-t2);3662}36633664.peach-sync-status-dot {3665  display: inline-block;3666  width: 8px;3667  height: 8px;3668  border-radius: 50%;3669  vertical-align: middle;3670}36713672.peach-sync-remove-btn {3673  color: var(--peach-breach);3674}36753676.peach-sync-hero-icon {3677  color: var(--peach-t1);3678  opacity: 0.85;3679}36803681.peach-import-preview {3682  margin-bottom: 12px;3683  max-height: 152px;3684  overflow-y: auto;3685  border: 1px solid var(--peach-t3);3686  border-radius: 10px;3687  padding: 8px 10px;3688  display: grid;3689  gap: 8px;3690  background: rgba(240, 232, 216, 0.02);3691}36923693.peach-import-preview-row {3694  display: flex;3695  justify-content: space-between;3696  gap: 10px;3697  font-size: 11px;3698  color: var(--peach-t1);3699}37003701.peach-import-preview-title {3702  color: var(--peach-t0);3703  flex: 1;3704  min-width: 0;3705  overflow: hidden;3706  text-overflow: ellipsis;3707  white-space: nowrap;3708}37093710.peach-import-preview-meta {3711  color: var(--peach-t2);3712  flex-shrink: 0;3713  max-width: 42%;3714  overflow: hidden;3715  text-overflow: ellipsis;3716  white-space: nowrap;3717}37183719.peach-import-preview-more {3720  color: var(--peach-t2);3721  font-size: 10px;3722}37233724.peach-restore-copy {3725  margin: 0;3726  color: var(--peach-t1);3727  font-size: 11px;3728  line-height: 1.6;3729}37303731.peach-restore-warning {3732  padding: 10px 12px;3733  border-radius: 12px;3734  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);3735  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3736  color: var(--peach-t0);3737  font-size: 11px;3738  line-height: 1.55;3739}37403741.peach-provider-chips {3742  display: flex;3743  flex-wrap: wrap;3744  gap: 6px;3745}37463747.peach-provider-chip {3748  display: inline-flex;3749  align-items: center;3750  padding: 5px 8px;3751  border-radius: 999px;3752  border: 1px solid var(--peach-t3);3753  background: rgba(240, 232, 216, 0.02);3754  color: var(--peach-t1);3755  font-family: "IBM Plex Mono", monospace;3756  font-size: 8px;3757  letter-spacing: 0.08em;3758  text-transform: uppercase;3759}37603761.peach-restore-file,3762.peach-restore-input {3763  width: 100%;3764  border-radius: 10px;3765  border: 1px solid var(--peach-t3);3766  background: var(--peach-s2);3767  color: var(--peach-t0);3768  font-size: 12px;3769}37703771.peach-restore-file {3772  padding: 9px 10px;3773}37743775.peach-restore-file::file-selector-button {3776  margin-right: 10px;3777  padding: 7px 10px;3778  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3779  border-radius: 999px;3780  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3781  color: var(--peach-t0);3782  font-size: 10px;3783  letter-spacing: 0.08em;3784  text-transform: uppercase;3785  cursor: pointer;3786}37873788.peach-restore-input {3789  padding: 10px 12px;3790}37913792.peach-auth-grid {3793  display: grid;3794  gap: 10px;3795}37963797.peach-import-summary {3798  color: var(--peach-t1);3799  font-size: 12px;3800  line-height: 1.6;3801  margin-bottom: 12px;3802}38033804.peach-restore-error {3805  color: rgba(220, 80, 60, 0.95);3806  font-size: 12px;3807  line-height: 1.55;3808}38093810.peach-cjk-qr-panel {3811  margin-top: 14px;3812  padding: 12px;3813  border-radius: 16px;3814  border: 1px solid var(--peach-t3);3815  background: rgba(240, 232, 216, 0.02);3816  display: grid;3817  gap: 10px;3818}38193820.peach-cjk-qr-frame {3821  display: grid;3822  place-items: center;3823  min-height: 212px;3824  border-radius: 14px;3825  background: #fff;3826  overflow: hidden;3827}38283829.peach-cjk-qr-frame svg {3830  display: block;3831  width: 196px;3832  height: 196px;3833}38343835.peach-cjk-qr-error,3836.peach-cjk-qr-caption {3837  color: var(--peach-t1);3838  font-size: 11px;3839  line-height: 1.55;3840}38413842.peach-cjk-qr-card {3843  max-width: 400px;3844  margin: auto;3845}38463847.peach-cjk-qr-body {3848  padding: 0 20px 20px;3849  text-align: center;3850}38513852.peach-cjk-qr-hint {3853  font-size: 11px;3854  color: var(--peach-t2);3855  margin: 0 0 14px;3856}38573858.peach-cjk-qr-image {3859  border-radius: 4px;3860  display: block;3861  margin: 0 auto;3862  width: 100%;3863  max-width: 320px;3864  height: auto;3865}38663867.peach-pro-badge {3868  padding: 2px 6px;3869  border-radius: 999px;3870  font-family: var(--font-ui);3871  font-size: 10px;3872  letter-spacing: 0.08em;3873  text-transform: uppercase;3874  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3875  color: var(--peach-accent);3876}38773878/* ── Shortcuts rebind table ─────────────────────────────────── */3879.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }3880.peach-shortcut-row {3881  display: flex;3882  align-items: center;3883  gap: 10px;3884  padding: 6px 0;3885}3886.peach-shortcut-row-label {3887  flex: 1;3888  font-size: 12px;3889  color: var(--peach-t0);3890}3891.peach-shortcut-chip {3892  min-width: 64px;3893  padding: 4px 10px;3894  border-radius: 6px;3895  border: 1px solid var(--peach-t3);3896  background: var(--peach-input-bg, var(--surface-card));3897  color: var(--peach-t0);3898  font-family: var(--font-mono);3899  font-size: 11px;3900  letter-spacing: 0.04em;3901  cursor: pointer;3902  text-align: center;3903  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;3904}3905.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }3906.peach-shortcut-chip.is-custom {3907  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3908  color: var(--peach-accent);3909}3910.peach-shortcut-chip.is-capturing {3911  border-color: var(--peach-accent);3912  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3913  color: var(--peach-accent);3914  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;3915}3916@keyframes peach-shortcut-capture-pulse {3917  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }3918  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3919}3920.peach-shortcut-reset {3921  background: transparent;3922  border: none;3923  cursor: pointer;3924  color: var(--peach-t2);3925  padding: 4px 6px;3926  border-radius: 5px;3927  font-size: 14px;3928  line-height: 1;3929  transition: color 120ms ease, background 120ms ease;3930}3931.peach-shortcut-reset:hover {3932  color: var(--peach-t0);3933  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);3934}3935.peach-shortcuts-conflict {3936  margin: 4px 0 0;3937  padding: 8px 10px;3938  border-radius: 7px;3939  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3940  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);3941  font-family: var(--font-mono);3942  font-size: 11px;3943  color: var(--peach-t0);3944}39453946/* ── Help dialog overlay (? to open) ────────────────────────── */3947.peach-shortcuts-help-backdrop {3948  position: fixed;3949  inset: 0;3950  background: rgba(0, 0, 0, 0.55);3951  backdrop-filter: blur(2px);3952  display: flex;3953  align-items: center;3954  justify-content: center;3955  z-index: 1000;3956  animation: peach-help-fade-in 140ms ease forwards;3957}3958@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }3959.peach-shortcuts-help-card {3960  width: min(320px, 92vw);3961  max-height: 80vh;3962  overflow-y: auto;3963  border-radius: 14px;3964  border: 1px solid var(--peach-t3);3965  background: var(--peach-bg);3966  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);3967  padding: 16px 18px 18px;3968  display: flex;3969  flex-direction: column;3970  gap: 12px;3971}3972.peach-shortcuts-help-head {3973  display: flex; align-items: center; justify-content: space-between;3974}3975.peach-shortcuts-help-head h3 {3976  margin: 0;3977  font-family: var(--font-display);3978  font-style: italic;3979  font-weight: 400;3980  font-size: 22px;3981  color: var(--peach-t0);3982}3983.peach-shortcuts-help-close {3984  background: transparent;3985  border: none;3986  color: var(--peach-t2);3987  cursor: pointer;3988  font-size: 14px;3989  padding: 4px 8px;3990  border-radius: 5px;3991}3992.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }3993.peach-shortcuts-help-body ul {3994  list-style: none; padding: 0; margin: 4px 0 12px;3995  display: grid; gap: 8px;3996}3997.peach-shortcuts-help-body li {3998  display: flex; align-items: center; justify-content: space-between; gap: 12px;3999  font-size: 12px; color: var(--peach-t0);4000}4001.peach-shortcuts-help-body kbd {4002  font-family: var(--font-mono);4003  font-size: 11px;4004  padding: 3px 8px;4005  border-radius: 6px;4006  background: var(--surface-card);4007  border: 1px solid var(--peach-t3);4008  color: var(--peach-accent);4009  letter-spacing: 0.04em;4010}40114012/* ── Pro promo on Account screen ────────────────────────────── */4013.peach-pro-promo {4014  position: relative;4015  border-radius: 14px;4016  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);4017  background:4018    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),4019    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),4020    var(--surface-card);4021  overflow: hidden;4022  margin-bottom: 14px;4023}4024.peach-pro-promo-glow {4025  position: absolute;4026  inset: -40% -20% auto auto;4027  width: 220px; height: 220px;4028  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);4029  pointer-events: none;4030  filter: blur(8px);4031}4032.peach-pro-promo-inner {4033  position: relative;4034  padding: 18px 18px 16px;4035}4036.peach-pro-promo-title {4037  font-family: var(--font-display);4038  font-style: italic;4039  font-weight: 400;4040  font-size: 28px;4041  line-height: 1;4042  letter-spacing: -0.005em;4043  color: var(--peach-t0);4044  margin: 0 0 4px;4045}4046.peach-pro-promo-tagline {4047  font-family: var(--font-mono);4048  font-size: 10px;4049  letter-spacing: 0.06em;4050  color: var(--peach-t2);4051  margin: 0 0 14px;4052}4053.peach-pro-promo-list {4054  list-style: none;4055  margin: 0 0 16px;4056  padding: 0;4057  display: grid;4058  gap: 9px;4059}4060.peach-pro-promo-list li {4061  display: flex;4062  align-items: flex-start;4063  gap: 9px;4064  font-size: 12px;4065  color: var(--peach-t1);4066  line-height: 1.4;4067}4068.peach-pro-promo-list svg {4069  width: 14px;4070  height: 14px;4071  flex-shrink: 0;4072  color: var(--peach-accent);4073  margin-top: 2px;4074}4075.peach-pro-promo-list span {4076  color: var(--peach-t0);4077}4078.peach-pro-promo-cta {4079  width: 100%;4080  background: var(--peach-accent);4081  color: #fff;4082  border: none;4083  padding: 9px 12px;4084  border-radius: 9px;4085  font-size: 12px;4086  font-weight: 500;4087  font-family: var(--font-ui);4088  letter-spacing: 0.02em;4089  text-decoration: none;4090  display: inline-flex;4091  align-items: center;4092  justify-content: center;4093  cursor: pointer;4094  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;4095  box-shadow: 0 2px 16px var(--peach-glow);4096}4097.peach-pro-promo-cta:hover {4098  filter: brightness(1.07);4099  box-shadow: 0 4px 24px var(--peach-glow);4100  transform: translateY(-1px);4101}4102.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }41034104.peach-pro-or-divider {4105  display: flex;4106  align-items: center;4107  gap: 10px;4108  margin: 4px 0 12px;4109  font-family: var(--font-mono);4110  font-size: 10px;4111  letter-spacing: 0.06em;4112  color: var(--peach-t2);4113  text-transform: uppercase;4114}4115.peach-pro-or-divider::before,4116.peach-pro-or-divider::after {4117  content: "";4118  flex: 1;4119  height: 1px;4120  background: var(--peach-t3);4121}41224123.peach-loading {4124  position: absolute;4125  inset: 0;4126  display: flex;4127  align-items: center;4128  justify-content: center;4129  background: var(--bg);4130  animation: peach-loading-pulse 1.2s ease-in-out infinite;4131}41324133@keyframes peach-loading-pulse {4134  0%, 100% { opacity: 0.6; }4135  50% { opacity: 1; }4136}41374138/* ── Health Dashboard ─────────────────────────────────────────────────── */4139.peach-health-body {4140  flex: 1;4141  overflow-y: auto;4142  display: flex;4143  flex-direction: column;4144}41454146.peach-health-summary {4147  padding: 10px 16px 6px;4148  font-family: "IBM Plex Mono", monospace;4149  font-size: 11px;4150}4151.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4152.peach-health-summary-ok { color: var(--peach-t2); }41534154.peach-health-check-row {4155  padding: 0 16px 10px;4156}4157.peach-health-check-btn {4158  width: 100%;4159  display: flex;4160  align-items: center;4161  justify-content: center;4162}41634164.peach-health-sections {4165  flex: 1;4166  display: flex;4167  flex-direction: column;4168}41694170.peach-health-section {4171  border-bottom: 1px solid var(--peach-t3);4172}41734174.peach-health-section-header {4175  width: 100%;4176  display: flex;4177  align-items: center;4178  justify-content: space-between;4179  padding: 9px 16px;4180  background: transparent;4181  cursor: pointer;4182  color: var(--peach-t0);4183}41844185.peach-health-section-title-row {4186  display: flex;4187  align-items: center;4188  gap: 8px;4189}41904191.peach-health-count-badge {4192  display: inline-flex;4193  align-items: center;4194  justify-content: center;4195  min-width: 20px;4196  height: 18px;4197  padding: 0 5px;4198  border-radius: 999px;4199  background: rgba(220,80,60,0.15);4200  border: 1px solid rgba(220,80,60,0.25);4201  font-family: "IBM Plex Mono", monospace;4202  font-size: 9px;4203  color: rgba(220,80,60,0.9);4204}42054206.peach-health-section-title {4207  font-family: "IBM Plex Mono", monospace;4208  font-size: 11px;4209  text-transform: uppercase;4210  letter-spacing: 0.1em;4211  color: var(--peach-t1);4212}42134214.peach-health-chevron {4215  color: var(--peach-t2);4216  transition: transform 200ms ease;4217  flex-shrink: 0;4218}4219.peach-health-chevron.is-expanded {4220  transform: rotate(180deg);4221}42224223.peach-health-section-body {4224  padding: 0 16px 10px;4225  display: flex;4226  flex-direction: column;4227  gap: 4px;4228}42294230.peach-health-row {4231  display: flex;4232  align-items: flex-start;4233  justify-content: space-between;4234  gap: 8px;4235  padding: 6px 8px;4236  border-radius: 8px;4237  background: rgba(240,232,216,0.02);4238}42394240.peach-health-row-info {4241  flex: 1;4242  min-width: 0;4243  display: flex;4244  flex-direction: column;4245  gap: 2px;4246}42474248.peach-health-row-name {4249  font-family: var(--font-display);4250  font-size: 15px;4251  font-style: italic;4252  font-weight: 400;4253  color: var(--peach-t0);4254  white-space: nowrap;4255  overflow: hidden;4256  text-overflow: ellipsis;4257}42584259.peach-health-row-meta {4260  font-family: "IBM Plex Mono", monospace;4261  font-size: 9px;4262  color: var(--peach-t2);4263  letter-spacing: 0.05em;4264}42654266.peach-health-fix-btn {4267  font-size: 9px;4268  letter-spacing: 0.08em;4269  text-transform: uppercase;4270  padding: 4px 7px;4271  flex-shrink: 0;4272  display: flex;4273  align-items: center;4274}42754276.peach-health-empty {4277  font-family: "IBM Plex Mono", monospace;4278  font-size: 10px;4279  color: var(--peach-t2);4280  padding: 6px 0;4281}42824283.peach-health-loading {4284  font-family: "IBM Plex Mono", monospace;4285  font-size: 10px;4286  color: var(--peach-t2);4287  padding: 6px 0;4288  display: flex;4289  align-items: center;4290  gap: 6px;4291}42924293.peach-health-loading::before {4294  content: "";4295  width: 10px;4296  height: 10px;4297  border: 1.5px solid var(--peach-t3);4298  border-top-color: var(--peach-accent);4299  border-radius: 50%;4300  animation: peach-spin 600ms linear infinite;4301}43024303@keyframes peach-spin {4304  to { transform: rotate(360deg); }4305}43064307.peach-spinner {4308  width: 32px;4309  height: 32px;4310  border: 2px solid var(--peach-s2);4311  border-top-color: var(--peach-accent);4312  border-radius: 50%;4313  margin: 0 auto 16px;4314  animation: peach-spin 0.8s linear infinite;4315}43164317.peach-progress-screen {4318  text-align: center;4319  padding: 32px 16px;4320}43214322.peach-progress-screen-title {4323  font-size: 13px;4324  color: var(--peach-t0);4325  margin-bottom: 16px;4326}43274328.peach-progress-screen-stage {4329  font-size: 11px;4330  color: var(--peach-t2);4331  min-height: 14px;4332}43334334.peach-progress-screen-note {4335  font-size: 10px;4336  color: var(--peach-t2);4337  margin-top: 8px;4338}43394340.peach-pairing-body {4341  flex: 1;4342  overflow-y: auto;4343  display: flex;4344  flex-direction: column;4345}43464347.peach-pairing-content {4348  flex: 1;4349  display: flex;4350  flex-direction: column;4351  align-items: center;4352  justify-content: center;4353  gap: 14px;4354  padding: 28px 20px;4355  text-align: center;4356}43574358.peach-pairing-headline {4359  font-family: var(--font-display);4360  font-style: italic;4361  font-weight: 300;4362  font-size: 28px;4363  color: var(--peach-t0);4364  margin: 0;4365  line-height: 1;4366}43674368.peach-pairing-subline {4369  font-size: 12px;4370  color: var(--peach-t2);4371  max-width: 220px;4372  line-height: 1.5;4373  margin: 0;4374}43754376.peach-pairing-subline--center {4377  text-align: center;4378}43794380.peach-pairing-code-display {4381  display: flex;4382  gap: 6px;4383}43844385.peach-pairing-code-digit {4386  display: flex;4387  align-items: center;4388  justify-content: center;4389  width: 36px;4390  height: 48px;4391  background: var(--peach-s2);4392  border: 1px solid var(--peach-t3);4393  border-radius: 6px;4394  font-family: var(--font-mono);4395  font-size: 22px;4396  color: var(--peach-t0);4397  letter-spacing: 0;4398}43994400.peach-pairing-countdown-ring {4401  position: relative;4402  display: inline-flex;4403  align-items: center;4404  justify-content: center;4405}44064407.peach-pairing-countdown-num {4408  position: absolute;4409  font-family: var(--font-mono);4410  font-size: 14px;4411  color: var(--peach-t1);4412}44134414.peach-pairing-ring-track {4415  fill: none;4416  stroke: var(--peach-t3);4417  stroke-width: 2;4418}44194420.peach-pairing-ring-progress {4421  fill: none;4422  stroke: var(--peach-accent);4423  stroke-width: 2;4424  stroke-linecap: round;4425  transform: rotate(-90deg);4426  transform-origin: 50% 50%;4427  transition: stroke-dashoffset 0.5s linear;4428}44294430.peach-pairing-code-inputs {4431  display: flex;4432  gap: 8px;4433}44344435.peach-pairing-code-box {4436  width: 36px;4437  height: 48px;4438  text-align: center;4439  background: var(--peach-s2);4440  border: 1px solid var(--peach-t3);4441  border-radius: 6px;4442  font-family: var(--font-mono);4443  font-size: 20px;4444  color: var(--peach-t0);4445  outline: none;4446  transition: border-color 120ms ease;4447}44484449.peach-pairing-code-box:focus {4450  border-color: var(--peach-accent);4451}44524453.peach-pairing-code-box.has-error {4454  border-color: rgba(220, 80, 60, 0.45);4455}44564457.peach-pairing-status {4458  display: flex;4459  align-items: center;4460  gap: 8px;4461  margin: 0;4462  font-size: 12px;4463  color: var(--peach-t1);4464}44654466.peach-pairing-error {4467  margin: 0;4468  font-size: 11px;4469  color: var(--peach-breach);4470}44714472.peach-pairing-error-msg {4473  color: var(--peach-t1);4474}44754476.peach-pairing-spinner {4477  width: 12px;4478  height: 12px;4479  border: 1.5px solid var(--peach-t3);4480  border-top-color: var(--peach-accent);4481  border-radius: 50%;4482  animation: peach-spin 0.8s linear infinite;4483}44844485.peach-pairing-success-icon,4486.peach-pairing-error-icon,4487.peach-pairing-hero {4488  display: inline-flex;4489  align-items: center;4490  justify-content: center;4491}44924493/* Tag chips */4494.peach-tag-chip {4495  display: inline-flex;4496  align-items: center;4497  gap: 4px;4498  padding: 3px 8px;4499  border-radius: 999px;4500  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4501  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4502  color: var(--peach-t0);4503  font-family: "IBM Plex Mono", monospace;4504  font-size: 10px;4505  letter-spacing: 0.04em;4506}45074508.peach-tag-chip-remove {4509  background: transparent;4510  border: none;4511  color: inherit;4512  opacity: 0.6;4513  cursor: pointer;4514  padding: 0;4515  font-size: 12px;4516  line-height: 1;4517}45184519.peach-tag-chip-remove:hover {4520  opacity: 1;4521}45224523/* Tag input */4524.peach-tag-input-wrap {4525  border-bottom: 1px solid var(--peach-t3);4526}45274528.peach-tag-suggestions {4529  display: flex;4530  flex-wrap: wrap;4531  gap: 4px;4532  padding: 6px 0;4533}45344535.peach-tag-suggestion {4536  padding: 2px 8px;4537  border-radius: 999px;4538  border: 1px solid var(--peach-t3);4539  background: var(--peach-s2);4540  color: var(--peach-t1);4541  font-family: "IBM Plex Mono", monospace;4542  font-size: 10px;4543  cursor: pointer;4544  transition: border-color 80ms ease, background 80ms ease;4545}45464547.peach-tag-suggestion:hover {4548  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4549  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4550}45514552/* Tag filter strip */4553.peach-tag-filter-strip {4554  border-bottom: 1px solid var(--peach-t3);4555  flex-shrink: 0;4556}45574558.peach-tag-filter-chip {4559  display: inline-flex;4560  align-items: center;4561  padding: 4px 10px;4562  border-radius: 999px;4563  border: 1px solid var(--peach-t3);4564  background: transparent;4565  color: var(--peach-t2);4566  font-family: "IBM Plex Mono", monospace;4567  font-size: 9px;4568  letter-spacing: 0.06em;4569  text-transform: uppercase;4570  cursor: pointer;4571  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4572  white-space: nowrap;4573}45744575.peach-tag-filter-chip:hover {4576  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4577  color: var(--peach-t1);4578}45794580.peach-tag-filter-chip.is-selected {4581  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4582  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4583  color: var(--peach-t0);4584}45854586/* ─────────────────────────────────────────────────────────────────────────4587   v1.4.12 additions4588   ─────────────────────────────────────────────────────────────────────── */45894590/* Sort bar */4591.peach-sort-bar {4592  display: flex;4593  align-items: center;4594  gap: 4px;4595  padding: 5px 12px;4596  border-bottom: 1px solid var(--peach-t3);4597  flex-shrink: 0;4598  overflow-x: auto;4599  scrollbar-width: none;4600}46014602.peach-sort-btn {4603  padding: 2px 9px;4604  border-radius: 999px;4605  border: 1px solid transparent;4606  background: transparent;4607  color: var(--peach-t2);4608  font-family: "IBM Plex Mono", monospace;4609  font-size: 9px;4610  letter-spacing: 0.07em;4611  text-transform: uppercase;4612  cursor: pointer;4613  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4614  white-space: nowrap;4615}46164617.peach-sort-btn:hover {4618  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4619  color: var(--peach-t1);4620}46214622.peach-sort-btn.is-active {4623  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4624  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4625  color: var(--peach-t0);4626}46274628.peach-sort-domain-hint {4629  margin-left: auto;4630  font-family: "IBM Plex Mono", monospace;4631  font-size: 9px;4632  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4633  white-space: nowrap;4634  overflow: hidden;4635  text-overflow: ellipsis;4636  max-width: 110px;4637}46384639/* Tab-match badge on entry rows */4640.peach-tab-match-badge {4641  display: inline-block;4642  width: 6px;4643  height: 6px;4644  border-radius: 50%;4645  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4646  margin-left: 5px;4647  vertical-align: middle;4648  flex-shrink: 0;4649  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4650}46514652.peach-entry-row.is-tab-match {4653  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4654  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4655}46564657.peach-entry-row.is-tab-match:hover {4658  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4659}46604661/* Entry list stagger entrance */4662@keyframes peach-entry-fadein {4663  from { opacity: 0; transform: translateY(4px); }4664  to   { opacity: 1; transform: translateY(0); }4665}46664667.peach-vault-list .peach-entry-row {4668  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4669  content-visibility: auto;4670  contain-intrinsic-size: auto 44px;4671}46724673/* Button press micro-interaction */4674.peach-btn:active {4675  transform: scale(0.95);4676  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4677}46784679.peach-sort-btn:active,4680.peach-tag-filter-chip:active {4681  transform: scale(0.93);4682  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4683}46844685/* Password strength bar (Lock view + shared) */4686.peach-password-strength {4687  display: flex;4688  align-items: center;4689  gap: 8px;4690  margin-top: 6px;4691}46924693.peach-strength-bar {4694  flex: 1;4695  height: 3px;4696  border-radius: 2px;4697  background: var(--peach-t3);4698  overflow: hidden;4699}47004701.peach-strength-fill {4702  height: 100%;4703  border-radius: 2px;4704  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4705              background 300ms ease;4706}47074708.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4709.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4710.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4711.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }47124713.peach-strength-label {4714  font-family: "IBM Plex Mono", monospace;4715  font-style: italic;4716  font-size: 9px;4717  font-weight: 300;4718  letter-spacing: 0.06em;4719  color: var(--peach-t2);4720  min-width: 36px;4721  text-align: right;4722}47234724.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4725.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4726.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4727.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }47284729/* Duress form */4730.peach-duress-status {4731  padding: 2px 8px;4732  border-radius: 999px;4733  border: 1px solid var(--peach-t3);4734  font-family: "IBM Plex Mono", monospace;4735  font-size: 9px;4736  letter-spacing: 0.07em;4737  text-transform: uppercase;4738  color: var(--peach-t2);4739  flex-shrink: 0;4740}47414742.peach-duress-status.is-active {4743  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4744  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4745  color: var(--peach-t0);4746}47474748.peach-duress-form {4749  padding: 8px 0 4px;4750  display: flex;4751  flex-direction: column;4752  gap: 6px;4753}47544755.peach-duress-form .peach-label {4756  margin-top: 4px;4757}47584759.peach-duress-actions {4760  display: flex;4761  gap: 6px;4762  align-items: center;4763  margin-top: 4px;4764}47654766.peach-duress-actions .peach-btn:first-child {4767  margin-right: auto;4768}47694770/* Improved overlay spring entrance */4771.peach-overlay-view.ov-enter-up {4772  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4773}47744775@keyframes ov-enter-up-spring {4776  from { opacity: 0; transform: translateY(16px) scale(0.98); }4777  to   { opacity: 1; transform: translateY(0) scale(1); }4778}47794780.peach-overlay-view.ov-enter-right {4781  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4782}47834784@keyframes ov-enter-right-spring {4785  from { opacity: 0; transform: translateX(18px) scale(0.98); }4786  to   { opacity: 1; transform: translateX(0) scale(1); }4787}47884789/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4790/* Used when CJKImportView or MainImportView renders during onboarding4791   (no vault yet). Animates like a lock-screen transition. */4792.peach-lock-view {4793  position: absolute;4794  inset: 0;4795  display: flex;4796  flex-direction: column;4797  background:4798    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4799    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4800    var(--peach-bg);4801  z-index: 2;4802  overflow: hidden;4803  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4804}48054806.peach-lock-view-header {4807  display: flex;4808  align-items: center;4809  justify-content: space-between;4810  padding: 16px 18px 12px;4811  flex-shrink: 0;4812}48134814/* ───────── Settings: auto-lock select ───────── */4815.peach-settings-select {4816  font-family: "IBM Plex Mono", monospace;4817  font-size: 11px;4818  background: transparent;4819  border: 1px solid var(--peach-t3);4820  border-radius: 4px;4821  color: var(--peach-t1);4822  padding: 3px 6px;4823  cursor: pointer;4824  outline: none;4825}4826.peach-settings-select:focus {4827  border-color: var(--peach-accent);4828}48294830/* ───────── Duress status pill (new polished) ───────── */4831.peach-duress-status-pill {4832  font-family: "IBM Plex Mono", monospace;4833  font-size: 9px;4834  text-transform: uppercase;4835  letter-spacing: 0.12em;4836  padding: 2px 8px;4837  border-radius: 12px;4838  background: var(--peach-t3);4839  color: var(--peach-t2);4840  flex-shrink: 0;4841}4842.peach-duress-status-pill.is-active {4843  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4844  color: var(--peach-accent);4845}48464847/* ───────── Entry advanced disclosure (canary) ───────── */4848.peach-entry-advanced {4849  margin-top: 12px;4850  border-top: 1px solid var(--peach-t3);4851  padding-top: 10px;4852  position: relative;4853  z-index: 1;4854}4855.peach-entry-advanced-toggle {4856  display: flex;4857  align-items: center;4858  justify-content: space-between;4859  width: 100%;4860  background: transparent;4861  border: none;4862  cursor: pointer;4863  padding: 0;4864  color: var(--peach-t2);4865}4866.peach-canary-section {4867  margin-top: 10px;4868  display: grid;4869  gap: 6px;4870}48714872/* ───────── Import: merge/replace radio choices ───────── */4873.peach-import-choice {4874  display: flex;4875  align-items: flex-start;4876  gap: 10px;4877  padding: 8px 10px;4878  border: 1px solid var(--peach-t3);4879  border-radius: 10px;4880  cursor: pointer;4881  margin-bottom: 6px;4882  transition: border-color 120ms ease, background 120ms ease;4883}4884.peach-import-choice:hover {4885  border-color: var(--peach-accent);4886}4887.peach-import-choice input[type="radio"] {4888  margin-top: 3px;4889  accent-color: var(--peach-accent);4890  flex-shrink: 0;4891}4892.peach-import-choice-main {4893  display: flex;4894  flex-direction: column;4895  gap: 2px;4896  min-width: 0;4897}4898.peach-import-choice-label {4899  font-size: 12px;4900  color: var(--peach-t0);4901}4902.peach-import-choice-sub {4903  font-size: 11px;4904  color: var(--peach-t2);4905  line-height: 1.5;4906}49074908/* ───────── Export: success confirmation strip ───────── */4909.peach-export-success {4910  display: flex;4911  align-items: flex-start;4912  gap: 10px;4913  padding: 12px;4914  border-radius: 12px;4915  border: 1px solid rgba(150, 175, 110, 0.3);4916  background: rgba(150, 175, 110, 0.08);4917  color: var(--peach-t0);4918  font-size: 12px;4919  line-height: 1.55;4920}4921.peach-export-success-check {4922  color: rgba(150, 175, 110, 0.9);4923  font-size: 14px;4924  flex-shrink: 0;4925}49264927/* ── Trash view ──────────────────────────────────────────────────────── */4928.peach-trash-entry-row {4929  display: flex;4930  align-items: center;4931  justify-content: space-between;4932  gap: 8px;4933  padding: 8px 0;4934  border-bottom: 1px solid var(--peach-t3);4935}4936.peach-trash-entry-row:last-child { border-bottom: none; }4937.peach-trash-entry-info {4938  flex: 1;4939  min-width: 0;4940  display: flex;4941  flex-direction: column;4942  gap: 2px;4943}4944.peach-trash-entry-title {4945  font-size: 12px;4946  color: var(--peach-t1);4947  overflow: hidden;4948  text-overflow: ellipsis;4949  white-space: nowrap;4950}4951.peach-trash-entry-meta {4952  font-family: var(--font-mono);4953  font-size: 9px;4954  color: var(--peach-t2);4955  letter-spacing: 0.06em;4956}4957.peach-trash-entry-actions {4958  display: flex;4959  align-items: center;4960  gap: 4px;4961  flex-shrink: 0;4962}4963.peach-trash-list {4964  flex: 1;4965  min-height: 0;4966  overflow-y: auto;4967}4968.peach-trash-notice {4969  margin: 0 20px 16px;4970  margin-top: auto;4971}49724973/* ── Settings shortcuts grid ─────────────────────────────────────────── */4974.peach-shortcuts-grid {4975  display: grid;4976  grid-template-columns: auto 1fr;4977  gap: 6px 12px;4978  align-items: center;4979  padding: 4px 0;4980}4981.peach-shortcut-key {4982  font-family: var(--font-mono);4983  font-size: 10px;4984  color: var(--peach-t0);4985  background: var(--peach-t3);4986  border-radius: 4px;4987  padding: 2px 6px;4988  white-space: nowrap;4989  text-align: center;4990}4991.peach-shortcut-desc {4992  font-size: 11px;4993  color: var(--peach-t1);4994}49954996/* ── Sort bar trash button ───────────────────────────────────────────── */4997.peach-sort-trash-btn {4998  display: flex;4999  align-items: center;5000  justify-content: center;5001  padding: 3px 5px;5002  background: transparent;5003  border: none;5004  cursor: pointer;5005  color: var(--peach-t2);5006  border-radius: 4px;5007  transition: color 140ms ease, background 140ms ease;5008}5009.peach-sort-trash-btn:hover {5010  color: var(--peach-t1);5011  background: var(--peach-t3);5012}5013.peach-sort-trash-btn.is-active {5014  color: var(--peach-accent);5015}50165017/* Accent color picker */5018.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }5019.peach-accent-picker {5020  display: flex;5021  flex-wrap: wrap;5022  gap: 7px;5023  padding: 2px 0;5024}5025.peach-accent-swatch {5026  width: 22px;5027  height: 22px;5028  border-radius: 50%;5029  border: 2px solid transparent;5030  cursor: pointer;5031  padding: 0;5032  transition: transform 100ms;5033  outline-offset: 2px;5034}5035.peach-accent-swatch:hover { transform: scale(1.15); }5036.peach-accent-swatch.is-active {5037  border-color: var(--peach-t0);5038  transform: scale(1.1);5039}50405041/* Display font picker — swatch shows an "Aa" preview rendered with each5042   font option so the user can see what they're picking before they pick. */5043.peach-settings-row--font { align-items: flex-start; padding-top: 10px; }5044.peach-font-picker {5045  display: flex;5046  flex-wrap: wrap;5047  gap: 6px;5048  padding: 2px 0;5049  flex: 1;5050  justify-content: flex-end;5051}5052.peach-font-swatch {5053  display: flex;5054  flex-direction: column;5055  align-items: center;5056  gap: 2px;5057  padding: 4px 8px;5058  background: transparent;5059  border: 1px solid var(--peach-t3);5060  border-radius: 6px;5061  cursor: pointer;5062  transition: border-color 100ms, background 100ms;5063  min-width: 56px;5064}5065.peach-font-swatch:hover {5066  border-color: var(--peach-accent-dim);5067  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5068}5069.peach-font-swatch.is-active {5070  border-color: var(--peach-accent);5071  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);5072}5073.peach-font-swatch-glyph {5074  font-size: 18px;5075  line-height: 1;5076  color: var(--peach-t0);5077}5078.peach-font-swatch[data-font-preview="cormorant-italic"] .peach-font-swatch-glyph {5079  font-family: "Cormorant Garamond", serif;5080  font-style: italic;5081  font-weight: 400;5082}5083.peach-font-swatch[data-font-preview="cormorant"] .peach-font-swatch-glyph {5084  font-family: "Cormorant Garamond", serif;5085  font-style: normal;5086  font-weight: 400;5087}5088.peach-font-swatch[data-font-preview="inter"] .peach-font-swatch-glyph {5089  font-family: "Inter Variable", "Inter", sans-serif;5090  font-style: normal;5091  font-weight: 400;5092}5093.peach-font-swatch[data-font-preview="system"] .peach-font-swatch-glyph {5094  font-family: system-ui, -apple-system, sans-serif;5095  font-style: normal;5096  font-weight: 400;5097}5098.peach-font-swatch-name {5099  font-family: var(--font-mono);5100  font-size: 8px;5101  letter-spacing: 0.06em;5102  color: var(--peach-t2);5103  text-transform: lowercase;5104}51055106.peach-pill-group {5107  display: flex;5108  gap: 6px;5109}5110.peach-pill-group .peach-btn.is-active {5111  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);5112  border-color: var(--peach-accent);5113  color: var(--peach-t0);5114}51155116/* ── Card entry styles ───────────────────────────────────────── */5117.peach-card-number {5118  font-family: var(--peach-mono);5119  letter-spacing: 0.08em;5120}51215122.peach-card-network-badge {5123  font-size: 10px;5124  padding: 1px 5px;5125  border-radius: 4px;5126  border: 0.5px solid var(--peach-border);5127  color: var(--peach-text-dim);5128  margin-left: 6px;5129  vertical-align: middle;5130}51315132.peach-card-expiry-row {5133  display: flex;5134  align-items: center;5135  gap: 8px;5136}51375138.peach-card-expiry-sep {5139  color: var(--peach-text-dim);5140}51415142/* ── Pro tier — upgrade screen ──────────────────────────────── */5143.peach-pro-mark {5144  font-size: 9px;5145  color: var(--peach-accent);5146  margin-left: 6px;5147  vertical-align: super;5148  opacity: 0.7;5149}51505151.peach-pro-mini-badge {5152  display: block;5153  font-size: 10px;5154  font-style: italic;5155  color: var(--peach-accent);5156  letter-spacing: 0.04em;5157  margin-top: -2px;5158  padding-left: 2px;5159  opacity: 0.85;5160  text-align: center;5161}51625163.peach-wordmark-stack {5164  display: inline-flex;5165  flex-direction: column;5166  align-items: center;5167}51685169.peach-pro-upgrade {5170  display: flex;5171  flex-direction: column;5172  gap: 14px;5173  padding: 4px 4px 12px;5174}51755176.peach-pro-upgrade-hero {5177  display: flex;5178  flex-direction: column;5179  align-items: center;5180  gap: 4px;5181  padding: 8px 0 4px;5182}51835184.peach-pro-upgrade-mark {5185  width: 32px;5186  height: 32px;5187}51885189.peach-pro-upgrade-title {5190  font-family: var(--font-display, var(--font-ui));5191  font-size: 22px;5192  margin: 0;5193  color: var(--peach-t0);5194  letter-spacing: 0.01em;5195}51965197.peach-pro-upgrade-tagline {5198  margin: 0;5199  font-style: italic;5200  color: var(--peach-t2);5201  font-size: 12px;5202}52035204.peach-pro-features {5205  display: flex;5206  flex-direction: column;5207  gap: 10px;5208  border-top: 1px solid var(--peach-border);5209  border-bottom: 1px solid var(--peach-border);5210  padding: 14px 4px;5211}52125213.peach-pro-feature {5214  display: flex;5215  gap: 10px;5216  align-items: flex-start;5217}52185219.peach-pro-feature-mark {5220  color: var(--peach-accent);5221  font-size: 14px;5222  line-height: 1.2;5223  flex-shrink: 0;5224  display: inline-block;5225  transform-origin: center;5226}52275228.peach-pro-feature-text {5229  display: flex;5230  flex-direction: column;5231  gap: 2px;5232}52335234.peach-pro-feature-name {5235  font-size: 13px;5236  color: var(--peach-t0);5237}52385239.peach-pro-feature-desc {5240  font-size: 11px;5241  color: var(--peach-t2);5242}52435244.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5245  animation: peach-pulse-accent 600ms ease-out forwards;5246}52475248@keyframes peach-pulse-accent {5249  0%   { opacity: 1; transform: scale(1.4); }5250  100% { opacity: 0.7; transform: scale(1); }5251}52525253.peach-pro-pricing {5254  margin: 0;5255  text-align: center;5256  font-size: 12px;5257  color: var(--peach-t2);5258}52595260.peach-pro-upgrade-cta {5261  align-self: center;5262  width: auto;5263  min-width: 160px;5264  text-align: center;5265  text-decoration: none;5266  display: inline-block;5267  padding: 8px 20px;5268  font-size: 13px;5269}52705271.peach-pro-key-link {5272  background: transparent;5273  border: 0;5274  color: var(--peach-t2);5275  font-size: 11px;5276  cursor: pointer;5277  align-self: center;5278  padding: 4px 8px;5279}52805281.peach-pro-key-link:hover {5282  color: var(--peach-accent);5283}52845285.peach-pro-key-entry {5286  display: flex;5287  flex-direction: column;5288  gap: 8px;5289}52905291.peach-pro-key-input {5292  font-family: var(--font-mono, monospace);5293  letter-spacing: 0.06em;5294  text-align: center;5295}52965297.peach-pro-key-error {5298  margin: 0;5299  font-size: 11px;5300  color: var(--peach-breach, #e55);5301}53025303/* ── Pro tier — active state ─────────────────────────────────── */5304.peach-pro-active {5305  display: flex;5306  flex-direction: column;5307  gap: 8px;5308  padding: 14px 4px;5309}53105311.peach-pro-active-head {5312  display: flex;5313  align-items: center;5314  gap: 8px;5315}53165317.peach-pro-active-mark { font-size: 16px; line-height: 1; }53185319.peach-pro-active-title {5320  margin: 0;5321  font-size: 15px;5322  font-weight: 500;5323  color: var(--peach-t0);5324}53255326.peach-pro-active-since {5327  margin: 0;5328  font-size: 12px;5329  color: var(--peach-t2);5330}53315332.peach-pro-active-divider {5333  height: 1px;5334  background: var(--peach-border);5335  margin: 8px 0 4px;5336}53375338.peach-pro-active-thanks {5339  margin: 0;5340  font-size: 12px;5341  font-style: italic;5342  color: var(--peach-t2);5343}53445345.peach-pro-deactivate {5346  align-self: flex-end;5347  background: transparent;5348  border: 0;5349  color: var(--peach-t2);5350  font-size: 11px;5351  cursor: pointer;5352  padding: 6px 0;5353  margin-top: 4px;5354}53555356.peach-pro-deactivate:hover {5357  color: var(--peach-accent);5358}53595360.peach-pro-deactivate:disabled {5361  opacity: 0.6;5362  cursor: default;5363}53645365/* ── Pro advanced health remediation queue ──────────────────── */5366.peach-health-pro-queue {5367  display: flex;5368  flex-direction: column;5369  gap: 10px;5370  padding: 12px;5371  margin: 0 0 12px;5372  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5373  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5374  border-radius: 10px;5375}53765377.peach-health-pro-queue-head {5378  display: flex;5379  justify-content: space-between;5380  align-items: baseline;5381}53825383.peach-health-pro-queue-title {5384  font-size: 12px;5385  font-weight: 500;5386  letter-spacing: 0.04em;5387  text-transform: uppercase;5388  color: var(--peach-accent);5389}53905391.peach-health-pro-queue-score {5392  font-size: 11px;5393  color: var(--peach-t2);5394}53955396.peach-health-pro-row {5397  display: flex;5398  gap: 10px;5399  align-items: center;5400  padding: 8px 0;5401  border-top: 1px solid var(--peach-border);5402}54035404.peach-health-pro-row-info {5405  flex: 1;5406  display: flex;5407  flex-direction: column;5408  gap: 4px;5409  min-width: 0;5410}54115412.peach-health-pro-row-name {5413  font-size: 13px;5414  color: var(--peach-t0);5415  overflow: hidden;5416  text-overflow: ellipsis;5417  white-space: nowrap;5418}54195420.peach-health-pro-row-meta {5421  font-size: 11px;5422  color: var(--peach-t2);5423}54245425.peach-health-pro-bar {5426  height: 2px;5427  background: var(--peach-border);5428  border-radius: 2px;5429  overflow: hidden;5430  margin-top: 2px;5431}54325433.peach-health-pro-bar-fill {5434  height: 100%;5435  background: var(--peach-accent);5436  transition: width 200ms ease-out;5437}54385439/* ── Pro activation celebration ── */5440@keyframes peach-pro-bloom {5441  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5442  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5443                 drop-shadow(0 0 48px var(--peach-glow)); }5444  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5445}54465447@keyframes peach-pro-wordmark-in {5448  from { opacity: 0; transform: translateY(4px); }5449  to   { opacity: 1; transform: translateY(0); }5450}54515452@keyframes peach-pro-fade-out {5453  from { opacity: 1; }5454  to   { opacity: 0; }5455}54565457.peach-pro-celebration {5458  background:5459    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5460    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5461    var(--peach-bg);5462  border: 1px solid var(--peach-t3);5463  box-shadow:5464    0 2px 8px rgba(0,0,0,0.55),5465    0 14px 48px rgba(0,0,0,0.7),5466    0 0 0 1px rgba(240,232,216,0.04);5467  overflow: hidden;5468  width: 320px;5469  height: 520px;5470  display: flex;5471  flex-direction: column;5472  align-items: center;5473  justify-content: center;5474  gap: 8px;5475  padding: 32px 24px;5476  text-align: center;5477}54785479.peach-pro-celebration.is-leaving {5480  animation: peach-pro-fade-out 400ms ease forwards;5481}54825483.peach-pro-bloom-target {5484  font-size: 48px;5485  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5486  margin-bottom: 12px;5487}54885489.peach-pro-wordmark {5490  font-family: var(--font-display);5491  font-size: 22px;5492  font-style: italic;5493  font-weight: 400;5494  color: var(--peach-accent);5495  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5496}54975498.peach-pro-thankyou {5499  font-size: 12px;5500  font-style: italic;5501  color: var(--peach-t2);5502  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5503}550455055506/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5507.peach-pro-notice-banner {5508  display: flex;5509  align-items: center;5510  gap: 8px;5511  padding: 7px 12px;5512  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5513  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5514  font-size: 11px;5515  color: var(--peach-t2);5516  font-family: "IBM Plex Mono", monospace;5517  flex-shrink: 0;5518}55195520.peach-pro-notice-link {5521  background: none;5522  border: none;5523  padding: 0;5524  cursor: pointer;5525  font-size: 11px;5526  color: var(--peach-accent);5527  font-family: "IBM Plex Mono", monospace;5528  margin-left: auto;5529  white-space: nowrap;5530}55315532.peach-pro-notice-close {5533  background: none;5534  border: none;5535  padding: 0 0 0 4px;5536  cursor: pointer;5537  font-size: 10px;5538  color: var(--peach-t3);5539  line-height: 1;5540}