popup.css

123.8 KB · raw

1html,2body,3#app,4#pre-lock,5.popup-root {6  width: 320px;7  min-height: 520px;8  height: 520px;9  margin: 0;10}1112body {13  overflow: hidden;14  background: var(--bg);15  color: var(--t0);16  font-family: var(--font-ui);17  font-weight: 300;18  position: relative;19}2021* {22  box-sizing: border-box;23}2425button,26input,27textarea,28select {29  font: inherit;30}3132button {33  border: 0;34}3536#pre-lock {37  position: absolute;38  inset: 0;39  z-index: 10;40}4142#pre-lock[hidden] {43  display: none;44}4546.popup-root {47  position: relative;48  overflow: hidden;49}5051.peach-theme {52  color: var(--peach-t0);53  font-family: var(--font-ui);54  font-weight: 300;55  box-sizing: border-box;56  text-align: left;57}58.peach-theme, .peach-theme * { box-sizing: inherit; }5960.peach-brand-mark {61  width: 14px;62  height: 14px;63  flex-shrink: 0;64}6566.peach-status-pip.is-hidden {67  display: none;68}6970.peach-status-pip.unlocked {71  background: var(--peach-health-ok);72  box-shadow: 0 0 6px rgba(100, 210, 100, 0.6);73}7475.peach-status-pip.pulse {76  animation: pip-pulse 400ms var(--peach-curve-settle) both;77}7879/* Shell */80.peach-shell, .peach-screen {81  background:82    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),83    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),84    var(--peach-bg);85  border: 1px solid var(--peach-t3);86  box-shadow:87    0 2px 8px rgba(0,0,0,0.55),88    0 14px 48px rgba(0,0,0,0.7),89    0 0 0 1px rgba(240,232,216,0.04);90  overflow: hidden;91}92.peach-shell {93  display: grid;94  grid-template-rows: auto 1fr;95  min-height: 520px;96  position: relative;97  isolation: isolate;98}99100.peach-shell[data-surface="extension"] {101  width: min(320px, 100vw);102  border-radius: 0;103  height: 520px;104  max-height: 520px;105  overflow: hidden;106}107108/* ── Lock screen – full-window lock/create stage ── */109.lock-screen--vault-stage {110  display: flex;111  flex-direction: column;112  gap: 18px;113  padding: 20px 18px 18px;114  justify-content: flex-start;115}116.lock-screen--vault-stage .peach-lock-panel {117  margin-top: auto;118}119.peach-lock-headline--unlock {120  max-width: 220px;121}122.peach-lock-hero--unlock {123  padding-top: 14px;124}125.peach-lock-panel--unlock {126  gap: 10px;127}128129.peach-lock-restore-link {130  background: transparent;131  border: none;132  cursor: pointer;133  font-family: var(--font-mono);134  font-size: 10px;135  letter-spacing: 0.08em;136  color: var(--t1);137  padding: 5px 0;138  text-align: left;139  transition: color 150ms ease;140}141142.peach-lock-restore-link:hover {143  color: var(--t0);144}145.peach-shell[data-surface="extension"] .peach-stage {146  min-height: 250px;147}148149/* Screen (unlock) */150.peach-screen {151  width: min(320px, 100vw);152  min-height: 100%;153  height: 100%;154  border-radius: 0;155  padding: 16px 20px 18px;156  display: grid;157  gap: 14px;158}159.peach-screen[data-motion-phase="enter"] {160  animation: peach-screen-enter var(--peach-dur-600) var(--peach-curve-arrival) both;161}162.peach-screen-header { min-height: 20px; }163164/* Wordmark */165.peach-wordmark {166  margin: 0;167  font-family: "Cormorant Garamond", "Times New Roman", serif;168  font-size: 15px;169  font-style: italic;170  letter-spacing: 0.03em;171  color: var(--peach-t0);172  display: inline-flex;173  min-height: 1em;174}175176/* Motion text / char animation */177.peach-motion-text { display: inline-flex; min-height: 1em; }178.peach-motion-char {179  display: inline-block;180  white-space: pre;181  opacity: 0;182  transform: translateY(0.22em);183  animation: peach-char-enter var(--peach-motion-duration, 380ms) var(--peach-curve-arrival) forwards;184  animation-delay: calc(var(--peach-char-index, 0) * 20ms);185}186187/* Chrome */188.peach-chrome {189  position: relative;190  z-index: 10;191  padding: 16px 20px 0;192  display: flex;193  justify-content: space-between;194  align-items: center;195  /* z-index:10 keeps the header icons above `.peach-loading` (Suspense196     fallback) per §15 regression guard. Without pointer-events:none, the197     empty header strip also sits above `.peach-overlay-view` (z-index:2)198     and swallows clicks meant for an overlay's back button / top search. */199  pointer-events: none;200}201.peach-chrome .peach-btn { pointer-events: auto; }202.peach-chrome.is-hidden-for-overlay,203.peach-search-wrap.is-hidden-for-overlay {204  opacity: 0;205  visibility: hidden;206  pointer-events: none;207}208.peach-wordmark-wrap { display: flex; align-items: center; gap: 5px; }209.peach-status-pip {210  width: 5px;211  height: 5px;212  border-radius: 50%;213  background: var(--peach-t3);214  display: inline-flex;215  flex-shrink: 0;216  transition: background 400ms ease, box-shadow 400ms ease;217}218.peach-chrome-actions { display: flex; gap: 6px; }219220/* Shell body */221.peach-shell-body {222  position: relative;223  display: grid;224  grid-template-rows: 1fr auto;225  min-height: 0;226  min-width: 0;227  width: 100%;228  overflow: hidden;229  height: 100%;230}231.peach-shell-veil {232  position: absolute; inset: 0;233  background: #000; opacity: 0;234  pointer-events: none; z-index: 1;235}236.peach-shell[data-motion-phase="enter"] .peach-shell-body {237  animation: peach-shell-fade-in var(--peach-dur-600) var(--peach-curve-arrival) both;238}239.peach-shell[data-motion-phase="exit"] .peach-shell-veil {240  animation: peach-veil-in 300ms var(--peach-curve-departure) forwards;241}242243/* Content frame */244.peach-content-frame {245  display: grid;246  grid-template-rows: 1fr auto;247  grid-template-columns: minmax(0, 1fr);248  align-content: start;249  min-height: 0;250  min-width: 0;251  overflow: hidden;252  transition: opacity 80ms ease, transform 80ms ease;253}254.peach-content-frame.navigating {255  opacity: 0.93;256  transform: translateX(2px);257}258.peach-content-frame[data-content-phase="enter"] {259  animation: peach-content-enter 135ms ease-out both;260}261.peach-content-frame[data-content-phase="exit"] {262  animation: peach-content-exit 95ms ease-in forwards;263}264.peach-content-frame[data-content-phase="idle"] { opacity: 1; transform: none; }265266/* Stage */267.peach-stage {268  padding: 10px 20px 12px;269  display: grid;270  gap: 12px;271  align-content: start;272  min-width: 0;273  min-height: 0;274  max-width: 100%;275  overflow-y: auto;276  overflow-x: hidden;277  scrollbar-width: none;278  -ms-overflow-style: none;279  overscroll-behavior: contain;280}281.peach-stage::-webkit-scrollbar { display: none; }282283/* Entry name */284.peach-entry-name-wrap { position: relative; overflow: hidden; max-width: 100%; }285.peach-entry-header {286  position: relative;287  z-index: 1;288  display: flex;289  align-items: flex-start;290  gap: 6px;291  min-width: 0;292}293.peach-entry-header-name {294  flex: 1;295  min-width: 0;296}297.peach-entry-name {298  margin: 0;299  padding-bottom: 0.12em;300  font-family: "Cormorant Garamond", "Times New Roman", serif;301  font-style: italic; font-weight: 400;302  font-size: 44px; line-height: 0.95;303  color: var(--peach-t0);304  display: -webkit-box;305  -webkit-line-clamp: 2;306  -webkit-box-orient: vertical;307  overflow: hidden;308  text-wrap: balance;309}310.peach-entry-name--lg { font-size: 40px; }311.peach-entry-name--xl { font-size: 34px; line-height: 0.98; }312.peach-entry-name--xxl { font-size: 30px; line-height: 1.02; }313.peach-entry-name-text { display: block; overflow: hidden; max-width: 100%; overflow-wrap: anywhere; padding-bottom: 0.12em; }314315/* Trash icon in entry header */316.peach-entry-trash-btn {317  flex-shrink: 0;318  padding: 4px;319  margin-top: 4px;320  background: transparent;321  border: none;322  cursor: pointer;323  color: var(--peach-t2);324  border-radius: 4px;325  transition: color 140ms ease, background 140ms ease;326  display: flex;327  align-items: center;328  justify-content: center;329}330.peach-entry-trash-btn:hover {331  color: var(--peach-t1);332  background: var(--peach-t3);333}334.peach-entry-trash-confirm {335  display: flex;336  align-items: center;337  gap: 6px;338  flex-shrink: 0;339  margin-top: 6px;340  flex-wrap: nowrap;341}342.peach-entry-trash-confirm-label {343  font-family: var(--font-mono);344  font-size: 9px;345  letter-spacing: 0.1em;346  color: var(--peach-t2);347  white-space: nowrap;348}349.peach-entry-name-button {350  padding: 0;351  background: transparent;352  text-align: left;353  cursor: pointer;354  max-width: 100%;355  overflow: hidden;356  display: block;357}358.peach-entry-name-char {359  display: inline-block;360  white-space: pre;361  opacity: 0;362  transform: translateY(0.22em);363  animation: peach-char-enter 380ms var(--peach-curve-arrival) forwards;364  animation-delay: calc(var(--char-index, 0) * 20ms);365}366367/* Domain */368.peach-domain { border-top: 1px solid var(--peach-t3); padding-top: 9px; }369.peach-domain-row {370  width: 100%; border: 0; background: transparent; color: inherit;371  padding: 0; display: flex; justify-content: space-between; align-items: baseline;372  cursor: default;373}374.peach-domain-value {375  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;376  font-size: 10px; font-style: italic;377  letter-spacing: 0.12em; color: var(--peach-t1);378}379380/* Fields */381.peach-fields { display: grid; gap: 10px; }382.peach-field-card { display: grid; gap: 7px; }383.peach-label {384  font-family: Inter, system-ui, sans-serif;385  text-transform: uppercase; letter-spacing: 0.2em;386  font-size: 8px; color: var(--peach-t2);387}388.peach-field-value-row {389  display: flex; justify-content: space-between;390  align-items: center; gap: 8px;391  min-width: 0;392}393.peach-field-value {394  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;395  font-size: 13px; color: var(--peach-t1);396  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;397  flex: 1;398  min-width: 0;399}400.peach-password-value {401  display: inline-flex;402  align-items: center;403  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;404  font-size: 16px; letter-spacing: 0.3em; color: var(--peach-t0);405  overflow: hidden;406  text-overflow: ellipsis;407  white-space: nowrap;408  flex: 1;409  min-width: 0;410  max-width: 100%;411}412.peach-password-value.is-revealed {413  font-size: 14px;414  letter-spacing: 0.08em;415}416.peach-password-text,417.peach-password-mask {418  display: block;419  width: 100%;420  overflow: hidden;421  white-space: nowrap;422  /* Render as uniform mid-line bullets, not baseline periods */423  font-family: Inter, system-ui, sans-serif;424  font-size: 10px;425  letter-spacing: 3px;426  user-select: none;427}428.peach-field-actions { display: flex; gap: 4px; align-items: center; }429.peach-password-strength { display: flex; align-items: center; gap: 8px; }430.peach-strength-bar { display: flex; gap: 3px; }431.peach-strength-seg { width: 28px; height: 4px; border-radius: 2px; background: #eee; }432.peach-strength-label {433  font-family: "IBM Plex Mono", monospace;434  font-style: italic;435  font-size: 9px;436  font-weight: 300;437  min-width: 36px;438  text-align: right;439  color: var(--peach-t2);440  letter-spacing: 0.06em;441}442443.peach-strength-hairline {444  display: flex;445  align-items: center;446  gap: 10px;447  margin-top: -2px;448}449450.peach-strength-hairline-track {451  flex: 1;452  height: 3px;453  border-radius: 2px;454  background: var(--peach-s2);455  overflow: hidden;456}457458.peach-strength-hairline-fill {459  height: 100%;460  border-radius: 2px;461  transition: width 400ms cubic-bezier(0.16, 1, 0.3, 1),462    background 400ms ease;463}464465/* Note content (display) */466.peach-note-content {467  border-top: 1px solid var(--peach-t3);468  padding-top: 10px;469  font-family: "Cormorant Garamond", "Times New Roman", serif;470  font-size: 15px;471  line-height: 1.75;472  color: var(--peach-t1);473}474475/* ── Inline editing ─────────────────────────────────────────────────── */476477/* Clickable display values */478.peach-inline-clickable {479  cursor: text;480  border-radius: 3px;481  transition: background 150ms ease;482}483.peach-inline-clickable:hover {484  background: rgba(240, 232, 216, 0.05);485}486487/* Subtle "edit" hint that appears on hover */488.peach-inline-edit-hint {489  font-family: Inter, system-ui, sans-serif;490  font-size: 9px;491  text-transform: uppercase;492  letter-spacing: 0.14em;493  color: var(--peach-t2);494  opacity: 0;495  transition: opacity 120ms ease;496  pointer-events: none;497  margin-left: 6px;498  flex-shrink: 0;499}500.peach-domain-row:hover .peach-inline-edit-hint {501  opacity: 1;502}503504/* Title editing */505.peach-inline-title-wrap {506  display: flex;507  flex-direction: column;508  gap: 6px;509}510.peach-inline-title-input {511  font-family: "Cormorant Garamond", "Times New Roman", serif;512  font-style: italic;513  font-weight: 400;514  font-size: 40px;515  line-height: 0.95;516  color: var(--peach-t0);517  background: transparent;518  border: none;519  border-bottom: 1px solid var(--peach-accent);520  outline: none;521  width: 100%;522  padding: 2px 0;523}524525/* Generic inline field */526.peach-inline-field-wrap {527  display: flex;528  flex-direction: column;529  gap: 6px;530}531.peach-inline-input {532  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;533  font-size: 13px;534  color: var(--peach-t0);535  background: transparent;536  border: none;537  border-bottom: 1px solid var(--peach-accent);538  outline: none;539  width: 100%;540  padding: 3px 0;541}542.peach-inline-textarea {543  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;544  font-size: 11px;545  line-height: 1.7;546  color: var(--peach-t0);547  background: rgba(240, 232, 216, 0.04);548  border: 1px solid var(--peach-accent);549  border-radius: 4px;550  outline: none;551  width: 100%;552  padding: 8px;553  resize: vertical;554  min-height: 80px;555}556557/* Save / cancel row */558.peach-inline-actions {559  display: flex;560  gap: 6px;561  align-items: center;562}563.peach-inline-save-btn,564.peach-inline-cancel-btn {565  display: inline-flex;566  align-items: center;567  justify-content: center;568  width: 26px;569  height: 26px;570  border-radius: 4px;571  border: none;572  cursor: pointer;573  transition: background 140ms ease, opacity 140ms ease;574  flex-shrink: 0;575}576.peach-inline-save-btn {577  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.18);578  color: var(--peach-accent);579}580.peach-inline-save-btn:hover:not(:disabled) {581  background: rgba(var(--ac-r, 217), var(--ac-g, 104), var(--ac-b, 48), 0.30);582}583.peach-inline-cancel-btn {584  background: rgba(240, 232, 216, 0.06);585  color: var(--peach-t2);586}587.peach-inline-cancel-btn:hover:not(:disabled) {588  background: rgba(240, 232, 216, 0.12);589  color: var(--peach-t1);590}591.peach-inline-save-btn:disabled,592.peach-inline-cancel-btn:disabled {593  opacity: 0.4;594  cursor: not-allowed;595}596597/* Inline password generator wrapper */598.peach-inline-generator-wrap {599  margin-top: 10px;600  padding-top: 10px;601  border-top: 1px solid var(--peach-t3);602  display: flex;603  flex-direction: column;604  gap: 8px;605}606.peach-inline-generator-cancel {607  align-self: flex-start;608  font-size: 11px;609  color: var(--peach-t2);610}611612/* "is-editing" card state */613.peach-field-card.is-editing {614  background: rgba(240, 232, 216, 0.02);615  border-radius: 6px;616  padding: 8px;617  margin: -8px;618}619620/* Inline tag editor on Entry detail view */621.peach-inline-tag-editor {622  display: flex;623  flex-direction: column;624  gap: 6px;625}626627/* Quiet inline "+ add X" link in the entry detail body */628.peach-entry-add-link {629  justify-self: start;630  margin-top: 8px;631}632633/* Additional URLs editor revealed by clicking the URL field */634.peach-additional-urls {635  display: flex;636  flex-direction: column;637  gap: 6px;638  margin-top: 8px;639}640.peach-additional-urls-label {641  font-size: 9px;642  letter-spacing: 0.1em;643  text-transform: uppercase;644  color: var(--peach-t2);645  margin-bottom: 2px;646}647.peach-additional-url-row {648  display: flex;649  align-items: center;650  gap: 6px;651}652.peach-additional-url-row .peach-inline-input { flex: 1; min-width: 0; }653.peach-additional-url-remove {654  background: transparent;655  border: 1px solid var(--peach-t3);656  color: var(--peach-t2);657  width: 22px;658  height: 22px;659  border-radius: 4px;660  cursor: pointer;661  font-size: 14px;662  line-height: 1;663  display: inline-flex;664  align-items: center;665  justify-content: center;666  flex-shrink: 0;667  transition: color 120ms ease, border-color 120ms ease;668}669.peach-additional-url-remove:hover:not(:disabled) {670  color: var(--peach-accent);671  border-color: var(--peach-border-accent);672}673.peach-additional-urls-add { align-self: flex-start; }674675/* Delete row */676.peach-entry-delete-row {677  display: flex;678  align-items: center;679  gap: 8px;680  padding-top: 18px;681  margin-top: 8px;682  border-top: 1px solid var(--peach-t3);683}684.peach-delete-btn {685  font-size: 11px;686  color: var(--peach-t2);687  padding: 4px 0;688}689.peach-delete-confirm-text {690  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;691  font-size: 11px;692  font-style: italic;693  color: var(--peach-t2);694  flex-shrink: 0;695}696697/* TOTP band */698.peach-totp-band {699  border-top: 1px solid var(--peach-t3);700  padding: 12px 20px 14px;701  position: relative;702  display: grid;703  grid-template-columns: 1fr auto;704  gap: 10px;705}706.peach-totp-main {707  min-width: 0;708  cursor: pointer;709  user-select: none;710}711.peach-totp-code.is-copied { opacity: 0.55; transition: opacity 140ms ease; }712.peach-totp-code-row {713  display: flex;714  align-items: flex-end;715  gap: 10px;716  min-width: 0;717}718.peach-totp-code {719  margin: 2px 0 0;720  font-family: "Cormorant Garamond", "Times New Roman", serif;721  font-style: italic;722  font-weight: 300;723  font-size: 38px; color: var(--peach-accent);724  line-height: 0.95; min-height: 1em;725  min-width: 0;726}727.peach-totp-code-text {728  display: inline-flex;729  overflow: hidden;730  text-overflow: ellipsis;731  white-space: nowrap;732}733.peach-totp-copy-btn {734  margin-bottom: 2px;735  flex-shrink: 0;736  border-color: transparent;737}738.peach-totp-meta { display: grid; justify-items: end; align-content: start; gap: 4px; }739.peach-totp-countdown {740  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;741  font-size: 22px; color: var(--peach-t1);742}743.peach-totp-ring { transform: rotate(-90deg); }744.peach-totp-ring-track { fill: none; stroke: var(--peach-t3); stroke-width: 2; }745.peach-totp-ring-progress {746  fill: none; stroke: var(--peach-accent); stroke-width: 2;747  stroke-linecap: round;748  transition: stroke-dashoffset 1s linear, stroke 500ms ease;749}750/* Search bar */751.peach-search-wrap {752  border-top: 1px solid var(--peach-t3);753  background: var(--peach-s1);754  min-height: 54px; position: relative;755  box-shadow: inset 0 6px 18px transparent;756  transition: box-shadow 700ms ease;757}758.peach-search-wrap::before {759  content: "";760  position: absolute;761  left: 0;762  top: 0;763  height: 2px;764  width: var(--peach-totp-progress, 0%);765  background: var(--peach-accent);766  opacity: 0;767  transition: width 1s linear, opacity 180ms ease;768  pointer-events: none;769}770.peach-shell[data-totp-active="true"] .peach-search-wrap::before {771  opacity: 0.9;772}773.peach-shell[data-totp-active="true"] .peach-search-wrap {774  box-shadow: inset 0 6px 18px rgba(180, 140, 110, 0.07);775}776777@keyframes peach-totp-code-flare {778  0%   { filter: brightness(1); }779  25%  { filter: brightness(1.3); }780  100% { filter: brightness(1); }781}782.peach-totp-code.is-hot {783  animation: peach-totp-code-flare 3000ms ease-in-out both;784}785.peach-search-bar {786  min-height: 54px;787  display: grid;788  grid-template-columns: auto minmax(0, 1fr) auto;789  align-items: center;790  gap: 8px; padding: 0 9px 0 12px;791}792.peach-search-icon { color: var(--peach-t2); display: inline-flex; align-items: center; }793.peach-search-input {794  border: 0; background: transparent; color: var(--peach-t0);795  font-family: "Cormorant Garamond", "Times New Roman", serif;796  font-style: italic; font-size: 18px;797  outline: none; width: 100%; min-width: 0; padding: 0;798  caret-color: var(--peach-accent);799}800.peach-search-input::placeholder { color: var(--peach-t2); }801.peach-search-meta {802  display: grid;803  grid-auto-flow: column;804  align-items: center;805  justify-content: end;806  gap: 6px;807  min-width: max-content;808}809.peach-search-counter {810  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;811  font-size: 10px; color: var(--peach-t2);812  display: inline-flex;813  align-items: center;814  line-height: 1;815}816.peach-divider { width: 1px; height: 12px; background: var(--peach-t3); display: inline-block; flex-shrink: 0; }817818/* Buttons */819.peach-btn {820  border: 1px solid transparent; border-radius: 12px;821  background: transparent; color: var(--peach-t0);822  font-family: Inter, system-ui, sans-serif;823  font-size: 12px; letter-spacing: 0.02em; padding: 8px 12px;824  cursor: pointer;825  transition:826    background-color var(--peach-dur-80) var(--peach-curve-arrival),827    color var(--peach-dur-80) var(--peach-curve-arrival),828    border-color var(--peach-dur-150) var(--peach-curve-arrival);829}830.peach-btn:hover:not(:disabled) { background: var(--peach-s2); }831.peach-btn:disabled {832  opacity: 0.45;833  cursor: not-allowed;834}835.peach-btn--sm { min-height: 32px; padding: 6px 9px; font-size: 11px; }836.peach-btn--md { min-height: 38px; }837.peach-btn--accent {838  background: var(--peach-accent);839  color: rgba(0,0,0,0.78);840  box-shadow:841    0 1px 0 rgba(255,255,255,0.08) inset,842    0 0 0 1px color-mix(in srgb, var(--peach-accent) 21%, transparent),843    0 3px 16px var(--peach-glow),844    0 0 24px color-mix(in srgb, var(--peach-accent) 10%, transparent);845}846.peach-btn--accent:hover:not(:disabled) {847  background: var(--peach-accent);848  filter: brightness(1.10) saturate(1.05);849  box-shadow:850    0 1px 0 rgba(255,255,255,0.10) inset,851    0 0 0 1px color-mix(in srgb, var(--peach-accent) 25%, transparent),852    0 4px 20px color-mix(in srgb, var(--peach-accent) 21%, transparent),853    0 0 30px color-mix(in srgb, var(--peach-accent) 14%, transparent);854}855.peach-btn--ghost { border-color: var(--peach-t3); color: var(--peach-t1); }856.peach-btn--subtle { color: var(--peach-t2); border-color: var(--peach-t3); }857.peach-icon-btn {858  min-width: 32px; min-height: 32px; border-radius: 8px; padding: 6px;859  display: inline-flex; align-items: center; justify-content: center;860}861862.peach-btn:focus-visible {863  outline: none;864  box-shadow: 0 0 0 2px var(--peach-bg), 0 0 0 4px color-mix(in srgb, var(--peach-accent) 50%, transparent);865}866867/* Lock button */868.peach-lock-icon { transform-origin: center; }869.peach-lock-btn.is-locking { color: var(--peach-accent); }870.peach-lock-btn.is-locking .peach-lock-icon {871  animation: peach-lock-settle var(--peach-dur-600) var(--peach-curve-arrival);872}873874/* Copy button */875.peach-copy-btn {876  position: relative; overflow: hidden;877  color: var(--peach-t2); border-color: var(--peach-t3);878}879.peach-copy-icon {880  display: inline-flex; align-items: center; justify-content: center;881  position: relative; z-index: 1;882}883.peach-copy-icon-svg { display: block; }884.peach-copy-sheen {885  position: absolute; inset: 0;886  background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--peach-accent) 18%, transparent) 30%, color-mix(in srgb, var(--peach-accent) 8%, transparent) 100%);887  opacity: 0; transform: scaleX(0.15); transform-origin: left center;888}889.peach-copy-btn.is-copied {890  animation: peach-copy-confirm var(--peach-dur-150) var(--peach-curve-settle) forwards;891  box-shadow:892    0 0 0 1px color-mix(in srgb, var(--peach-accent) 22%, transparent),893    0 0 18px color-mix(in srgb, var(--peach-accent) 20%, transparent),894    inset 0 0 20px color-mix(in srgb, var(--peach-accent) 12%, transparent);895}896.peach-copy-btn.is-copied .peach-copy-icon {897  animation: peach-copy-icon-settle var(--peach-dur-150) var(--peach-curve-settle) both;898}899.peach-copy-btn.is-copied .peach-copy-sheen {900  animation: peach-copy-flood var(--peach-dur-150) var(--peach-curve-settle) forwards;901}902.peach-copy-btn.is-retreat {903  animation: peach-copy-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;904}905.peach-copy-btn.is-retreat .peach-copy-sheen {906  animation: peach-copy-sheen-retreat var(--peach-dur-150) var(--peach-curve-departure) forwards;907}908.peach-copy-drain { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; overflow: hidden; }909.peach-copy-drain-bar {910  display: block; width: 100%; height: 100%;911  background: var(--peach-accent); opacity: 0.7;912  animation: peach-copy-drain var(--peach-copy-clear, 1.8s) linear forwards;913}914915/* Unlock screen elements */916.peach-unlock-headline {917  margin: 2px 0 0;918  font-family: "Cormorant Garamond", "Times New Roman", serif;919  font-size: 52px; line-height: 0.95;920  font-style: italic; font-weight: 400;921}922.peach-subline {923  margin: 0;924  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;925  font-size: 10px; color: var(--peach-t2); font-style: italic;926}927.peach-subline--lock {928  max-width: 248px;929  line-height: 1.5;930}931.peach-underline-input {932  width: 100%; border: 0; border-bottom: 1px solid var(--peach-t3);933  padding: 6px 0; background: transparent; color: var(--peach-t0);934  outline: none;935  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;936  font-size: 13px;937  caret-color: var(--peach-accent);938}939.peach-unlock-input { font-size: 22px; letter-spacing: 0.24em; }940.peach-unlock-input::placeholder { letter-spacing: 0.04em; color: var(--peach-t2); }941.peach-hint {942  margin: 0;943  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;944  font-size: 10px; color: var(--peach-t2);945}946.peach-unlock-footer {947  margin-top: 4px; display: flex; align-items: center; gap: 7px;948  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;949  font-size: 10px; color: var(--peach-t2);950}951.peach-unlock-footer--lock {952  padding-top: 2px;953}954955/* Breach badge */956.peach-breach-badge {957  display: flex;958  position: relative;959  z-index: 1;960  align-items: center;961  gap: 7px;962  font-size: 9px;963  color: var(--peach-breach);964  padding: 5px 10px;965  margin-bottom: 4px;966  border-radius: 8px;967  background: rgba(220, 80, 60, 0.07);968  border: 1px solid rgba(220, 80, 60, 0.18);969  letter-spacing: 0.04em;970}971972.peach-breach-action {973  margin-left: auto;974  font-size: 10px;975  padding: 3px 8px;976}977978.peach-password-value.is-breached {979  color: rgba(220, 80, 60, 0.75);980  border-bottom: 1px solid rgba(220, 80, 60, 0.22);981}982983/* ── Overlay views ─────────────────────────────────────────────────── */984.peach-overlay-view {985  position: absolute;986  inset: 0;987  display: flex;988  flex-direction: column;989  background:990    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),991    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),992    var(--peach-bg);993  z-index: 2;994  overflow: hidden;995  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;996}997@keyframes overlay-in {998  from { opacity: 0; transform: translateY(8px); }999  to   { opacity: 1; transform: translateY(0); }1000}1001.peach-overlay-view.ov-enter-up {1002  animation: ov-enter-up 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1003}1004.peach-overlay-view.ov-exit-up {1005  animation: ov-exit-up 200ms cubic-bezier(0.4, 0, 1, 1) both;1006}1007.peach-overlay-view.ov-enter-right {1008  animation: ov-enter-right 280ms cubic-bezier(0.16, 1, 0.3, 1) both;1009}1010.peach-overlay-view.ov-exit-right {1011  animation: ov-exit-right 200ms cubic-bezier(0.4, 0, 1, 1) both;1012}10131014@keyframes ov-enter-up {1015  from { opacity: 0; transform: translateY(18px); }1016  to   { opacity: 1; transform: translateY(0); }1017}1018@keyframes ov-exit-up {1019  from { opacity: 1; transform: translateY(0); }1020  to   { opacity: 0; transform: translateY(-12px); }1021}1022@keyframes ov-enter-right {1023  from { opacity: 0; transform: translateX(20px); }1024  to   { opacity: 1; transform: translateX(0); }1025}1026@keyframes ov-exit-right {1027  from { opacity: 1; transform: translateX(0); }1028  to   { opacity: 0; transform: translateX(20px); }1029}10301031/* Overlay shared header */1032.peach-overlay-header {1033  padding: 10px 12px;1034  display: flex;1035  align-items: center;1036  gap: 8px;1037  border-bottom: 1px solid var(--peach-t3);1038  flex-shrink: 0;1039}1040.peach-overlay-title {1041  font-family: "IBM Plex Mono", monospace;1042  font-size: 9px;1043  text-transform: uppercase;1044  letter-spacing: 0.18em;1045  color: var(--peach-t2);1046  flex: 1;1047  text-align: center;1048}10491050.peach-overlay-card {1051  background: var(--peach-s1);1052  border: 1px solid var(--peach-t3);1053  border-radius: 12px;1054  overflow: hidden;1055  width: 100%;1056}10571058.peach-onboarding-alt-actions {1059  display: flex;1060  flex-direction: column;1061  gap: 4px;1062  padding: 0;1063}10641065.peach-settings-copy {1066  margin: 0 0 10px;1067  font-size: 11px;1068  line-height: 1.5;1069  color: var(--peach-t2);1070}10711072.peach-settings-copy strong {1073  color: var(--peach-t0);1074}10751076.peach-settings-copy--spacious {1077  margin-bottom: 12px;1078}10791080.peach-settings-copy--result {1081  color: var(--peach-accent);1082  font-size: 13px;1083  text-align: center;1084  padding: 8px 0;1085}10861087.peach-settings-copy--danger {1088  color: var(--peach-breach);1089}10901091.peach-settings-copy--success {1092  color: var(--peach-accent);1093}10941095.peach-inline-feedback {1096  font-size: 11px;1097  margin: 10px 0 0;1098}10991100.peach-inline-feedback--ok {1101  color: var(--peach-accent);1102}11031104.peach-inline-feedback--error {1105  color: var(--peach-breach);1106}11071108.peach-inline-feedback--muted {1109  color: var(--peach-t2);1110  font-size: 10px;1111  margin: 4px 0;1112}11131114.peach-inline-feedback--spaced {1115  margin-top: 12px;1116}11171118.peach-settings-actions--row {1119  display: flex;1120  gap: 6px;1121}11221123.peach-settings-actions--end {1124  margin-top: 14px;1125  justify-content: flex-end;1126}11271128.peach-settings-stack {1129  display: flex;1130  flex-direction: column;1131  gap: 6px;1132}11331134.peach-settings-stack--tight {1135  gap: 4px;1136}11371138.peach-settings-stack--spacious {1139  gap: 8px;1140}11411142.peach-settings-input {1143  width: 100%;1144  box-sizing: border-box;1145  padding: 8px 10px;1146  background: var(--peach-s2);1147  border: 1px solid var(--peach-t3);1148  border-radius: 6px;1149  color: var(--peach-t0);1150  font-family: var(--font-ui);1151  font-size: 12px;1152  outline: none;1153  transition: border-color 120ms ease;1154}11551156.peach-settings-input:focus {1157  border-color: var(--peach-accent);1158}11591160.peach-settings-input[type="password"] {1161  font-family: var(--font-mono);1162  letter-spacing: 0.04em;1163}11641165.peach-phrase-textarea {1166  width: 100%;1167  box-sizing: border-box;1168  min-height: 120px;1169  padding: 10px 12px;1170  background: var(--peach-s2);1171  border: 1px solid var(--peach-t3);1172  border-radius: 6px;1173  color: var(--peach-t0);1174  font-size: 12px;1175  font-family: "Noto Sans CJK SC", "PingFang SC", monospace;1176  line-height: 1.5;1177  resize: vertical;1178  outline: none;1179}11801181.peach-phrase-textarea:focus {1182  border-color: var(--peach-accent);1183}11841185.peach-hidden-file-input {1186  display: none;1187}11881189.peach-checkbox-note {1190  display: flex;1191  align-items: flex-start;1192  gap: 8px;1193  font-size: 11px;1194  color: var(--peach-t1);1195  cursor: pointer;1196  margin: 12px 0;1197}11981199.peach-checkbox-note input {1200  margin-top: 1px;1201}12021203.peach-cjk-phrase-box {1204  font-family: "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", sans-serif;1205  font-size: 13px;1206  line-height: 1.5;1207  background: var(--peach-s2);1208  border: 1px solid var(--peach-t3);1209  border-radius: 6px;1210  padding: 10px 12px;1211  margin: 0 0 10px;1212  word-break: break-all;1213  white-space: pre-wrap;1214  max-height: 220px;1215  overflow-y: auto;1216  color: var(--peach-t0);1217  user-select: all;1218  scrollbar-width: none;1219  -ms-overflow-style: none;1220}1221.peach-cjk-phrase-box::-webkit-scrollbar { display: none; }12221223.peach-danger-notice {1224  background: rgba(220, 80, 60, 0.08);1225  border: 1px solid rgba(220, 80, 60, 0.2);1226  border-radius: 6px;1227  padding: 9px 11px;1228  font-size: 11px;1229  color: var(--peach-t1);1230  line-height: 1.5;1231}12321233.peach-info-notice {1234  font-size: 11px;1235  color: var(--peach-t1);1236  line-height: 1.5;1237  background: var(--surface-card);1238  border: 1px solid var(--peach-t3);1239  border-radius: 6px;1240  padding: 8px 10px;1241}12421243.peach-strength-row {1244  display: flex;1245  align-items: center;1246  gap: 8px;1247  margin-bottom: 10px;1248}12491250.peach-strength-track {1251  flex: 1;1252  height: 4px;1253  background: var(--peach-s2);1254  border-radius: 2px;1255  overflow: hidden;1256}12571258.peach-strength-fill {1259  height: 100%;1260  border-radius: 2px;1261  transition: width 120ms ease, background 120ms ease;1262}12631264/* ── Type selector tabs ── */1265.peach-type-tabs {1266  display: flex;1267  gap: 0;1268  background: var(--peach-t4);1269  border-radius: 8px;1270  padding: 3px;1271}12721273.peach-type-tab {1274  flex: 1;1275  display: flex;1276  align-items: center;1277  justify-content: center;1278  gap: 6px;1279  padding: 6px 10px;1280  border-radius: 6px;1281  border: none;1282  background: transparent;1283  cursor: pointer;1284  font-family: Inter, system-ui, sans-serif;1285  font-size: 11px;1286  font-weight: 400;1287  letter-spacing: 0.04em;1288  color: var(--peach-t1);1289  transition: background 150ms ease, color 150ms ease;1290}12911292.peach-type-tab.is-active {1293  background: var(--peach-s2);1294  color: var(--peach-t0);1295  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);1296}12971298.peach-type-tab:not(.is-active):hover {1299  color: var(--peach-t0);1300}13011302.peach-type-tab svg {1303  opacity: 0.7;1304  flex-shrink: 0;1305}13061307.peach-type-tab.is-active svg {1308  opacity: 1;1309}13101311/* ── List view ───────────────────────────────────────────────────────── */1312.peach-list-top {1313  padding: 0 10px;1314  min-height: 46px;1315  display: flex;1316  align-items: center;1317  gap: 6px;1318  border-bottom: 1px solid var(--peach-t3);1319  flex-shrink: 0;1320  background: var(--peach-s1);1321}1322.peach-vault-list {1323  flex: 1;1324  overflow-y: auto;1325  scrollbar-width: none;1326}1327.peach-vault-list::-webkit-scrollbar { display: none; }13281329/* Scrollbar — vault list */1330.peach-vault-list {1331  scrollbar-width: thin;1332  scrollbar-color: var(--peach-t3) transparent;1333}13341335.peach-vault-list::-webkit-scrollbar {1336  width: 3px;1337}13381339.peach-vault-list::-webkit-scrollbar-thumb {1340  background: var(--peach-t3);1341  border-radius: 2px;1342}13431344.peach-entry-row {1345  width: 100%;1346  display: flex;1347  align-items: center;1348  gap: 10px;1349  padding: 9px 16px;1350  background: transparent;1351  border: none;1352  border-bottom: 1px solid var(--peach-t3);1353  cursor: pointer;1354  color: inherit;1355  text-align: left;1356  transition: background 80ms ease;1357}1358.peach-entry-row:hover { background: rgba(240,232,216,0.03); }1359.peach-entry-row:last-child { border-bottom: none; }1360.peach-entry-row.is-active {1361  box-shadow: inset 2px 0 0 var(--peach-accent);1362  background: rgba(240,232,216,0.03);1363}1364.peach-entry-row:focus-visible {1365  outline: none;1366  box-shadow: 0 0 0 1px var(--peach-border-accent);1367  background: rgba(240,232,216,0.03);1368}1369.peach-entry-row-icon {1370  width: 26px; height: 26px;1371  border-radius: 7px;1372  border: 1px solid var(--peach-t3);1373  display: flex; align-items: center; justify-content: center;1374  color: var(--peach-t2);1375  flex-shrink: 0;1376}1377.peach-entry-row-icon.is-breach {1378  border-color: rgba(220,80,60,0.3);1379  color: rgba(220,80,60,0.7);1380}1381.peach-entry-row-info { flex: 1; min-width: 0; }1382.peach-entry-row-name {1383  display: block;1384  font-family: "Cormorant Garamond", serif;1385  font-size: 17px;1386  font-style: italic;1387  font-weight: 400;1388  color: var(--peach-t0);1389  line-height: 1.2;1390  white-space: nowrap;1391  overflow: hidden;1392  text-overflow: ellipsis;1393}1394.peach-entry-row-meta {1395  display: block;1396  font-family: "IBM Plex Mono", monospace;1397  font-size: 9px;1398  color: var(--peach-t2);1399  margin-top: 1px;1400  letter-spacing: 0.05em;1401}1402.peach-entry-row-dot {1403  width: 5px; height: 5px;1404  border-radius: 50%;1405  background: rgba(220,80,60,0.7);1406  flex-shrink: 0;1407}1408.peach-new-entry-row {1409  display: flex;1410  align-items: center;1411  justify-content: center;1412  gap: 6px;1413  width: 100%;1414  padding: 11px;1415  background: transparent;1416  border: none;1417  border-top: 1px solid var(--peach-t3);1418  color: var(--peach-t2);1419  font-family: "IBM Plex Mono", monospace;1420  font-size: 9px;1421  text-transform: uppercase;1422  letter-spacing: 0.14em;1423  cursor: pointer;1424  flex-shrink: 0;1425  transition: color 120ms ease, background 120ms ease;1426}1427.peach-new-entry-row:hover { color: var(--peach-t0); background: rgba(240,232,216,0.02); }14281429/* ── Multi-select mode ─────────────────────────────────────────────── */14301431/* Select-mode trigger button in sort bar — same shape as trash btn */1432.peach-sort-select-btn {1433  display: flex;1434  align-items: center;1435  justify-content: center;1436  padding: 3px 5px;1437  background: transparent;1438  border: none;1439  cursor: pointer;1440  color: var(--peach-t2);1441  border-radius: 4px;1442  transition: color 140ms ease, background 140ms ease;1443}1444.peach-sort-select-btn:hover {1445  color: var(--peach-t1);1446  background: var(--peach-t3);1447}14481449/* Sort bar in select mode */1450.peach-select-cancel-btn {1451  background: transparent;1452  border: none;1453  padding: 0 4px;1454  cursor: pointer;1455  font-family: "IBM Plex Mono", monospace;1456  font-size: 9px;1457  letter-spacing: 0.12em;1458  text-transform: uppercase;1459  color: var(--peach-t2);1460  transition: color 140ms ease;1461  flex-shrink: 0;1462}1463.peach-select-cancel-btn:hover { color: var(--peach-t0); }14641465.peach-select-count-label {1466  flex: 1;1467  text-align: center;1468  font-family: "IBM Plex Mono", monospace;1469  font-size: 9px;1470  letter-spacing: 0.14em;1471  text-transform: uppercase;1472  color: var(--peach-t1);1473}14741475.peach-select-all-btn {1476  background: transparent;1477  border: none;1478  padding: 0 4px;1479  cursor: pointer;1480  font-family: "IBM Plex Mono", monospace;1481  font-size: 9px;1482  letter-spacing: 0.12em;1483  text-transform: uppercase;1484  color: var(--peach-t2);1485  transition: color 140ms ease;1486  flex-shrink: 0;1487}1488.peach-select-all-btn:hover { color: var(--peach-accent); }14891490/* List in select mode */1491.peach-vault-list.is-selecting .peach-entry-row {1492  cursor: default;1493}1494.peach-vault-list.is-selecting .peach-entry-row:hover {1495  background: rgba(240,232,216,0.02);1496}1497.peach-vault-list.is-selecting .peach-entry-row.is-selected {1498  background: color-mix(in srgb, var(--peach-accent) 6%, transparent);1499}1500.peach-vault-list.is-selecting .peach-entry-row.is-selected:hover {1501  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1502}15031504/* Select indicator circles in icon slot */1505.peach-entry-row-icon.is-select-icon {1506  color: var(--peach-t2);1507}1508.peach-entry-row.is-selected .peach-entry-row-icon.is-select-icon {1509  color: var(--peach-accent);1510}15111512/* Delete action bar at bottom (replaces new-entry row) */1513.peach-select-action-bar {1514  display: flex;1515  align-items: center;1516  justify-content: center;1517  gap: 7px;1518  width: 100%;1519  padding: 11px;1520  background: transparent;1521  border: none;1522  border-top: 1px solid var(--peach-t3);1523  color: var(--peach-t1);1524  font-family: "IBM Plex Mono", monospace;1525  font-size: 9px;1526  text-transform: uppercase;1527  letter-spacing: 0.14em;1528  cursor: pointer;1529  flex-shrink: 0;1530  transition: color 120ms ease, background 120ms ease;1531}1532.peach-select-action-bar:not(:disabled):hover {1533  color: var(--peach-t0);1534  background: rgba(220,80,60,0.06);1535}1536.peach-select-action-bar:not(:disabled):hover svg {1537  stroke: rgba(220,80,60,0.8);1538}1539.peach-select-action-bar:disabled,1540.peach-select-action-bar.is-empty {1541  color: var(--peach-t2);1542  cursor: default;1543  opacity: 0.5;1544}1545.peach-search-counter-list {1546  white-space: nowrap;1547  flex-shrink: 0;1548}1549.peach-list-empty {1550  min-height: 180px;1551  display: grid;1552  place-items: center;1553  color: var(--peach-t2);1554  font-family: "IBM Plex Mono", monospace;1555  font-size: 11px;1556}15571558/* ── Settings view ───────────────────────────────────────────────────── */1559.peach-settings-body {1560  flex: 1;1561  overflow-y: auto;1562  min-height: 0;1563  display: flex;1564  flex-direction: column;1565  padding: 2px 0 10px;1566}1567.peach-settings-group {1568  padding: 9px 16px 11px;1569  border-bottom: 1px solid var(--peach-t3);1570}1571.peach-export-intro {1572  padding-bottom: 8px;1573}1574.peach-export-card {1575  display: grid;1576  gap: 10px;1577}1578.peach-export-card--primary {1579  background:1580    linear-gradient(180deg, color-mix(in srgb, var(--peach-accent) 8%, transparent), color-mix(in srgb, var(--peach-accent) 2%, transparent));1581}1582.peach-export-card-head {1583  display: flex;1584  align-items: center;1585  justify-content: space-between;1586  gap: 10px;1587}1588.peach-export-card-copy {1589  margin: 0;1590  font-size: 12px;1591  line-height: 1.55;1592  color: var(--peach-t1);1593}1594.peach-export-note {1595  margin: 0;1596  font-size: 10px;1597  line-height: 1.5;1598  color: var(--peach-t2);1599}1600.peach-export-pill {1601  display: inline-flex;1602  align-items: center;1603  padding: 4px 8px;1604  border-radius: 999px;1605  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);1606  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1607  color: var(--peach-accent);1608  font-family: "IBM Plex Mono", monospace;1609  font-size: 8px;1610  letter-spacing: 0.12em;1611  text-transform: uppercase;1612  white-space: nowrap;1613}1614.peach-export-pill--danger {1615  border-color: rgba(220,80,60,0.22);1616  background: rgba(220,80,60,0.08);1617  color: var(--peach-breach);1618}1619.peach-export-password-stack {1620  gap: 8px;1621}1622.peach-settings-label {1623  margin: 0 0 6px;1624  font-family: "IBM Plex Mono", monospace;1625  font-size: 8px;1626  text-transform: uppercase;1627  letter-spacing: 0.18em;1628  color: var(--peach-t2);1629}1630.peach-settings-row {1631  display: flex;1632  align-items: center;1633  justify-content: space-between;1634  gap: 12px;1635  min-height: 34px;1636  padding: 6px 0;1637  font-size: 13px;1638  color: var(--peach-t1);1639}1640.peach-settings-row--meta { color: var(--peach-t2); font-size: 12px; }1641.peach-settings-value {1642  font-family: "IBM Plex Mono", monospace;1643  font-size: 10px;1644  color: var(--peach-t2);1645}16461647.peach-settings-value--status {1648  display: flex;1649  align-items: center;1650  gap: 6px;1651}16521653.peach-settings-link {1654  font-family: "IBM Plex Mono", monospace;1655  font-size: 10px;1656  color: var(--peach-accent);1657  text-decoration: none;1658  cursor: pointer;1659}1660.peach-settings-link:hover {1661  text-decoration: underline;1662}16631664.peach-settings-row--stack {1665  flex-direction: column;1666  align-items: stretch;1667  gap: 6px;1668}16691670.peach-settings-row--top {1671  align-items: flex-start;1672}16731674.peach-settings-row-main {1675  display: flex;1676  flex-direction: column;1677  gap: 4px;1678  flex: 1;1679}1680.peach-toggle {1681  width: 28px; height: 16px;1682  border-radius: 999px;1683  background: var(--peach-t3);1684  border: 1px solid var(--peach-t3);1685  display: flex; align-items: center; justify-content: flex-start; padding: 2px;1686  flex-shrink: 0;1687  transition: background 200ms ease, border-color 200ms ease;1688  cursor: pointer;1689}1690.peach-toggle.is-on {1691  background: color-mix(in srgb, var(--peach-accent) 22%, transparent);1692  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1693}1694.peach-toggle-knob {1695  width: 10px; height: 10px;1696  border-radius: 50%;1697  background: var(--peach-t2);1698  flex-shrink: 0;1699  transform: translateX(0px);1700  transition: background 200ms ease, transform 200ms var(--peach-curve-settle);1701}1702.peach-toggle.is-on .peach-toggle-knob {1703  background: var(--peach-accent);1704  transform: translateX(12px);1705}1706.peach-settings-footer {1707  display: flex;1708  align-items: center;1709  gap: 8px;1710  margin-top: auto;1711  padding: 14px 16px 8px;1712  font-family: "IBM Plex Mono", monospace;1713  font-size: 9px;1714  color: var(--peach-t2);1715}17161717/* ── Settings home navigation ──────────────────────────────────────────── */1718.peach-settings-nav-label {1719  margin: 0 0 2px;1720  padding: 12px 16px 4px;1721  font-family: "IBM Plex Mono", monospace;1722  font-size: 8px;1723  text-transform: uppercase;1724  letter-spacing: 0.18em;1725  color: var(--peach-t2);1726}17271728.peach-settings-cat-row {1729  display: flex;1730  align-items: center;1731  gap: 10px;1732  width: 100%;1733  padding: 9px 16px;1734  background: none;1735  border: none;1736  border-bottom: 1px solid var(--peach-t3);1737  cursor: pointer;1738  text-align: left;1739  color: inherit;1740  transition: background var(--peach-dur-80) ease;1741}1742.peach-settings-cat-row:hover {1743  background: var(--peach-t3);1744}1745.peach-settings-cat-row:last-child {1746  border-bottom: none;1747}17481749.peach-settings-cat-icon {1750  width: 28px;1751  height: 28px;1752  border-radius: 7px;1753  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);1754  color: var(--peach-accent);1755  display: flex;1756  align-items: center;1757  justify-content: center;1758  flex-shrink: 0;1759}1760/* Light theme: peach-on-cream is too low-contrast — both colors are warm.1761   Darken the icon stroke to ink and bump the bg tint so the icon reads1762   sharply while the cell still feels accent-tinted. */1763.light .peach-settings-cat-icon {1764  background: color-mix(in srgb, var(--peach-accent) 18%, transparent);1765  color: color-mix(in srgb, var(--peach-accent) 50%, var(--peach-t0));1766}17671768.peach-settings-cat-content {1769  flex: 1;1770  display: flex;1771  flex-direction: column;1772  gap: 2px;1773  min-width: 0;1774}17751776.peach-settings-cat-name {1777  font-size: 13px;1778  font-weight: 450;1779  color: var(--peach-t0);1780  line-height: 1.2;1781}17821783.peach-settings-cat-desc {1784  font-size: 10px;1785  color: var(--peach-t2);1786  line-height: 1.3;1787  white-space: nowrap;1788  overflow: hidden;1789  text-overflow: ellipsis;1790}17911792.peach-settings-cat-chevron {1793  color: var(--peach-t2);1794  flex-shrink: 0;1795  opacity: 0.5;1796}17971798/* ── Settings sub-view section labels ──────────────────────────────────── */1799.peach-settings-sub-label {1800  margin: 12px 0 4px;1801  font-family: "IBM Plex Mono", monospace;1802  font-size: 8px;1803  text-transform: uppercase;1804  letter-spacing: 0.18em;1805  color: var(--peach-t2);1806}1807.peach-settings-sub-label:first-child {1808  margin-top: 4px;1809}18101811/* ── Feedback form ──────────────────────────────────────────────────────── */1812.peach-feedback-group {1813  flex: 1;1814  display: flex;1815  flex-direction: column;1816  border-bottom: none;1817}18181819.peach-feedback-intro {1820  margin: 4px 0 14px;1821  font-size: 12px;1822  line-height: 1.55;1823  color: var(--peach-t1);1824}18251826.peach-feedback-chips {1827  display: flex;1828  flex-wrap: wrap;1829  gap: 6px;1830  margin-bottom: 14px;1831}18321833.peach-feedback-chip {1834  padding: 4px 10px;1835  border-radius: 999px;1836  border: 1px solid var(--peach-t3);1837  background: none;1838  color: var(--peach-t2);1839  font-size: 11px;1840  font-family: var(--font-ui);1841  cursor: pointer;1842  transition: border-color var(--peach-dur-80) ease, color var(--peach-dur-80) ease,1843    background var(--peach-dur-80) ease;1844}1845.peach-feedback-chip:hover {1846  border-color: var(--peach-t2);1847  color: var(--peach-t1);1848}1849.peach-feedback-chip.is-active {1850  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);1851  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);1852  color: var(--peach-accent);1853}18541855.peach-feedback-textarea {1856  flex: 1;1857  width: 100%;1858  min-height: 120px;1859  box-sizing: border-box;1860  background: var(--peach-t3);1861  border: 1px solid var(--peach-t3);1862  border-radius: 6px;1863  color: var(--peach-t0);1864  font-size: 12px;1865  font-family: var(--font-ui);1866  line-height: 1.5;1867  padding: 8px 10px;1868  resize: none;1869  outline: none;1870  transition: border-color var(--peach-dur-150) ease;1871}1872.peach-feedback-textarea:focus {1873  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);1874}1875.peach-feedback-textarea::placeholder {1876  color: var(--peach-t2);1877}18781879.peach-feedback-meta {1880  margin: 6px 0 0;1881  font-size: 10px;1882  color: var(--peach-t2);1883  font-family: "IBM Plex Mono", monospace;1884}18851886.peach-feedback-result {1887  margin: 8px 0 0;1888  font-size: 11px;1889  font-family: "IBM Plex Mono", monospace;1890}1891.peach-feedback-result--ok { color: var(--peach-sync-ok); }1892.peach-feedback-result--err { color: var(--peach-breach); }18931894.peach-feedback-submit {1895  width: 100%;1896  margin-top: 12px;1897  justify-content: center;1898}18991900.peach-feedback-anon {1901  margin: 8px 0 0;1902  font-size: 10px;1903  color: var(--peach-t2);1904  text-align: center;1905}19061907.peach-passkey-badge {1908  margin-left: 8px;1909  font-size: 10px;1910  letter-spacing: 0.06em;1911  text-transform: uppercase;1912  color: var(--peach-t2);1913  font-family: var(--font-ui);1914  vertical-align: middle;1915}19161917.peach-passkey-delete-btn {1918  color: var(--peach-breach);1919  border-color: rgba(229, 85, 85, 0.25);1920}19211922.peach-passkey-delete-confirm {1923  display: flex;1924  align-items: center;1925  gap: 8px;1926  padding: 8px 10px;1927  background: rgba(229, 85, 85, 0.06);1928  border: 1px solid rgba(229, 85, 85, 0.2);1929  border-radius: 6px;1930}19311932.peach-passkey-delete-confirm-copy {1933  flex: 1;1934  font-size: 11px;1935  color: var(--peach-t1);1936}19371938.peach-passkey-delete-btn--confirm {1939  color: var(--peach-breach);1940  border-color: rgba(229, 85, 85, 0.4);1941}19421943.peach-passkey-activity {1944  flex-direction: column;1945  align-items: flex-start;1946  gap: 4px;1947}19481949.peach-passkey-meta {1950  font-size: 11px;1951  color: var(--peach-t2);1952}19531954.peach-passkey-actions {1955  position: relative;1956  z-index: 1;1957  margin-top: 14px;1958  display: flex;1959  flex-direction: column;1960  gap: 8px;1961}19621963.peach-passkey-approval {1964  display: flex;1965  flex-direction: column;1966  align-items: center;1967  padding: 28px 22px 22px;1968  gap: 14px;1969  text-align: center;1970}19711972.peach-passkey-approval-icon {1973  width: 46px;1974  height: 46px;1975  border-radius: 12px;1976  background: var(--peach-s2);1977  border: 1px solid var(--peach-t3);1978  display: flex;1979  align-items: center;1980  justify-content: center;1981  flex-shrink: 0;1982  color: var(--peach-accent);1983}19841985.peach-passkey-approval-icon img,1986.peach-passkey-approval-icon svg {1987  width: 28px;1988  height: 28px;1989  border-radius: 6px;1990}19911992.peach-passkey-approval-rp {1993  font-family: var(--font-ui);1994  font-size: 12px;1995  color: var(--peach-t2);1996  letter-spacing: 0.03em;1997}19981999.peach-passkey-approval-action {2000  font-family: var(--font-display);2001  font-style: italic;2002  font-weight: 300;2003  font-size: 26px;2004  color: var(--peach-t0);2005  line-height: 1;2006}20072008.peach-passkey-approval-user {2009  font-family: var(--font-mono);2010  font-size: 11px;2011  color: var(--peach-t1);2012  background: var(--peach-s2);2013  border: 1px solid var(--peach-t3);2014  border-radius: 4px;2015  padding: 3px 8px;2016}20172018.peach-passkey-approval-notice {2019  font-size: 10px;2020  color: var(--peach-t2);2021  line-height: 1.5;2022  max-width: 220px;2023}20242025.peach-passkey-approval-actions {2026  display: flex;2027  gap: 8px;2028  width: 100%;2029  margin-top: 6px;2030}20312032.peach-passkey-approval-actions .peach-btn {2033  flex: 1;2034}20352036/* ── Inline generator drawer ── */2037.peach-generator-drawer {2038  display: grid;2039  grid-template-rows: 0fr;2040  transition: grid-template-rows 320ms var(--peach-curve-arrival);2041  overflow: hidden;2042}2043.peach-generator-drawer.is-open {2044  grid-template-rows: 1fr;2045}2046.peach-generator-drawer-inner {2047  min-height: 0;2048  overflow: hidden;2049}2050.peach-generator-drawer-content {2051  border-top: 1px solid var(--peach-t3);2052  padding: 8px 0 4px;2053  display: flex;2054  flex-direction: column;2055  gap: 8px;2056}20572058/* ── Compact generator (inside entry edit) ── */2059.peach-generator-drawer-content--compact {2060  border-top: 1px solid var(--peach-t3);2061  padding: 8px 0 2px;2062  gap: 7px;2063}2064.peach-pwgen-compact-display-row {2065  display: flex;2066  align-items: center;2067  gap: 6px;2068}2069.peach-pwgen-compact-output {2070  flex: 1;2071  min-width: 0;2072  font-family: "IBM Plex Mono", monospace;2073  font-size: 11px;2074  font-weight: 400;2075  letter-spacing: 0.04em;2076  color: var(--peach-t0);2077  background: rgba(240, 232, 216, 0.04);2078  border: 1px solid var(--peach-t3);2079  border-radius: 5px;2080  padding: 5px 8px;2081  word-break: break-all;2082  line-height: 1.5;2083}2084.peach-pwgen-compact-controls {2085  display: flex;2086  align-items: center;2087  gap: 6px;2088}2089.peach-pwgen-compact-slider {2090  flex: 1;2091  min-width: 0;2092  height: 2px !important;2093}2094.peach-pwgen-compact-controls .peach-pwgen-len-num {2095  flex-shrink: 0;2096  min-width: 18px;2097  text-align: right;2098}2099.peach-pwgen-compact-pills {2100  display: flex;2101  gap: 3px;2102  flex-shrink: 0;2103}2104.peach-pwgen-compact-pills .peach-pwgen-pill {2105  padding: 2px 7px;2106  font-size: 8px;2107}2108.peach-pwgen-compact-use {2109  flex-shrink: 0;2110  font-size: 10px !important;2111  padding: 3px 9px !important;2112  min-height: 22px !important;2113  border-radius: 5px !important;2114}21152116/* ── Password edit row (input + eye toggle side-by-side) ── */2117.peach-password-edit-row {2118  display: flex;2119  align-items: center;2120  gap: 6px;2121}2122.peach-password-edit-row .peach-inline-input {2123  flex: 1;2124  min-width: 0;2125}21262127/* ── Generate toggle link ── */2128.peach-generate-toggle-link {2129  display: inline-flex;2130  align-items: center;2131  gap: 5px;2132  background: none;2133  border: none;2134  padding: 0;2135  cursor: pointer;2136  font-family: "IBM Plex Mono", monospace;2137  font-size: 10px;2138  color: var(--peach-t2);2139  letter-spacing: 0.04em;2140  transition: color 120ms ease;2141  align-self: flex-start;2142}2143.peach-generate-toggle-link:hover {2144  color: var(--peach-accent);2145}21462147/* ── New entry body (Add.tsx — mirrors .peach-stage) ─────────────────── */2148.peach-entry-body {2149  flex: 1;2150  overflow-y: auto;2151  overflow-x: hidden;2152  scrollbar-width: none;2153  -ms-overflow-style: none;2154  overscroll-behavior: contain;2155  display: grid;2156  gap: 10px;2157  align-content: start;2158  padding: 10px 20px 14px;2159  min-width: 0;2160  min-height: 0;2161}2162.peach-entry-body::-webkit-scrollbar { display: none; }21632164/* Type-toggle pills + inline note toolbar */2165.peach-new-type-row {2166  display: flex;2167  align-items: center;2168  gap: 6px;2169  margin-bottom: 2px;2170}2171.peach-new-type-btn {2172  background: transparent;2173  border: 1px solid var(--peach-t3);2174  border-radius: 12px;2175  padding: 3px 10px;2176  font-family: "IBM Plex Mono", monospace;2177  font-size: 9px;2178  letter-spacing: 0.12em;2179  text-transform: uppercase;2180  color: var(--peach-t2);2181  cursor: pointer;2182  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;2183}2184.peach-new-type-btn.is-active {2185  color: var(--peach-t0);2186  border-color: var(--peach-accent);2187  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2188}2189.peach-new-type-btn:not(.is-active):hover {2190  color: var(--peach-t1);2191  border-color: var(--peach-t2);2192}21932194/* Editable title */2195.peach-new-title-wrap { margin: 0 0 2px; }2196.peach-new-title-input {2197  background: transparent;2198  border: none;2199  outline: none;2200  width: 100%;2201  color: var(--peach-t0);2202  font-family: "Cormorant Garamond", Georgia, serif;2203  font-style: italic;2204  font-weight: 400;2205  font-size: 40px;2206  line-height: 0.95;2207  caret-color: var(--peach-accent);2208}2209.peach-new-title-input::placeholder { color: var(--peach-t2); }22102211/* Editable domain field */2212.peach-domain-value--edit {2213  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2214  font-size: 10px;2215  font-style: italic;2216  letter-spacing: 0.12em;2217  color: var(--peach-t1);2218  background: transparent;2219  border: none;2220  border-bottom: 1px solid var(--peach-t3);2221  outline: none;2222  width: 100%;2223  padding: 2px 0;2224  caret-color: var(--peach-accent);2225  transition: border-color 140ms ease, color 140ms ease;2226}2227.peach-domain-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2228.peach-domain-value--edit:focus {2229  border-bottom-color: rgba(240, 232, 216, 0.28);2230  color: var(--peach-t0);2231}22322233/* Editable field values (username, password, totp) */2234.peach-field-value--edit {2235  font-family: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;2236  font-size: 13px;2237  color: var(--peach-t0);2238  background: transparent;2239  border: none;2240  border-bottom: 1px solid var(--peach-t3);2241  outline: none;2242  flex: 1;2243  min-width: 0;2244  padding: 3px 0;2245  caret-color: var(--peach-accent);2246  transition: border-color 140ms ease, color 140ms ease;2247}2248.peach-field-value--edit::placeholder { color: var(--peach-t2); opacity: 0.6; }2249.peach-field-value--edit[type="password"] { letter-spacing: 0.12em; }2250.peach-field-value--edit:focus {2251  border-bottom-color: rgba(240, 232, 216, 0.28);2252  color: var(--peach-t0);2253}22542255/* "+ add optional field" links */2256.peach-entry-add-links {2257  display: flex;2258  gap: 12px;2259  flex-wrap: wrap;2260  margin-top: -2px;2261}2262.peach-add-field-link {2263  background: transparent;2264  border: none;2265  padding: 0;2266  cursor: pointer;2267  font-family: "IBM Plex Mono", monospace;2268  font-size: 9px;2269  letter-spacing: 0.1em;2270  text-transform: uppercase;2271  color: var(--peach-t2);2272  transition: color 140ms ease;2273}2274.peach-add-field-link:hover { color: var(--peach-accent); }22752276/* ── New entry form (legacy classes) ────────────────────────────────── */2277.peach-new-body {2278  flex: 1;2279  overflow-y: auto;2280  padding: 10px 20px 14px;2281}2282.peach-new-name-input {2283  background: transparent;2284  border: none;2285  outline: none;2286  width: 100%;2287  color: var(--peach-t0);2288  font-family: "Cormorant Garamond", Georgia, serif;2289  font-style: italic;2290  font-weight: 400;2291  font-size: 40px;2292  line-height: 0.95;2293  caret-color: var(--peach-accent);2294}2295.peach-new-name-input::placeholder { color: var(--peach-t2); }2296.peach-new-field-input {2297  background: transparent;2298  border: none;2299  outline: none;2300  flex: 1;2301  min-width: 0;2302  caret-color: var(--peach-accent);2303}2304.peach-new-field-input::placeholder { color: var(--peach-t2); opacity: 0.7; }23052306/* ── Canary card ── */2307.peach-canary-card {2308  border: 1px solid rgba(217, 160, 48, 0.2);2309  background: rgba(217, 160, 48, 0.03);2310  border-radius: 8px;2311  padding: 12px;2312}23132314.peach-canary-settings-header {2315  display: flex;2316  align-items: center;2317  justify-content: space-between;2318  cursor: pointer;2319  user-select: none;2320}23212322.peach-canary-card .peach-label {2323  color: rgba(217, 160, 48, 0.85);2324}23252326.peach-canary-card .peach-new-field-input {2327  border-color: rgba(217, 160, 48, 0.25);2328}23292330.peach-canary-card .peach-new-field-input:focus {2331  border-color: rgba(217, 160, 48, 0.5);2332}23332334.peach-canary-body {2335  margin-top: 12px;2336  display: flex;2337  flex-direction: column;2338  gap: 10px;2339}23402341.peach-canary-explainer {2342  display: flex;2343  gap: 10px;2344  padding: 10px 12px;2345  border-radius: 10px;2346  background: rgba(217, 160, 48, 0.06);2347  border: 1px solid rgba(217, 160, 48, 0.22);2348  margin-bottom: 4px;2349}23502351.peach-canary-explainer-icon {2352  font-size: 16px;2353  flex-shrink: 0;2354  line-height: 1.2;2355}23562357.peach-canary-explainer-title {2358  font-family: var(--font-ui);2359  font-size: 11px;2360  font-weight: 500;2361  color: rgba(217, 160, 48, 0.9);2362  margin: 0 0 3px;2363}23642365.peach-canary-explainer-copy {2366  font-family: var(--font-ui);2367  font-size: 10px;2368  color: var(--peach-t2);2369  line-height: 1.55;2370  margin: 0;2371}23722373.peach-canary-hint {2374  font-size: 10px;2375  color: var(--peach-t2);2376  font-family: Inter, system-ui, sans-serif;2377  line-height: 1.5;2378  margin-top: 4px;2379}23802381.peach-canary-actions-row {2382  display: flex;2383  align-items: center;2384  gap: 8px;2385}23862387.peach-canary-test-btn {2388  border-color: rgba(217, 160, 48, 0.3);2389  color: rgba(217, 160, 48, 0.85);2390}23912392.peach-canary-test-result {2393  font-size: 10px;2394  font-family: Inter, system-ui, sans-serif;2395}23962397.peach-canary-test-result.ok { color: rgba(100, 210, 100, 0.9); }2398.peach-canary-test-result.err { color: rgba(220, 80, 60, 0.9); }23992400.peach-canary-badge {2401  display: flex;2402  position: relative;2403  z-index: 1;2404  align-items: center;2405  gap: 5px;2406  padding: 4px 10px;2407  background: rgba(217, 160, 48, 0.12);2408  border: 1px solid rgba(217, 160, 48, 0.35);2409  border-radius: 6px;2410  margin-bottom: 6px;2411  width: fit-content;2412}24132414.peach-canary-badge-label {2415  font-size: 10px;2416  letter-spacing: 0.06em;2417  color: rgba(217, 160, 48, 0.9);2418  font-family: var(--font-ui);2419  text-transform: uppercase;2420}24212422.peach-canary-badge-icon {2423  font-size: 11px;2424}24252426.peach-canary-suppress-row {2427  display: flex;2428  align-items: center;2429  gap: 8px;2430  padding: 6px 10px;2431  background: rgba(217, 160, 48, 0.08);2432  border-radius: 6px;2433  margin-bottom: 8px;2434}24352436.peach-canary-suppress-label {2437  font-size: 11px;2438  color: rgba(217, 160, 48, 0.85);2439  cursor: pointer;2440  font-family: var(--font-ui);2441  letter-spacing: 0.04em;2442}24432444.peach-regen-panel {2445  position: relative;2446  z-index: 1;2447  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);2448  border: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);2449  border-radius: 8px;2450  padding: 12px;2451  margin-bottom: 8px;2452}24532454.peach-regen-panel-header {2455  display: flex;2456  align-items: center;2457  justify-content: space-between;2458  margin-bottom: 10px;2459}24602461.peach-regen-panel-title {2462  font-size: 11px;2463  font-weight: 600;2464  letter-spacing: 0.06em;2465  text-transform: uppercase;2466  color: color-mix(in srgb, var(--peach-accent) 90%, transparent);2467}24682469.peach-regen-output {2470  background: rgba(0, 0, 0, 0.2);2471  border-radius: 6px;2472  padding: 10px;2473  margin-bottom: 10px;2474  font-family: var(--font-mono);2475  font-size: 13px;2476  word-break: break-all;2477  color: var(--peach-t1);2478}24792480.peach-regen-actions {2481  display: flex;2482  gap: 6px;2483}24842485.peach-regen-actions--spaced {2486  margin-bottom: 8px;2487}24882489.peach-regen-action-grow {2490  flex: 1;2491}24922493.peach-regen-copy-btn {2494  padding: 0 8px;2495}24962497.peach-regen-success {2498  position: relative;2499  z-index: 1;2500  background: rgba(40, 180, 80, 0.1);2501  border: 1px solid rgba(40, 180, 80, 0.3);2502  border-radius: 8px;2503  padding: 10px 12px;2504  margin-bottom: 8px;2505  display: flex;2506  align-items: center;2507  gap: 8px;2508  font-size: 11px;2509  color: rgba(40, 180, 80, 0.9);2510}25112512/* ── Note editor overlay ── */2513.peach-note-editor {2514  position: absolute;2515  inset: 0;2516  z-index: 200;2517  display: flex;2518  flex-direction: column;2519  background:2520    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 7%, transparent) 0%, transparent 65%),2521    var(--peach-bg);2522  animation: overlay-in 180ms cubic-bezier(0.4, 0, 0.2, 1) both;2523}25242525.peach-note-editor-header {2526  display: flex;2527  align-items: center;2528  gap: 10px;2529  padding: 14px 16px 10px;2530  border-bottom: 1px solid var(--peach-t3);2531  flex-shrink: 0;2532}25332534.peach-note-editor-back {2535  background: transparent;2536  border: none;2537  cursor: pointer;2538  color: var(--peach-t2);2539  padding: 4px 6px;2540  border-radius: 6px;2541  display: flex;2542  align-items: center;2543  transition: color 120ms ease, background 120ms ease;2544  flex-shrink: 0;2545}2546.peach-note-editor-back:hover { color: var(--peach-t0); background: var(--peach-t4); }25472548.peach-note-editor-label {2549  flex: 1;2550  font-family: "Cormorant Garamond", "Times New Roman", serif;2551  font-style: italic;2552  font-size: 15px;2553  color: var(--peach-t1);2554  letter-spacing: 0.02em;2555}25562557.peach-note-editor-save-btn {2558  background: transparent;2559  border: 1px solid color-mix(in srgb, var(--peach-accent) 40%, transparent);2560  border-radius: 8px;2561  color: var(--peach-accent);2562  font-family: "IBM Plex Mono", monospace;2563  font-size: 10px;2564  letter-spacing: 0.06em;2565  text-transform: uppercase;2566  padding: 3px 10px;2567  cursor: pointer;2568  transition: background 120ms ease, border-color 120ms ease;2569}2570.peach-note-editor-save-btn:hover:not(:disabled) {2571  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);2572  border-color: color-mix(in srgb, var(--peach-accent) 65%, transparent);2573}2574.peach-note-editor-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }25752576.peach-note-toolbar {2577  display: flex;2578  align-items: center;2579  gap: 3px;2580  padding: 6px 14px 5px;2581  border-bottom: 1px solid var(--peach-t3);2582  flex-shrink: 0;2583}25842585.peach-note-tool-btn {2586  background: transparent;2587  border: 1px solid transparent;2588  border-radius: 5px;2589  color: var(--peach-t2);2590  font-family: "IBM Plex Mono", monospace;2591  font-size: 10px;2592  letter-spacing: 0.04em;2593  padding: 2px 8px;2594  cursor: pointer;2595  line-height: 1.6;2596  transition: background 100ms ease, color 100ms ease, border-color 100ms ease;2597}2598.peach-note-tool-btn:hover {2599  background: var(--peach-t4);2600  color: var(--peach-t0);2601  border-color: var(--peach-t3);2602}26032604.peach-note-tool-icon {2605  padding: 3px 7px;2606  display: inline-flex;2607  align-items: center;2608  justify-content: center;2609}26102611.peach-note-tool-divider {2612  width: 1px;2613  height: 14px;2614  background: var(--peach-t3);2615  margin: 0 4px;2616  flex-shrink: 0;2617}26182619.peach-note-editor-body {2620  flex: 1;2621  overflow-y: auto;2622  padding: 16px 20px 20px;2623  outline: none;2624  font-family: "Cormorant Garamond", "Times New Roman", serif;2625  font-size: 16px;2626  line-height: 1.75;2627  color: var(--peach-t0);2628  scrollbar-width: none;2629  word-break: break-word;2630}2631.peach-note-editor-body:empty::before {2632  content: "write your note…";2633  color: var(--peach-t3);2634  font-style: italic;2635  pointer-events: none;2636}26372638/* Inline variant (Add.tsx, Entry.tsx note) — toolbar hoisted to parent row */2639.peach-note-editor-inline {2640  display: flex;2641  flex-direction: column;2642  flex: 1;2643  min-height: 0;2644}2645.peach-note-editor-body--inline {2646  flex: 1;2647  min-height: 0;2648  font-size: 15px;2649  padding: 10px 20px 14px;2650}26512652/* Full-width toolbar row inside the body (Add.tsx note type).2653   Negative horizontal margins cancel body padding so the border spans edge-to-edge. */2654.peach-note-toolbar-body {2655  display: flex;2656  align-items: center;2657  gap: 3px;2658  padding: 5px 20px 4px;2659  margin: 2px -20px 0;2660  border-bottom: 1px solid var(--peach-t3);2661  flex-shrink: 0;2662}26632664/* Right-aligned inline toolbar sitting inside .peach-new-type-row (Add.tsx)2665   or .peach-entry-note-toolbar-row (Entry.tsx). Reuses .peach-note-tool-btn2666   and .peach-note-tool-divider button-level styles. */2667.peach-note-toolbar-inline {2668  display: flex;2669  align-items: center;2670  gap: 3px;2671  margin-left: auto;2672  padding-left: 10px;2673  border-left: 1px solid var(--peach-t3);2674  min-height: 22px;2675}26762677/* Entry.tsx toolbar row (no tabs, toolbar only) */2678.peach-entry-note-toolbar-row {2679  display: flex;2680  align-items: center;2681  margin: 4px 0 6px;2682  position: relative;2683  z-index: 1;2684}2685.peach-entry-note-toolbar-row .peach-note-toolbar-inline {2686  border-left: none;2687  padding-left: 0;2688  margin-left: 0;2689}26902691/* Note body — fills available vertical space in Add.tsx and Entry.tsx */2692.peach-note-body {2693  display: flex;2694  flex-direction: column;2695  flex: 1;2696  min-height: 0;2697  margin: 4px 0 0;2698}2699.peach-entry-body--new .peach-note-body {2700  margin: 8px -20px 0;2701}27022703/* Add.tsx body is a grid by default; swap to a flex column when a note is2704   active so the note body can stretch and pin the tags row to the bottom. */2705.peach-entry-body--new:has(.peach-note-body) {2706  display: flex;2707  flex-direction: column;2708}27092710/* Rich content element styles (editor + display) */2711.peach-note-editor-body h2,2712.peach-note-content h2 {2713  font-family: "Cormorant Garamond", serif;2714  font-size: 20px;2715  font-weight: 600;2716  font-style: italic;2717  color: var(--peach-t0);2718  margin: 6px 0 2px;2719  line-height: 1.3;2720}2721.peach-note-editor-body ul,2722.peach-note-content ul {2723  padding-left: 18px;2724  margin: 3px 0;2725  list-style: disc;2726}2727.peach-note-editor-body ol,2728.peach-note-content ol {2729  padding-left: 18px;2730  margin: 3px 0;2731  list-style: decimal;2732}2733.peach-note-editor-body li,2734.peach-note-content li { margin: 2px 0; }2735.peach-note-editor-body hr,2736.peach-note-content hr {2737  border: none;2738  border-top: 1px solid var(--peach-t3);2739  margin: 10px 0;2740}27412742/* font size elements from execCommand */2743.peach-note-editor-body font[size="1"],2744.peach-note-content font[size="1"] { font-size: 11px; line-height: 1.6; }2745.peach-note-editor-body font[size="2"],2746.peach-note-content font[size="2"] { font-size: 13px; }2747.peach-note-editor-body font[size="3"],2748.peach-note-content font[size="3"] { font-size: 16px; }2749.peach-note-editor-body font[size="4"],2750.peach-note-content font[size="4"] { font-size: 20px; }2751.peach-note-editor-body font[size="5"],2752.peach-note-content font[size="5"] { font-size: 26px; line-height: 1.4; }27532754/* bold / italic inside the editor and note display */2755.peach-note-editor-body b, .peach-note-editor-body strong,2756.peach-note-content b, .peach-note-content strong { font-weight: 700; }2757.peach-note-editor-body em, .peach-note-editor-body i,2758.peach-note-content em, .peach-note-content i { font-style: italic; }27592760/* note display — rendered HTML, no pre-wrap */2761.peach-note-content {2762  overflow: auto;2763  max-height: 340px;2764  word-break: break-word;2765}27662767/* ── Note textarea ── */2768.peach-note-textarea {2769  width: 100%;2770  min-height: 180px;2771  max-height: 280px;2772  resize: vertical;2773  background: var(--peach-t4);2774  border: 1px solid var(--peach-t3);2775  border-radius: 8px;2776  padding: 10px 12px;2777  font-family: "IBM Plex Mono", monospace;2778  font-size: 12px;2779  line-height: 1.7;2780  color: var(--peach-t1);2781  outline: none;2782  transition: border-color 150ms ease;2783}27842785.peach-note-textarea:focus {2786  border-color: var(--peach-t2);2787}27882789.peach-note-char-count {2790  font-family: "IBM Plex Mono", monospace;2791  font-size: 9px;2792  color: var(--peach-t3);2793  text-align: right;2794  margin-top: 4px;2795  letter-spacing: 0.1em;2796}27972798/* ── Field input baseline ── */2799.peach-new-field-input {2800  width: 100%;2801  background: transparent;2802  border: none;2803  border-bottom: 1px solid var(--peach-t3);2804  padding: 4px 0;2805  color: var(--peach-t1);2806  font-family: "IBM Plex Mono", monospace;2807  font-size: 13px;2808  outline: none;2809  transition: border-color 150ms ease;2810}28112812.peach-new-field-input:focus {2813  border-bottom-color: var(--peach-t0);2814  color: var(--peach-t0);2815}28162817.peach-new-name-input {2818  width: 100%;2819  background: transparent;2820  border: none;2821  border-bottom: 1px solid var(--peach-t3);2822  padding: 6px 0;2823  font-family: "Cormorant Garamond", Georgia, serif;2824  font-style: italic;2825  font-size: 28px;2826  color: var(--peach-t0);2827  outline: none;2828  transition: border-color 150ms ease;2829}28302831.peach-new-name-input:focus {2832  border-bottom-color: var(--peach-t1);2833}28342835.peach-new-name-input::placeholder {2836  color: var(--peach-t2);2837  font-style: italic;2838}28392840.peach-new-field-input::placeholder {2841  color: var(--peach-t3);2842}28432844/* ── Demo entrance animation ── */2845#hd-shell {2846  animation: hd-shell-enter 700ms cubic-bezier(0.34, 1.56, 0.64, 1) 200ms both;2847}2848@keyframes hd-shell-enter {2849  from { opacity: 0; transform: scale(0.96) translateY(16px); }2850  to   { opacity: 1; transform: scale(1) translateY(0); }2851}28522853/* ── Keyframes ── */2854@keyframes peach-char-enter {2855  from { opacity: 0; transform: translateY(0.22em); }2856  to   { opacity: 1; transform: translateY(0); }2857}2858@keyframes peach-content-enter {2859  from { opacity: 0.96; transform: translateY(4px); }2860  to   { opacity: 1; transform: translateY(0); }2861}2862@keyframes peach-content-exit {2863  from { opacity: 1; transform: translateY(0); }2864  to   { opacity: 0.92; transform: translateY(-3px); }2865}2866@keyframes peach-screen-enter {2867  from { opacity: 0; transform: translateY(14px); }2868  to   { opacity: 1; transform: translateY(0); }2869}2870@keyframes peach-shell-fade-in {2871  from { opacity: 0; }2872  to   { opacity: 1; }2873}2874@keyframes peach-veil-in {2875  from { opacity: 0; }2876  to   { opacity: 1; }2877}2878@keyframes peach-lock-settle {2879  0%   { transform: scale(0.9); }2880  65%  { transform: scale(1.08); }2881  100% { transform: scale(1); }2882}2883@keyframes peach-copy-confirm {2884  from { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2885  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); }2886}2887@keyframes peach-copy-retreat {2888  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); }2889  to   { color: var(--peach-t2); border-color: var(--peach-t3); background-color: transparent; box-shadow: none; }2890}2891@keyframes peach-copy-flood {2892  from { opacity: 0; transform: scaleX(0.15); }2893  to   { opacity: 1; transform: scaleX(1); }2894}2895@keyframes peach-copy-icon-settle {2896  from  { transform: scale(0.84); }2897  70%   { transform: scale(1.08); }2898  to    { transform: scale(1); }2899}2900@keyframes peach-copy-sheen-retreat {2901  from { opacity: 1; transform: scaleX(1); }2902  to   { opacity: 0; transform: scaleX(0.15); }2903}2904@keyframes peach-copy-drain {2905  from { width: 100%; }2906  to   { width: 0; }2907}2908@keyframes peach-shake {2909  0%, 100% { transform: translateX(0); }2910  20%      { transform: translateX(-6px); }2911  40%      { transform: translateX(6px); }2912  60%      { transform: translateX(-4px); }2913  80%      { transform: translateX(4px); }2914}29152916@keyframes pip-pulse {2917  0% { transform: scale(1); }2918  40% { transform: scale(2.2); }2919  100% { transform: scale(1); }2920}292129222923/* ── Password generator ── */2924.peach-pwgen-body {2925  flex: 1; overflow-y: auto;2926  display: flex; flex-direction: column;2927}2928.peach-policy-badge {2929  display: flex; align-items: center;2930  padding: 6px 20px 0;2931  font-size: 10px; font-family: Inter, sans-serif;2932  color: var(--peach-t2); letter-spacing: 0.04em;2933}2934.peach-pwgen-display {2935  padding: 14px 20px 12px;2936  border-bottom: 1px solid var(--peach-t3);2937  display: flex; align-items: flex-start; gap: 10px;2938}2939.peach-pwgen-display-row {2940  display: flex;2941  align-items: flex-start;2942  gap: 8px;2943  padding-bottom: 8px;2944  border-bottom: 1px solid var(--peach-t3);2945}2946.peach-pwgen-output {2947  flex: 1; min-width: 0; margin: 0;2948  font-family: "IBM Plex Mono", monospace;2949  font-size: 13px; color: var(--peach-t0);2950  line-height: 1.6; word-break: break-all; overflow-wrap: break-word;2951  white-space: normal;2952  padding: 10px 12px;2953  background: var(--peach-t4);2954  border-radius: 6px;2955  min-height: 36px;2956}2957.peach-pwgen-output-display {2958  flex: 1;2959  min-width: 0;2960  margin: 0;2961  font-family: "Cormorant Garamond", "Times New Roman", serif;2962  font-style: italic;2963  font-weight: 300;2964  font-size: 32px;2965  line-height: 1.05;2966  color: var(--peach-t0);2967  word-break: break-all;2968  overflow-wrap: break-word;2969  white-space: normal;2970  letter-spacing: 0.02em;2971}2972.peach-pwgen-display-actions {2973  display: flex;2974  flex-direction: column;2975  gap: 4px;2976  flex-shrink: 0;2977  margin-top: 2px;2978}2979.peach-pwgen-settings { padding: 12px 20px 14px; display: flex; flex-direction: column; gap: 14px; }2980.peach-pwgen-length-row { display: flex; flex-direction: column; gap: 6px; }2981.peach-pwgen-length-labels { display: flex; justify-content: space-between; align-items: center; }2982.peach-pwgen-len-num {2983  font-family: "IBM Plex Mono", monospace;2984  font-size: 12px; color: var(--peach-accent);2985}2986.peach-pwgen-slider { width: 100%; accent-color: var(--peach-accent); cursor: pointer; height: 2px; }2987.peach-pwgen-toggles { display: flex; flex-direction: column; }2988.peach-pwgen-charset-pills {2989  display: flex;2990  gap: 6px;2991  flex-wrap: wrap;2992}2993.peach-pwgen-pill {2994  padding: 4px 11px;2995  border-radius: 999px;2996  border: 1px solid var(--peach-t3);2997  background: transparent;2998  color: var(--peach-t2);2999  font-family: "IBM Plex Mono", monospace;3000  font-size: 9px;3001  letter-spacing: 0.08em;3002  cursor: pointer;3003  transition: all 150ms ease;3004}3005.peach-pwgen-pill.is-on {3006  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);3007  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);3008  color: var(--peach-accent);3009}3010.peach-pwgen-pill:not(.is-on):hover {3011  color: var(--peach-t1);3012  border-color: var(--peach-t2);3013}3014.peach-pwgen-use-btn {3015  width: 100%;3016  min-height: 34px;3017  border-radius: 8px;3018  margin-top: 2px;3019}3020.peach-pwgen-toggle-row {3021  display: flex; align-items: center; justify-content: space-between;3022  padding: 6px 0; border-bottom: 1px solid var(--peach-t3);3023}3024.peach-pwgen-toggle-row:last-child { border-bottom: none; }3025.peach-pwgen-toggle-label { font-size: 13px; color: var(--peach-t1); }30263027.peach-screen-prelock {3028  z-index: 10;3029}30303031.prelock-form {3032  display: grid;3033  gap: 12px;3034}30353036/* Peach popup should not expose native scrollbars on internal panels. */3037.peach-settings-body,3038.peach-new-body,3039.peach-pwgen-body,3040.lock-screen,3041.peach-import-preview {3042  scrollbar-width: none;3043  -ms-overflow-style: none;3044  overscroll-behavior: contain;3045}3046.peach-settings-body::-webkit-scrollbar,3047.peach-new-body::-webkit-scrollbar,3048.peach-pwgen-body::-webkit-scrollbar,3049.lock-screen::-webkit-scrollbar,3050.peach-import-preview::-webkit-scrollbar {3051  width: 0;3052  height: 0;3053  display: none;3054}30553056.lock-screen {3057  height: 100%;3058  min-height: 100%;3059  overflow-y: auto;3060  padding: 18px 18px 16px;3061  gap: 14px;3062  grid-template-rows: auto auto auto 1fr auto;3063  align-content: stretch;3064  position: relative;3065  isolation: isolate;3066}3067.peach-screen.lock-screen--vault-stage {3068  display: flex;3069  flex-direction: column;3070  justify-content: flex-start;3071  gap: 18px;3072  padding: 20px 18px 18px;3073  overflow: hidden;3074}3075.peach-screen.lock-screen--vault-stage .peach-lock-panel {3076  margin-top: auto;3077}3078.lock-screen--onboarding {3079  display: flex;3080  flex-direction: column;3081  gap: 12px;3082  justify-content: flex-start;3083}30843085.lock-screen::before {3086  content: "";3087  position: absolute;3088  inset: 12px 18px auto auto;3089  width: 160px;3090  height: 160px;3091  border-radius: 999px;3092  background:3093    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%);3094  filter: blur(6px);3095  opacity: 0.7;3096  pointer-events: none;3097  z-index: 0;3098}30993100.lock-screen-header {3101  display: flex;3102  align-items: center;3103  justify-content: space-between;3104  position: relative;3105  z-index: 1;3106}31073108.lock-password-input.shake {3109  animation: peach-shake 300ms ease-in-out;3110}31113112.peach-hint-error {3113  color: rgba(220, 80, 60, 0.92);3114}31153116.peach-onboarding-headline {3117  margin: 0;3118  font-family: "Cormorant Garamond", "Times New Roman", serif;3119  font-size: 35px;3120  line-height: 0.88;3121  font-style: italic;3122  font-weight: 400;3123  max-width: 252px;3124}31253126.peach-lock-copy {3127  display: grid;3128  gap: 8px;3129  position: relative;3130  z-index: 1;3131}31323133.peach-lock-copy--onboarding {3134  gap: 10px;3135}31363137.peach-lock-hero {3138  position: relative;3139  z-index: 1;3140  display: grid;3141  gap: 8px;3142  min-height: 0;3143  padding: 4px 2px 0;3144  border: none;3145  border-radius: 0;3146  background: transparent;3147  box-shadow: none;3148}3149.peach-lock-hero-art {3150  position: absolute;3151  right: -8px;3152  top: -6px;3153  width: 120px;3154  height: 120px;3155  display: flex;3156  align-items: center;3157  justify-content: center;3158  pointer-events: none;3159  opacity: 0.12;3160  filter: saturate(0.9);3161}3162.peach-lock-hero-mark {3163  width: 100%;3164  height: 100%;3165}3166/* Peach body stays brand-peach across every accent — we don't want a3167   green or blue peach when sage/sky is selected. Leaf + stem keep the3168   sage tint because a real peach has a sage leaf. */3169.peach-lock-hero-mark path:nth-child(2),3170.peach-lock-hero-mark path:nth-child(3) {3171  stroke: rgba(123, 144, 96, 0.88);3172  fill: rgba(123, 144, 96, 0.88);3173}3174.peach-lock-hero > *:not(.peach-lock-hero-art) {3175  position: relative;3176  z-index: 1;3177}31783179.peach-lock-eyebrow {3180  display: inline-flex;3181  align-items: center;3182  width: fit-content;3183  padding: 4px 9px;3184  border-radius: 999px;3185  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3186  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3187  color: var(--peach-t0);3188  font-family: "IBM Plex Mono", monospace;3189  font-size: 8px;3190  letter-spacing: 0.18em;3191  text-transform: uppercase;3192}31933194.peach-lock-label-row {3195  display: flex;3196  align-items: center;3197  justify-content: space-between;3198  margin-bottom: 0;3199}32003201.peach-lock-reveal-btn {3202  display: inline-flex;3203  align-items: center;3204  gap: 4px;3205  background: none;3206  border: none;3207  cursor: pointer;3208  font-family: "IBM Plex Mono", monospace;3209  font-size: 9px;3210  letter-spacing: 0.06em;3211  color: var(--peach-t2);3212  padding: 2px 0;3213  transition: color 150ms ease;3214}32153216.peach-lock-reveal-btn:hover {3217  color: var(--peach-t1);3218}32193220.peach-lock-warning {3221  color: rgba(220, 80, 60, 0.85) !important;3222  line-height: 1.5;3223}32243225.peach-onboarding-cards {3226  display: grid;3227  gap: 8px;3228  position: relative;3229  z-index: 1;3230}32313232.peach-lock-panel {3233  position: relative;3234  z-index: 1;3235  display: grid;3236  gap: 9px;3237  padding: 14px 16px 15px;3238  border-radius: 18px;3239  border: 1px solid var(--peach-t3);3240  background:3241    linear-gradient(180deg, rgba(240, 232, 216, 0.03), rgba(240, 232, 216, 0.015));3242  box-shadow:3243    inset 0 1px 0 rgba(240, 232, 216, 0.04),3244    0 12px 28px rgba(0, 0, 0, 0.12);3245}32463247.peach-lock-panel--secondary {3248  gap: 12px;3249}32503251.peach-lock-panel-header {3252  display: flex;3253  align-items: baseline;3254  justify-content: space-between;3255  gap: 12px;3256}32573258.peach-lock-option-grid {3259  display: grid;3260  gap: 10px;3261}32623263.peach-lock-option {3264  width: 100%;3265  display: grid;3266  gap: 6px;3267  padding: 14px 15px;3268  border-radius: 16px;3269  border: 1px solid rgba(240, 232, 216, 0.08);3270  background: rgba(240, 232, 216, 0.02);3271  color: var(--peach-t0);3272  text-align: left;3273  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;3274}32753276.peach-lock-option:hover {3277  border-color: color-mix(in srgb, var(--peach-accent) 28%, transparent);3278  background: rgba(240, 232, 216, 0.04);3279  transform: translateY(-1px);3280}32813282.peach-lock-option-title {3283  font-size: 12px;3284  color: var(--peach-t0);3285}32863287.peach-lock-option-copy {3288  font-size: 11px;3289  line-height: 1.55;3290  color: var(--peach-t1);3291}32923293.peach-onboarding-stack {3294  margin-top: 2px;3295}3296.peach-lock-panel-footer {3297  display: grid;3298  gap: 6px;3299  margin-top: 2px;3300  padding-top: 10px;3301  border-top: 1px solid rgba(240, 232, 216, 0.06);3302}33033304/* Restore picker panel — method option cards */3305.peach-lock-panel--restore {3306  gap: 10px;3307}3308.peach-lock-option--history {3309  border-color: rgba(240, 232, 216, 0.06);3310  opacity: 0.85;3311}33123313/* Snapshot restore panel */3314.peach-snapshot-panel {3315  gap: 10px;3316  overflow-y: auto;3317  max-height: 340px;3318}3319.peach-snapshot-list {3320  display: flex;3321  flex-direction: column;3322  gap: 4px;3323}3324.peach-snapshot-row {3325  display: flex;3326  align-items: center;3327  justify-content: space-between;3328  width: 100%;3329  padding: 8px 10px;3330  border-radius: 8px;3331  border: 1px solid rgba(240, 232, 216, 0.07);3332  background: transparent;3333  cursor: pointer;3334  transition: border-color 120ms, background 120ms;3335  text-align: left;3336  gap: 8px;3337}3338.peach-snapshot-row:hover {3339  border-color: rgba(240, 232, 216, 0.14);3340  background: rgba(240, 232, 216, 0.03);3341}3342.peach-snapshot-row.is-selected {3343  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3344  background: color-mix(in srgb, var(--peach-accent) 7%, transparent);3345}3346.peach-snapshot-time {3347  font-size: 11.5px;3348  color: var(--peach-t0);3349  flex: 1;3350}3351.peach-snapshot-count {3352  font-family: "IBM Plex Mono", monospace;3353  font-size: 10px;3354  color: var(--peach-t2);3355  flex-shrink: 0;3356}3357.peach-snapshot-confirm {3358  display: flex;3359  flex-direction: column;3360  gap: 8px;3361  padding-top: 10px;3362  border-top: 1px solid rgba(240, 232, 216, 0.06);3363}3364.peach-snapshot-warning {3365  display: flex;3366  align-items: flex-start;3367  gap: 6px;3368  font-size: 10.5px;3369  color: rgba(220, 80, 60, 0.85);3370  line-height: 1.55;3371}3372.peach-snapshot-warning svg { flex-shrink: 0; margin-top: 2px; }3373.peach-snapshot-confirm-row {3374  display: flex;3375  gap: 6px;3376  align-items: center;3377}3378.peach-snapshot-restore-btn {3379  width: 100%;3380}3381.peach-lock-hero--unlock .peach-lock-hero-art {3382  width: 112px;3383  height: 112px;3384  right: 0;3385  top: 2px;3386  opacity: 0.1;3387}33883389.peach-card {3390  border: 1px solid var(--peach-t3);3391  border-radius: 18px;3392  background:3393    linear-gradient(180deg, rgba(240, 232, 216, 0.03) 0%, rgba(240, 232, 216, 0.015) 100%);3394  box-shadow:3395    inset 0 0 0 1px var(--peach-border-accent),3396    inset 0 1px 0 rgba(240, 232, 216, 0.04),3397    0 12px 32px rgba(0, 0, 0, 0.14);3398  overflow: hidden;3399}34003401.peach-card-active {3402  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);3403  box-shadow:3404    inset 0 1px 0 rgba(240, 232, 216, 0.05),3405    0 16px 38px rgba(0, 0, 0, 0.18),3406    0 0 0 1px color-mix(in srgb, var(--peach-accent) 8%, transparent);3407}34083409.peach-card-disabled {3410  opacity: 0.72;3411}34123413.peach-card-header {3414  width: 100%;3415  padding: 13px 16px 11px;3416  background: transparent;3417  color: var(--peach-t0);3418  display: flex;3419  justify-content: space-between;3420  align-items: center;3421  text-align: left;3422  font-size: 12px;3423}34243425.peach-card-body {3426  padding: 0 16px 16px;3427  display: grid;3428  gap: 9px;3429}34303431.peach-card-tag {3432  color: var(--peach-t2);3433  font-family: "IBM Plex Mono", monospace;3434  font-size: 9px;3435  letter-spacing: 0.12em;3436  text-transform: uppercase;3437}34383439.peach-empty-copy {3440  display: grid;3441  gap: 6px;3442  color: var(--peach-t1);3443  font-size: 13px;3444}34453446.peach-lock-submit {3447  width: 100%;3448  box-shadow:3449    0 1px 0 rgba(255,255,255,0.10) inset,3450    0 0 0 1px color-mix(in srgb, var(--peach-accent) 19%, transparent),3451    0 12px 32px color-mix(in srgb, var(--peach-accent) 19%, transparent),3452    0 0 48px color-mix(in srgb, var(--peach-accent) 10%, transparent);3453}34543455.peach-lock-secondary {3456  width: 100%;3457  border-color: var(--peach-t3);3458  background: rgba(240, 232, 216, 0.02);3459}34603461.peach-lock-secondary:hover {3462  background: rgba(240, 232, 216, 0.04);3463}34643465.peach-lock-note {3466  max-width: none;3467  line-height: 1.55;3468  margin: 0;3469}34703471.peach-overlay-action {3472  font-size: 10px;3473  padding: 4px 8px;3474  letter-spacing: 0.06em;3475  min-width: 44px;3476  text-align: center;3477}34783479.peach-overlay-spacer {3480  width: 32px;3481}34823483.peach-inline-action {3484  flex-shrink: 0;3485  font-size: 9px;3486  letter-spacing: 0.1em;3487  text-transform: uppercase;3488  padding: 4px 7px;3489}3490.peach-password-toggle-btn {3491  display: inline-flex;3492  align-items: center;3493  justify-content: center;3494  min-width: 30px;3495  min-height: 26px;3496  padding: 0 7px;3497  border: 1px solid var(--peach-t3);3498  border-radius: 999px;3499  background: rgba(240, 232, 216, 0.04);3500  color: var(--peach-t2);3501  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;3502}3503.peach-password-toggle-btn:hover {3504  border-color: var(--peach-t2);3505  color: var(--peach-t0);3506  background: rgba(240, 232, 216, 0.06);3507}35083509.peach-new-textarea {3510  width: 100%;3511  min-height: 88px;3512  resize: vertical;3513  border: 0;3514  outline: none;3515  background: transparent;3516  color: var(--peach-t1);3517  font-family: "IBM Plex Mono", monospace;3518  font-size: 12px;3519  line-height: 1.65;3520  caret-color: var(--peach-accent);3521}35223523.peach-new-textarea::placeholder {3524  color: var(--peach-t2);3525  opacity: 0.7;3526}35273528.peach-settings-actions {3529  display: grid;3530  gap: 8px;3531}35323533.peach-sync-section-label {3534  font-size: 11px;3535  color: var(--peach-t2);3536  text-transform: uppercase;3537  letter-spacing: 0.05em;3538}35393540.peach-sync-device-row {3541  display: flex;3542  justify-content: space-between;3543  align-items: center;3544  padding: 6px 0;3545  border-bottom: 1px solid var(--peach-t3);3546}35473548.peach-sync-device-info {3549  display: flex;3550  flex-direction: column;3551  gap: 2px;3552}35533554.peach-sync-device-name {3555  font-size: 13px;3556  color: var(--peach-t0);3557}35583559.peach-sync-device-meta {3560  font-size: 11px;3561  color: var(--peach-t2);3562}35633564.peach-sync-status-dot {3565  display: inline-block;3566  width: 8px;3567  height: 8px;3568  border-radius: 50%;3569  vertical-align: middle;3570}35713572.peach-sync-remove-btn {3573  color: var(--peach-breach);3574}35753576.peach-sync-hero-icon {3577  color: var(--peach-t1);3578  opacity: 0.85;3579}35803581.peach-import-preview {3582  margin-bottom: 12px;3583  max-height: 152px;3584  overflow-y: auto;3585  border: 1px solid var(--peach-t3);3586  border-radius: 10px;3587  padding: 8px 10px;3588  display: grid;3589  gap: 8px;3590  background: rgba(240, 232, 216, 0.02);3591}35923593.peach-import-preview-row {3594  display: flex;3595  justify-content: space-between;3596  gap: 10px;3597  font-size: 11px;3598  color: var(--peach-t1);3599}36003601.peach-import-preview-title {3602  color: var(--peach-t0);3603  flex: 1;3604  min-width: 0;3605  overflow: hidden;3606  text-overflow: ellipsis;3607  white-space: nowrap;3608}36093610.peach-import-preview-meta {3611  color: var(--peach-t2);3612  flex-shrink: 0;3613  max-width: 42%;3614  overflow: hidden;3615  text-overflow: ellipsis;3616  white-space: nowrap;3617}36183619.peach-import-preview-more {3620  color: var(--peach-t2);3621  font-size: 10px;3622}36233624.peach-restore-copy {3625  margin: 0;3626  color: var(--peach-t1);3627  font-size: 11px;3628  line-height: 1.6;3629}36303631.peach-restore-warning {3632  padding: 10px 12px;3633  border-radius: 12px;3634  border: 1px solid color-mix(in srgb, var(--peach-breach) 35%, transparent);3635  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3636  color: var(--peach-t0);3637  font-size: 11px;3638  line-height: 1.55;3639}36403641.peach-provider-chips {3642  display: flex;3643  flex-wrap: wrap;3644  gap: 6px;3645}36463647.peach-provider-chip {3648  display: inline-flex;3649  align-items: center;3650  padding: 5px 8px;3651  border-radius: 999px;3652  border: 1px solid var(--peach-t3);3653  background: rgba(240, 232, 216, 0.02);3654  color: var(--peach-t1);3655  font-family: "IBM Plex Mono", monospace;3656  font-size: 8px;3657  letter-spacing: 0.08em;3658  text-transform: uppercase;3659}36603661.peach-restore-file,3662.peach-restore-input {3663  width: 100%;3664  border-radius: 10px;3665  border: 1px solid var(--peach-t3);3666  background: var(--peach-s2);3667  color: var(--peach-t0);3668  font-size: 12px;3669}36703671.peach-restore-file {3672  padding: 9px 10px;3673}36743675.peach-restore-file::file-selector-button {3676  margin-right: 10px;3677  padding: 7px 10px;3678  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);3679  border-radius: 999px;3680  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);3681  color: var(--peach-t0);3682  font-size: 10px;3683  letter-spacing: 0.08em;3684  text-transform: uppercase;3685  cursor: pointer;3686}36873688.peach-restore-input {3689  padding: 10px 12px;3690}36913692.peach-auth-grid {3693  display: grid;3694  gap: 10px;3695}36963697.peach-import-summary {3698  color: var(--peach-t1);3699  font-size: 12px;3700  line-height: 1.6;3701  margin-bottom: 12px;3702}37033704.peach-restore-error {3705  color: rgba(220, 80, 60, 0.95);3706  font-size: 12px;3707  line-height: 1.55;3708}37093710.peach-cjk-qr-panel {3711  margin-top: 14px;3712  padding: 12px;3713  border-radius: 16px;3714  border: 1px solid var(--peach-t3);3715  background: rgba(240, 232, 216, 0.02);3716  display: grid;3717  gap: 10px;3718}37193720.peach-cjk-qr-frame {3721  display: grid;3722  place-items: center;3723  min-height: 212px;3724  border-radius: 14px;3725  background: #fff;3726  overflow: hidden;3727}37283729.peach-cjk-qr-frame svg {3730  display: block;3731  width: 196px;3732  height: 196px;3733}37343735.peach-cjk-qr-error,3736.peach-cjk-qr-caption {3737  color: var(--peach-t1);3738  font-size: 11px;3739  line-height: 1.55;3740}37413742.peach-cjk-qr-card {3743  max-width: 400px;3744  margin: auto;3745}37463747.peach-cjk-qr-body {3748  padding: 0 20px 20px;3749  text-align: center;3750}37513752.peach-cjk-qr-hint {3753  font-size: 11px;3754  color: var(--peach-t2);3755  margin: 0 0 14px;3756}37573758.peach-cjk-qr-image {3759  border-radius: 4px;3760  display: block;3761  margin: 0 auto;3762  width: 100%;3763  max-width: 320px;3764  height: auto;3765}37663767.peach-pro-badge {3768  padding: 2px 6px;3769  border-radius: 999px;3770  font-family: var(--font-ui);3771  font-size: 10px;3772  letter-spacing: 0.08em;3773  text-transform: uppercase;3774  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3775  color: var(--peach-accent);3776}37773778/* ── Shortcuts rebind table ─────────────────────────────────── */3779.peach-shortcuts-group { display: flex; flex-direction: column; gap: 6px; }3780.peach-shortcut-row {3781  display: flex;3782  align-items: center;3783  gap: 10px;3784  padding: 6px 0;3785}3786.peach-shortcut-row-label {3787  flex: 1;3788  font-size: 12px;3789  color: var(--peach-t0);3790}3791.peach-shortcut-chip {3792  min-width: 64px;3793  padding: 4px 10px;3794  border-radius: 6px;3795  border: 1px solid var(--peach-t3);3796  background: var(--peach-input-bg, var(--surface-card));3797  color: var(--peach-t0);3798  font-family: var(--font-mono);3799  font-size: 11px;3800  letter-spacing: 0.04em;3801  cursor: pointer;3802  text-align: center;3803  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;3804}3805.peach-shortcut-chip:hover { border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent); }3806.peach-shortcut-chip.is-custom {3807  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);3808  color: var(--peach-accent);3809}3810.peach-shortcut-chip.is-capturing {3811  border-color: var(--peach-accent);3812  background: color-mix(in srgb, var(--peach-accent) 14%, transparent);3813  color: var(--peach-accent);3814  animation: peach-shortcut-capture-pulse 1.4s ease-in-out infinite;3815}3816@keyframes peach-shortcut-capture-pulse {3817  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--peach-accent) 30%, transparent); }3818  50%      { box-shadow: 0 0 0 4px color-mix(in srgb, var(--peach-accent) 12%, transparent); }3819}3820.peach-shortcut-reset {3821  background: transparent;3822  border: none;3823  cursor: pointer;3824  color: var(--peach-t2);3825  padding: 4px 6px;3826  border-radius: 5px;3827  font-size: 14px;3828  line-height: 1;3829  transition: color 120ms ease, background 120ms ease;3830}3831.peach-shortcut-reset:hover {3832  color: var(--peach-t0);3833  background: color-mix(in srgb, var(--peach-text, var(--peach-t0)) 6%, transparent);3834}3835.peach-shortcuts-conflict {3836  margin: 4px 0 0;3837  padding: 8px 10px;3838  border-radius: 7px;3839  background: color-mix(in srgb, var(--peach-breach) 10%, transparent);3840  border: 1px solid color-mix(in srgb, var(--peach-breach) 30%, transparent);3841  font-family: var(--font-mono);3842  font-size: 11px;3843  color: var(--peach-t0);3844}38453846/* ── Help dialog overlay (? to open) ────────────────────────── */3847.peach-shortcuts-help-backdrop {3848  position: fixed;3849  inset: 0;3850  background: rgba(0, 0, 0, 0.55);3851  backdrop-filter: blur(2px);3852  display: flex;3853  align-items: center;3854  justify-content: center;3855  z-index: 1000;3856  animation: peach-help-fade-in 140ms ease forwards;3857}3858@keyframes peach-help-fade-in { from { opacity: 0 } to { opacity: 1 } }3859.peach-shortcuts-help-card {3860  width: min(320px, 92vw);3861  max-height: 80vh;3862  overflow-y: auto;3863  border-radius: 14px;3864  border: 1px solid var(--peach-t3);3865  background: var(--peach-bg);3866  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);3867  padding: 16px 18px 18px;3868  display: flex;3869  flex-direction: column;3870  gap: 12px;3871}3872.peach-shortcuts-help-head {3873  display: flex; align-items: center; justify-content: space-between;3874}3875.peach-shortcuts-help-head h3 {3876  margin: 0;3877  font-family: var(--font-display);3878  font-style: italic;3879  font-weight: 400;3880  font-size: 22px;3881  color: var(--peach-t0);3882}3883.peach-shortcuts-help-close {3884  background: transparent;3885  border: none;3886  color: var(--peach-t2);3887  cursor: pointer;3888  font-size: 14px;3889  padding: 4px 8px;3890  border-radius: 5px;3891}3892.peach-shortcuts-help-close:hover { color: var(--peach-t0); background: var(--surface-card); }3893.peach-shortcuts-help-body ul {3894  list-style: none; padding: 0; margin: 4px 0 12px;3895  display: grid; gap: 8px;3896}3897.peach-shortcuts-help-body li {3898  display: flex; align-items: center; justify-content: space-between; gap: 12px;3899  font-size: 12px; color: var(--peach-t0);3900}3901.peach-shortcuts-help-body kbd {3902  font-family: var(--font-mono);3903  font-size: 11px;3904  padding: 3px 8px;3905  border-radius: 6px;3906  background: var(--surface-card);3907  border: 1px solid var(--peach-t3);3908  color: var(--peach-accent);3909  letter-spacing: 0.04em;3910}39113912/* ── Pro promo on Account screen ────────────────────────────── */3913.peach-pro-promo {3914  position: relative;3915  border-radius: 14px;3916  border: 1px solid color-mix(in srgb, var(--peach-accent) 22%, transparent);3917  background:3918    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--peach-accent) 10%, transparent) 0%, transparent 60%),3919    radial-gradient(85% 100% at 100% 100%, color-mix(in srgb, var(--peach-accent) 6%, transparent) 0%, transparent 65%),3920    var(--surface-card);3921  overflow: hidden;3922  margin-bottom: 14px;3923}3924.peach-pro-promo-glow {3925  position: absolute;3926  inset: -40% -20% auto auto;3927  width: 220px; height: 220px;3928  background: radial-gradient(closest-side, var(--peach-glow), transparent 70%);3929  pointer-events: none;3930  filter: blur(8px);3931}3932.peach-pro-promo-inner {3933  position: relative;3934  padding: 18px 18px 16px;3935}3936.peach-pro-promo-title {3937  font-family: var(--font-display);3938  font-style: italic;3939  font-weight: 400;3940  font-size: 28px;3941  line-height: 1;3942  letter-spacing: -0.005em;3943  color: var(--peach-t0);3944  margin: 0 0 4px;3945}3946.peach-pro-promo-tagline {3947  font-family: var(--font-mono);3948  font-size: 10px;3949  letter-spacing: 0.06em;3950  color: var(--peach-t2);3951  margin: 0 0 14px;3952}3953.peach-pro-promo-list {3954  list-style: none;3955  margin: 0 0 16px;3956  padding: 0;3957  display: grid;3958  gap: 9px;3959}3960.peach-pro-promo-list li {3961  display: flex;3962  align-items: flex-start;3963  gap: 9px;3964  font-size: 12px;3965  color: var(--peach-t1);3966  line-height: 1.4;3967}3968.peach-pro-promo-list svg {3969  width: 14px;3970  height: 14px;3971  flex-shrink: 0;3972  color: var(--peach-accent);3973  margin-top: 2px;3974}3975.peach-pro-promo-list span {3976  color: var(--peach-t0);3977}3978.peach-pro-promo-cta {3979  width: 100%;3980  background: var(--peach-accent);3981  color: #fff;3982  border: none;3983  padding: 9px 12px;3984  border-radius: 9px;3985  font-size: 12px;3986  font-weight: 500;3987  font-family: var(--font-ui);3988  letter-spacing: 0.02em;3989  text-decoration: none;3990  display: inline-flex;3991  align-items: center;3992  justify-content: center;3993  cursor: pointer;3994  transition: filter 120ms ease, box-shadow 120ms ease, transform 80ms ease;3995  box-shadow: 0 2px 16px var(--peach-glow);3996}3997.peach-pro-promo-cta:hover {3998  filter: brightness(1.07);3999  box-shadow: 0 4px 24px var(--peach-glow);4000  transform: translateY(-1px);4001}4002.peach-pro-promo-cta:active { transform: translateY(0); filter: brightness(0.96); }40034004.peach-pro-or-divider {4005  display: flex;4006  align-items: center;4007  gap: 10px;4008  margin: 4px 0 12px;4009  font-family: var(--font-mono);4010  font-size: 10px;4011  letter-spacing: 0.06em;4012  color: var(--peach-t2);4013  text-transform: uppercase;4014}4015.peach-pro-or-divider::before,4016.peach-pro-or-divider::after {4017  content: "";4018  flex: 1;4019  height: 1px;4020  background: var(--peach-t3);4021}40224023.peach-loading {4024  position: absolute;4025  inset: 0;4026  display: flex;4027  align-items: center;4028  justify-content: center;4029  background: var(--bg);4030  animation: peach-loading-pulse 1.2s ease-in-out infinite;4031}40324033@keyframes peach-loading-pulse {4034  0%, 100% { opacity: 0.6; }4035  50% { opacity: 1; }4036}40374038/* ── Health Dashboard ─────────────────────────────────────────────────── */4039.peach-health-body {4040  flex: 1;4041  overflow-y: auto;4042  display: flex;4043  flex-direction: column;4044}40454046.peach-health-summary {4047  padding: 10px 16px 6px;4048  font-family: "IBM Plex Mono", monospace;4049  font-size: 11px;4050}4051.peach-health-summary-warn { color: rgba(220,80,60,0.9); }4052.peach-health-summary-ok { color: var(--peach-t2); }40534054.peach-health-check-row {4055  padding: 0 16px 10px;4056}4057.peach-health-check-btn {4058  width: 100%;4059  display: flex;4060  align-items: center;4061  justify-content: center;4062}40634064.peach-health-sections {4065  flex: 1;4066  display: flex;4067  flex-direction: column;4068}40694070.peach-health-section {4071  border-bottom: 1px solid var(--peach-t3);4072}40734074.peach-health-section-header {4075  width: 100%;4076  display: flex;4077  align-items: center;4078  justify-content: space-between;4079  padding: 9px 16px;4080  background: transparent;4081  cursor: pointer;4082  color: var(--peach-t0);4083}40844085.peach-health-section-title-row {4086  display: flex;4087  align-items: center;4088  gap: 8px;4089}40904091.peach-health-count-badge {4092  display: inline-flex;4093  align-items: center;4094  justify-content: center;4095  min-width: 20px;4096  height: 18px;4097  padding: 0 5px;4098  border-radius: 999px;4099  background: rgba(220,80,60,0.15);4100  border: 1px solid rgba(220,80,60,0.25);4101  font-family: "IBM Plex Mono", monospace;4102  font-size: 9px;4103  color: rgba(220,80,60,0.9);4104}41054106.peach-health-section-title {4107  font-family: "IBM Plex Mono", monospace;4108  font-size: 11px;4109  text-transform: uppercase;4110  letter-spacing: 0.1em;4111  color: var(--peach-t1);4112}41134114.peach-health-chevron {4115  color: var(--peach-t2);4116  transition: transform 200ms ease;4117  flex-shrink: 0;4118}4119.peach-health-chevron.is-expanded {4120  transform: rotate(180deg);4121}41224123.peach-health-section-body {4124  padding: 0 16px 10px;4125  display: flex;4126  flex-direction: column;4127  gap: 4px;4128}41294130.peach-health-row {4131  display: flex;4132  align-items: flex-start;4133  justify-content: space-between;4134  gap: 8px;4135  padding: 6px 8px;4136  border-radius: 8px;4137  background: rgba(240,232,216,0.02);4138}41394140.peach-health-row-info {4141  flex: 1;4142  min-width: 0;4143  display: flex;4144  flex-direction: column;4145  gap: 2px;4146}41474148.peach-health-row-name {4149  font-family: "Cormorant Garamond", serif;4150  font-size: 15px;4151  font-style: italic;4152  font-weight: 400;4153  color: var(--peach-t0);4154  white-space: nowrap;4155  overflow: hidden;4156  text-overflow: ellipsis;4157}41584159.peach-health-row-meta {4160  font-family: "IBM Plex Mono", monospace;4161  font-size: 9px;4162  color: var(--peach-t2);4163  letter-spacing: 0.05em;4164}41654166.peach-health-fix-btn {4167  font-size: 9px;4168  letter-spacing: 0.08em;4169  text-transform: uppercase;4170  padding: 4px 7px;4171  flex-shrink: 0;4172  display: flex;4173  align-items: center;4174}41754176.peach-health-empty {4177  font-family: "IBM Plex Mono", monospace;4178  font-size: 10px;4179  color: var(--peach-t2);4180  padding: 6px 0;4181}41824183.peach-health-loading {4184  font-family: "IBM Plex Mono", monospace;4185  font-size: 10px;4186  color: var(--peach-t2);4187  padding: 6px 0;4188  display: flex;4189  align-items: center;4190  gap: 6px;4191}41924193.peach-health-loading::before {4194  content: "";4195  width: 10px;4196  height: 10px;4197  border: 1.5px solid var(--peach-t3);4198  border-top-color: var(--peach-accent);4199  border-radius: 50%;4200  animation: peach-spin 600ms linear infinite;4201}42024203@keyframes peach-spin {4204  to { transform: rotate(360deg); }4205}42064207.peach-spinner {4208  width: 32px;4209  height: 32px;4210  border: 2px solid var(--peach-s2);4211  border-top-color: var(--peach-accent);4212  border-radius: 50%;4213  margin: 0 auto 16px;4214  animation: peach-spin 0.8s linear infinite;4215}42164217.peach-progress-screen {4218  text-align: center;4219  padding: 32px 16px;4220}42214222.peach-progress-screen-title {4223  font-size: 13px;4224  color: var(--peach-t0);4225  margin-bottom: 16px;4226}42274228.peach-progress-screen-stage {4229  font-size: 11px;4230  color: var(--peach-t2);4231  min-height: 14px;4232}42334234.peach-progress-screen-note {4235  font-size: 10px;4236  color: var(--peach-t2);4237  margin-top: 8px;4238}42394240.peach-pairing-body {4241  flex: 1;4242  overflow-y: auto;4243  display: flex;4244  flex-direction: column;4245}42464247.peach-pairing-content {4248  flex: 1;4249  display: flex;4250  flex-direction: column;4251  align-items: center;4252  justify-content: center;4253  gap: 14px;4254  padding: 28px 20px;4255  text-align: center;4256}42574258.peach-pairing-headline {4259  font-family: var(--font-display);4260  font-style: italic;4261  font-weight: 300;4262  font-size: 28px;4263  color: var(--peach-t0);4264  margin: 0;4265  line-height: 1;4266}42674268.peach-pairing-subline {4269  font-size: 12px;4270  color: var(--peach-t2);4271  max-width: 220px;4272  line-height: 1.5;4273  margin: 0;4274}42754276.peach-pairing-subline--center {4277  text-align: center;4278}42794280.peach-pairing-code-display {4281  display: flex;4282  gap: 6px;4283}42844285.peach-pairing-code-digit {4286  display: flex;4287  align-items: center;4288  justify-content: center;4289  width: 36px;4290  height: 48px;4291  background: var(--peach-s2);4292  border: 1px solid var(--peach-t3);4293  border-radius: 6px;4294  font-family: var(--font-mono);4295  font-size: 22px;4296  color: var(--peach-t0);4297  letter-spacing: 0;4298}42994300.peach-pairing-countdown-ring {4301  position: relative;4302  display: inline-flex;4303  align-items: center;4304  justify-content: center;4305}43064307.peach-pairing-countdown-num {4308  position: absolute;4309  font-family: var(--font-mono);4310  font-size: 14px;4311  color: var(--peach-t1);4312}43134314.peach-pairing-ring-track {4315  fill: none;4316  stroke: var(--peach-t3);4317  stroke-width: 2;4318}43194320.peach-pairing-ring-progress {4321  fill: none;4322  stroke: var(--peach-accent);4323  stroke-width: 2;4324  stroke-linecap: round;4325  transform: rotate(-90deg);4326  transform-origin: 50% 50%;4327  transition: stroke-dashoffset 0.5s linear;4328}43294330.peach-pairing-code-inputs {4331  display: flex;4332  gap: 8px;4333}43344335.peach-pairing-code-box {4336  width: 36px;4337  height: 48px;4338  text-align: center;4339  background: var(--peach-s2);4340  border: 1px solid var(--peach-t3);4341  border-radius: 6px;4342  font-family: var(--font-mono);4343  font-size: 20px;4344  color: var(--peach-t0);4345  outline: none;4346  transition: border-color 120ms ease;4347}43484349.peach-pairing-code-box:focus {4350  border-color: var(--peach-accent);4351}43524353.peach-pairing-code-box.has-error {4354  border-color: rgba(220, 80, 60, 0.45);4355}43564357.peach-pairing-status {4358  display: flex;4359  align-items: center;4360  gap: 8px;4361  margin: 0;4362  font-size: 12px;4363  color: var(--peach-t1);4364}43654366.peach-pairing-error {4367  margin: 0;4368  font-size: 11px;4369  color: var(--peach-breach);4370}43714372.peach-pairing-error-msg {4373  color: var(--peach-t1);4374}43754376.peach-pairing-spinner {4377  width: 12px;4378  height: 12px;4379  border: 1.5px solid var(--peach-t3);4380  border-top-color: var(--peach-accent);4381  border-radius: 50%;4382  animation: peach-spin 0.8s linear infinite;4383}43844385.peach-pairing-success-icon,4386.peach-pairing-error-icon,4387.peach-pairing-hero {4388  display: inline-flex;4389  align-items: center;4390  justify-content: center;4391}43924393/* Tag chips */4394.peach-tag-chip {4395  display: inline-flex;4396  align-items: center;4397  gap: 4px;4398  padding: 3px 8px;4399  border-radius: 999px;4400  border: 1px solid color-mix(in srgb, var(--peach-accent) 28%, transparent);4401  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4402  color: var(--peach-t0);4403  font-family: "IBM Plex Mono", monospace;4404  font-size: 10px;4405  letter-spacing: 0.04em;4406}44074408.peach-tag-chip-remove {4409  background: transparent;4410  border: none;4411  color: inherit;4412  opacity: 0.6;4413  cursor: pointer;4414  padding: 0;4415  font-size: 12px;4416  line-height: 1;4417}44184419.peach-tag-chip-remove:hover {4420  opacity: 1;4421}44224423/* Tag input */4424.peach-tag-input-wrap {4425  border-bottom: 1px solid var(--peach-t3);4426}44274428.peach-tag-suggestions {4429  display: flex;4430  flex-wrap: wrap;4431  gap: 4px;4432  padding: 6px 0;4433}44344435.peach-tag-suggestion {4436  padding: 2px 8px;4437  border-radius: 999px;4438  border: 1px solid var(--peach-t3);4439  background: var(--peach-s2);4440  color: var(--peach-t1);4441  font-family: "IBM Plex Mono", monospace;4442  font-size: 10px;4443  cursor: pointer;4444  transition: border-color 80ms ease, background 80ms ease;4445}44464447.peach-tag-suggestion:hover {4448  border-color: color-mix(in srgb, var(--peach-accent) 40%, transparent);4449  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4450}44514452/* Tag filter strip */4453.peach-tag-filter-strip {4454  border-bottom: 1px solid var(--peach-t3);4455  flex-shrink: 0;4456}44574458.peach-tag-filter-chip {4459  display: inline-flex;4460  align-items: center;4461  padding: 4px 10px;4462  border-radius: 999px;4463  border: 1px solid var(--peach-t3);4464  background: transparent;4465  color: var(--peach-t2);4466  font-family: "IBM Plex Mono", monospace;4467  font-size: 9px;4468  letter-spacing: 0.06em;4469  text-transform: uppercase;4470  cursor: pointer;4471  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4472  white-space: nowrap;4473}44744475.peach-tag-filter-chip:hover {4476  border-color: color-mix(in srgb, var(--peach-accent) 35%, transparent);4477  color: var(--peach-t1);4478}44794480.peach-tag-filter-chip.is-selected {4481  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4482  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4483  color: var(--peach-t0);4484}44854486/* ─────────────────────────────────────────────────────────────────────────4487   v1.4.12 additions4488   ─────────────────────────────────────────────────────────────────────── */44894490/* Sort bar */4491.peach-sort-bar {4492  display: flex;4493  align-items: center;4494  gap: 4px;4495  padding: 5px 12px;4496  border-bottom: 1px solid var(--peach-t3);4497  flex-shrink: 0;4498  overflow-x: auto;4499  scrollbar-width: none;4500}45014502.peach-sort-btn {4503  padding: 2px 9px;4504  border-radius: 999px;4505  border: 1px solid transparent;4506  background: transparent;4507  color: var(--peach-t2);4508  font-family: "IBM Plex Mono", monospace;4509  font-size: 9px;4510  letter-spacing: 0.07em;4511  text-transform: uppercase;4512  cursor: pointer;4513  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;4514  white-space: nowrap;4515}45164517.peach-sort-btn:hover {4518  border-color: color-mix(in srgb, var(--peach-accent) 30%, transparent);4519  color: var(--peach-t1);4520}45214522.peach-sort-btn.is-active {4523  border-color: color-mix(in srgb, var(--peach-accent) 50%, transparent);4524  background: color-mix(in srgb, var(--peach-accent) 12%, transparent);4525  color: var(--peach-t0);4526}45274528.peach-sort-domain-hint {4529  margin-left: auto;4530  font-family: "IBM Plex Mono", monospace;4531  font-size: 9px;4532  color: color-mix(in srgb, var(--peach-accent) 60%, transparent);4533  white-space: nowrap;4534  overflow: hidden;4535  text-overflow: ellipsis;4536  max-width: 110px;4537}45384539/* Tab-match badge on entry rows */4540.peach-tab-match-badge {4541  display: inline-block;4542  width: 6px;4543  height: 6px;4544  border-radius: 50%;4545  background: color-mix(in srgb, var(--peach-accent) 75%, transparent);4546  margin-left: 5px;4547  vertical-align: middle;4548  flex-shrink: 0;4549  box-shadow: 0 0 4px color-mix(in srgb, var(--peach-accent) 40%, transparent);4550}45514552.peach-entry-row.is-tab-match {4553  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);4554  border-bottom-color: color-mix(in srgb, var(--peach-accent) 8%, transparent);4555}45564557.peach-entry-row.is-tab-match:hover {4558  background: color-mix(in srgb, var(--peach-accent) 8%, transparent);4559}45604561/* Entry list stagger entrance */4562@keyframes peach-entry-fadein {4563  from { opacity: 0; transform: translateY(4px); }4564  to   { opacity: 1; transform: translateY(0); }4565}45664567.peach-vault-list .peach-entry-row {4568  animation: peach-entry-fadein 220ms cubic-bezier(0.16, 1, 0.3, 1) both;4569  content-visibility: auto;4570  contain-intrinsic-size: auto 44px;4571}45724573/* Button press micro-interaction */4574.peach-btn:active {4575  transform: scale(0.95);4576  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4577}45784579.peach-sort-btn:active,4580.peach-tag-filter-chip:active {4581  transform: scale(0.93);4582  transition: transform 80ms cubic-bezier(0.34, 1.56, 0.64, 1);4583}45844585/* Password strength bar (Lock view + shared) */4586.peach-password-strength {4587  display: flex;4588  align-items: center;4589  gap: 8px;4590  margin-top: 6px;4591}45924593.peach-strength-bar {4594  flex: 1;4595  height: 3px;4596  border-radius: 2px;4597  background: var(--peach-t3);4598  overflow: hidden;4599}46004601.peach-strength-fill {4602  height: 100%;4603  border-radius: 2px;4604  transition: width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),4605              background 300ms ease;4606}46074608.peach-strength-bar--weak   .peach-strength-fill { width: 25%; background: rgba(220, 80, 60, 0.65); }4609.peach-strength-bar--fair   .peach-strength-fill { width: 50%; background: rgba(200, 140, 60, 0.6); }4610.peach-strength-bar--good   .peach-strength-fill { width: 75%; background: rgba(180, 162, 100, 0.55); }4611.peach-strength-bar--strong .peach-strength-fill { width: 100%; background: rgba(150, 175, 110, 0.6); }46124613.peach-strength-label {4614  font-family: "IBM Plex Mono", monospace;4615  font-style: italic;4616  font-size: 9px;4617  font-weight: 300;4618  letter-spacing: 0.06em;4619  color: var(--peach-t2);4620  min-width: 36px;4621  text-align: right;4622}46234624.peach-strength-bar--weak   + .peach-strength-label { color: rgba(220, 80, 60, 0.65); }4625.peach-strength-bar--fair   + .peach-strength-label { color: rgba(200, 140, 60, 0.6); }4626.peach-strength-bar--good   + .peach-strength-label { color: rgba(180, 162, 100, 0.55); }4627.peach-strength-bar--strong + .peach-strength-label { color: rgba(150, 175, 110, 0.6); }46284629/* Duress form */4630.peach-duress-status {4631  padding: 2px 8px;4632  border-radius: 999px;4633  border: 1px solid var(--peach-t3);4634  font-family: "IBM Plex Mono", monospace;4635  font-size: 9px;4636  letter-spacing: 0.07em;4637  text-transform: uppercase;4638  color: var(--peach-t2);4639  flex-shrink: 0;4640}46414642.peach-duress-status.is-active {4643  border-color: color-mix(in srgb, var(--peach-accent) 45%, transparent);4644  background: color-mix(in srgb, var(--peach-accent) 10%, transparent);4645  color: var(--peach-t0);4646}46474648.peach-duress-form {4649  padding: 8px 0 4px;4650  display: flex;4651  flex-direction: column;4652  gap: 6px;4653}46544655.peach-duress-form .peach-label {4656  margin-top: 4px;4657}46584659.peach-duress-actions {4660  display: flex;4661  gap: 6px;4662  align-items: center;4663  margin-top: 4px;4664}46654666.peach-duress-actions .peach-btn:first-child {4667  margin-right: auto;4668}46694670/* Improved overlay spring entrance */4671.peach-overlay-view.ov-enter-up {4672  animation: ov-enter-up-spring 300ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4673}46744675@keyframes ov-enter-up-spring {4676  from { opacity: 0; transform: translateY(16px) scale(0.98); }4677  to   { opacity: 1; transform: translateY(0) scale(1); }4678}46794680.peach-overlay-view.ov-enter-right {4681  animation: ov-enter-right-spring 280ms cubic-bezier(0.34, 1.56, 0.64, 1) both;4682}46834684@keyframes ov-enter-right-spring {4685  from { opacity: 0; transform: translateX(18px) scale(0.98); }4686  to   { opacity: 1; transform: translateX(0) scale(1); }4687}46884689/* ── Onboarding-mode restore screens (CJK phrase / file import) ── */4690/* Used when CJKImportView or MainImportView renders during onboarding4691   (no vault yet). Animates like a lock-screen transition. */4692.peach-lock-view {4693  position: absolute;4694  inset: 0;4695  display: flex;4696  flex-direction: column;4697  background:4698    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),4699    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),4700    var(--peach-bg);4701  z-index: 2;4702  overflow: hidden;4703  animation: peach-screen-enter 280ms cubic-bezier(0.16, 1, 0.3, 1) both;4704}47054706.peach-lock-view-header {4707  display: flex;4708  align-items: center;4709  justify-content: space-between;4710  padding: 16px 18px 12px;4711  flex-shrink: 0;4712}47134714/* ───────── Settings: auto-lock select ───────── */4715.peach-settings-select {4716  font-family: "IBM Plex Mono", monospace;4717  font-size: 11px;4718  background: transparent;4719  border: 1px solid var(--peach-t3);4720  border-radius: 4px;4721  color: var(--peach-t1);4722  padding: 3px 6px;4723  cursor: pointer;4724  outline: none;4725}4726.peach-settings-select:focus {4727  border-color: var(--peach-accent);4728}47294730/* ───────── Duress status pill (new polished) ───────── */4731.peach-duress-status-pill {4732  font-family: "IBM Plex Mono", monospace;4733  font-size: 9px;4734  text-transform: uppercase;4735  letter-spacing: 0.12em;4736  padding: 2px 8px;4737  border-radius: 12px;4738  background: var(--peach-t3);4739  color: var(--peach-t2);4740  flex-shrink: 0;4741}4742.peach-duress-status-pill.is-active {4743  background: color-mix(in srgb, var(--peach-accent) 15%, transparent);4744  color: var(--peach-accent);4745}47464747/* ───────── Entry advanced disclosure (canary) ───────── */4748.peach-entry-advanced {4749  margin-top: 12px;4750  border-top: 1px solid var(--peach-t3);4751  padding-top: 10px;4752  position: relative;4753  z-index: 1;4754}4755.peach-entry-advanced-toggle {4756  display: flex;4757  align-items: center;4758  justify-content: space-between;4759  width: 100%;4760  background: transparent;4761  border: none;4762  cursor: pointer;4763  padding: 0;4764  color: var(--peach-t2);4765}4766.peach-canary-section {4767  margin-top: 10px;4768  display: grid;4769  gap: 6px;4770}47714772/* ───────── Import: merge/replace radio choices ───────── */4773.peach-import-choice {4774  display: flex;4775  align-items: flex-start;4776  gap: 10px;4777  padding: 8px 10px;4778  border: 1px solid var(--peach-t3);4779  border-radius: 10px;4780  cursor: pointer;4781  margin-bottom: 6px;4782  transition: border-color 120ms ease, background 120ms ease;4783}4784.peach-import-choice:hover {4785  border-color: var(--peach-accent);4786}4787.peach-import-choice input[type="radio"] {4788  margin-top: 3px;4789  accent-color: var(--peach-accent);4790  flex-shrink: 0;4791}4792.peach-import-choice-main {4793  display: flex;4794  flex-direction: column;4795  gap: 2px;4796  min-width: 0;4797}4798.peach-import-choice-label {4799  font-size: 12px;4800  color: var(--peach-t0);4801}4802.peach-import-choice-sub {4803  font-size: 11px;4804  color: var(--peach-t2);4805  line-height: 1.5;4806}48074808/* ───────── Export: success confirmation strip ───────── */4809.peach-export-success {4810  display: flex;4811  align-items: flex-start;4812  gap: 10px;4813  padding: 12px;4814  border-radius: 12px;4815  border: 1px solid rgba(150, 175, 110, 0.3);4816  background: rgba(150, 175, 110, 0.08);4817  color: var(--peach-t0);4818  font-size: 12px;4819  line-height: 1.55;4820}4821.peach-export-success-check {4822  color: rgba(150, 175, 110, 0.9);4823  font-size: 14px;4824  flex-shrink: 0;4825}48264827/* ── Trash view ──────────────────────────────────────────────────────── */4828.peach-trash-entry-row {4829  display: flex;4830  align-items: center;4831  justify-content: space-between;4832  gap: 8px;4833  padding: 8px 0;4834  border-bottom: 1px solid var(--peach-t3);4835}4836.peach-trash-entry-row:last-child { border-bottom: none; }4837.peach-trash-entry-info {4838  flex: 1;4839  min-width: 0;4840  display: flex;4841  flex-direction: column;4842  gap: 2px;4843}4844.peach-trash-entry-title {4845  font-size: 12px;4846  color: var(--peach-t1);4847  overflow: hidden;4848  text-overflow: ellipsis;4849  white-space: nowrap;4850}4851.peach-trash-entry-meta {4852  font-family: var(--font-mono);4853  font-size: 9px;4854  color: var(--peach-t2);4855  letter-spacing: 0.06em;4856}4857.peach-trash-entry-actions {4858  display: flex;4859  align-items: center;4860  gap: 4px;4861  flex-shrink: 0;4862}4863.peach-trash-list {4864  flex: 1;4865  min-height: 0;4866  overflow-y: auto;4867}4868.peach-trash-notice {4869  margin: 0 20px 16px;4870  margin-top: auto;4871}48724873/* ── Settings shortcuts grid ─────────────────────────────────────────── */4874.peach-shortcuts-grid {4875  display: grid;4876  grid-template-columns: auto 1fr;4877  gap: 6px 12px;4878  align-items: center;4879  padding: 4px 0;4880}4881.peach-shortcut-key {4882  font-family: var(--font-mono);4883  font-size: 10px;4884  color: var(--peach-t0);4885  background: var(--peach-t3);4886  border-radius: 4px;4887  padding: 2px 6px;4888  white-space: nowrap;4889  text-align: center;4890}4891.peach-shortcut-desc {4892  font-size: 11px;4893  color: var(--peach-t1);4894}48954896/* ── Sort bar trash button ───────────────────────────────────────────── */4897.peach-sort-trash-btn {4898  display: flex;4899  align-items: center;4900  justify-content: center;4901  padding: 3px 5px;4902  background: transparent;4903  border: none;4904  cursor: pointer;4905  color: var(--peach-t2);4906  border-radius: 4px;4907  transition: color 140ms ease, background 140ms ease;4908}4909.peach-sort-trash-btn:hover {4910  color: var(--peach-t1);4911  background: var(--peach-t3);4912}4913.peach-sort-trash-btn.is-active {4914  color: var(--peach-accent);4915}49164917/* Accent color picker */4918.peach-settings-row--accent { align-items: flex-start; padding-top: 10px; }4919.peach-accent-picker {4920  display: flex;4921  flex-wrap: wrap;4922  gap: 7px;4923  padding: 2px 0;4924}4925.peach-accent-swatch {4926  width: 22px;4927  height: 22px;4928  border-radius: 50%;4929  border: 2px solid transparent;4930  cursor: pointer;4931  padding: 0;4932  transition: transform 100ms;4933  outline-offset: 2px;4934}4935.peach-accent-swatch:hover { transform: scale(1.15); }4936.peach-accent-swatch.is-active {4937  border-color: var(--peach-t0);4938  transform: scale(1.1);4939}49404941/* ── Card entry styles ───────────────────────────────────────── */4942.peach-card-number {4943  font-family: var(--peach-mono);4944  letter-spacing: 0.08em;4945}49464947.peach-card-network-badge {4948  font-size: 10px;4949  padding: 1px 5px;4950  border-radius: 4px;4951  border: 0.5px solid var(--peach-border);4952  color: var(--peach-text-dim);4953  margin-left: 6px;4954  vertical-align: middle;4955}49564957.peach-card-expiry-row {4958  display: flex;4959  align-items: center;4960  gap: 8px;4961}49624963.peach-card-expiry-sep {4964  color: var(--peach-text-dim);4965}49664967/* ── Pro tier — upgrade screen ──────────────────────────────── */4968.peach-pro-mark {4969  font-size: 9px;4970  color: var(--peach-accent);4971  margin-left: 6px;4972  vertical-align: super;4973  opacity: 0.7;4974}49754976.peach-pro-mini-badge {4977  display: block;4978  font-size: 10px;4979  font-style: italic;4980  color: var(--peach-accent);4981  letter-spacing: 0.04em;4982  margin-top: -2px;4983  padding-left: 2px;4984  opacity: 0.85;4985  text-align: center;4986}49874988.peach-wordmark-stack {4989  display: inline-flex;4990  flex-direction: column;4991  align-items: center;4992}49934994.peach-pro-upgrade {4995  display: flex;4996  flex-direction: column;4997  gap: 14px;4998  padding: 4px 4px 12px;4999}50005001.peach-pro-upgrade-hero {5002  display: flex;5003  flex-direction: column;5004  align-items: center;5005  gap: 4px;5006  padding: 8px 0 4px;5007}50085009.peach-pro-upgrade-mark {5010  width: 32px;5011  height: 32px;5012}50135014.peach-pro-upgrade-title {5015  font-family: var(--font-display, var(--font-ui));5016  font-size: 22px;5017  margin: 0;5018  color: var(--peach-t0);5019  letter-spacing: 0.01em;5020}50215022.peach-pro-upgrade-tagline {5023  margin: 0;5024  font-style: italic;5025  color: var(--peach-t2);5026  font-size: 12px;5027}50285029.peach-pro-features {5030  display: flex;5031  flex-direction: column;5032  gap: 10px;5033  border-top: 1px solid var(--peach-border);5034  border-bottom: 1px solid var(--peach-border);5035  padding: 14px 4px;5036}50375038.peach-pro-feature {5039  display: flex;5040  gap: 10px;5041  align-items: flex-start;5042}50435044.peach-pro-feature-mark {5045  color: var(--peach-accent);5046  font-size: 14px;5047  line-height: 1.2;5048  flex-shrink: 0;5049  display: inline-block;5050  transform-origin: center;5051}50525053.peach-pro-feature-text {5054  display: flex;5055  flex-direction: column;5056  gap: 2px;5057}50585059.peach-pro-feature-name {5060  font-size: 13px;5061  color: var(--peach-t0);5062}50635064.peach-pro-feature-desc {5065  font-size: 11px;5066  color: var(--peach-t2);5067}50685069.peach-pro-feature.is-highlighted .peach-pro-feature-mark {5070  animation: peach-pulse-accent 600ms ease-out forwards;5071}50725073@keyframes peach-pulse-accent {5074  0%   { opacity: 1; transform: scale(1.4); }5075  100% { opacity: 0.7; transform: scale(1); }5076}50775078.peach-pro-pricing {5079  margin: 0;5080  text-align: center;5081  font-size: 12px;5082  color: var(--peach-t2);5083}50845085.peach-pro-upgrade-cta {5086  align-self: center;5087  width: auto;5088  min-width: 160px;5089  text-align: center;5090  text-decoration: none;5091  display: inline-block;5092  padding: 8px 20px;5093  font-size: 13px;5094}50955096.peach-pro-key-link {5097  background: transparent;5098  border: 0;5099  color: var(--peach-t2);5100  font-size: 11px;5101  cursor: pointer;5102  align-self: center;5103  padding: 4px 8px;5104}51055106.peach-pro-key-link:hover {5107  color: var(--peach-accent);5108}51095110.peach-pro-key-entry {5111  display: flex;5112  flex-direction: column;5113  gap: 8px;5114}51155116.peach-pro-key-input {5117  font-family: var(--font-mono, monospace);5118  letter-spacing: 0.06em;5119  text-align: center;5120}51215122.peach-pro-key-error {5123  margin: 0;5124  font-size: 11px;5125  color: var(--peach-breach, #e55);5126}51275128/* ── Pro tier — active state ─────────────────────────────────── */5129.peach-pro-active {5130  display: flex;5131  flex-direction: column;5132  gap: 8px;5133  padding: 14px 4px;5134}51355136.peach-pro-active-head {5137  display: flex;5138  align-items: center;5139  gap: 8px;5140}51415142.peach-pro-active-mark { font-size: 16px; line-height: 1; }51435144.peach-pro-active-title {5145  margin: 0;5146  font-size: 15px;5147  font-weight: 500;5148  color: var(--peach-t0);5149}51505151.peach-pro-active-since {5152  margin: 0;5153  font-size: 12px;5154  color: var(--peach-t2);5155}51565157.peach-pro-active-divider {5158  height: 1px;5159  background: var(--peach-border);5160  margin: 8px 0 4px;5161}51625163.peach-pro-active-thanks {5164  margin: 0;5165  font-size: 12px;5166  font-style: italic;5167  color: var(--peach-t2);5168}51695170.peach-pro-deactivate {5171  align-self: flex-end;5172  background: transparent;5173  border: 0;5174  color: var(--peach-t2);5175  font-size: 11px;5176  cursor: pointer;5177  padding: 6px 0;5178  margin-top: 4px;5179}51805181.peach-pro-deactivate:hover {5182  color: var(--peach-accent);5183}51845185.peach-pro-deactivate:disabled {5186  opacity: 0.6;5187  cursor: default;5188}51895190/* ── Pro advanced health remediation queue ──────────────────── */5191.peach-health-pro-queue {5192  display: flex;5193  flex-direction: column;5194  gap: 10px;5195  padding: 12px;5196  margin: 0 0 12px;5197  background: color-mix(in srgb, var(--peach-accent) 4%, transparent);5198  border: 1px solid color-mix(in srgb, var(--peach-accent) 18%, transparent);5199  border-radius: 10px;5200}52015202.peach-health-pro-queue-head {5203  display: flex;5204  justify-content: space-between;5205  align-items: baseline;5206}52075208.peach-health-pro-queue-title {5209  font-size: 12px;5210  font-weight: 500;5211  letter-spacing: 0.04em;5212  text-transform: uppercase;5213  color: var(--peach-accent);5214}52155216.peach-health-pro-queue-score {5217  font-size: 11px;5218  color: var(--peach-t2);5219}52205221.peach-health-pro-row {5222  display: flex;5223  gap: 10px;5224  align-items: center;5225  padding: 8px 0;5226  border-top: 1px solid var(--peach-border);5227}52285229.peach-health-pro-row-info {5230  flex: 1;5231  display: flex;5232  flex-direction: column;5233  gap: 4px;5234  min-width: 0;5235}52365237.peach-health-pro-row-name {5238  font-size: 13px;5239  color: var(--peach-t0);5240  overflow: hidden;5241  text-overflow: ellipsis;5242  white-space: nowrap;5243}52445245.peach-health-pro-row-meta {5246  font-size: 11px;5247  color: var(--peach-t2);5248}52495250.peach-health-pro-bar {5251  height: 2px;5252  background: var(--peach-border);5253  border-radius: 2px;5254  overflow: hidden;5255  margin-top: 2px;5256}52575258.peach-health-pro-bar-fill {5259  height: 100%;5260  background: var(--peach-accent);5261  transition: width 200ms ease-out;5262}52635264/* ── Pro activation celebration ── */5265@keyframes peach-pro-bloom {5266  0%   { filter: drop-shadow(0 0 0px var(--peach-glow)); }5267  40%  { filter: drop-shadow(0 0 24px var(--peach-accent))5268                 drop-shadow(0 0 48px var(--peach-glow)); }5269  100% { filter: drop-shadow(0 0 0px var(--peach-glow)); }5270}52715272@keyframes peach-pro-wordmark-in {5273  from { opacity: 0; transform: translateY(4px); }5274  to   { opacity: 1; transform: translateY(0); }5275}52765277@keyframes peach-pro-fade-out {5278  from { opacity: 1; }5279  to   { opacity: 0; }5280}52815282.peach-pro-celebration {5283  background:5284    radial-gradient(120% 80% at 0% 0%, var(--shell-accent-a) 0%, transparent 65%),5285    radial-gradient(85% 100% at 100% 100%, var(--shell-accent-b) 0%, transparent 70%),5286    var(--peach-bg);5287  border: 1px solid var(--peach-t3);5288  box-shadow:5289    0 2px 8px rgba(0,0,0,0.55),5290    0 14px 48px rgba(0,0,0,0.7),5291    0 0 0 1px rgba(240,232,216,0.04);5292  overflow: hidden;5293  width: 320px;5294  height: 520px;5295  display: flex;5296  flex-direction: column;5297  align-items: center;5298  justify-content: center;5299  gap: 8px;5300  padding: 32px 24px;5301  text-align: center;5302}53035304.peach-pro-celebration.is-leaving {5305  animation: peach-pro-fade-out 400ms ease forwards;5306}53075308.peach-pro-bloom-target {5309  font-size: 48px;5310  animation: peach-pro-bloom 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards;5311  margin-bottom: 12px;5312}53135314.peach-pro-wordmark {5315  font-family: "Cormorant Garamond", "Times New Roman", serif;5316  font-size: 22px;5317  font-style: italic;5318  font-weight: 400;5319  color: var(--peach-accent);5320  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both;5321}53225323.peach-pro-thankyou {5324  font-size: 12px;5325  font-style: italic;5326  color: var(--peach-t2);5327  animation: peach-pro-wordmark-in 400ms cubic-bezier(0.16, 1, 0.3, 1) 800ms both;5328}532953305331/* ── Pending Pro notice banner (shown after background sync gate fires) ── */5332.peach-pro-notice-banner {5333  display: flex;5334  align-items: center;5335  gap: 8px;5336  padding: 7px 12px;5337  background: color-mix(in srgb, var(--peach-accent) 12%, var(--peach-bg-card));5338  border-bottom: 1px solid color-mix(in srgb, var(--peach-accent) 25%, transparent);5339  font-size: 11px;5340  color: var(--peach-t2);5341  font-family: "IBM Plex Mono", monospace;5342  flex-shrink: 0;5343}53445345.peach-pro-notice-link {5346  background: none;5347  border: none;5348  padding: 0;5349  cursor: pointer;5350  font-size: 11px;5351  color: var(--peach-accent);5352  font-family: "IBM Plex Mono", monospace;5353  margin-left: auto;5354  white-space: nowrap;5355}53565357.peach-pro-notice-close {5358  background: none;5359  border: none;5360  padding: 0 0 0 4px;5361  cursor: pointer;5362  font-size: 10px;5363  color: var(--peach-t3);5364  line-height: 1;5365}